{"version":3,"file":"static/chunks/454-f005a8cd89cad4cb.js","mappings":"kOAAO,IAAMA,EAAa,CAAC,YAAa,cAAe,YAAY,CCQtDC,EAAe,CAC1BC,MAAO,CAAC,aAAc,sBAAuB,UAAW,SAAU,YAAY,CAC9EC,QAAS,CAAC,YAAa,UAAW,UAAW,UAAW,OAAQ,SAAS,CACzEC,MAAO,CACL,QACA,SACA,WACA,aACA,SACA,UACA,QACA,gBACA,cACA,aACA,UACA,QACA,UACA,UACA,aACA,UACA,aACA,YACA,UACA,UACA,UACA,SACA,aACA,WACD,ECpCUC,EAAuB,CAClC,mBACA,cACA,8BACA,mBACA,qBACA,kBACA,kCACA,iCACA,mDACA,iCACA,iDACA,0BACA,qCACA,kCACA,8BACA,gCACA,wBACA,gCACA,4CACA,qCACA,mDACA,aACA,uBACA,YACA,mBACA,yCACA,eACA,uCACA,kCACA,yBACA,iBACA,iDACA,yBACA,oBACA,4BACA,iBACA,iDACA,sBACA,4BACA,6CACA,4CACA,wBACA,qBACA,0BACA,qBACA,wCACA,YACA,cACA,2BACA,kBACA,UACA,6BACA,kBACA,yCACA,wCACA,4CACA,oBACA,sBACA,wBACA,0BACA,eACA,iBACA,oBACA,gBACA,mBACA,yBACA,iDACA,0CACA,uDACA,8BACD,CCvEYC,EAAU,CACrB,cACA,SACA,QACA,iBACA,QACA,QACA,UACA,SACA,WACA,YACA,QACA,UACA,YACA,SACA,SACA,UACA,UACA,OACA,WACA,SACA,SACA,QACA,kBACA,eACA,YACA,UACA,QACA,QACD,CCIYC,EAA0B,CACrCC,YAAa,CACX,cACA,cACA,WACA,aACA,aACA,aACA,UACA,cACA,YACA,eACA,cACA,iBACA,aACA,eACA,aACA,YACA,cACA,kBACA,aACA,aACA,gBACA,aACA,gBACA,YACA,aACA,cACA,cACA,YACA,aACA,YACA,gBACA,eACA,aACA,eACA,YACA,aACA,WACA,WACA,iBACA,WACA,aACA,cACA,aACA,aACA,iBACA,UACA,qBACA,cACA,aACA,iBACA,cACA,YACA,oBACA,mBACA,mBACA,kBACA,oBACA,mBACA,kBACA,mBACA,oBACA,mBACA,aACA,gBACA,YACA,kBACA,aACA,cACA,YACA,cACA,cACA,cACA,YACA,aACA,aACA,aACA,eACA,gBACA,gBACA,eACA,cACA,gBACA,WACA,YACA,YACA,sBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,YACA,aACA,cACA,cACA,eACA,aACA,aACA,aACA,aACA,cACA,eACA,YACA,cACA,eACA,eACA,aACA,aACA,aACA,cACA,YACA,aACA,eACA,iBACA,eACA,YACA,cACA,cACA,aACA,YACA,cACA,aACA,aACA,UACA,gBACA,cACA,cACA,cACA,cACA,eACA,aACA,WACA,YACA,YACA,aACA,YACA,eACA,aACA,aACA,iBACA,eACA,aACA,iBACA,YACA,eACA,eACA,eACA,cACA,eACA,aACA,cACA,YACA,WACA,aACA,WACA,cACA,WACA,aACA,cACA,aACA,UACA,cACA,aACA,YACA,iBACA,mBACA,iBACA,cACA,aACA,cACA,aACA,aACA,WACA,YACA,aACA,YACA,aACA,aACA,cACA,aACA,gBACA,kBACA,oBACA,gBACA,kBACA,UACA,YACA,cACA,WACA,YACA,aACA,aACA,WACA,WACA,WACA,WACA,aACA,WACA,cACA,aACA,aACA,cACA,WACA,aACA,YACA,eACA,YACA,cACA,YACA,mBACA,iBACA,cACA,YACA,aACA,aACA,YACA,aACA,WACA,WACA,YACA,YACA,YACA,uBACA,eACA,gBACA,aACA,aACA,YACA,aACA,cACA,YACA,eACA,WACA,YACA,cACA,aACA,aACA,kBACA,cACA,WACA,YACA,iBACA,cACA,cACA,eACA,YACA,YACA,YACA,iBACA,eACA,cACA,cACA,cACA,aACA,kBACA,cACA,YACA,YACA,aACA,cACA,YACA,eACA,cACA,iBACA,aACA,cACA,cACA,gBACA,aACA,cACA,WACA,cACA,WACD,CACDC,OAAQ,CACN,YACA,kBACA,gBACA,UACA,aACA,cACA,UACA,UACA,cACA,YACA,aACA,cACA,WACA,aACA,aACA,eACA,eACA,aACA,eACA,aACA,eACA,aACA,aACA,gBACA,eACA,aACA,cACA,aACA,eACA,YACA,cACA,WACA,aACA,YACA,cACA,WACA,aACA,aACA,eACA,YACA,aACA,cACA,WACA,YACA,mBACA,YACA,oBACA,YACA,iBACA,cACA,cACA,aACA,aACA,cACA,YACA,aACA,eACA,cACA,aACA,kBACA,eACA,cACA,oBACA,eACA,cACA,aACA,WACA,aACA,YACA,eACA,YACA,cACA,cACA,YACA,UACA,gBACA,qBACA,WACA,UACA,cACA,cACA,cACA,eACA,WACA,aACA,cACA,YACA,YACA,aACA,aACA,cACA,WACA,aACA,WACA,cACA,YACA,mBACA,WACA,iBACA,YACA,aACA,aACA,YACA,iBACA,mBACA,cACA,eACA,YACA,YACA,YACA,YACA,YACA,cACA,aACA,eACA,mBACA,aACA,YACA,WACA,cACA,qBACA,cACA,aACA,cACA,aACA,YACA,YACA,cACA,aACA,YACA,UACA,cACA,aACA,YACA,kBACA,oBACA,aACA,aACA,YACA,gBACA,cACA,mBACA,cACA,YACA,aACA,eACA,cACA,qBACA,YACA,WACA,aACA,aACA,cACA,cACA,WACA,eACA,eACA,YACA,cACA,kBACA,cACA,cACA,WACA,kBACA,YACA,gBACA,YACA,YACA,cACA,cACA,YACA,YACA,aACA,gBACA,WACA,gBACA,YACA,eACA,cACA,eACA,aACA,gBACA,YACA,YACA,YACA,WACA,cACA,YACA,UACA,WACA,gBACA,YACA,YACA,iBACA,iBACA,cACA,aACA,YACA,eACA,cACA,kBACA,WACA,YACA,cACA,eACA,aACA,aACA,WACA,aACA,cACA,aACA,cACA,aACA,mBACA,cACA,aACA,WACA,iBACA,aACA,aACA,gBACA,aACA,cACA,eACA,cACA,eACA,cACA,cACA,YACA,gBACA,aACA,cACA,WACA,cACA,aACA,eACA,YACA,aACA,kBACA,gBACA,aACA,eACA,iBACA,WACA,aACA,cACA,cACA,aACA,iBACD,CACDP,MAAO,CACL,WACA,eACA,aACA,gBACA,YACA,gBACA,eACA,eACA,cACA,cACA,iBACA,aACA,YACA,YACA,WACA,aACA,YACA,eACA,aACA,WACA,YACA,eACA,aACA,YACA,aACA,YACA,eACA,YACA,gBACA,eACA,0BACA,sBACA,oBACA,YACA,kBACA,YACA,iBACA,iBACA,eACA,aACA,YACA,cACA,eACA,aACA,eACA,iBACA,cACA,YACA,mBACA,aACA,eACA,eACA,YACA,aACA,aACA,aACA,aACA,cACA,YACA,aACA,aACA,qBACA,aACA,gBACA,cACA,cACA,YACA,WACA,kBACA,aACA,eACA,YACA,eACA,aACA,gBACA,WACA,WACA,WACA,YACA,gBACA,cACA,cACA,mBACA,YACA,cACA,aACA,YACA,aACA,WACA,cACA,YACA,aACA,sBACA,cACA,aACA,eACA,aACA,mBACA,eACA,WACA,YACA,mBACA,gBACA,gBACA,cACA,kBACA,aACA,YACA,YACA,aACA,YACA,eACA,gBACA,cACA,aACA,YACA,cACA,eACA,cACA,aACA,WACA,gBACA,mBACA,YACA,cACA,UACA,YACA,UACA,YACA,cACA,YACA,gBACA,iBACA,cACA,aACA,YACA,iBACA,mBACA,gBACA,oBACA,aACA,kBACA,eACA,YACA,gBACA,gBACA,cACA,aACA,YACA,WACA,cACA,cACA,aACA,aACA,iBACA,YACA,UACA,UACA,YACA,cACD,CACD,iBAAkB,CAChB,aACA,kBACA,YACA,cACA,aACA,eACA,aACA,YACA,aACA,YACA,cACA,YACA,WACA,aACA,cACA,cACA,eACA,cACA,aACA,cACA,eACA,eACA,cACA,oBACA,cACA,aACA,cACA,cACA,eACA,aACA,eACA,eACA,cACA,aACA,YACA,uBACA,eACA,kBACA,cACA,YACA,YACA,qBACA,cACA,aACA,aACA,cACA,cACA,YACA,cACA,eACA,eACA,eACA,WACA,aACA,aACA,iBACA,cACA,cACA,aACA,cACA,iBACA,eACA,cACA,aACA,cACA,eACA,aACA,cACA,cACA,gBACA,eACA,kBACA,mBACA,sBACA,mBACA,qBACA,gBACA,oBACA,YACA,0BACA,0BACA,oBACA,uBACA,mBACA,sBACA,qBACA,eACA,cACA,YACA,cACA,cACA,gBACA,gBACA,YACA,aACA,mBACA,eACA,cACA,eACA,gBACA,aACA,WACA,WACA,cACA,eACA,cACA,kBACA,mBACA,sBACA,qBACA,iBACA,oBACA,oBACA,cACA,eACA,gBACA,mBACA,eACA,cACA,eACA,iBACA,YACA,aACA,aACA,aACA,kBACA,cACA,YACA,YACA,UACA,eACA,aACA,gBACA,kBACA,cACA,YACA,eACA,gBACA,YACA,aACA,cACA,YACA,eACA,WACA,cACA,aACA,gBACA,cACA,eACA,aACA,cACA,iBACA,aACA,cACA,gBACA,gBACA,iBACA,YACA,cACA,eACA,cACA,eACA,YACA,gBACA,aACA,YACA,YACA,oBACA,cACA,eACA,aACA,eACA,YACA,cACA,cACA,aACA,aACA,YACA,cACA,WACA,aACA,eACA,YACA,kBACA,cACA,eACA,cACA,eACA,WACA,eACA,eACA,aACA,cACA,WACA,aACA,YACA,cACA,aACA,oBACA,gBACA,YACA,YACA,gBACA,aACA,WACA,gBACA,aACA,eACA,eACA,gBACA,WACA,aACA,mBACA,kBACA,eACA,eACA,cACA,gBACA,YACA,iBACA,UACA,aACA,eACA,WACA,gBACA,YACA,YACA,gBACA,gBACA,YACA,cACA,sBACA,cACA,gBACA,cACA,aACA,cACA,gBACA,oBACA,qBACA,aACA,gBACA,YACA,YACA,aACA,gBACA,YACA,aACA,gBACA,aACA,aACA,cACA,cACA,aACA,aACA,cACA,cACA,eACA,aACA,YACA,cACA,WACA,aACA,WACA,YACA,YACA,WACA,YACA,cACA,aACA,gBACA,cACA,iBACA,aACA,eACA,cACA,eACA,YACA,YACA,mBACA,iBACA,gBACA,uBACA,eACA,eACA,eACA,gBACA,aACA,aACA,eACA,eACA,YACA,cACA,cACA,cACA,cACA,aACA,eACA,aACA,aACA,YACA,eACA,cACA,eACA,eACA,iBACA,YACA,oBACA,gBACA,aACA,eACA,aACA,aACA,kBACA,eACA,gBACA,kBACA,cACA,cACA,YACA,aACA,iBACA,eACA,WACA,aACA,YACA,aACA,cACA,cACA,cACA,eACA,YACA,YACA,WACA,WACD,CACDQ,MAAO,CACL,cACA,cACA,WACA,WACA,UACA,eACA,eACA,kBACA,aACA,eACA,cACA,YACA,aACA,eACA,cACA,aACA,YACA,YACA,cACA,gBACA,WACA,cACA,aACA,UACA,YACA,WACA,aACA,eACA,YACA,cACA,sBACA,gBACA,eACA,eACA,YACA,wBACA,cACA,eACA,cACA,aACA,YACA,aACA,aACA,eACA,aACA,kBACA,eACA,cACA,cACA,YACA,cACA,cACA,gBACA,eACA,aACA,cACA,WACA,kBACA,WACA,aACA,YACA,WACA,iBACA,cACA,aACA,cACA,YACA,mBACA,gBACA,YACA,cACA,aACA,WACA,YACA,eACA,mBACA,YACA,mBACA,eACA,eACA,kBACA,iBACA,eACA,eACA,YACA,gBACA,WACA,eACA,cACA,cACA,cACA,aACA,cACA,gBACA,aACA,gBACA,kBACA,YACA,aACA,eACA,cACA,cACA,aACA,YACA,aACA,WACA,WACA,kBACA,eACA,YACA,gBACA,eACA,eACA,iBACA,eACA,cACA,iBACA,eACA,cACA,cACA,eACA,aACA,eACA,aACA,eACA,mBACA,mBACA,iBACA,gBACA,YACA,WACA,aACA,qBACA,WACA,aACA,aACA,cACA,UACD,CACDC,MAAO,CACL,aACA,YACA,aACA,gBACA,aACA,aACA,YACA,YACA,YACA,aACA,WACA,qBACA,aACA,eACA,mBACA,YACA,cACA,eACA,eACA,YACA,YACA,gBACA,aACA,YACA,aACA,YACA,YACA,aACA,aACA,mBACA,mBACA,oBACA,mBACA,iBACA,kBACA,gBACA,YACA,eACA,aACA,oBACA,mBACA,iBACA,YACA,cACA,cACA,aACA,eACA,YACA,cACA,WACA,iBACA,WACA,eACA,cACA,eACA,cACA,YACA,WACA,gBACA,eACA,eACA,YACA,aACA,cACA,YACA,SACA,YACA,aACA,cACA,cACA,aACA,iBACA,aACA,iBACA,qBACA,aACA,YACA,eACA,cACA,cACA,YACA,aACA,cACA,YACA,UACA,oBACA,YACA,YACA,aACA,aACA,YACA,YACA,cACA,YACA,eACA,aACA,YACA,gBACA,aACA,eACA,iBACA,cACA,cACA,gBACA,gBACA,gBACA,eACA,aACA,eACA,cACA,aACA,kBACA,aACA,YACA,aACA,WACA,cACA,cACA,YACA,cACA,aACA,aACA,WACD,CACDC,QAAS,CACP,aACA,cACA,aACA,cACA,gBACA,YACA,aACA,cACA,gBACA,eACA,YACA,cACA,cACA,cACA,aACA,cACA,YACA,gBACA,aACA,aACA,aACA,YACA,aACA,cACA,iBACA,eACA,cACA,aACA,aACA,YACA,cACA,gBACA,eACA,UACA,eACA,eACA,aACA,aACA,aACA,aACA,aACA,cACA,cACA,aACA,cACA,eACA,eACA,cACA,eACA,cACA,cACA,gBACA,gBACA,cACA,cACA,aACA,aACA,eACA,cACA,YACA,aACA,cACA,UACA,aACA,UACA,aACA,gBACA,YACA,cACA,sBACA,sBACA,kBACA,mBACA,qBACA,oBACA,mBACA,oBACA,mBACA,oBACA,YACA,eACA,aACA,cACA,eACA,YACA,WACA,YACA,cACA,eACA,eACA,cACA,eACA,cACA,YACA,cACA,eACA,YACA,cACA,eACA,gBACA,mBACA,oBACA,mBACA,oBACA,oBACA,YACA,aACA,cACA,UACA,gBACA,kBACA,eACA,eACA,eACA,gBACA,cACA,aACA,WACA,YACA,qBACA,aACA,eACA,aACA,cACA,cACA,aACA,WACA,YACA,SACA,gBACA,cACA,kBACA,cACA,gBACA,aACA,eACA,YACA,eACA,aACA,cACA,aACA,WACA,aACA,aACA,cACA,cACA,gBACA,YACA,iBACA,YACA,gBACA,aACA,YACA,cACA,YACA,gBACA,eACA,cACA,cACA,YACA,cACA,cACA,eACA,gBACA,gBACA,gBACA,aACA,eACA,aACA,aACA,iBACA,iBACA,cACA,eACA,aACA,cACA,YACA,kBACA,aACA,WACA,cACA,WACA,eACA,eACA,cACA,UACA,YACA,qBACA,kBACA,qBACA,YACA,cACA,aACA,WACA,iBACA,eACA,aACA,eACA,aACA,cACA,gBACA,aACA,cACA,YACA,aACA,cACA,gBACA,aACA,aACA,WACA,UACA,gBACA,cACA,aACA,gBACA,eACA,gBACA,eACA,cACA,aACA,cACA,cACA,aACA,aACA,cACA,cACA,WACA,aACA,cACA,qBACA,cACA,cACA,aACA,cACA,YACA,gBACA,WACA,YACA,iBACA,aACA,iBACA,YACA,WACA,aACA,aACA,gBACA,eACA,cACA,WACA,eACA,aACA,YACA,aACA,cACA,YACA,cACA,iBACA,aACA,aACA,aACA,aACA,cACA,gBACA,UACA,YACA,cACA,UACA,eACA,cACA,eACA,cACA,mBACA,YACA,eACA,gBACA,cACA,YACA,iBACA,YACA,iBACA,aACA,cACA,gBACA,aACA,cACA,cACA,YACA,YACA,cACA,eACA,YACA,iBACA,iBACA,eACA,aACA,eACA,eACA,aACA,YACA,iBACA,cACA,aACA,gBACA,gBACA,aACA,aACA,gBACA,eACA,eACA,cACA,iBACA,iBACA,aACA,aACA,eACA,cACA,aACA,cACA,aACA,YACA,cACA,aACA,aACA,gBACA,YACA,eACA,mBACA,eACA,WACA,cACA,aACA,mBACA,cACA,eACA,eACA,cACA,YACA,YACA,eACA,YACA,YACA,WACA,eACA,UACA,YACA,aACA,WACA,aACD,CACDC,OAAQ,CACN,WACA,iBACA,6BACA,WACA,eACA,WACA,cACA,aACA,YACA,YACA,cACA,eACA,YACA,YACA,eACA,UACA,aACA,aACA,YACA,WACA,cACA,aACA,cACA,YACA,aACA,eACA,cACA,eACA,aACA,cACA,aACA,cACA,WACA,YACA,iBACA,cACA,eACA,aACA,eACA,cACA,WACA,oBACA,qBACA,cACA,cACA,YACA,cACA,WACA,aACA,cACA,cACA,aACA,YACA,aACA,aACA,YACA,aACA,YACA,aACA,eACA,YACA,cACA,gBACA,aACA,aACA,YACA,WACA,uBACA,cACA,WACA,aACA,aACA,qBACA,aACA,aACA,YACA,YACA,YACA,aACA,cACA,YACA,aACA,gBACA,cACA,YACA,WACA,gBACA,uBACA,eACA,aACA,YACA,cACA,gBACA,aACA,YACA,aACA,cACA,YACA,eACA,YACA,aACA,YACA,YACA,aACA,YACA,aACA,cACA,cACA,aACA,aACA,aACA,cACA,aACA,YACA,gBACA,YACA,oBACA,YACA,eACA,iBACA,cACA,aACA,iBACA,iBACA,cACA,cACA,cACA,cACA,aACA,YACA,YACA,YACA,mBACA,WACA,eACA,gBACA,cACA,cACA,cACA,YACA,aACA,sBACA,uBACA,uBACA,sBACA,yBACA,kBACA,eACA,uBACA,qBACA,gBACA,YACA,YACA,cACA,YACA,YACA,wBACA,eACA,aACA,aACA,YACA,cACA,cACA,cACA,WACA,cACA,YACA,eACA,kBACA,aACA,cACA,aACA,WACA,aACA,kBACA,cACA,cACA,cACA,UACA,cACA,UACA,aACA,cACA,cACA,aACA,aACA,aACA,oBACA,eACA,YACA,cACA,YACA,aACA,cACA,aACA,aACA,YACA,aACA,cACA,cACA,YACA,WACA,uBACA,mBACA,YACA,cACA,aACA,cACA,YACA,gBACA,WACA,gBACA,gBACA,iBACA,YACD,CACDC,SAAU,CACR,cACA,WACA,YACA,aACA,aACA,aACA,WACA,cACA,WACA,cACA,cACA,cACA,gBACA,YACA,YACA,YACA,cACA,cACA,gBACA,eACA,cACA,cACA,gBACA,YACA,aACA,cACA,WACA,aACA,YACA,WACA,aACA,cACA,cACA,cACA,cACA,aACA,aACA,YACA,UACA,cACA,SACA,gBACA,eACA,iBACA,WACA,cACA,gBACA,YACA,YACA,mBACA,cACA,WACA,kBACA,aACA,aACA,eACA,aACA,WACA,WACA,cACA,cACA,YACA,cACA,eACA,aACA,aACA,oBACA,gBACA,aACA,YACA,cACA,cACA,mBACA,iBACA,kBACA,qBACA,mBACA,gBACA,iBACA,mBACA,oBACA,mBACA,kBACA,mBACA,YACA,YACA,YACA,aACA,WACA,eACA,aACA,aACA,eACA,gBACA,gBACA,aACA,WACA,YACA,aACA,YACA,aACA,eACA,aACA,cACA,eACA,cACA,gBACA,cACA,YACA,mBACA,gBACA,iBACA,oBACA,mBACA,YACA,eACA,cACA,cACA,YACA,mBACA,eACA,WACA,aACA,eACA,gBACA,aACA,YACA,cACA,aACA,WACA,YACA,WACA,aACA,aACA,cACA,cACA,WACA,eACA,cACA,aACA,eACA,aACA,aACA,WACA,cACA,cACA,aACA,aACA,gBACA,aACA,aACA,cACA,aACA,YACA,cACA,gBACA,cACA,eACA,eACA,aACA,YACA,aACA,aACA,WACA,aACA,gBACA,cACA,iBACA,aACA,cACA,eACA,aACA,aACA,cACA,cACA,WACA,cACA,aACA,aACA,aACA,WACA,aACA,cACA,WACA,eACA,YACA,aACA,YACA,cACA,cACA,YACA,YACA,WACA,cACA,SACA,aACA,eACA,aACA,iBACA,UACA,aACA,YACA,cACA,eACA,UACA,cACA,iBACA,eACA,YACA,aACA,aACA,YACA,aACA,eACA,eACA,aACA,UACA,aACA,WACA,WACA,YACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,YACA,cACA,aACA,gBACA,SACA,eACA,iBACA,oBACA,YACA,mBACA,aACA,aACA,aACA,aACA,eACA,cACA,gBACA,cACA,cACA,aACA,cACA,kBACA,iBACA,aACA,UACA,cACA,WACA,aACA,YACA,aACA,YACA,UACA,cACA,aACA,eACA,aACA,uBACA,gBACA,gBACA,YACA,aACA,YACA,YACA,gBACA,UACA,aACA,cACA,YACA,cACA,eACA,aACA,YACA,YACA,aACA,eACA,aACA,YACA,YACA,YACA,aACA,WACA,aACA,cACA,cACA,cACA,cACA,cACA,aACA,YACA,aACA,cACA,YACA,WACA,aACA,aACA,cACA,wBACA,aACA,aACA,eACA,YACA,eACA,eACA,aACA,cACA,YACA,aACA,aACA,cACA,YACA,eACA,aACA,cACA,aACA,WACA,YACA,cACA,eACA,aACA,cACA,aACA,YACA,YACA,YACA,WACA,cACA,aACA,cACA,eACA,YACA,cACA,cACA,WACA,SACA,cACA,cACA,cACA,eACA,UACA,cACA,aACA,cACA,aACA,iBACA,eACA,aACA,aACA,cACA,eACA,aACA,WACA,gBACA,cACA,aACA,YACA,WACA,WACA,YACA,aACA,aACA,kBACA,cACA,eACA,cACA,gBACA,cACA,cACA,cACA,cACA,cACA,YACA,aACA,aACA,cACA,cACA,aACA,aACA,aACA,gBACA,gBACA,eACA,iBACA,aACA,cACA,cACA,eACA,aACA,eACA,gBACA,qBACA,cACA,aACA,aACA,qBACA,YACA,YACA,WACA,aACA,WACA,cACA,cACA,aACA,aACA,aACA,aACA,eACA,gBACA,WACA,cACA,iBACA,aACA,YACA,cACA,eACA,WACA,cACA,cACA,aACA,aACA,YACA,aACA,cACA,WACA,WACA,gBACA,aACA,SACA,aACA,mBACA,cACA,aACA,gBACA,iBACA,eACA,eACA,cACA,gBACA,eACA,WACA,YACA,YACA,aACA,cACA,kBACA,aACA,YACA,WACA,iBACA,WACA,eACA,WACA,WACA,eACA,cACA,aACA,aACA,WACA,WACA,aACA,YACD,CACDC,UAAW,CACT,YACA,mBACA,cACA,YACA,cACA,cACA,YACA,cACA,cACA,YACA,aACA,WACA,cACA,gBACA,eACA,cACA,aACA,WACA,YACA,cACA,cACA,aACA,YACA,mBACA,YACA,YACA,gBACA,cACA,iBACA,iBACA,qBACA,eACA,qBACA,mBACA,mBACA,mBACA,kBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,aACA,aACA,aACA,WACA,aACA,qBACA,eACA,aACA,eACA,eACA,mBACA,mBACA,mBACA,kBACA,gBACA,gBACA,iBACA,cACA,iBACA,cACA,cACA,YACA,YACA,cACA,cACA,aACA,aACA,YACA,cACA,UACA,eACA,aACA,yBACA,aACA,cACA,YACA,eACA,aACA,aACA,YACA,iBACA,gBACA,cACA,cACA,aACA,eACA,eACA,gBACA,aACA,WACA,WACA,WACA,WACA,aACA,aACA,gBACA,eACA,oBACA,eACA,aACA,eACA,eACA,cACA,eACA,uBACA,iBACA,iBACA,eACA,gBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,gBACA,cACA,qBACA,iBACA,eACA,sBACA,gBACA,gBACA,cACA,eACA,YACA,aACA,mBACA,aACA,cACA,WACA,uBACA,YACA,cACA,cACA,gBACA,oBACA,cACA,YACA,cACA,aACA,eACA,eACA,aACA,cACA,YACA,cACA,aACA,UACA,gBACA,YACA,gBACA,cACA,eACA,cACA,eACA,aACA,YACA,SACA,YACA,cACA,aACA,cACA,eACA,oBACA,eACA,eACA,aACA,aACA,iBACA,aACA,cACA,aACA,aACA,cACA,cACA,cACA,aACD,CACDC,MAAO,CACL,cACA,kBACA,cACA,aACA,gBACA,cACA,aACA,cACA,cACA,aACA,eACA,WACA,YACA,eACA,cACA,eACA,qBACA,eACA,aACA,aACA,aACA,YACA,aACA,aACA,WACA,iBACA,sBACA,oBACA,WACA,qBACA,iBACA,oBACA,aACA,gBACA,cACA,aACA,cACA,cACA,eACA,cACA,cACA,cACA,aACA,qBACA,YACA,WACA,aACA,eACA,gBACA,mBACA,aACA,YACA,cACA,aACA,aACA,eACA,aACA,aACA,aACA,aACA,eACA,cACA,cACA,aACA,WACA,YACA,WACA,cACA,cACA,mBACA,iBACA,WACA,YACA,aACA,YACA,cACA,eACA,aACA,YACA,aACA,cACA,cACA,eACA,gBACA,eACA,cACA,aACA,aACA,YACA,YACA,cACA,WACA,gBACA,eACA,YACA,eACA,cACA,gBACA,WACA,YACA,cACA,cACA,aACA,cACA,eACA,gBACA,YACA,aACA,WACA,eACD,CACDC,QAAS,CACP,gBACA,cACA,eACA,eACA,eACA,aACA,eACA,gBACA,gBACA,aACA,iBACA,eACA,aACA,YACA,eACA,aACA,aACA,YACA,eACA,aACA,YACA,YACA,iBACA,aACA,gBACA,aACA,gBACA,mBACA,cACA,qBACA,gBACA,aACA,sBACA,oBACA,oBACA,gBACA,iBACA,mBACA,oBACA,aACA,kBACA,eACA,qBACA,sBACA,oBACA,iBACA,iBACA,qBACA,kBACA,mBACA,oBACA,eACA,eACA,mBACA,eACA,gBACA,aACA,WACA,aACA,YACA,eACA,YACA,cACA,mBACA,cACA,eACA,0BACA,oBACA,aACA,cACA,cACA,cACA,eACA,cACA,eACA,cACA,gBACA,cACA,aACA,WACA,UACA,WACA,eACA,cACA,aACA,YACA,cACA,YACA,cACA,aACA,cACA,cACA,WACA,WACA,cACA,eACA,aACA,cACA,gBACA,aACA,eACA,WACA,aACA,YACA,cACA,kBACA,cACA,aACA,aACA,cACA,gBACA,gBACA,eACA,sBACA,aACA,cACA,YACA,kBACA,WACA,cACA,eACA,mBACA,gBACA,WACA,gBACA,cACA,gBACA,eACA,aACA,aACD,CACDC,UAAW,CACT,cACA,gBACA,yBACA,gBACA,aACA,UACA,YACA,aACA,aACA,cACA,aACA,iBACA,YACA,eACA,gBACA,aACA,UACA,UACA,aACA,gBACA,eACA,aACA,gBACA,gBACA,cACA,cACA,eACA,gBACA,eACA,cACA,mBACA,mBACA,kBACA,mBACA,aACA,eACA,aACA,gBACA,kBACA,mBACA,aACA,eACA,YACA,eACA,YACA,YACA,cACA,eACA,eACA,YACA,gBACA,gBACA,aACA,wBACA,eACA,cACA,cACA,iBACA,iBACA,cACA,YACA,cACA,WACA,YACA,iBACA,mBACA,gBACA,aACA,aACA,oBACA,iBACA,aACA,eACA,cACA,gBACA,cACA,iBACA,wBACA,gBACA,YACA,aACA,cACA,iBACA,cACA,aACA,cACA,cACA,eACA,YACA,WACA,aACA,WACA,UACA,iBACA,sBACA,aACA,eACA,gBACA,cACA,gBACA,cACA,eACA,YACA,gBACA,cACA,cACA,gBACA,cACA,cACA,cACA,aACA,YACA,YACA,iBACA,cACA,aACA,aACA,YACD,CACDC,OAAQ,CACN,WACA,YACA,eACA,YACA,WACA,gBACA,eACA,cACA,cACA,aACA,aACA,gBACA,cACA,kBACA,aACA,eACA,YACA,YACA,cACA,qBACA,aACA,aACA,eACA,cACA,cACA,YACA,aACA,YACA,eACA,cACA,YACA,iBACA,WACA,eACA,aACA,gBACA,eACA,SACA,mBACA,kBACA,qBACA,kBACA,iBACA,mBACA,mBACA,eACA,cACA,WACA,gBACA,eACA,WACA,cACA,cACA,kBACA,kBACA,iBACA,mBACA,mBACA,mBACA,eACA,iBACA,UACA,YACA,aACA,gBACA,cACA,eACA,aACA,aACA,UACA,aACA,WACA,YACA,WACA,YACA,gBACA,YACA,aACA,WACA,YACA,eACA,aACA,cACA,cACA,eACA,aACA,eACA,YACA,cACA,YACA,gBACA,cACA,cACA,gBACA,aACA,cACA,WACA,eACA,cACA,gBACA,WACA,aACA,WACA,aACA,YACA,eACA,gBACA,gBACA,YACA,YACA,cACA,eACA,eACA,eACA,iBACA,eACA,YACA,cACA,eACA,YACA,aACA,eACA,aACA,YACA,eACA,gBACA,YACA,cACA,aACA,YACA,cACA,WACA,eACA,cACA,YACA,YACA,WACA,aACA,cACA,aACA,aACA,aACA,YACA,iBACA,cACA,cACA,aACA,cACA,gBACA,YACA,eACA,eACA,gBACA,eACA,mBACA,kBACA,aACA,WACA,eACA,aACA,eACA,gBACA,YACA,oBACA,gBACA,gBACA,aACA,eACA,gBACA,aACA,eACD,CACDC,OAAQ,CACN,aACA,cACA,gBACA,YACA,mBACA,YACA,aACA,cACA,cACA,cACA,cACA,WACA,aACA,aACA,WACA,YACA,eACA,gBACA,cACA,eACA,YACA,eACA,YACA,WACA,eACA,aACA,WACA,WACA,sBACA,kBACA,YACA,eACA,aACA,aACA,aACA,aACA,cACA,YACA,aACA,WACA,cACA,uBACA,eACA,mBACA,mBACA,oBACA,aACA,eACA,WACA,YACA,eACA,aACA,YACA,WACA,YACA,aACA,cACA,YACA,kBACA,cACA,cACA,cACA,WACA,eACA,eACA,iBACA,iBACA,WACA,cACA,YACA,aACA,aACA,YACA,YACA,cACA,aACA,WACA,eACA,eACA,eACA,cACA,cACA,YACA,YACA,YACA,eACA,aACA,kBACA,eACA,cACA,aACA,YACA,WACA,aACA,cACA,eACA,YACA,YACA,aACA,WACA,WACA,aACA,gBACA,eACA,gBACA,aACA,cACA,gBACA,eACA,YACA,YACA,WACA,cACA,cACA,gBACA,gBACA,cACA,aACA,kBACA,eACA,eACA,aACA,UACD,CACDjB,QAAS,CACP,WACA,iBACA,cACA,WACA,mBACA,WACA,aACA,YACA,aACA,cACA,YACA,cACA,aACA,eACA,YACA,eACA,aACA,cACA,aACA,SACA,WACA,YACA,YACA,eACA,cACA,cACA,gBACA,aACA,YACA,eACA,kBACA,aACA,YACA,WACA,iBACA,eACA,YACA,WACA,YACA,cACA,kBACA,kBACA,kBACA,eACA,aACA,oBACA,cACA,YACA,cACA,UACA,cACA,eACA,eACA,kBACA,eACA,YACA,gBACA,cACA,cACA,aACA,cACA,YACA,kBACA,gBACA,aACA,aACA,aACA,gBACA,aACA,gBACA,eACA,eACA,cACA,iBACA,aACA,cACA,WACA,WACA,mBACA,aACA,eACA,cACA,eACA,gBACA,iBACA,eACA,cACA,cACA,aACA,cACA,cACA,WACA,YACA,cACA,YACA,cACA,cACA,aACA,aACA,aACA,aACA,eACA,aACA,aACA,oBACA,aACA,YACA,aACA,cACA,WACA,WACA,aACA,kBACA,kBACA,cACA,YACA,qBACA,iBACA,aACA,YACA,aACA,iBACA,cACA,cACA,aACA,cACA,aACA,cACA,mBACA,qBACA,cACA,cACA,gBACA,mBACA,eACA,YACA,aACA,mBACA,mBACA,cACA,uBACA,aACA,eACA,cACA,cACA,cACA,aACA,aACA,iBACA,YACA,cACA,cACA,eACA,cACA,eACA,WACA,YACA,aACA,UACA,YACA,mBACA,aACA,YACA,WACA,eACA,YACA,eACA,aACA,aACA,cACA,YACA,mBACA,oBACA,cACA,YACA,eACA,aACA,aACA,YACA,aACA,iBACA,cACA,cACA,cACA,gBACA,eACA,gBACA,UACA,aACA,aACA,YACA,aACA,cACA,mBACA,cACA,gBACA,cACA,aACA,gBACA,cACA,YACA,eACA,gBACA,aACA,iBACA,UACA,WACA,cACA,WACA,YACA,aACA,eACD,CACDkB,QAAS,CACP,eACA,cACA,aACA,aACA,aACA,cACA,cACA,eACA,cACA,gBACA,cACA,YACA,aACA,cACA,kBACA,YACA,iBACA,mBACA,iBACA,cACA,cACA,aACA,aACA,cACA,cACA,aACA,aACA,YACA,gBACA,YACA,aACA,cACA,aACA,oBACA,cACA,aACA,aACA,cACA,gBACA,eACA,cACA,YACA,iBACA,aACA,WACA,aACA,eACA,YACA,YACA,cACA,eACA,YACA,mBACA,mBACA,iBACA,gBACA,cACA,iBACA,aACA,cACA,cACA,YACA,aACA,cACA,cACA,iBACA,aACA,aACA,YACA,eACA,aACA,WACA,eACA,cACA,aACA,cACA,WACA,YACA,aACA,WACA,YACA,YACA,eACA,gBACA,kBACA,aACA,cACA,YACA,YACA,cACA,YACA,cACA,aACA,YACA,YACA,UACA,aACA,iBACA,cACA,aACA,UACA,iBACA,cACD,CACDC,KAAM,CACJ,YACA,aACA,eACA,WACA,eACA,YACA,cACA,eACA,aACA,cACA,aACA,gBACA,YACA,gBACA,aACA,aACA,WACA,WACA,aACA,YACA,eACA,oBACA,oBACA,iBACA,eACA,mBACA,oBACA,cACA,kBACA,aACA,gBACA,oBACA,cACA,cACA,aACA,WACA,YACA,aACA,YACA,kBACA,mBACA,aACA,WACA,cACA,cACA,YACA,aACA,eACA,eACA,aACA,eACA,cACA,kBACA,eACA,aACA,aACA,mBACA,WACA,aACA,WACA,YACA,cACA,cACA,iBACA,aACA,iBACA,gBACA,gBACA,aACA,aACA,YACA,eACA,aACA,YACA,aACA,YACA,kBACA,cACA,YACA,cACA,cACA,aACA,eACD,CACDC,SAAU,CACR,aACA,aACA,cACA,cACA,WACA,YACA,YACA,YACA,cACA,cACA,UACA,WACA,cACA,aACA,cACA,cACA,kBACA,YACA,WACA,aACA,WACA,YACA,aACA,YACA,YACA,gBACA,WACA,iBACA,gBACA,cACA,YACA,eACA,iBACA,WACA,kBACA,aACA,aACA,YACA,YACA,cACA,cACA,WACA,eACA,WACA,WACA,eACA,aACA,eACA,iBACA,gBACA,aACA,WACA,cACA,aACA,YACA,aACA,eACA,YACA,WACA,qBACA,YACA,iBACA,gBACA,cACA,UACA,WACA,aACA,UACA,YACA,cACA,YACA,cACA,0BACA,yBACA,wBACA,YACA,YACA,gBACA,iBACA,aACA,WACA,YACA,eACA,uBACA,cACA,YACA,WACA,eACA,cACA,eACA,YACA,WACA,aACA,YACA,WACA,cACA,cACA,aACA,gBACA,oBACA,eACA,aACA,aACA,YACA,eACA,cACA,cACA,gBACA,eACA,aACA,cACA,YACA,cACA,cACA,aACA,aACA,aACA,cACD,CACDC,OAAQ,CACN,cACA,UACA,YACA,YACA,YACA,aACA,eACA,aACA,cACA,aACA,eACA,YACA,cACA,kBACA,UACA,kBACA,YACA,gBACA,cACA,eACA,aACA,qBACA,wBACA,YACA,aACA,iBACA,YACA,YACA,WACA,aACA,kBACA,aACA,eACA,aACA,aACA,mBACA,YACA,WACA,eACA,WACA,cACA,cACA,cACA,aACA,cACA,cACA,aACA,YACA,YACA,iBACA,aACA,aACA,qBACA,gBACA,oBACA,YACA,eACA,aACA,eACA,YACA,aACA,aACA,eACA,kBACA,cACA,eACA,cACA,aACA,YACA,kBACA,iBACA,gBACA,YACA,qBACA,eACA,cACA,YACA,aACA,YACA,eACA,aACA,eACA,gBACA,eACA,aACA,WACA,eACA,YACA,cACA,gBACA,gBACA,mBACA,aACA,aACA,aACA,aACA,mBACA,aACA,eACA,UACA,eACA,cACA,gBACA,gBACA,YACA,iBACA,eACA,YACA,eACA,cACD,CACDC,OAAQ,CACN,cACA,eACA,UACA,cACA,YACA,YACA,aACA,WACA,eACA,cACA,cACA,WACA,WACA,YACA,cACA,YACA,cACA,cACA,eACA,aACA,WACA,WACA,YACA,aACA,YACA,cACA,mBACA,YACA,YACA,aACA,eACA,aACA,WACA,cACA,YACA,aACA,aACA,YACA,eACA,kBACA,cACA,YACA,gBACA,WACA,aACA,aACA,gBACA,eACA,aACA,aACA,aACA,YACA,UACA,aACA,eACA,gBACA,YACA,YACA,aACA,aACA,cACA,cACA,cACA,aACA,aACA,eACA,gBACA,gBACA,YACA,cACA,YACA,YACA,oBACA,WACA,WACA,aACA,YACA,cACA,YACA,UACA,YACA,YACA,aACA,aACA,YACA,eACA,aACA,aACA,eACA,aACA,gBACA,YACA,YACA,aACA,aACA,YACA,aACA,cACA,cACA,eACA,YACA,eACA,YACA,aACA,aACA,aACA,cACA,YACA,aACA,YACA,aACA,gBACA,gBACA,cACA,aACA,WACA,YACA,WACA,WACA,cACA,WACA,WACA,YACA,cACA,WACA,WACA,UACA,WACA,WACA,aACA,gBACA,YACA,YACA,gBACA,mBACA,UACA,aACA,cACA,eACA,cACA,gBACA,YACA,WACA,aACA,aACA,eACA,WACA,aACA,aACA,YACA,cACA,aACA,kBACA,aACA,cACA,aACA,gBACA,cACA,YACA,cACA,eACA,cACA,eACA,YACA,0BACA,YACA,cACA,YACA,aACA,aACA,YACA,eACA,aACA,kBACA,UACA,YACA,eACA,aACA,YACA,cACA,YACA,YACA,WACA,YACA,cACA,YACA,aACA,YACA,aACA,eACA,YACA,aACA,YACA,iBACA,YACA,iBACA,cACA,YACA,cACA,eACA,YACA,eACA,aACA,cACA,cACA,aACA,WACA,YACA,WACA,aACA,aACA,WACA,gBACA,aACA,WACA,cACA,cACA,YACA,cACA,YACA,eACA,WACA,YACA,YACA,UACA,WACA,eACA,aACA,cACA,eACA,cACA,qBACA,eACA,WACA,cACA,WACA,cACA,iBACA,aACD,CACDrB,MAAO,CACL,iBACA,WACA,WACA,cACA,aACA,aACA,cACA,cACA,aACA,aACA,YACA,gBACA,YACA,eACA,YACA,oBACA,eACA,aACA,mBACA,SACA,eACA,gBACA,cACA,aACA,cACA,eACA,cACA,YACA,gBACA,eACA,gBACA,WACA,eACA,cACA,YACA,eACA,aACA,eACA,YACA,kBACA,WACA,gBACA,WACA,aACA,eACA,cACA,cACA,aACA,WACA,iBACA,mBACA,YACA,eACA,cACA,WACA,WACA,gBACA,eACA,WACA,eACA,YACA,WACA,qBACA,mBACA,WACA,eACA,oBACA,kBACA,gBACA,mBACA,gBACA,cACA,YACA,eACA,oBACA,WACA,cACA,cACA,aACA,eACA,WACA,eACA,WACA,gBACA,aACA,eACA,cACA,cACA,iBACA,oBACA,kBACA,iBACA,gBACA,mBACA,qBACA,YACA,iBACA,aACA,eACA,gBACA,iBACA,aACA,aACA,aACA,YACA,aACA,gBACA,cACA,gBACA,iBACA,cACA,eACA,WACA,aACA,eACA,YACA,YACA,cACA,cACA,aACA,eACA,WACA,aACA,YACA,cACA,eACA,cACA,gBACA,gBACA,cACA,eACA,cACA,aACA,eACA,aACA,iBACA,kBACA,eACA,cACA,iBACA,YACA,WACA,eACA,cACA,YACA,eACA,aACA,aACA,aACA,aACA,WACA,cACA,aACA,WACA,YACA,UACA,aACA,aACA,cACA,mBACA,iBACA,iBACA,iBACA,qBACA,iBACA,YACA,cACA,cACA,aACA,YACA,mBACA,YACA,cACA,YACA,YACA,cACA,cACA,eACA,WACA,cACA,cACA,gBACA,eACA,cACA,UACA,aACA,aACA,YACA,eACA,eACA,wBACA,YACA,WACA,aACA,aACA,aACA,YACA,YACA,aACA,YACA,aACA,eACA,cACA,cACA,aACA,WACA,aACA,cACA,WACA,aACA,uBACA,eACA,YACA,gBACA,aACA,YACA,WACA,aACA,gBACA,cACA,YACA,eACA,cACA,YACA,YACA,YACA,aACA,cACA,aACA,YACA,aACA,cACA,WACA,aACA,YACA,cACA,aACA,gBACA,YACA,YACA,WACA,aACA,cACA,eACA,aACA,YACA,gBACA,cACA,aACA,aACA,WACA,aACA,cACA,WACA,aACA,cACA,eACA,cACA,eACA,aACA,YACA,eACA,cACA,YACA,aACA,eACA,aACA,gBACA,eACA,cACA,cACA,WACA,eACA,WACA,cACA,gBACA,UACA,cACA,cACA,UACA,gBACA,YACD,CACD,kBAAmB,CACjB,WACA,YACA,cACA,cACA,aACA,YACA,gBACA,YACA,YACA,kBACA,iBACA,kBACA,mBACA,eACA,YACA,WACA,aACA,cACA,aACA,cACA,aACA,eACA,YACA,WACA,cACA,iBACA,cACA,YACA,cACA,aACA,iBACA,eACA,WACA,cACA,kBACA,YACA,aACA,SACD,CACD,eAAgB,CACd,kBACA,cACA,eACA,UACA,YACA,eACA,eACA,gBACA,iBACA,cACA,YACA,cACA,qBACA,mBACA,cACA,eACA,YACA,eACA,eACA,eACA,eACA,kBACA,cACA,WACA,WACA,YACA,WACA,cACA,kBACA,gBACA,cACA,UACA,YACA,eACA,eACA,oBACA,kBACA,kBACA,oBACA,qBACA,mBACA,qBACA,YACA,cACA,eACA,sBACA,aACA,gBACA,aACA,UACA,oBACA,qBACA,mBACA,aACA,YACA,aACA,aACA,cACA,YACA,aACA,YACA,WACA,cACA,cACA,YACA,YACA,aACA,aACA,cACA,mBACA,aACA,gBACA,cACA,aACA,aACA,eACA,gBACA,gBACA,cACA,eACA,WACA,cACA,eACA,cACA,YACA,mBACA,YACA,oBACA,cACA,aACA,WACA,aACA,WACA,WACA,cACA,WACA,eACA,aACA,eACA,iBACA,mBACA,mBACA,mBACA,eACA,cACA,aACA,UACA,iBACA,YACA,YACA,eACA,YACA,cACA,cACA,aACA,YACA,eACA,gBACA,iBACA,eACA,cACA,aACA,aACA,UACA,eACA,aACA,eACA,eACA,aACA,kBACA,iBACA,cACA,gBACA,gBACA,aACA,iBACA,mBACA,aACA,mBACA,cACA,eACA,eACA,cACA,eACA,eACA,aACA,cACA,cACA,aACA,cACA,eACA,gBACA,YACA,YACA,aACA,YACA,eACA,aACA,cACA,WACA,eACA,cACA,qBACA,aACA,aACA,YACA,oBACA,kBACA,mBACA,wBACA,eACA,mBACA,aACA,YACA,gBACA,cACA,aACA,gBACA,cACA,YACA,cACA,cACA,YACA,WACA,UACA,eACA,oBACA,oBACA,iBACA,aACA,YACA,YACA,eACA,gBACA,aACA,YACA,aACA,YACA,YACA,cACA,aACA,WACA,WACA,aACA,eACD,CACDsB,UAAW,CACT,cACA,kBACA,eACA,cACA,gBACA,cACA,aACA,eACA,eACA,YACA,gBACA,aACA,cACA,aACA,aACA,WACA,aACA,iBACA,YACA,kBACA,gBACA,eACA,aACA,aACA,aACA,aACA,WACA,YACA,eACA,YACA,cACA,cACA,oBACA,mBACA,iBACA,qBACA,qBACA,YACA,mBACA,iBACA,mBACA,oBACA,mBACA,qBACA,iBACA,aACA,eACA,cACA,YACA,mBACA,eACA,WACA,mBACA,iBACA,mBACA,oBACA,mBACA,gBACA,YACA,aACA,eACA,YACA,aACA,aACA,aACA,qBACA,YACA,cACA,aACA,mBACA,YACA,YACA,cACA,YACA,aACA,eACA,YACA,YACA,eACA,YACA,eACA,YACA,qBACA,WACA,WACA,YACA,eACA,cACA,aACA,iBACA,YACA,cACA,YACA,aACA,cACA,WACA,WACA,WACA,cACA,YACA,mBACA,YACA,oBACA,gBACA,iBACA,eACA,aACA,cACA,YACA,iBACA,YACA,aACA,aACA,YACA,cACA,aACA,cACA,YACA,cACA,cACA,YACA,UACA,UACA,aACA,YACA,cACA,eACA,oBACA,cACA,WACA,aACA,aACA,cACA,eACA,cACA,aACA,aACA,cACA,cACA,aACA,YACA,cACA,aACA,YACA,aACA,YACA,cACA,YACA,gBACA,cACA,cACA,YACA,YACA,YACA,UACA,aACA,YACA,aACA,cACA,eACA,aACA,eACA,eACA,YACA,iBACA,cACA,aACA,cACA,YACA,gBACA,gBACA,aACA,eACA,aACA,eACA,cACA,iBACA,gBACA,cACA,aACA,kBACA,cACA,aACA,cACA,cACA,aACA,cACA,gBACA,gBACA,gBACA,eACA,YACA,cACA,eACD,CACDC,QAAS,CACP,kBACA,mBACA,YACA,cACA,YACA,eACA,gBACA,WACA,aACA,aACA,oBACA,gBACA,aACA,iBACA,aACA,UACA,cACA,aACA,aACA,WACA,cACA,YACA,cACA,sBACA,kBACA,eACA,YACA,aACA,aACA,cACA,YACA,SACA,iBACA,WACA,aACA,gBACA,eACA,eACA,gBACA,aACA,aACA,cACA,eACA,gBACA,oBACA,YACA,aACA,cACA,eACA,iBACA,iBACA,mBACA,oBACA,oBACA,qBACA,kBACA,gBACA,gBACA,kBACA,YACA,aACA,aACA,qBACA,mBACA,gBACA,YACA,cACA,YACA,gBACA,oBACA,kBACA,kBACA,qBACA,qBACA,kBACA,gBACA,mBACA,qBACA,gBACA,eACA,cACA,cACA,aACA,aACA,WACA,WACA,cACA,cACA,gBACA,aACA,cACA,eACA,iBACA,aACA,kBACA,aACA,cACA,kBACA,WACA,gBACA,kBACA,kBACA,sBACA,2BACA,eACA,eACA,eACA,cACA,gBACA,eACA,aACA,cACA,YACA,cACA,WACA,aACA,aACA,mBACA,WACA,WACA,gBACA,YACA,aACA,aACA,gBACA,UACA,YACA,WACA,YACA,eACA,YACA,WACA,cACA,cACA,cACA,aACA,gBACA,YACA,iBACA,mBACA,mBACA,mBACA,kBACA,iBACA,cACA,YACA,cACA,eACA,cACA,eACA,WACA,gBACA,oBACA,aACA,eACA,YACA,aACA,YACA,aACA,aACA,cACA,cACA,iBACA,kBACA,cACA,aACA,YACA,aACA,aACA,eACA,YACA,aACA,iBACA,YACA,YACA,cACA,eACA,YACA,cACA,cACA,cACA,aACA,YACA,eACA,cACA,aACA,eACA,cACA,eACA,cACA,YACA,gBACA,aACA,aACA,oBACA,aACA,gBACA,YACA,YACA,aACA,cACA,aACA,aACA,cACA,eACA,iBACA,aACA,cACA,mBACA,cACA,kBACA,eACA,WACA,mBACA,cACA,cACA,eACA,cACA,eACA,YACA,eACA,eACA,cACA,UACA,aACA,kBACA,gBACA,cACA,cACA,aACA,WACA,aACA,cACA,YACA,kBACA,cACA,aACA,WACA,aACA,YACA,eACA,YACA,cACA,eACA,cACA,aACA,WACA,mBACA,cACA,kBACA,eACA,eACA,iBACA,cACA,cACA,cACA,mBACA,eACA,SACA,cACD,CACDC,MAAO,CACL,kBACA,aACA,aACA,kBACA,aACA,cACA,cACA,WACA,UACA,eACA,eACA,cACA,eACA,kBACA,cACA,qBACA,YACA,WACA,gBACA,aACA,aACA,mBACA,aACA,aACA,YACA,cACA,aACA,aACA,aACA,WACA,aACA,WACA,YACA,qBACA,cACA,YACA,cACA,YACA,aACA,gBACA,WACA,WACA,aACA,YACA,cACA,mBACA,YACA,YACA,iBACA,aACA,aACA,YACA,WACA,YACA,mBACA,eACA,YACA,aACA,gBACA,mBACA,gBACA,eACA,cACA,cACA,aACA,YACA,cACA,YACA,kBACA,YACA,eACA,gBACA,gBACA,aACA,aACA,aACA,eACA,WACA,YACA,WACA,YACA,aACA,WACA,aACA,eACA,eACA,cACA,aACA,YACA,YACA,YACA,UACA,oBACA,oBACA,iBACA,iBACA,aACA,cACA,cACA,cACA,WACA,cACA,oBACA,gBACA,cACA,aACA,cACA,cACA,aACA,sBACA,iBACA,SACA,YACA,eACA,YACA,cACA,YACA,cACA,eACA,YACA,UACA,cACA,cACA,uBACA,gBACA,aACA,eACA,eACA,YACA,YACA,cACA,qBACA,UACA,YACA,aACA,cACA,WACA,cACA,aACA,aACA,kBACA,gBACA,cACA,aACA,WACA,gBACA,iBACA,gBACA,YACA,YACA,cACD,CACDC,MAAO,CACL,kBACA,aACA,aACA,YACA,cACA,eACA,cACA,cACA,YACA,aACA,aACA,gBACA,aACA,WACA,gBACA,aACA,kBACA,iBACA,oBACA,oBACA,mBACA,oBACA,oBACA,mBACA,eACA,eACA,aACA,YACA,YACA,aACA,WACA,aACA,YACA,aACA,aACA,WACA,aACA,aACA,eACA,YACA,YACA,eACA,YACA,aACA,gBACA,aACA,gBACA,cACA,cACA,aACA,cACA,aACA,cACA,aACA,YACA,aACA,aACA,WACA,cACA,oBACA,mBACA,aACA,gBACA,oBACA,eACA,oBACA,WACA,aACA,iBACA,YACA,cACA,mBACA,UACA,UACA,eACA,YACA,YACA,YACA,cACA,WACA,cACA,YACA,YACA,UACA,YACA,YACA,cACA,eACA,YACA,aACA,gBACA,aACA,gBACA,sBACA,eACA,cACA,aACA,cACA,YACA,cACA,aACA,oBACA,YACA,YACA,WACA,YACA,cACA,aACA,YACD,uIE/sKI,IAAMC,EAAe,OAAC,CAC3BC,SAAAA,CAAQ,CACRC,QAAAA,CAAO,CAIR,CAAAC,EACO,CAAEC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,E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","sources":["webpack://_N_E/./modules/config/areaCities.ts","webpack://_N_E/./modules/config/areas.ts","webpack://_N_E/./modules/config/energyUtilityOptions.ts","webpack://_N_E/./modules/config/regions.ts","webpack://_N_E/./modules/config/settlements.ts","webpack://_N_E/./modules/config/index.ts","webpack://_N_E/./modules/customer/components/detail/CustomerCard.tsx","webpack://_N_E/./modules/customer/components/detail/CustomerDetails.tsx","webpack://_N_E/./modules/customer/components/detail/index.ts","webpack://_N_E/./modules/customer/components/list/CustomerCardList.tsx","webpack://_N_E/./modules/customer/components/list/CustomerDetailedData.tsx","webpack://_N_E/./modules/customer/components/list/CustomerDetailsContainer.tsx","webpack://_N_E/./modules/customer/components/list/CustomerStats.tsx","webpack://_N_E/./modules/customer/components/list/CustomerTable.tsx","webpack://_N_E/./modules/customer/components/list/CustomersList.tsx","webpack://_N_E/./modules/customer/components/list/UserCustomers.tsx","webpack://_N_E/./modules/customer/components/list/CustomerMeteringPoints.tsx","webpack://_N_E/./modules/customer/components/list/index.ts","webpack://_N_E/./modules/customer/helpers/getCustomerPath/getCustomerPath.ts","webpack://_N_E/./modules/customer/helpers/getCustomerPath/index.ts","webpack://_N_E/./modules/customer/helpers/getCustomerRepresentatives/getCustomerRepresentatives.ts","webpack://_N_E/./modules/customer/helpers/getCustomerRepresentatives/index.ts","webpack://_N_E/./modules/customer/hooks/useCustomers/useCustomers.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/navigationCallbacks.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/steps.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/useBusinessStepNavigator.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/useResidentStepNavigator.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/actions.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/stateReducer.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/useStateManager.ts","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/useCreateCustomer.tsx","webpack://_N_E/./modules/customer/hooks/useCreateCustomer/index.ts","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/AccountManagerStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BillingContactPersonStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/Value.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/AccountManager.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/Address.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/BillingContact.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/Contact.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/CustomerType.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/Eik.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/LegalEntityName.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/Representatives.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/BusinessConfirmationStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessConfirmationStep/index.ts","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessContactPersonStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/NameInputs.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessRepresentative1Step.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessRepresentative2Step.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/BusinessStepsPreviewStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/CompanyEIKStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/CustomerAddressStep/CustomerAddressStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/CustomerAddressStep/index.ts","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/CustomerNameStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/CustomerTypeStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/FillInOptionsStep.tsx","webpack://_N_E/./modules/customer/utils/formatAddress/formatAddress.ts","webpack://_N_E/./modules/customer/utils/isLegalEntity/isLegalEntity.ts","webpack://_N_E/./modules/customer/utils/parseCustomerName/parseCustomerName.ts","webpack://_N_E/./modules/customer/utils/parseMeteringPointsData/parseMeteringPointsData.ts","webpack://_N_E/./modules/customer/utils/parseInvoiceFileData.ts","webpack://_N_E/./modules/customer/utils/splitLegalEntityName/splitLegalEntityName.ts","webpack://_N_E/./modules/customer/utils/index.ts","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/InvoiceUploadStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/LegalEntityNameStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/LoaderView.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/PersonalIdStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/RegisteredCustomerMessage.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentConfirmationStep/Address.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentConfirmationStep/BillingContact.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentConfirmationStep/CustomerType.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentConfirmationStep/Name.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentConfirmationStep/PersonalId.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentConfirmationStep/ResidentConfirmationStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentConfirmationStep/index.ts","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/ResidentStepsPreviewStep.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/CreateCustomerWizard.tsx","webpack://_N_E/./modules/customer/components/CreateCustomerWizard/index.ts","webpack://_N_E/./modules/customer/hooks/usePickerCustomers/usePickerCustomers.ts","webpack://_N_E/./modules/customer/hooks/useSelectedCustomerIds/useSelectedCustomerIds.ts","webpack://_N_E/./modules/customer/components/shared/CustomerPicker/CustomerItem.tsx","webpack://_N_E/./modules/customer/components/shared/CustomerCountBadge.tsx","webpack://_N_E/./modules/customer/components/shared/index.ts","webpack://_N_E/./modules/customer/components/shared/CustomerPicker/SearchField.tsx","webpack://_N_E/./modules/customer/components/shared/CustomerPicker/CustomerPicker.tsx","webpack://_N_E/./modules/customer/components/shared/CustomerPicker/index.ts","webpack://_N_E/./modules/customer/hooks/useCustomerContacts/useCustomerContacts.ts","webpack://_N_E/./modules/customer/hooks/useCustomerInvoices/useCustomerInvoices.ts","webpack://_N_E/./modules/customer/hooks/useCustomerMeteringPoints/useCustomerMeteringPoints.ts","webpack://_N_E/./modules/customer/hooks/useCustomer/useCustomer.ts","webpack://_N_E/./modules/customer/index.ts","webpack://_N_E/./modules/data/appApi/hooks/useAuthFetch.ts","webpack://_N_E/./modules/data/appApi/hooks/useCloudStorageFile.ts","webpack://_N_E/./modules/data/appApi/hooks/useDriveFile.ts","webpack://_N_E/./modules/data/appApi/hooks/useEPayInitRequest.ts","webpack://_N_E/./modules/data/appApi/hooks/useEPayPayloadRequest.ts","webpack://_N_E/./modules/data/appApi/index.ts","webpack://_N_E/./modules/data/types.ts","webpack://_N_E/./modules/invoice/components/detail/InvoiceCard/InvoiceCard.tsx","webpack://_N_E/./modules/invoice/hooks/useInvoiceMeteringPoints/useInvoiceMeteringPoints.ts","webpack://_N_E/../../packages/charts/components/BarChart/BarChart.tsx","webpack://_N_E/../../packages/charts/components/DonutChart/centerTitle.tsx","webpack://_N_E/../../packages/charts/components/DonutChart/DefaultTooltip.tsx","webpack://_N_E/../../packages/charts/components/DonutChart/renderCustomizedLabel.tsx","webpack://_N_E/../../packages/charts/components/DonutChart/DonutChart.tsx","webpack://_N_E/../../packages/charts/constants/index.ts","webpack://_N_E/../../packages/charts/utils/labelFormatter.ts","webpack://_N_E/../../packages/charts/components/LineChart/LineChart.tsx","webpack://_N_E/../../packages/charts/components/index.ts","webpack://_N_E/../../packages/charts/index.ts","webpack://_N_E/./modules/invoice/components/detail/MeteringPointData.tsx","webpack://_N_E/./modules/invoice/components/detail/MeteringPointsPreview/InvoiceMeteringPointDetails/InvoiceMeteringPointDetails.tsx","webpack://_N_E/./modules/invoice/components/detail/InvoiceMeteringPointCard.tsx","webpack://_N_E/./modules/invoice/components/detail/MeteringPointsPreview/InvoiceMeteringPointSwitcher/InvoiceMeteringPointSwitcher.tsx","webpack://_N_E/./modules/invoice/components/detail/MeteringPointsPreview/MeteringPointsPreview.tsx","webpack://_N_E/./modules/invoice/components/detail/MeteringPointsPreview/index.ts","webpack://_N_E/./modules/invoice/components/detail/PaymentNotification.tsx","webpack://_N_E/./modules/invoice/components/detail/InvoiceDetails.tsx","webpack://_N_E/./modules/invoice/components/detail/CompanyInvoiceDetails.tsx","webpack://_N_E/./modules/invoice/components/detail/CompanyAvatarDetails.tsx","webpack://_N_E/./modules/invoice/components/detail/InvoiceSummary/styled.tsx","webpack://_N_E/./modules/invoice/components/detail/InvoiceSummary/InvoiceSummary.tsx","webpack://_N_E/./modules/invoice/components/detail/index.ts","webpack://_N_E/./modules/invoice/components/list/InvoiceCardList.tsx","webpack://_N_E/./modules/invoice/components/list/InvoiceDetailsContainer.tsx","webpack://_N_E/./modules/invoice/components/list/InvoiceItemsTable.tsx","webpack://_N_E/./modules/invoice/components/list/InvoiceList.tsx","webpack://_N_E/./modules/invoice/components/list/InvoiceLocationTable.tsx","webpack://_N_E/./modules/invoice/components/list/InvoiceTable.tsx","webpack://_N_E/./modules/invoice/components/list/RecentInvoiceList.tsx","webpack://_N_E/./modules/invoice/components/list/UserInvoices.tsx","webpack://_N_E/./modules/invoice/components/list/InvoiceDues.tsx","webpack://_N_E/./modules/invoice/components/list/index.ts","webpack://_N_E/./modules/invoice/components/payment/Title.tsx","webpack://_N_E/./modules/invoice/components/payment/PaymentNotAvailable.tsx","webpack://_N_E/./modules/invoice/components/payment/PaymentOptionCard.tsx","webpack://_N_E/./modules/invoice/components/payment/PaymentMethods.tsx","webpack://_N_E/./modules/invoice/components/payment/InvoicePayment.tsx","webpack://_N_E/./modules/invoice/components/shared/DownloadButtons.tsx","webpack://_N_E/./modules/invoice/components/shared/InvoiceDates.tsx","webpack://_N_E/./modules/invoice/components/shared/index.ts","webpack://_N_E/./modules/invoice/helpers/formatNumberToCurrency.ts","webpack://_N_E/./modules/invoice/helpers/getInvoicePath/getInvoicePath.ts","webpack://_N_E/./modules/invoice/helpers/getInvoicePath/index.ts","webpack://_N_E/./modules/invoice/helpers/getInvoicePath/recordInvoiceDownload.tsx","webpack://_N_E/./modules/invoice/hooks/useInvoice/useInvoice.ts","webpack://_N_E/./modules/invoice/hooks/useInvoiceBalance/useInvoiceBalance.ts","webpack://_N_E/./modules/invoice/hooks/useInvoices/useInvoices.ts","webpack://_N_E/./modules/invoice/components/payment/index.ts","webpack://_N_E/./modules/invoice/index.ts","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/AccountOptionsStep/AccountOptionsStep.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/AccountOptionsStep/index.ts","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/CompletionStep/ErrorMessage.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/CompletionStep/LoadingMessage.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/CompletionStep/MeteringPointCard.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/CompletionStep/CompletionStep.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/CompletionStep/index.ts","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/ConfirmationStep/ConfirmationStep.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/ConfirmationStep/index.ts","webpack://_N_E/../../packages/forms/components/RegionAutocomplete/regions.ts","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/MeteringPointAddressStep.tsx","webpack://_N_E/./modules/config/meteringPointLabel.ts","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/MeteringPointIdStep.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/MeteringPointNameStep.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/CreateMeteringPointWizard.tsx","webpack://_N_E/./modules/meteringPoint/components/detail/MeteringPointCard.tsx","webpack://_N_E/./modules/meteringPoint/hooks/useMeteringPointInvoices/useMeteringPointInvoices.ts","webpack://_N_E/./modules/meteringPoint/hooks/useMeteringPoint/useMeteringPoint.ts","webpack://_N_E/./modules/meteringPoint/components/detail/MeteringPointDetails.tsx","webpack://_N_E/./modules/meteringPoint/components/detail/index.ts","webpack://_N_E/./modules/meteringPoint/components/list/MeteringPointDetailedData.tsx","webpack://_N_E/./modules/meteringPoint/components/list/MeteringPointDetailsContainer.tsx","webpack://_N_E/./modules/meteringPoint/components/list/MeteringPointCardList.tsx","webpack://_N_E/./modules/meteringPoint/components/list/MeteringPointTable.tsx","webpack://_N_E/./modules/meteringPoint/components/list/MeteringPointsList.tsx","webpack://_N_E/./modules/meteringPoint/hooks/useMeteringPoints/useMeteringPoints.ts","webpack://_N_E/./modules/meteringPoint/components/list/UserMeteringPoints.tsx","webpack://_N_E/./modules/meteringPoint/components/list/index.ts","webpack://_N_E/./modules/meteringPoint/components/shared/CustomerTypeSelect.tsx","webpack://_N_E/./modules/meteringPoint/components/shared/MeteringPointParticle.tsx","webpack://_N_E/./modules/meteringPoint/components/shared/index.ts","webpack://_N_E/./modules/meteringPoint/helpers/determineErp/determineErp.ts","webpack://_N_E/./modules/meteringPoint/helpers/getMeteringPointPath/getMeteringPointPath.ts","webpack://_N_E/./modules/meteringPoint/helpers/getMeteringPointPath/index.ts","webpack://_N_E/./modules/meteringPoint/hooks/useCreateMeteringPoint/steps.ts","webpack://_N_E/./modules/meteringPoint/hooks/useCreateMeteringPoint/actions.ts","webpack://_N_E/./modules/meteringPoint/hooks/useCreateMeteringPoint/stateReducer.ts","webpack://_N_E/./modules/meteringPoint/hooks/useCreateMeteringPoint/useStateManager.ts","webpack://_N_E/./modules/meteringPoint/hooks/useCreateMeteringPoint/useCreateMeteringPoint.tsx","webpack://_N_E/./modules/meteringPoint/components/CreateMeteringPointWizard/index.ts","webpack://_N_E/./modules/meteringPoint/hooks/useCreateMeteringPoint/index.ts","webpack://_N_E/./modules/meteringPoint/index.ts","webpack://_N_E/./modules/payment/hooks/useEPayInit.ts","webpack://_N_E/./modules/payment/hooks/useEPayPayload.ts","webpack://_N_E/./modules/payment/hooks/index.ts","webpack://_N_E/./modules/payment/hooks/usePaymentNotification.tsx","webpack://_N_E/./modules/payment/components/EPayButton.tsx","webpack://_N_E/./modules/payment/index.ts","webpack://_N_E/./modules/services/firestore/payment/types.ts"],"sourcesContent":["export const areaCities = ['гр. София', 'гр. Пловдив', 'гр. Варна'];\n","type Areas = {\n [key: string]: string[];\n} & {\n Варна: string[];\n Пловдив: string[];\n София: string[];\n};\n\nexport const areas: Areas = {\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","export const energyUtilityOptions = [\n 'АЕЦ КОЗЛОДУЙ ЕАД',\n 'АКТАЕЛ ЕООД',\n 'АЛПИК ЕНЕРГИЯ БЪЛГАРИЯ ЕООД',\n 'АРЕСЕНЕРДЖИ ЕООД',\n 'АРМАКО ЕНЕРДЖИ ЕАД',\n 'АСМ ЕНЕРДЖИ ООД',\n 'БОЛКАН ЛОДЖИК ООД - КОМБИНИРАНА',\n 'БОЛКАН ЛОДЖИК ООД - СТАНДАРТНА',\n 'ВИК ЕНЕРДЖИ ГРУП ЕООД - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'ГРАНД ЕНЕРДЖИ ДИСТРИБЮШЪН ЕООД',\n 'ГРАНД ЕНЕРДЖИ ДИСТРИБЮШЪН ЕООД - ПРОИЗВОДИТЕЛИ',\n 'ГРИЙН ЕНЕРДЖИ ТРЕЙД ООД',\n 'ЕВН БЪЛГАРИЯ ЕЛЕКТРОСНАБДЯВАНЕ ЕАД',\n 'ЕВН ТРЕЙДИНГ САУТ ИЙСТ ЮРЪП EАД',\n 'ЕЛ БОНУС ЕООД - КОМБИНИРАНА',\n 'ЕЛ БОНУС ЕООД - ПРОИЗВОДИТЕЛИ',\n 'ЕЛ ЕКС КОРПОРЕЙШЪН АД',\n 'ЕЛЕКТРОХОЛД ПРОДАЖБИ АД - ДПИ',\n 'ЕЛЕКТРОХОЛД ПРОДАЖБИ АД - КРАЕН СНАБДИТЕЛ',\n 'ЕЛЕКТРОХОЛД ПРОДАЖБИ АД - ТЪРГОВИЯ',\n 'ЕЛЕКТРОХОЛД ТРЕЙД ЕАД - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'ЕЛНОВА ЕАД',\n 'ЕМ ЕН ЕР ДЖИ ЛИМИТИД',\n 'ЕНЕКОД АД',\n 'ЕНЕКОД ГРИЙН ЕАД',\n 'ЕНЕРГАМА АД - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'ЕНЕРГЕО ЕООД',\n 'ЕНЕРГИЙНИ ИНОВАТИВНИ ТЕХНОЛОГИИ ЕООД',\n 'ЕНЕРГО-ПРО ЕНЕРГИЙНИ УСЛУГИ EАД',\n 'ЕНЕРГО-ПРО ПРОДАЖБИ АД',\n 'ЕНЕРГОВИА ЕООД',\n 'ЕНЕРГОИНВЕСТМЪНТ АД - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'ЕНЕРДЖИ ИНВЕСТ ЮРЪП АД',\n 'ЕНЕРДЖИ МАРКЕТ АД',\n 'ЕНЕРДЖИ МАРКЕТ ГЛОБАЛ ООД',\n 'ЕНЕРДЖИ МТ EАД',\n 'ЕНЕРДЖИ ОПЕРЕЙШЪНС ООД (\"КААЛЕКС-ЕНЕРДЖИ\" ООД)',\n 'ЕНЕРДЖИ СЪПЛАЙ EООД',\n 'ЕНЕРДЖИ СЪПЛАЙ ГРИЙН EООД',\n 'ЕОН БЪЛГАРИЯ 1 - ПРОИЗВОДИТЕЛИ КОМБИНИРАНА',\n 'ЕОН БЪЛГАРИЯ 1 - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'ЕСП ЗЛАТНИ ПЯСЪЦИ ООД',\n 'ЗАГОРА ЕНЕРДЖИ ООД',\n 'ЗЛАТНА ПАНЕГА ЦИМЕНТ АД',\n 'ИН АУТ ЕНЕРДЖИ ООД',\n 'КОМПАНИЯ ЗА ЕНЕРГЕТИКА И РАЗВИТИЕ ООД',\n 'КУМЕР ООД',\n 'ЛОНИКО ЕООД',\n 'МЕТ ЕНЕРДЖИ ТРЕЙДИНГ ЕАД',\n 'МОСТ ЕНЕРДЖИ АД',\n 'НЕК ЕАД',\n 'НУМАТ ЕНЕРДЖИ КЪМПАНИ ЕООД',\n 'ПАУЪР СИСТ ЕООД',\n 'ПРОАКТ ООД - ПРОИЗВОДИТЕЛИ КОМБИНИРАНА',\n 'ПРОАКТ ООД - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'РИТЪМ-4-ТБ ООД - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'САЙТ ЕНЕРДЖИ ЕООД',\n 'СИ ЕНЕРДЖИ ГРУП ЕАД',\n 'СИНЕРГОН ЕНЕРДЖИ ЕООД',\n 'СМАРТ ЕНЕРДЖИ ТРЕЙД ЕАД',\n 'СОЛАР СВ ООД',\n 'СОНЕЛ 888 ЕООД',\n 'СТОК ЕНЕРДЖИ ЕООД',\n 'ТЕРА КАП ЕООД',\n 'ТМ-ТЕХНОЛОДЖИ АД',\n 'ТОПЛОФИКАЦИЯ СОФИЯ ЕАД',\n 'ТЪРГОВСКА КОМПАНИЯ НА ВЪЗОБНОВЯЕМА ЕНЕРГИЯ ООД',\n 'ФАКТОР ЕНЕРДЖИ БЪЛГАРИЯ - ПРОИЗВОДИТЕЛИ',\n 'ХИДРО ПАУЪР ЮТИЛИТИС ЕООД - ПРОИЗВОДИТЕЛИ СТАНДАРТНА',\n 'ЮРОПИАН ТРЕЙД ОФ ЕНЕРДЖИ АД',\n];\n","export const regions = [\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","type Settlement = {\n [key: string]: string[];\n} & {\n Благоевград: string[];\n Бургас: string[];\n Варна: string[];\n 'Велико Търново': string[];\n Видин: string[];\n Враца: string[];\n Габрово: string[];\n Добрич: string[];\n Кърджали: string[];\n Кюстендил: string[];\n Ловеч: string[];\n Монтана: string[];\n Пазарджик: string[];\n Перник: string[];\n Плевен: string[];\n Пловдив: string[];\n Разград: string[];\n Русе: string[];\n Силистра: string[];\n Сливен: string[];\n Смолян: string[];\n София: string[];\n 'София (столица)': string[];\n 'Стара Загора': string[];\n Търговище: string[];\n Хасково: string[];\n Шумен: string[];\n Ямбол: string[];\n};\n\nexport const settlements: Settlement = {\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 'с. Генерал Тодоров',\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 'с. Дрангово',\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 'с. Кузьово',\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 'с. Орцево',\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 'с. Стара Кресна',\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 'с. Белодол',\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 'с. Димчево',\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 'гр. Карнобат',\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 'с. Пирне',\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 'с. Скалак',\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 Варна: [\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 'с. Долище',\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 'с. Метличина',\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 'с. Тополи',\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 'с. Брезово',\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 'с. Горни Танчевци',\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 'с. Дълги припек',\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 'с. Къпиново',\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 'с. Орловец',\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 'с. Руховци',\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 'с. Цонковци',\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 'с. Въртоп',\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 'с. Макреш',\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 'с. Флорентин',\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 'с. Горна Кремена',\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 'с. Нефела',\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 'с. Армените',\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 'с. Враниловци',\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 'с. Добромирка',\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 'с. Карали',\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 'с. Матешовци',\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 'с. Прахали',\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 'с. Станчов хан',\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 'с. Шопите',\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 'с. Вранино',\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 'с. Камен',\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 'с. Орляк',\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 'с. Снягово',\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 'с. Балабаново',\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 'с. Вълчанка',\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 'с. Долище',\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 'с. Зимзелен',\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 'с. Крин',\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 'с. Мост',\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 'с. Повет',\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 'с. Светлен',\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 'с. Странджево',\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 'с. Черноочене',\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 'с. Ветрен',\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 'с. Злогош',\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 'с. Пастух',\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 'с. Црешново',\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 'с. Горно трапе',\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 'с. Прелом',\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 'гр. Брусарци',\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 'с. Игнатово',\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 'с. Смирненски',\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 'с. Габровица',\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 'гр. Пазарджик',\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 'с. Байкалско',\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 'с. Дивля',\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 'с. Лесковец',\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 'с. Слатино',\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 'с. Бяла вода',\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 'с. Ласкар',\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 'с. Търнене',\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 'с. Голям чардак',\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 'с. Климент',\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 'с. Оризари',\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 'с. Три могили',\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 'с. Голяма вода',\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 'с. Подайва',\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 'с. Борисово',\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 'с. Помен',\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 'с. Вокил',\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 'с. Падина',\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 'с. Яребица',\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 'с. Кипилово',\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 'с. Стрелци',\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 'с. Бурево',\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 'с. Дрянка',\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 'с. Липец',\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 'с. Равнища',\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 'с. Цацаровци',\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 'с. Борика',\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 'с. Губеш',\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 'с. Искрец',\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 'с. Мургаш',\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 'с. Радотина',\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 'с. Чепърлинци',\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 'с. Панчарево',\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 'с. Горно ново село',\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 'с. Константиновец',\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 'с. Плодовитово',\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 'с. Турия',\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 'с. Веренци',\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 'с. Изворово',\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 'гр. Опака',\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 'с. Стража',\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 'с. Брястово',\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 'с. Доброселец',\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 'с. Конници',\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 'с. Овчарово',\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 'с. Силен',\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 ],\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 'с. Звегор',\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 'гр. Нови пазар',\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 'с. Църквица',\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 'с. Златари',\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 'с. Савино',\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","import { areaCities } from './areaCities';\nimport { areas } from './areas';\nimport { energyUtilityOptions } from './energyUtilityOptions';\nimport { regions } from './regions';\nimport { settlements } from './settlements';\n\nexport { areaCities, areas, energyUtilityOptions, regions, settlements };\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport { CustomerCard as CustomerCardUI } from 'ui';\n\nimport { Customer, getAddress } from '~/data';\nimport { LinkContainer } from '~/ui';\n\nimport getCustomerPath from '../../helpers/getCustomerPath';\n\nexport const CustomerCard = ({\n customer,\n onClick,\n}: {\n customer: Omit;\n onClick?: () => void;\n}) => {\n const { t } = useTranslation();\n\n const { name, customerId, address, representatives } = customer;\n\n return (\n \n \n \n );\n};\n","'use client';\n\nimport logger from 'logger';\nimport { useTranslation } from 'react-i18next';\nimport { Avatar, DetailsPageTitle, PageSection, Stack, Typography } from 'ui';\n\nimport { useCustomer } from '~/customer';\nimport { RecentInvoiceList } from '~/invoice';\nimport { GoBackButton, NextLink } from '~/ui';\n\nimport { CustomerDetailedData, CustomerMeteringPoints } from '../list';\n\ninterface Props {\n id: string;\n}\nexport const CustomerDetails = ({ id }: Props) => {\n const { t } = useTranslation();\n\n const {\n data: { customer, invoices, contacts, meteringPoints },\n } = useCustomer({ customerId: id });\n\n if (!customer) {\n logger.debug('Customer not found');\n return null;\n }\n\n return (\n <>\n }\n titleGraphic={}\n subtitle={t('customers:id', { id: customer.customerId })}\n title={customer.name}\n />\n\n \n \n\n {t('seeMore')}}\n >\n \n \n\n \n \n {meteringPoints.total}\n \n \n }\n >\n \n \n \n \n );\n};\n","import { CustomerCard } from './CustomerCard';\nimport { CustomerDetails } from './CustomerDetails';\n\nexport { CustomerCard, CustomerDetails };\n","import { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { CardListContainer } from 'ui';\n\nimport { Customer } from '~/data';\n\nimport { CustomerCard } from '../detail';\n\nexport const CustomerCardList = ({ list }: { list: Customer[] }) => (\n (\n trackTagManagerEvent(BlenderEvents.customerDetails)}\n />\n ))}\n />\n);\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport { CardMobileSwiper, ListItemGroup, TabPanel, useResolution } from 'ui';\nimport { AccountBalance, Email, LocationOn, Person, Phone, PowerOutlined, Tag } from 'ui/icons';\n\nimport { Contact, Customer, getAddress } from '~/data';\n\nimport getCustomerRepresentatives from '../../helpers/getCustomerRepresentatives';\n\ninterface Props {\n customer: Customer;\n contacts: Contact[];\n}\n\nconst buildContactData = (contacts: Contact[], t: (key: string) => string) => {\n if (!contacts[0]) {\n return [];\n }\n\n const contactsData = [];\n\n if (contacts[0].phone) {\n contactsData.push({\n icon: Phone,\n subtitle: t('common:tabPanelTabs.contactData.phone'),\n title: contacts[0].phone,\n });\n }\n\n if (contacts[0].phoneMobile) {\n contactsData.push({\n icon: Phone,\n subtitle: t('common:tabPanelTabs.contactData.phone'),\n title: contacts[0].phoneMobile,\n });\n }\n\n if (contacts[0].email) {\n contactsData.push({\n icon: Email,\n subtitle: t('common:tabPanelTabs.contactData.email'),\n title: contacts[0].email,\n });\n }\n\n return contactsData;\n};\n\nconst buildData = (customer: Customer, contacts: Contact[], t: (key: string) => string) => {\n return [\n {\n details: [\n {\n icon: Tag,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.customerName'),\n title: customer.name,\n },\n {\n icon: PowerOutlined,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.customerId'),\n title: customer.customerId,\n },\n {\n icon: AccountBalance,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.vatRegistration'),\n title: customer.vatNo\n ? t('common:tabPanelTabs.tradeRegistryData.yes')\n : t('common:tabPanelTabs.tradeRegistryData.no'),\n },\n {\n icon: LocationOn,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.address'),\n title: getAddress(customer.address),\n },\n ...(getCustomerRepresentatives(customer).map((representative) => ({\n icon: Person,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.representative'),\n title: representative,\n })) || []),\n ],\n key: 'tradeRegistryData',\n },\n {\n details: buildContactData(contacts, t),\n key: 'contactData',\n },\n ];\n};\n\nconst CustomerDetailedData = ({ contacts, customer }: Props) => {\n const { t } = useTranslation();\n const { isTablet } = useResolution();\n\n const data = buildData(customer, contacts, t);\n\n const listData = data.map(({ key, details }) => ({\n content: ,\n label: t(`tabPanelTabs.${key}.tabName`),\n }));\n\n return isTablet ? : ;\n};\n\nexport default CustomerDetailedData;\n","'use client';\n\nimport { useParams } from 'next/navigation';\nimport { useTranslation } from 'react-i18next';\nimport { addWarning, Warnings } from 'rum';\n\nimport { CustomerDetails } from '../detail';\n\nconst CustomerDetailsContainer = () => {\n const { t } = useTranslation();\n\n const params = useParams();\n const id = params && params.id;\n\n if (typeof id !== 'string') {\n addWarning(Warnings.INVALID_QUERY_PARAM, { page: `customers/${id}`, query: id });\n }\n\n return typeof id === 'string' ? :

{t('customers:customer.notFound')}

;\n};\n\nexport default CustomerDetailsContainer;\n","'use client';\n\nimport { Trans, useTranslation } from 'react-i18next';\nimport { StatsList, Typography } from 'ui';\n\ninterface Props {\n data: { key: string; value: string }[];\n}\n\nexport const CustomerStats = ({ data }: Props) => {\n const { t } = useTranslation('customers');\n\n const stats = data.map(({ key, value }) => ({\n content: (\n ,\n ,\n ]}\n />\n ),\n title: t(`statsCard.${key}.title`),\n }));\n\n return ;\n};\n","'use client';\n\nimport { TFunction } from 'i18next';\nimport NextLink from 'next/link';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AvatarGroup, Button, DataTable, DataTableColumns } from 'ui';\n\nimport { Customer, getAddress } from '~/data';\n\nimport getCustomerPath from '../../helpers/getCustomerPath';\nimport getCustomerRepresentatives from '../../helpers/getCustomerRepresentatives';\n\ntype RenderProps = {\n row: Customer;\n};\n\nconst RepresentativesCell = ({ row }: RenderProps) => ;\n\nconst CustomerPathButton = ({ row, t }: RenderProps & { t: TFunction }) => {\n return (\n \n {t('table.goTo')}\n \n );\n};\n\nexport const buildTableColumns = (t: TFunction): DataTableColumns[] => [\n { accessor: 'name', header: t('table.name') },\n { accessor: 'customerId', header: t('table.id') },\n {\n accessor: 'address',\n header: t('table.address'),\n value: ({ row }) => getAddress(row.address),\n },\n { accessor: 'representatives', header: t('table.representatives'), value: RepresentativesCell },\n { header: '', value: (props) => , virtualColumn: 'path' },\n];\n\nexport const CustomerTable = ({ list }: { list: Customer[] }) => {\n const { t } = useTranslation('customers');\n\n const tableColumns = useMemo(() => buildTableColumns(t), [t]);\n\n return columns={tableColumns} uid=\"customerId\" data-testid=\"customer-table\" data={list} />;\n};\n","import { Customer } from '~/data';\nimport { useLayoutStore } from '~/store';\nimport { NoResultsMessage } from '~/ui';\n\nimport { CustomerCardList } from './CustomerCardList';\nimport { CustomerTable } from './CustomerTable';\n\nexport const CustomersList = ({ list }: { list: Customer[] }) => {\n const { layout } = useLayoutStore();\n\n if (!list) {\n return ;\n }\n\n if (layout === 'table') {\n return ;\n }\n\n return ;\n};\n","'use client';\n\nimport { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ListPageTitle, SearchControl, useResolution } from 'ui';\n\nimport { LayoutSwitcher, ScrollableViewWithData } from '~/ui';\n\nimport { useCustomers } from '../../hooks/useCustomers/useCustomers';\nimport { CustomersList } from './CustomersList';\n\nexport const UserCustomers = () => {\n const { t } = useTranslation();\n\n const [searchQuery, setSearchQuery] = useState();\n\n const handleSearch = (q: string) => {\n trackTagManagerEvent(BlenderEvents.customerSearch);\n setSearchQuery(q);\n };\n\n const { isTablet } = useResolution();\n\n return (\n <>\n }\n actions={\n \n }\n />\n\n \n \n );\n};\n","import { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { CardListContainer, MobileSwiper, useResolution } from 'ui';\n\nimport { MeteringPoint } from '~/data';\nimport { MeteringPointCard } from '~/meteringPoint';\n\ninterface Props {\n list: MeteringPoint[];\n total: number;\n}\n\nexport const CustomerMeteringPoints = ({ list, total }: Props) => {\n const { isDesktop } = useResolution();\n\n const LIMIT = 5;\n\n const cardsList = list.slice(0, LIMIT).map((meteringPoint) => {\n return (\n trackTagManagerEvent(BlenderEvents.customerMeteringPointDetails)}\n />\n );\n });\n\n return isDesktop ? (\n \n ) : (\n \n );\n};\n","import { CustomerCardList } from './CustomerCardList';\nimport CustomerDetailedData from './CustomerDetailedData';\nimport CustomerDetailsContainer from './CustomerDetailsContainer';\nimport { CustomerMeteringPoints } from './CustomerMeteringPoints';\nimport { CustomersList } from './CustomersList';\nimport { CustomerStats } from './CustomerStats';\nimport { CustomerTable } from './CustomerTable';\nimport { UserCustomers } from './UserCustomers';\n\nexport {\n CustomerCardList,\n CustomerDetailedData,\n CustomerDetailsContainer,\n CustomerMeteringPoints,\n CustomersList,\n CustomerStats,\n CustomerTable,\n UserCustomers,\n};\n","import { Customer } from '~/data';\n\nconst getCustomerPath = (customer: Pick): string => {\n return `customers/${customer.customerId}`;\n};\n\nexport default getCustomerPath;\n","import getCustomerPath from './getCustomerPath';\n\nexport default getCustomerPath;\n","import { Customer } from '~/data';\n\nconst getCustomerRepresentatives = (customer: Pick): string[] => {\n return customer.representatives?.split(',') ?? [];\n};\n\nexport default getCustomerRepresentatives;\n","import getCustomerRepresentatives from './getCustomerRepresentatives';\n\nexport default getCustomerRepresentatives;\n","import { createDataCacheKeys, Customer } from '~/data';\nimport { CustomerFilter, useCustomerApi, UsePaginatedQueryResult, useSuspensePaginatedQuery } from '~/data/api';\n\nconst cacheKeys = createDataCacheKeys('customers');\n\ntype UserCustomersOptions = {\n filterBy?: CustomerFilter;\n size?: number;\n};\n\nexport type UseCustomersResult = UsePaginatedQueryResult;\nexport const useCustomers = (\n { filterBy, size }: UserCustomersOptions = { filterBy: undefined }\n): UseCustomersResult => {\n const api = useCustomerApi();\n\n const { data, isLoading, isError, isSuccess, error, fetchNextPage } = useSuspensePaginatedQuery({\n cacheKey: [...cacheKeys.list({ filterBy })],\n fetchAll: (pageParams) =>\n api.getAll({ filter: filterBy, page: { page: pageParams.page, size: size || pageParams.size } }),\n });\n\n return {\n data,\n error,\n fetchNextPage,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","import { CurrentStep } from './types';\nimport { UseStateManagerReturn } from './useStateManager';\n\ntype BeforePreviousCallback = {\n [key in CurrentStep[number]]?: (stateManager: UseStateManagerReturn) => void;\n};\n\nexport const BEFORE_PREVIOUS_CALLBACKS: BeforePreviousCallback = {\n address: (stateManager: UseStateManagerReturn) => {\n stateManager.setCurrentRepresentativeIndex(0);\n },\n businessRepresentative1: (stateManager: UseStateManagerReturn) => {\n stateManager.setCurrentRepresentativeIndex(0);\n },\n businessRepresentative2: (stateManager: UseStateManagerReturn) => {\n stateManager.setCurrentRepresentativeIndex(0);\n },\n};\n","import { Steps } from '~/utils';\n\nexport const RESIDENT_CUSTOMER_NAVIGATOR_STEPS: Steps[] = [\n 'accountManager',\n 'customerType',\n 'fillInOptions',\n ['residentStepsPreview', 'invoiceUpload'],\n 'name',\n 'personalId',\n 'address',\n 'billingContactPerson',\n 'residentConfirmation',\n];\n\nexport const BUSINESS_CUSTOMER_NAVIGATOR_STEPS: Steps[] = [\n 'accountManager',\n 'customerType',\n 'fillInOptions',\n ['businessStepsPreview', 'invoiceUpload'],\n 'eikId',\n 'legalEntityName',\n 'businessRepresentative1',\n 'businessRepresentative2',\n 'address',\n 'contactPerson',\n 'billingContactPerson',\n 'businessConfirmation',\n];\n\nexport const getNavigationSteps = ({\n skipSteps = [],\n customerType,\n}: {\n skipSteps?: Steps;\n customerType: 'business' | 'resident';\n}): Steps[] => {\n const navigatorSteps =\n customerType === 'business' ? BUSINESS_CUSTOMER_NAVIGATOR_STEPS : RESIDENT_CUSTOMER_NAVIGATOR_STEPS;\n\n return navigatorSteps.filter((step) => (typeof step === 'string' ? !skipSteps.includes(step) : true));\n};\n","import { DocumentData } from 'firebase/firestore';\n\nimport { Steps, useStepNavigator } from '~/utils';\n\nimport { getNavigationSteps } from './steps';\nimport { StepNavigatorActions } from './types';\n\nexport const useBusinessStepNavigator = ({\n skipSteps,\n onboardingData,\n}: {\n skipSteps?: Steps;\n onboardingData?: DocumentData | null;\n}): StepNavigatorActions => {\n const navigatorSteps = getNavigationSteps({ customerType: 'business', skipSteps });\n\n const customerData = onboardingData?.customerData;\n\n const {\n getCurrentStep,\n getHistory,\n goToNextStep,\n goToPreviousStep,\n setCurrentStep,\n setRedirectTo,\n navigateWithRedirect,\n } = useStepNavigator({\n initialStep: customerData?.customerType ? navigatorSteps[navigatorSteps.length - 1] : navigatorSteps[0],\n steps: navigatorSteps,\n });\n\n return {\n getCurrentStep,\n getHistory,\n goToNextStep,\n goToPreviousStep,\n navigateWithRedirect,\n navigatorSteps,\n setCurrentStep,\n setRedirectTo,\n };\n};\n","import { DocumentData } from 'firebase/firestore';\n\nimport { Steps, useStepNavigator } from '~/utils';\n\nimport { getNavigationSteps } from './steps';\nimport { StepNavigatorActions } from './types';\n\nexport const useResidentStepNavigator = ({\n skipSteps,\n onboardingData,\n}: {\n skipSteps?: Steps;\n onboardingData?: DocumentData | null;\n}): StepNavigatorActions => {\n const navigatorSteps = getNavigationSteps({ customerType: 'resident', skipSteps });\n\n const customerData = onboardingData?.customerData;\n\n const {\n getCurrentStep,\n getHistory,\n goToNextStep,\n goToPreviousStep,\n setCurrentStep,\n setRedirectTo,\n navigateWithRedirect,\n } = useStepNavigator({\n initialStep: customerData?.customerType ? navigatorSteps[navigatorSteps.length - 1] : navigatorSteps[0],\n steps: navigatorSteps,\n });\n\n return {\n getCurrentStep,\n getHistory,\n goToNextStep,\n goToPreviousStep,\n navigateWithRedirect,\n navigatorSteps,\n setCurrentStep,\n setRedirectTo,\n };\n};\n","import { BillingPlans } from 'types';\n\nimport { Address, CustomerType } from '~/data';\n\nimport { CreateCustomerState } from './types';\n\ntype SetAccountManagerAction = {\n payload: {\n accountManager: string | undefined;\n };\n type: 'SET_ACCOUNT_MANAGER';\n};\n\nexport const SET_ACCOUNT_MANAGER: SetAccountManagerAction = {\n payload: {\n accountManager: undefined,\n },\n type: 'SET_ACCOUNT_MANAGER',\n};\n\ntype SetPlanIdAction = {\n payload: {\n planId: BillingPlans | undefined;\n };\n type: 'SET_PLAN_ID';\n};\n\nexport const SET_PLAN_ID: SetPlanIdAction = {\n payload: {\n planId: undefined,\n },\n type: 'SET_PLAN_ID',\n};\n\ntype SetCustomerTypeAction = {\n payload: {\n customerType: CustomerType;\n };\n type: 'SET_CUSTOMER_TYPE';\n};\n\nexport const SET_CUSTOMER_TYPE: SetCustomerTypeAction = {\n payload: {\n customerType: 'person',\n },\n type: 'SET_CUSTOMER_TYPE',\n};\n\ntype SetName = {\n payload: {\n firstName: string;\n middleName: string;\n lastName: string;\n };\n type: 'SET_NAME';\n};\n\nexport const SET_NAME: SetName = {\n payload: {\n firstName: '',\n lastName: '',\n middleName: '',\n },\n type: 'SET_NAME',\n};\n\ntype SetLegalEntityNameAction = {\n payload: {\n legalEntityName: string;\n };\n type: 'SET_LEGAL_ENTITY_NAME';\n};\n\nexport const SET_LEGAL_ENTITY_NAME: SetLegalEntityNameAction = {\n payload: {\n legalEntityName: '',\n },\n type: 'SET_LEGAL_ENTITY_NAME',\n};\n\ntype SetPersonalIdAction = {\n payload: {\n personalId: string;\n };\n type: 'SET_PERSONAL_ID';\n};\n\nexport const SET_PERSONAL_ID: SetPersonalIdAction = {\n payload: {\n personalId: '',\n },\n type: 'SET_PERSONAL_ID',\n};\n\ntype SetEIKAction = {\n payload: {\n eik: string;\n };\n type: 'SET_EIK';\n};\n\nexport const SET_EIK: SetEIKAction = {\n payload: {\n eik: '',\n },\n type: 'SET_EIK',\n};\n\ntype SetAddressAction = {\n payload: {\n address: Address;\n };\n type: 'SET_ADDRESS';\n};\n\nexport const SET_ADDRESS: SetAddressAction = {\n payload: {\n address: {\n addressLine1: '',\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n },\n },\n type: 'SET_ADDRESS',\n};\n\ntype SetCustomerDataAction = {\n payload: CreateCustomerState['customerData'];\n type: 'SET_CUSTOMER_DATA';\n};\n\ntype SetRepresentativesAction = {\n payload: {\n representatives: CreateCustomerState['customerData']['representatives'];\n currentRepresentativeIndex: number;\n };\n type: 'SET_REPRESENTATIVES';\n};\n\nexport const SET_REPRESENTATIVES: SetRepresentativesAction = {\n payload: {\n currentRepresentativeIndex: 0,\n representatives: [],\n },\n type: 'SET_REPRESENTATIVES',\n};\n\ntype SetCustomerContactAction = {\n payload: {\n contact: CreateCustomerState['customerData']['contact'];\n };\n type: 'SET_CUSTOMER_CONTACT';\n};\n\nexport const SET_CUSTOMER_CONTACT: SetCustomerContactAction = {\n payload: {\n contact: {\n email: '',\n firstName: '',\n lastName: '',\n phone: {\n country: 'bg',\n countryCode: '+359',\n value: '',\n },\n },\n },\n type: 'SET_CUSTOMER_CONTACT',\n};\n\ntype SetUseAccountContactAction = {\n payload: {\n useAccountContact?: boolean;\n };\n type: 'SET_USE_ACCOUNT_CONTACT';\n};\n\nexport const SET_USE_ACCOUNT_CONTACT: SetUseAccountContactAction = {\n payload: {\n useAccountContact: false,\n },\n type: 'SET_USE_ACCOUNT_CONTACT',\n};\n\ntype SetCustomerBillingContactAction = {\n payload: {\n billingContact: CreateCustomerState['customerData']['billingContact'];\n };\n type: 'SET_CUSTOMER_BILLING_CONTACT';\n};\n\nexport const SET_CUSTOMER_BILLING_CONTACT: SetCustomerBillingContactAction = {\n payload: {\n billingContact: {\n email: '',\n firstName: '',\n lastName: '',\n phone: {\n country: 'bg',\n countryCode: '+359',\n value: '',\n },\n },\n },\n type: 'SET_CUSTOMER_BILLING_CONTACT',\n};\n\ntype SetBillingDataSourceAction = {\n payload: {\n billingDataSource?: string | null;\n };\n type: 'SET_BILLING_DATA_SOURCE';\n};\n\nexport const SET_BILLING_DATA_SOURCE: SetBillingDataSourceAction = {\n payload: {\n billingDataSource: null,\n },\n type: 'SET_BILLING_DATA_SOURCE',\n};\n\nexport const SET_CUSTOMER_DATA: SetCustomerDataAction = {\n payload: {\n accountManager: undefined,\n address: {\n addressLine1: '',\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n },\n billingContact: {\n email: '',\n firstName: '',\n lastName: '',\n phone: {\n country: 'bg',\n countryCode: '+359',\n value: '',\n },\n },\n billingDataSource: null,\n contact: {\n email: '',\n firstName: '',\n lastName: '',\n phone: {\n country: 'bg',\n countryCode: '+359',\n value: '',\n },\n },\n currentRepresentativeIndex: 0,\n customerType: 'person',\n eik: '',\n firstName: '',\n lastName: '',\n legalEntityName: '',\n middleName: '',\n personalId: '',\n representatives: [],\n useAccountContact: false,\n },\n type: 'SET_CUSTOMER_DATA',\n};\n\nexport type Action =\n | SetCustomerTypeAction\n | SetCustomerContactAction\n | SetCustomerBillingContactAction\n | SetName\n | SetPersonalIdAction\n | SetAddressAction\n | SetCustomerDataAction\n | SetLegalEntityNameAction\n | SetRepresentativesAction\n | SetEIKAction\n | SetAccountManagerAction\n | SetPlanIdAction\n | SetBillingDataSourceAction\n | SetUseAccountContactAction;\n","import { Reducer } from 'react';\n\nimport {\n Action,\n SET_ACCOUNT_MANAGER,\n SET_ADDRESS,\n SET_BILLING_DATA_SOURCE,\n SET_CUSTOMER_BILLING_CONTACT,\n SET_CUSTOMER_CONTACT,\n SET_CUSTOMER_DATA,\n SET_CUSTOMER_TYPE,\n SET_EIK,\n SET_LEGAL_ENTITY_NAME,\n SET_NAME,\n SET_PERSONAL_ID,\n SET_PLAN_ID,\n SET_REPRESENTATIVES,\n SET_USE_ACCOUNT_CONTACT,\n} from './actions';\nimport { CreateCustomerState } from './types';\n\nexport const stateReducer: Reducer = (prevState, action) => {\n switch (action.type) {\n case SET_CUSTOMER_TYPE.type:\n case SET_REPRESENTATIVES.type:\n case SET_NAME.type:\n case SET_ADDRESS.type:\n case SET_PERSONAL_ID.type:\n case SET_CUSTOMER_DATA.type:\n case SET_LEGAL_ENTITY_NAME.type:\n case SET_CUSTOMER_CONTACT.type:\n case SET_CUSTOMER_BILLING_CONTACT.type:\n case SET_EIK.type:\n case SET_ACCOUNT_MANAGER.type:\n case SET_PLAN_ID.type:\n case SET_BILLING_DATA_SOURCE.type:\n case SET_USE_ACCOUNT_CONTACT.type:\n return {\n ...prevState,\n customerData: {\n ...prevState.customerData,\n ...action.payload,\n },\n };\n default:\n return prevState;\n }\n};\n","import { DocumentData } from 'firebase/firestore';\nimport { Reducer, useReducer } from 'react';\nimport { BillingPlans } from 'types';\n\nimport { Address, CustomerType } from '~/data';\n\nimport {\n Action,\n SET_ACCOUNT_MANAGER,\n SET_ADDRESS,\n SET_BILLING_DATA_SOURCE,\n SET_CUSTOMER_BILLING_CONTACT,\n SET_CUSTOMER_CONTACT,\n SET_CUSTOMER_DATA,\n SET_CUSTOMER_TYPE,\n SET_EIK,\n SET_LEGAL_ENTITY_NAME,\n SET_NAME,\n SET_PERSONAL_ID,\n SET_PLAN_ID,\n SET_REPRESENTATIVES,\n SET_USE_ACCOUNT_CONTACT,\n} from './actions';\nimport { stateReducer } from './stateReducer';\nimport { CreateCustomerState } from './types';\n\nexport type Name = {\n firstName: string;\n middleName: string;\n lastName: string;\n};\n\nexport const DEFAULT_STATE: CreateCustomerState = {\n customerData: {\n accountManager: undefined,\n address: {\n addressLine1: '',\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n },\n billingContact: {\n email: '',\n firstName: '',\n lastName: '',\n phone: {\n country: 'bg',\n countryCode: '+359',\n value: '',\n },\n },\n billingDataSource: null,\n contact: {\n email: '',\n firstName: '',\n lastName: '',\n phone: {\n country: 'bg',\n countryCode: '+359',\n value: '',\n },\n },\n currentRepresentativeIndex: 0,\n customerType: null,\n eik: '',\n firstName: '',\n lastName: '',\n legalEntityName: '',\n middleName: '',\n personalId: '',\n representatives: [],\n useAccountContact: false,\n },\n};\n\ninterface UseStateManagerOptions {\n onboardingData?: DocumentData | null;\n}\n\nexport type UseStateManagerReturn = {\n setCustomerType: (customerType: CustomerType) => void;\n setCustomerContact: (contact: CreateCustomerState['customerData']['contact']) => void;\n setCustomerBillingContact: (contact: CreateCustomerState['customerData']['billingContact']) => void;\n setRepresentatives: (\n representatives: CreateCustomerState['customerData']['representatives'],\n representativeIndex: number\n ) => void;\n setName: (name: Name) => void;\n setAddress: (address: Address) => void;\n setPersonalId: (personalId: string) => void;\n setCustomerData: (customerData: CreateCustomerState['customerData']) => void;\n setLegalEntityName: (legalEntityName: string) => void;\n setEIK: (eik: string) => void;\n setCurrentRepresentativeIndex: (currentRepresentativeIndex: number) => void;\n removeRepresentative: (representativeIndex: number) => void;\n state: CreateCustomerState;\n setAccountManager: (accountManager: string) => void;\n setPlan: (plan: BillingPlans) => void;\n setUseAccountContact: (useAccountContact?: boolean) => void;\n setBillingDataSource: (billingDataSource?: string | null) => void;\n};\n\nexport const useStateManager = ({ onboardingData }: UseStateManagerOptions): UseStateManagerReturn => {\n const onboardingCustomerData = onboardingData?.customerData;\n const [state, dispatch] = useReducer>(stateReducer, {\n customerData: {\n ...DEFAULT_STATE.customerData,\n ...onboardingCustomerData,\n },\n });\n\n const setAccountManager = (accountManager: string): void => {\n dispatch({ payload: { accountManager }, type: SET_ACCOUNT_MANAGER.type });\n };\n\n const setPlan = (planId: BillingPlans): void => {\n dispatch({ payload: { planId }, type: SET_PLAN_ID.type });\n };\n\n const setCustomerType = (customerType: CustomerType): void => {\n dispatch({ payload: { customerType }, type: SET_CUSTOMER_TYPE.type });\n };\n\n const setCustomerContact = (contact: CreateCustomerState['customerData']['contact']): void => {\n dispatch({ payload: { contact }, type: SET_CUSTOMER_CONTACT.type });\n };\n\n const setUseAccountContact = (useAccountContact?: boolean): void => {\n dispatch({ payload: { useAccountContact }, type: SET_USE_ACCOUNT_CONTACT.type });\n };\n\n const setCustomerBillingContact = (billingContact: CreateCustomerState['customerData']['billingContact']): void => {\n dispatch({ payload: { billingContact }, type: SET_CUSTOMER_BILLING_CONTACT.type });\n };\n\n const setBillingDataSource = (billingDataSource?: string | null): void => {\n dispatch({ payload: { billingDataSource }, type: SET_BILLING_DATA_SOURCE.type });\n };\n\n const setName = (name: Name): void => {\n dispatch({ payload: name, type: SET_NAME.type });\n };\n\n const setEIK = (eik: string): void => {\n dispatch({ payload: { eik }, type: SET_EIK.type });\n };\n\n const setLegalEntityName = (legalEntityName: string): void => {\n dispatch({ payload: { legalEntityName }, type: SET_LEGAL_ENTITY_NAME.type });\n };\n\n const setPersonalId = (personalId: string): void => {\n dispatch({ payload: { personalId }, type: SET_PERSONAL_ID.type });\n };\n\n const setAddress = (address: Address): void => {\n dispatch({ payload: { address }, type: SET_ADDRESS.type });\n };\n\n const setCustomerData = (customerData: CreateCustomerState['customerData']): void => {\n dispatch({ payload: { ...customerData }, type: SET_CUSTOMER_DATA.type });\n };\n\n const setRepresentatives = (\n representatives: CreateCustomerState['customerData']['representatives'],\n representativeIndex: number\n ): void => {\n dispatch({\n payload: { currentRepresentativeIndex: representativeIndex, representatives },\n type: SET_REPRESENTATIVES.type,\n });\n };\n\n const setCurrentRepresentativeIndex = (currentRepresentativeIndex: number): void => {\n dispatch({\n payload: { currentRepresentativeIndex, representatives: state.customerData.representatives },\n type: SET_REPRESENTATIVES.type,\n });\n };\n\n const removeRepresentative = (representativeIndex: number) => {\n const newRepresentatives = [...state.customerData.representatives];\n newRepresentatives.splice(representativeIndex, 1);\n\n dispatch({\n payload: { currentRepresentativeIndex: representativeIndex, representatives: newRepresentatives },\n type: SET_REPRESENTATIVES.type,\n });\n };\n\n return {\n removeRepresentative,\n setAccountManager,\n setAddress,\n setBillingDataSource,\n setCurrentRepresentativeIndex,\n setCustomerBillingContact,\n setCustomerContact,\n setCustomerData,\n setCustomerType,\n setEIK,\n setLegalEntityName,\n setName,\n setPersonalId,\n setPlan,\n setRepresentatives,\n setUseAccountContact,\n state,\n };\n};\n","'use client';\n\nimport { DocumentData } from 'firebase/firestore';\nimport { createContext, useCallback, useContext, useEffect, useMemo } from 'react';\n\nimport { Steps } from '~/utils';\n\nimport { BEFORE_PREVIOUS_CALLBACKS } from './navigationCallbacks';\nimport { StepNavigatorActions } from './types';\nimport { useBusinessStepNavigator } from './useBusinessStepNavigator';\nimport { useResidentStepNavigator } from './useResidentStepNavigator';\nimport { DEFAULT_STATE, useStateManager, UseStateManagerReturn } from './useStateManager';\n\ntype CustomerState = UseStateManagerReturn['state'];\n\ntype StateManagerActions = Omit;\n\ntype CreateCustomerContext = StateManagerActions &\n StepNavigatorActions & {\n customerData: CustomerState['customerData'];\n getCustomerData: () => CustomerState['customerData'];\n getCustomerContact: () => CustomerState['customerData']['contact'];\n getCustomerBillingContact: () => CustomerState['customerData']['billingContact'];\n getResidentialCustomerContact: () => CustomerState['customerData']['contact'];\n getRepresentatives: () => CustomerState['customerData']['representatives'];\n isCompany: () => boolean;\n onCompletion: () => void;\n businessStepNavigator: ReturnType | null;\n residentStepNavigator: ReturnType | null;\n };\n\nconst CreateCustomerContext = createContext({\n businessStepNavigator: null,\n customerData: DEFAULT_STATE.customerData,\n getCurrentStep: () => '',\n getCustomerBillingContact: () => DEFAULT_STATE.customerData.billingContact,\n getCustomerContact: () => DEFAULT_STATE.customerData.contact,\n getCustomerData: () => DEFAULT_STATE.customerData,\n getHistory: () => [],\n getRepresentatives: () => [],\n getResidentialCustomerContact: () => DEFAULT_STATE.customerData.contact,\n goToNextStep: () => {},\n goToPreviousStep: () => {},\n isCompany: () => false,\n navigateWithRedirect: () => {},\n navigatorSteps: [],\n onCompletion: () => {},\n removeRepresentative: () => {},\n residentStepNavigator: null,\n setAccountManager: () => {},\n setAddress: () => {},\n setBillingDataSource: () => {},\n setCurrentRepresentativeIndex: () => {},\n setCurrentStep: () => {},\n setCustomerBillingContact: () => {},\n setCustomerContact: () => {},\n setCustomerData: () => {},\n setCustomerType: () => {},\n setEIK: () => {},\n setLegalEntityName: () => {},\n setName: () => {},\n setPersonalId: () => {},\n setPlan: () => {},\n setRedirectTo: () => {},\n setRepresentatives: () => {},\n setUseAccountContact: () => {},\n});\n\ninterface CreateCustomerProviderProps {\n children: React.ReactNode;\n onCompletion: () => void;\n onUpdate: (data: CustomerState['customerData']) => void;\n onboardingData?: DocumentData | null;\n skipSteps?: Steps;\n}\n\nexport const CreateCustomerProvider = ({\n children,\n onCompletion,\n onUpdate,\n onboardingData,\n skipSteps,\n}: CreateCustomerProviderProps) => {\n const stateManager = useStateManager({ onboardingData });\n\n const {\n setAddress,\n setCurrentRepresentativeIndex,\n setCustomerData,\n setCustomerType,\n setCustomerContact,\n setCustomerBillingContact,\n setEIK,\n setLegalEntityName,\n setName,\n setAccountManager,\n setPersonalId,\n setRepresentatives,\n removeRepresentative,\n setPlan,\n state,\n setBillingDataSource,\n setUseAccountContact,\n } = stateManager;\n\n useEffect(() => {\n onUpdate(state.customerData);\n }, [onUpdate, state.customerData]);\n\n const getRepresentatives = useCallback((): CustomerState['customerData']['representatives'] => {\n return state.customerData.representatives;\n }, [state.customerData.representatives]);\n\n const getCustomerData = useCallback((): CustomerState['customerData'] => {\n return state.customerData;\n }, [state.customerData]);\n\n const getCustomerContact = useCallback((): CustomerState['customerData']['contact'] => {\n return state.customerData.contact;\n }, [state.customerData.contact]);\n\n const getCustomerBillingContact = useCallback((): CustomerState['customerData']['billingContact'] => {\n return state.customerData.billingContact;\n }, [state.customerData.billingContact]);\n\n const isCompany = useCallback((): boolean => {\n return state.customerData.customerType === 'company';\n }, [state.customerData.customerType]);\n\n const getResidentialCustomerContact = useCallback((): CustomerState['customerData']['contact'] => {\n return {\n email: onboardingData?.accountData.email,\n firstName: state.customerData.firstName,\n lastName: state.customerData.lastName,\n phone: onboardingData?.accountData.phoneNumber,\n };\n }, [\n onboardingData?.accountData?.email,\n onboardingData?.accountData?.phoneNumber,\n state.customerData.firstName,\n state.customerData.lastName,\n ]);\n\n const businessStepNavigator = useBusinessStepNavigator({ onboardingData, skipSteps });\n const residentStepNavigator = useResidentStepNavigator({ onboardingData, skipSteps });\n\n const {\n getCurrentStep,\n getHistory,\n goToNextStep,\n setCurrentStep,\n setRedirectTo,\n navigateWithRedirect,\n navigatorSteps,\n ...navigator\n } = isCompany() ? businessStepNavigator : residentStepNavigator;\n\n const goToPreviousStep = useCallback(() => {\n const currentStep = getCurrentStep();\n const beforePreviousCallback = typeof currentStep === 'string' ? BEFORE_PREVIOUS_CALLBACKS[currentStep] : null;\n\n if (beforePreviousCallback) {\n beforePreviousCallback(stateManager);\n }\n\n navigator.goToPreviousStep();\n }, [navigator, getCurrentStep, stateManager]);\n\n const context = useMemo(\n () => ({\n businessStepNavigator,\n getCurrentStep,\n getCustomerBillingContact,\n getCustomerContact,\n getCustomerData,\n getHistory,\n getRepresentatives,\n getResidentialCustomerContact,\n goToNextStep,\n goToPreviousStep,\n isCompany,\n navigateWithRedirect,\n navigatorSteps,\n onCompletion,\n removeRepresentative,\n residentStepNavigator,\n setAccountManager,\n setAddress,\n setBillingDataSource,\n setCurrentRepresentativeIndex,\n setCurrentStep,\n setCustomerBillingContact,\n setCustomerContact,\n setCustomerData,\n setCustomerType,\n setEIK,\n setLegalEntityName,\n setName,\n setPersonalId,\n setPlan,\n setRedirectTo,\n setRepresentatives,\n setUseAccountContact,\n ...state,\n }),\n [\n businessStepNavigator,\n getCurrentStep,\n getCustomerBillingContact,\n getCustomerContact,\n getCustomerData,\n getHistory,\n getRepresentatives,\n getResidentialCustomerContact,\n goToNextStep,\n goToPreviousStep,\n isCompany,\n navigateWithRedirect,\n navigatorSteps,\n onCompletion,\n removeRepresentative,\n residentStepNavigator,\n setAccountManager,\n setAddress,\n setBillingDataSource,\n setCurrentRepresentativeIndex,\n setCurrentStep,\n setCustomerBillingContact,\n setCustomerContact,\n setCustomerData,\n setCustomerType,\n setEIK,\n setLegalEntityName,\n setName,\n setPersonalId,\n setPlan,\n setRedirectTo,\n setRepresentatives,\n setUseAccountContact,\n state,\n ]\n );\n\n return {children};\n};\n\nexport const useCreateCustomer = () => {\n const context = useContext(CreateCustomerContext);\n\n if (!context) {\n throw new Error('useCreateCustomer must be used within a CreateCustomerProvider');\n }\n\n return context;\n};\n","export { CreateCustomerProvider, useCreateCustomer } from './useCreateCustomer';\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer/hooks/useCreateCustomer';\nimport { ContinueButton, StepTitle } from '~/ui';\n\ninterface FormValues {\n accountManager: string;\n}\n\nexport const AccountManagerStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n\n const { goToNextStep, getCustomerData, setAccountManager, navigateWithRedirect } = useCreateCustomer();\n const { accountManager } = getCustomerData();\n\n const resolver = yupResolver(\n object({\n accountManager: string()\n .required(t('steps.accountManager.fields.email.required'))\n .email(t('steps.accountManager.fields.email.invalidEmail')),\n })\n );\n\n const { handleSubmit, watch, formState, getValues, ...rest } = useForm({\n defaultValues: { accountManager },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (values) => {\n setAccountManager(values.accountManager);\n navigateWithRedirect(goToNextStep);\n };\n\n return (\n \n
\n \n {t('steps.accountManager.title')}\n\n \n \n \n \n\n \n \n \n
\n
\n );\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport {\n FormProvider,\n PhoneInput,\n RadioButtons,\n SubmitHandler,\n TextInput,\n useForm,\n validatePhoneNumber,\n yupResolver,\n} from 'forms';\nimport logger from 'logger';\nimport { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Phone } from 'types';\nimport { Box, Button, Form } from 'ui';\nimport { mixed, object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { StepTitle } from '~/ui';\n\ninterface FormValues {\n firstName: string;\n lastName: string;\n phone: Phone;\n email: string;\n billingDataSource?: string | null;\n}\n\nexport const BillingContactPersonStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const {\n goToNextStep,\n getCustomerContact,\n setCustomerBillingContact,\n navigateWithRedirect,\n getResidentialCustomerContact,\n getRepresentatives,\n getCustomerBillingContact,\n isCompany,\n getCustomerData,\n setBillingDataSource,\n } = useCreateCustomer();\n\n const customerContact = getCustomerContact();\n const { billingDataSource, useAccountContact } = getCustomerData();\n const { firstName, email, lastName, phone } = getCustomerBillingContact();\n\n const representative = getRepresentatives()[0];\n const accountData = getResidentialCustomerContact();\n\n const customerAccountData = isCompany()\n ? {\n email: accountData.email,\n firstName: representative.firstName,\n lastName: representative.lastName,\n phone: accountData.phone,\n }\n : accountData;\n\n const resolver = yupResolver(\n object({\n billingDataSource: string().nullable(),\n email: string().required(t('validation:required')).email(t('steps.billingContact.fields.email.invalid')),\n firstName: string().required(t('steps.billingContact.fields.firstName.required')),\n lastName: string().required(t('steps.billingContact.fields.lastName.required')),\n phone: mixed()\n .defined()\n .test('phoneValidation', t('validation:invalidPhone'), ({ country, countryCode, value }) =>\n validatePhoneNumber(country, countryCode, value)\n ),\n })\n );\n\n const { handleSubmit, watch, setValue, resetField, clearErrors, trigger, formState, ...rest } = useForm({\n defaultValues: {\n billingDataSource,\n email,\n firstName,\n lastName,\n phone,\n },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (values) => {\n trackTagManagerEvent(OnboardingEvents.billingData);\n\n setBillingDataSource(values.billingDataSource);\n\n if (values.email && values.firstName && values.lastName && values.phone) {\n setCustomerBillingContact({\n email: values.email,\n firstName: values.firstName,\n lastName: values.lastName,\n phone: values.phone,\n });\n\n navigateWithRedirect(goToNextStep);\n\n return;\n }\n\n logger.error('Error while submitting billing contact form', { values });\n };\n\n const handleRadioButtonsChange = (optionValue: string) => {\n if (optionValue === 'customerContact') {\n Object.entries(customerContact).forEach(([key, value]) => setValue(key as keyof typeof customerContact, value));\n } else {\n Object.entries(customerAccountData).forEach(([key, value]) =>\n setValue(key as keyof typeof customerAccountData, value)\n );\n }\n\n trigger();\n };\n\n useEffect(() => {\n const subscription = watch((value, { name, type }) => {\n if (name !== 'billingDataSource' && type === 'change' && value.billingDataSource) {\n setValue('billingDataSource', '');\n }\n });\n\n return () => subscription.unsubscribe();\n }, [watch, setValue]);\n\n return (\n \n \n \n \n {t('steps.billingContact.title')}\n \n\n \n\n \n \n\n \n\n \n\n \n \n \n\n \n \n {t('steps.billingContact.buttons.saveAndContinue')}\n \n \n \n \n );\n};\n","import { Typography } from 'ui';\n\nexport const Value = ({ children }: { children: React.ReactNode }) => (\n \n {children}\n \n);\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const AccountManager = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { accountManager } = customerData;\n\n return (\n {accountManager || t('steps.confirmation.noData')}}\n onClick={() => onClick('accountManager')}\n error={!accountManager ? t('steps.confirmation.error') : ''}\n data-testid=\"accountManager\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { isCompletedAddress } from '~/services/firestore';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const Address = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { address } = customerData;\n\n return (\n \n {address?.region && {address?.region},}\n \n {address?.postCode && `${address.postCode},`} {address?.settlement && `${address.settlement},`}\n \n {address.area && {address.area},}\n \n {address.addressLine1} {address.addressLine2}\n \n\n {address.region ||\n address.postCode ||\n address.settlement ||\n address.addressLine1 ||\n address.addressLine2 ? null : (\n {t('steps.confirmation.missingData')}\n )}\n \n }\n onClick={() => onClick('address')}\n error={!isCompletedAddress(address) ? t('steps.confirmation.error') : ''}\n data-testid=\"address\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const BillingContact = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { billingContact } = customerData;\n\n const billingContactData = [\n billingContact.firstName || billingContact.lastName\n ? `${billingContact.firstName} ${billingContact.lastName}`\n : null,\n billingContact.email,\n billingContact.phone.value ? `${billingContact.phone.countryCode}${billingContact.phone.value}` : null,\n ].filter(Boolean);\n\n return (\n \n {billingContactData.length > 0 ? billingContactData.join(', ') : t('steps.confirmation.sameAsContact')}\n \n }\n onClick={() => onClick('billingContactPerson')}\n data-testid=\"billing-contact\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const Contact = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { contact } = customerData;\n\n const contactData = [\n contact.firstName || contact.lastName ? `${contact.firstName} ${contact.lastName}` : null,\n contact.email,\n contact.phone.value ? `${contact.phone.countryCode}${contact.phone.value}` : null,\n ].filter(Boolean);\n\n return (\n {contactData.length > 0 ? contactData.join(', ') : t('steps.confirmation.noData')}}\n onClick={() => onClick('contactPerson')}\n error={contactData.length === 0 ? t('steps.confirmation.error') : ''}\n data-testid=\"contact\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const CustomerType = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { customerType } = customerData;\n\n return (\n {(customerType && t(`steps.confirmation.${customerType}`)) || t('steps.confirmation.noData')}\n }\n onClick={() => onClick('customerType')}\n error={!customerType ? t('steps.confirmation.error') : ''}\n data-testid=\"customer-type\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const Eik = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { eik } = customerData;\n\n return (\n {eik || t('steps.confirmation.noData')}}\n onClick={() => onClick('eikId')}\n error={!eik ? t('steps.confirmation.error') : ''}\n data-testid=\"eik\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const LegalEntityName = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { legalEntityName } = customerData;\n\n return (\n {legalEntityName || t('steps.confirmation.noData')}}\n onClick={() => onClick('legalEntityName')}\n error={!legalEntityName ? t('steps.confirmation.error') : ''}\n data-testid=\"legal-entity-name\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const Representatives = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData, setCurrentRepresentativeIndex, removeRepresentative } = useCreateCustomer();\n\n const customerData = getCustomerData();\n const { representatives } = customerData;\n\n const setRepresentativeStep = (index: number) => {\n setCurrentRepresentativeIndex(index);\n onClick(`businessRepresentative${index + 1}`);\n };\n\n if (representatives.length === 0) {\n return (\n {t('steps.confirmation.noData')}}\n onClick={() => setRepresentativeStep(0)}\n error={t('steps.confirmation.error')}\n data-testid=\"business-representative-1\"\n />\n );\n }\n\n return representatives.map((representative, index) => (\n \n \n {representative.firstName} {representative.middleName} {representative.lastName}\n \n {representative.firstName || representative.middleName || representative.lastName ? null : (\n {t('steps.confirmation.missingData')}\n )}\n \n }\n deleteIcon={index === 1}\n onDelete={() => removeRepresentative(index)}\n onClick={() => setRepresentativeStep(index)}\n error={\n !representative.firstName || !representative.middleName || !representative.lastName\n ? t('steps.confirmation.error')\n : ''\n }\n data-testid={`business-representative-${index + 1}`}\n />\n ));\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box, Button, useMediaQuery } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { isCompletedOnboardingCustomer } from '~/services/firestore';\nimport { StepTitle } from '~/ui';\n\nimport { AccountManager } from './AccountManager';\nimport { Address } from './Address';\nimport { BillingContact } from './BillingContact';\nimport { Contact } from './Contact';\nimport { CustomerType } from './CustomerType';\nimport { Eik } from './Eik';\nimport { LegalEntityName } from './LegalEntityName';\nimport { Representatives } from './Representatives';\n\nexport const BusinessConfirmationStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { setCurrentStep, onCompletion, setRedirectTo, getCustomerData, navigatorSteps } = useCreateCustomer();\n const isLargeMobile = useMediaQuery('(min-width:380px) or (min-height:800px)');\n\n const customerData = getCustomerData();\n\n const editStep = (step: string) => {\n setCurrentStep(step);\n setRedirectTo('businessConfirmation');\n };\n\n return (\n \n \n \n {t('steps.confirmation.title')}\n \n\n \n {navigatorSteps.includes('accountManager') && }\n\n \n\n \n\n \n\n \n\n
\n\n \n\n \n \n \n\n \n \n {t('steps.confirmation.button')}\n \n \n \n );\n};\n","export { BusinessConfirmationStep } from './BusinessConfirmationStep';\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport {\n Checkbox,\n FormProvider,\n PhoneInput,\n SubmitHandler,\n TextInput,\n useForm,\n validatePhoneNumber,\n yupResolver,\n} from 'forms';\nimport logger from 'logger';\nimport { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Phone } from 'types';\nimport { Box, Form } from 'ui';\nimport { bool, mixed, object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { ContinueButton, StepTitle } from '~/ui';\n\ninterface FormValues {\n firstName?: string;\n lastName?: string;\n phone: Phone;\n email?: string;\n useAccountContact?: boolean;\n}\n\nexport const BusinessContactPersonStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const {\n goToNextStep,\n getCustomerContact,\n setCustomerContact,\n setName,\n navigateWithRedirect,\n getRepresentatives,\n setUseAccountContact,\n getResidentialCustomerContact,\n getCustomerData,\n } = useCreateCustomer();\n\n const { phone, email, firstName, lastName } = getCustomerContact();\n\n const representative = getRepresentatives()[0];\n const accountData = getResidentialCustomerContact();\n\n const { useAccountContact } = getCustomerData();\n\n const resolver = yupResolver(\n object({\n email: string().when('useAccountContact', {\n is: false,\n then: () => string().required(t('validation:required')).email(t('steps.contact.fields.email.invalid')),\n }),\n firstName: string().when('useAccountContact', {\n is: false,\n then: () => string().required(t('steps.contact.fields.firstName.required')),\n }),\n lastName: string().when('useAccountContact', {\n is: false,\n then: () => string().required(t('steps.contact.fields.lastName.required')),\n }),\n phone: mixed()\n .defined()\n .when('useAccountContact', {\n is: false,\n then: () =>\n mixed()\n .defined()\n .test('phoneValidation', t('validation:invalidPhone'), ({ country, countryCode, value }) =>\n validatePhoneNumber(country, countryCode, value)\n ),\n }),\n useAccountContact: bool(),\n })\n );\n\n const { handleSubmit, watch, formState, setValue, resetField, clearErrors, ...rest } = useForm({\n defaultValues: {\n email,\n firstName,\n lastName,\n phone,\n useAccountContact,\n },\n mode: 'onChange',\n resolver,\n });\n\n const handleUseCustomerContactChange = (event: React.ChangeEvent) => {\n const isChecked = event.target.checked;\n\n if (isChecked) {\n setValue('email', accountData.email);\n setValue('firstName', representative.firstName);\n setValue('lastName', representative.lastName);\n setValue('phone', accountData.phone);\n } else {\n setValue('email', '');\n setValue('firstName', '');\n setValue('lastName', '');\n setValue('phone', { country: 'bg', countryCode: '+359', value: '' });\n }\n\n clearErrors();\n };\n\n const onSubmit: SubmitHandler = async (values) => {\n trackTagManagerEvent(OnboardingEvents.contactData);\n\n if (!values.email || !values.firstName || !values.lastName || !values.phone) {\n logger.error('Error while submitting business contact form', { values });\n\n return;\n }\n\n setUseAccountContact(values.useAccountContact);\n\n setCustomerContact({\n email: values.email,\n firstName: values.firstName,\n lastName: values.lastName,\n phone: values.phone,\n });\n\n setName({\n firstName: values.firstName,\n lastName: values.lastName,\n middleName: '',\n });\n\n navigateWithRedirect(goToNextStep);\n };\n\n useEffect(() => {\n const subscription = watch((value, { name, type }) => {\n if (name !== 'useAccountContact' && type === 'change' && value.useAccountContact) {\n setValue('useAccountContact', false);\n }\n });\n\n return () => subscription.unsubscribe();\n }, [watch, setValue]);\n\n return (\n \n \n \n \n {t('steps.contact.title')}\n \n\n \n\n \n \n\n \n\n \n\n \n \n \n\n \n \n \n );\n};\n","import { TextInput } from 'forms';\nimport { useTranslation } from 'react-i18next';\n\ninterface NameInputsProps {\n translationNamespace: string;\n}\n\nexport const NameInputs = ({ translationNamespace }: NameInputsProps) => {\n const { t } = useTranslation('createCustomerWizard');\n\n return (\n <>\n \n \n \n \n );\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { Checkbox, FormProvider, SubmitHandler, useForm, yupResolver } from 'forms';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { boolean, object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { ContinueButton, StepTitle } from '~/ui';\n\nimport { NameInputs } from './NameInputs';\n\ninterface FormValues {\n firstName: string;\n middleName: string;\n lastName: string;\n addRepresentative?: boolean;\n}\n\nconst REPRESENTATIVE_INDEX = 0;\n\nexport const BusinessRepresentative1Step = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData, setRepresentatives, setCurrentStep, navigateWithRedirect, getHistory } = useCreateCustomer();\n\n const { representatives } = getCustomerData();\n\n const { firstName, middleName, lastName } = representatives[REPRESENTATIVE_INDEX]\n ? representatives[REPRESENTATIVE_INDEX]\n : {\n firstName: '',\n lastName: '',\n middleName: '',\n };\n\n const resolver = yupResolver(\n object({\n addRepresentative: boolean(),\n firstName: string().required(t('steps.businessRepresentative.fields.firstName.required')),\n lastName: string().required(t('steps.businessRepresentative.fields.lastName.required')),\n middleName: string().required(t('steps.businessRepresentative.fields.middleName.required')),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm({\n defaultValues: {\n addRepresentative: false,\n firstName,\n lastName,\n middleName,\n },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (values) => {\n trackTagManagerEvent(OnboardingEvents.representative);\n\n const newRepresentatives = !representatives[REPRESENTATIVE_INDEX]\n ? [\n ...representatives,\n {\n firstName: values.firstName,\n lastName: values.lastName,\n middleName: values.middleName,\n },\n ]\n : representatives;\n\n if (representatives[REPRESENTATIVE_INDEX]) {\n newRepresentatives[REPRESENTATIVE_INDEX] = {\n firstName: values.firstName,\n lastName: values.lastName,\n middleName: values.middleName,\n };\n }\n\n setRepresentatives(newRepresentatives, REPRESENTATIVE_INDEX + 1);\n\n const history = getHistory();\n\n // get the last step before the current one\n // subtract 2 because the current step is already in the history\n const lastStep = history[history.length - 2];\n\n if (values.addRepresentative || (lastStep === 'legalEntityName' && representatives.length === 2)) {\n setCurrentStep('businessRepresentative2');\n return;\n }\n\n navigateWithRedirect(() => setCurrentStep('address'));\n };\n\n return (\n \n \n \n \n {t('steps.businessRepresentative.title')}\n \n\n \n \n \n\n {representatives.length < 2 && (\n \n )}\n \n\n \n \n \n );\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { FormProvider, SubmitHandler, useForm, yupResolver } from 'forms';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { ContinueButton, StepTitle } from '~/ui';\n\nimport { NameInputs } from './NameInputs';\n\ninterface FormValues {\n firstName: string;\n middleName: string;\n lastName: string;\n}\n\nconst REPRESENTATIVE_INDEX = 1;\n\nexport const BusinessRepresentative2Step = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData, setRepresentatives, setCurrentStep, navigateWithRedirect } = useCreateCustomer();\n\n const { representatives, currentRepresentativeIndex } = getCustomerData();\n\n const { firstName, middleName, lastName } = representatives[REPRESENTATIVE_INDEX]\n ? representatives[currentRepresentativeIndex]\n : {\n firstName: '',\n lastName: '',\n middleName: '',\n };\n\n const resolver = yupResolver(\n object({\n firstName: string().required(t('steps.businessRepresentative.fields.firstName.required')),\n lastName: string().required(t('steps.businessRepresentative.fields.lastName.required')),\n middleName: string().required(t('steps.businessRepresentative.fields.middleName.required')),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm({\n defaultValues: {\n firstName,\n lastName,\n middleName,\n },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (values) => {\n const newRepresentatives = !representatives[REPRESENTATIVE_INDEX]\n ? [\n ...representatives,\n {\n firstName: values.firstName,\n lastName: values.lastName,\n middleName: values.middleName,\n },\n ]\n : representatives;\n\n if (representatives[REPRESENTATIVE_INDEX]) {\n newRepresentatives[REPRESENTATIVE_INDEX] = {\n firstName: values.firstName,\n lastName: values.lastName,\n middleName: values.middleName,\n };\n }\n\n setRepresentatives(newRepresentatives, REPRESENTATIVE_INDEX);\n\n navigateWithRedirect(() => setCurrentStep('address'));\n };\n\n return (\n \n \n \n \n {t('steps.businessRepresentative.title')}\n \n\n \n \n \n \n\n \n \n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box, Button, Typography } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { StepTitle } from '~/ui';\n\nexport const BusinessStepsPreviewStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { goToNextStep } = useCreateCustomer();\n\n return (\n \n \n \n {t('steps.title')}\n \n\n \n \n 1. {t('steps.eik.title')}\n \n\n \n 3. {t('steps.legalEntityName.title')}\n \n\n \n 2. {t('steps.businessRepresentative.title')}\n \n \n\n \n 4. {t('steps.address.title')}\n \n\n \n 5. {t('steps.contact.title')}\n \n\n 6. {t('steps.billingContact.title')}\n \n\n \n \n );\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { Checkbox, FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport { NUMBERS_ONLY_REGEX } from 'forms/validations/constants';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { bool, object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { useTradeRegister } from '~/data';\nimport { ContinueButton, StepTitle } from '~/ui';\n\ninterface FormValues {\n eik: string;\n searchInTradeRegister?: boolean;\n}\n\nexport const CompanyEIKStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { goToNextStep, getCustomerData, setEIK, navigateWithRedirect, setCustomerData } = useCreateCustomer();\n const { getCompany } = useTradeRegister();\n\n const [isLoading, setIsLoading] = useState(false);\n\n const { eik } = getCustomerData();\n\n const resolver = yupResolver(\n object({\n eik: string()\n .required(t('steps.eik.fields.eik.required'))\n .matches(NUMBERS_ONLY_REGEX, { message: t('steps.eik.fields.eik.onlyNumbersField') }),\n searchInTradeRegister: bool(),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm({\n defaultValues: { eik, searchInTradeRegister: false },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (values) => {\n trackTagManagerEvent(OnboardingEvents.companyEIK, { user_id: values.eik });\n setEIK(values.eik);\n\n if (values.searchInTradeRegister) {\n setIsLoading(true);\n const company = await getCompany(values.eik);\n\n if (company) {\n setCustomerData({\n ...getCustomerData(),\n address: {\n addressLine1: company?.address?.street || getCustomerData().address.addressLine1,\n addressLine2: '',\n area: company.address?.area || getCustomerData().address.area,\n municipality: company.address?.municipality || getCustomerData().address.municipality,\n postCode: company.address?.postCode || getCustomerData().address.postCode,\n region: company.address?.region || getCustomerData().address.region,\n settlement: company.address?.settlement || getCustomerData().address.settlement,\n },\n eik: values.eik,\n legalEntityName: `${company.name} ${company.type}`,\n ...(company.owners?.length && {\n currentRepresentativeIndex: 0,\n representatives: company.owners.map((owner) => ({\n firstName: owner.firstName,\n lastName: owner.lastName,\n middleName: owner.middleName || '',\n })),\n }),\n });\n }\n setIsLoading(false);\n }\n\n navigateWithRedirect(goToNextStep);\n };\n\n return (\n \n \n \n \n {t('steps.eik.title')}\n \n\n \n \n \n\n \n \n\n \n \n \n );\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { Autocomplete, FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { object, string } from 'yup';\n\nimport { areaCities, areas, regions, settlements } from '~/config';\nimport { useCreateCustomer } from '~/customer';\nimport { ContinueButton, StepTitle } from '~/ui';\n\ninterface FormValues {\n area?: string;\n postCode: string;\n region: string;\n settlement: string;\n street: string;\n}\n\nexport const CustomerAddressStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { goToNextStep, getCustomerData, setAddress, navigateWithRedirect } = useCreateCustomer();\n\n const { address } = getCustomerData();\n\n const requiredMessage = t('steps.address.fields.required');\n\n const resolver = yupResolver(\n object({\n area: string().when('settlement', {\n is: (value: string) => areaCities.includes(value),\n then: () => string().required(requiredMessage).nullable(),\n }),\n postCode: string().required(requiredMessage),\n region: string().required(requiredMessage),\n settlement: string().required(requiredMessage),\n street: string().required(requiredMessage),\n })\n );\n\n const { handleSubmit, watch, resetField, formState, ...rest } = useForm({\n defaultValues: {\n area: address.area || '',\n postCode: address.postCode || '',\n region: address.region || '',\n settlement: address.settlement || '',\n street: address?.addressLine1 || '',\n },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (values) => {\n trackTagManagerEvent(OnboardingEvents.customerAddress);\n\n setAddress({\n addressLine1: values.street,\n addressLine2: '',\n area: values.area || '',\n municipality: '',\n postCode: values.postCode,\n region: values.region,\n settlement: values.settlement,\n });\n\n navigateWithRedirect(goToNextStep);\n };\n\n const region = watch('region');\n const settlement = watch('settlement');\n\n useEffect(() => {\n resetField('settlement');\n resetField('area');\n }, [region, resetField]);\n\n useEffect(() => {\n resetField('area');\n }, [settlement, resetField]);\n\n return (\n \n \n \n \n {t('steps.address.title')}\n \n\n \n \n \n\n \n \n \n\n \n \n \n\n {areaCities.includes(settlement) && (\n \n \n \n )}\n\n \n \n \n \n\n \n \n \n );\n};\n","export { CustomerAddressStep } from './CustomerAddressStep';\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { FormProvider, SubmitHandler, useForm, yupResolver } from 'forms';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form, Typography } from 'ui';\nimport { object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { ContinueButton, StepTitle } from '~/ui';\n\nimport { NameInputs } from './NameInputs';\n\ninterface FormValues {\n firstName: string;\n middleName: string;\n lastName: string;\n}\n\nexport const CustomerNameStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { goToNextStep, getCustomerData, setName, navigateWithRedirect } = useCreateCustomer();\n\n const { firstName, middleName, lastName } = getCustomerData();\n\n const resolver = yupResolver(\n object({\n firstName: string().required(t('steps.name.fields.firstName.required')),\n lastName: string().required(t('steps.name.fields.lastName.required')),\n middleName: string().required(t('steps.name.fields.middleName.required')),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm({\n defaultValues: {\n firstName,\n lastName,\n middleName,\n },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (name) => {\n trackTagManagerEvent(OnboardingEvents.customerName);\n setName(name);\n\n navigateWithRedirect(goToNextStep);\n };\n\n return (\n \n \n \n \n {t('steps.name.title')}\n\n {t('steps.name.description')}\n \n\n \n \n \n \n\n \n \n \n );\n};\n","import { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useTranslation } from 'react-i18next';\nimport { Box } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { OptionCard, StepTitle } from '~/ui';\n\nexport const CustomerTypeStep = () => {\n const { t } = useTranslation();\n const { setCustomerType, customerData, navigateWithRedirect, businessStepNavigator, residentStepNavigator } =\n useCreateCustomer();\n const { customerType } = customerData;\n\n const onSelection = (type: 'person' | 'company') => {\n setCustomerType(type);\n\n navigateWithRedirect(() => {\n if (type === 'person') {\n residentStepNavigator?.setCurrentStep('fillInOptions');\n return;\n }\n\n businessStepNavigator?.setCurrentStep('fillInOptions');\n });\n };\n\n const handleResidentialClick = () => {\n trackTagManagerEvent(OnboardingEvents.residentialCustomerType);\n onSelection('person');\n };\n\n const handleBusinessClick = () => {\n trackTagManagerEvent(OnboardingEvents.businessCustomerType);\n onSelection('company');\n };\n\n return (\n \n \n {t('createCustomerWizard:customerTypeOptions.title')}\n \n\n \n \n \n\n \n \n );\n};\n","import { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useTranslation } from 'react-i18next';\nimport { Box } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { OptionCard, StepTitle } from '~/ui';\n\nexport const FillInOptionsStep = () => {\n const { t } = useTranslation();\n const { setCurrentStep, isCompany } = useCreateCustomer();\n\n return (\n \n \n {t('createCustomerWizard:fillInOptions.title')}\n \n\n \n {\n trackTagManagerEvent(OnboardingEvents.fillDataByInvoice);\n setCurrentStep('invoiceUpload');\n }}\n data-testid=\"invoice-upload\"\n />\n \n\n {\n trackTagManagerEvent(OnboardingEvents.fillDataManually);\n setCurrentStep(isCompany() ? 'businessStepsPreview' : 'residentStepsPreview');\n }}\n data-testid=\"manual\"\n />\n \n );\n};\n","import { InvoiceDataAddressParts } from 'types';\n\nimport { Address } from '~/data';\n\nexport const formatAddress = (address: string | InvoiceDataAddressParts | null): Address => {\n if (!address) {\n return {\n addressLine1: '',\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n };\n }\n\n if (typeof address === 'string') {\n return {\n addressLine1: address,\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n };\n }\n\n return {\n addressLine1: address.addressLine || '',\n addressLine2: '',\n area: address.area || '',\n municipality: address.municipality || '',\n postCode: address.postCode || '',\n region: address.region || '',\n settlement: address.settlement || '',\n };\n};\n","export const isLegalEntity = (name: string | undefined): boolean => {\n const legalEntityTypes = [\n 'ЕТ',\n 'ЕООД',\n 'ООД',\n 'ЕАД',\n 'АД',\n 'ЗП',\n 'СДРУЖЕНИЕ',\n 'ФОНДАЦИЯ',\n 'КООПЕРАЦИЯ',\n 'НАРОДНО ЧИТАЛИЩЕ',\n 'СД',\n ];\n\n if (!name) {\n return false;\n }\n\n return legalEntityTypes.some((type) => name.includes(type));\n};\n","import { isLegalEntity } from '../isLegalEntity/isLegalEntity';\n\nexport type CustomerName = {\n firstName: string;\n middleName: string;\n lastName: string;\n legalEntityName: string;\n};\n\nexport const parseCustomerName = (name: string): CustomerName => {\n if (isLegalEntity(name)) {\n return {\n firstName: '',\n lastName: '',\n legalEntityName: name,\n middleName: '',\n };\n }\n\n const [firstName, middleName, ...rest] = name.split(' ');\n\n const lastName = rest.join(' ');\n\n return {\n firstName: firstName || '',\n lastName: (!lastName ? middleName : lastName) || '',\n legalEntityName: '',\n middleName: lastName ? middleName : '',\n };\n};\n","import { InvoiceDataMeteringPoint } from 'types';\n\nimport { MeteringPoint } from '~/services/firestore';\n\nimport { formatAddress } from '../formatAddress/formatAddress';\n\nexport const parseMeteringPointsData = (meteringPoints: InvoiceDataMeteringPoint[]): MeteringPoint[] =>\n meteringPoints.map((meteringPoint) => {\n const { meteringPointId, meteringPointAddress, meteringPointName } = meteringPoint;\n return {\n address: formatAddress(meteringPointAddress),\n meteringPointId: meteringPointId || '',\n name: meteringPointName || '',\n };\n });\n","import { Address, analyzeInvoice } from '~/data';\nimport { MeteringPoint } from '~/services/firestore';\n\nimport { formatAddress } from './formatAddress/formatAddress';\nimport { CustomerName, parseCustomerName } from './parseCustomerName/parseCustomerName';\nimport { parseMeteringPointsData } from './parseMeteringPointsData/parseMeteringPointsData';\n\ntype ParseInvoiceFileDataReturn = {\n address: Address;\n customerName: CustomerName;\n meteringPoints: MeteringPoint[];\n};\n\nexport const parseInvoiceFileData = async (invoiceFile: File): Promise => {\n const invoiceData = await analyzeInvoice(invoiceFile);\n\n const address = formatAddress(invoiceData.receiverAddress);\n const customerName = parseCustomerName(invoiceData.receiverName || '');\n const meteringPoints = parseMeteringPointsData(invoiceData.meteringPoints);\n\n return {\n address,\n customerName,\n meteringPoints,\n };\n};\n","export const splitLegalEntityName = (legalEntityName: string) => {\n const legalEntityNameParts = legalEntityName.split(' ');\n\n const companyType = legalEntityName.includes('НАРОДНО ЧИТАЛИЩЕ')\n ? legalEntityNameParts.splice(-2).join(' ')\n : legalEntityNameParts.pop();\n\n const name = legalEntityNameParts.join(' ');\n\n return {\n companyType,\n name,\n };\n};\n","export { parseInvoiceFileData } from './parseInvoiceFileData';\nexport { splitLegalEntityName } from './splitLegalEntityName/splitLegalEntityName';\n","import { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Button, Card, CardContent, Loader, Typography, useResolution } from 'ui';\nimport { FileUploadOutlined } from 'ui/icons';\n\nimport { useCreateCustomer } from '~/customer';\nimport { parseInvoiceFileData } from '~/customer/utils';\nimport { OnboardingRequest } from '~/services/firestore';\nimport { StepTitle } from '~/ui';\n\nexport const InvoiceUploadStep = ({ onInvoiceUpload }: { onInvoiceUpload?: (data: OnboardingRequest) => void }) => {\n const { t } = useTranslation('createCustomerWizard');\n const [isLoading, setIsLoading] = useState(false);\n const { setCurrentStep, setCustomerData, getCustomerData, isCompany } = useCreateCustomer();\n const customerData = getCustomerData();\n const { isDesktop } = useResolution();\n\n const onDrop = async (acceptedFiles: File[]) => {\n trackTagManagerEvent(OnboardingEvents.uploadInvoice);\n\n setIsLoading(true);\n const file = acceptedFiles[0];\n\n const { address, customerName, meteringPoints: meteringPointsData } = await parseInvoiceFileData(file);\n\n onInvoiceUpload?.({ meteringPointsData });\n setCustomerData({\n ...customerData,\n address,\n customerType: customerData.customerType,\n eik: customerData.eik,\n personalId: customerData.personalId,\n ...customerName,\n });\n\n const confirmationStep = isCompany() ? 'businessConfirmation' : 'residentConfirmation';\n setCurrentStep(confirmationStep);\n\n setIsLoading(false);\n };\n\n const { getRootProps, getInputProps, open } = useDropzone({\n accept: {\n 'application/pdf': [],\n 'image/*': ['.jpeg', '.jpg', '.png', '.heic', '.heif'],\n },\n maxFiles: 1,\n onDrop,\n // A note about Playwright testing\n // https://github.com/react-dropzone/react-dropzone/discussions/1339\n useFsAccessApi: false,\n });\n\n return (\n \n \n {t('invoiceUpload.title')}\n \n\n {isDesktop && (\n <>\n ({ boxShadow: customShadows.main })}>\n \n\n \n \n {isLoading && }\n {!isLoading && (\n <>\n \n \n \n\n \n {t('invoiceUpload.dragAndDropLabel')}\n \n \n )}\n \n \n \n\n \n {t('invoiceUpload.or')}\n \n\n \n \n )}\n\n {!isDesktop && (\n \n \n \n {t('invoiceUpload.browse')}\n \n \n )}\n \n );\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { Autocomplete, FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { splitLegalEntityName } from '~/customer/utils';\nimport { ContinueButton, StepTitle } from '~/ui';\n\nexport interface CompanyTypeAutocomplete {\n value: string;\n label: string;\n}\ninterface FormValues {\n legalEntityName: string;\n companyType: CompanyTypeAutocomplete;\n}\n\nexport const COMPANY_TYPES: CompanyTypeAutocomplete[] = [\n { label: 'ЕТ - Едноличен търговец', value: 'ЕТ' },\n {\n label: 'ЕООД - Еднолично дружество с ограничена отговорност',\n value: 'ЕООД',\n },\n { label: 'ООД - Дружество с ограничена отговорност', value: 'ООД' },\n { label: 'ЕАД - Еднолично акционерно дружество', value: 'ЕАД' },\n { label: 'АД - Акционерно дружество', value: 'АД' },\n { label: 'ЗП - Земеделски производител', value: 'ЗП' },\n { label: 'Сдружение', value: 'СДРУЖЕНИЕ' },\n { label: 'Фондация', value: 'ФОНДАЦИЯ' },\n { label: 'Кооперация', value: 'КООПЕРАЦИЯ' },\n { label: 'Народно Читалище', value: 'НАРОДНО ЧИТАЛИЩЕ' },\n { label: 'СД - Събирателно дружество', value: 'СД' },\n];\n\nexport const LegalEntityNameStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { setCurrentStep, getCustomerData, setLegalEntityName, navigateWithRedirect } = useCreateCustomer();\n\n const { legalEntityName } = getCustomerData();\n\n const { companyType, name: companyName } = splitLegalEntityName(legalEntityName);\n const companyTypeLabel = COMPANY_TYPES.find((type) => type.value === companyType)?.label;\n\n const resolver = yupResolver(\n object({\n companyType: object({\n label: string().required(),\n value: string().required(),\n }).required(t('steps.legalEntityName.fields.companyType.required')),\n legalEntityName: string().required(t('steps.legalEntityName.fields.legalEntityName.required')),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm({\n defaultValues: {\n companyType: { label: companyTypeLabel || '', value: companyType || '' },\n legalEntityName: companyName,\n },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (name) => {\n trackTagManagerEvent(OnboardingEvents.companyName);\n setLegalEntityName(`${name.legalEntityName.toUpperCase()} ${name.companyType.value}`);\n\n navigateWithRedirect(() => setCurrentStep('businessRepresentative1'));\n };\n\n return (\n \n \n \n \n {t('steps.name.title')}\n \n\n \n \n\n \n label={t('steps.legalEntityName.fields.companyType.label')}\n placeholder={t('steps.legalEntityName.fields.companyType.placeholder')}\n name=\"companyType\"\n required\n options={COMPANY_TYPES}\n isOptionEqualToValue={(option, value) => option.value === value.value}\n shrink\n data-testid=\"company-type\"\n />\n \n \n\n \n \n \n );\n};\n","import { Box, Loader } from 'ui';\n\nexport const LoaderView = () => (\n \n \n \n);\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport { NUMBERS_ONLY_REGEX, PID_LENGTH } from 'forms/validations/constants';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form, Typography } from 'ui';\nimport { object, string } from 'yup';\n\nimport { useCreateCustomer } from '~/customer';\nimport { ContinueButton, StepTitle } from '~/ui';\n\ninterface FormValues {\n personalId: string;\n}\n\nexport const PersonalIdStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { goToNextStep, getCustomerData, setPersonalId, navigateWithRedirect } = useCreateCustomer();\n\n const { personalId } = getCustomerData();\n\n const resolver = yupResolver(\n object({\n personalId: string()\n .required(t('steps.personalId.fields.personalId.required'))\n .matches(NUMBERS_ONLY_REGEX, { message: t('steps.personalId.fields.personalId.onlyNumbersField') })\n .min(PID_LENGTH, t('steps.personalId.fields.personalId.fieldLength', { length: PID_LENGTH }))\n .max(PID_LENGTH, t('steps.personalId.fields.personalId.fieldLength', { length: PID_LENGTH })),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm({\n defaultValues: { personalId },\n resolver,\n });\n\n const onSubmit: SubmitHandler = async (values) => {\n trackTagManagerEvent(OnboardingEvents.personalId);\n setPersonalId(values.personalId);\n\n navigateWithRedirect(goToNextStep);\n };\n\n return (\n \n \n \n \n {t('steps.personalId.title')}\n\n {t('steps.personalId.description')}\n \n\n \n \n\n \n \n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box, Typography } from 'ui';\n\nimport { NextLink } from '~/ui';\n\nexport const RegisteredCustomerMessage = () => {\n const { t } = useTranslation('createCustomerWizard');\n\n return (\n \n \n \n \n {t('steps.customerAlreadyRegistered.title')}\n \n \n\n \n \n {t('steps.customerAlreadyRegistered.description1')}\n \n \n\n \n \n {t('steps.customerAlreadyRegistered.description2')}\n \n \n\n \n \n {t('steps.customerAlreadyRegistered.button')}\n \n \n \n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { isCompletedAddress } from '~/services/firestore';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const Address = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n const { address } = getCustomerData();\n\n return (\n \n {address?.region && {address?.region},}\n \n {address?.postCode && `${address.postCode},`} {address?.settlement && `${address.settlement},`}\n \n {address.area && {address.area},}\n \n {address.addressLine1} {address.addressLine2}\n \n {address.region ||\n address.postCode ||\n address.settlement ||\n address.addressLine1 ||\n address.addressLine2 ? null : (\n {t('steps.confirmation.missingData')}\n )}\n \n }\n onClick={() => onClick('address')}\n error={!isCompletedAddress(address) ? t('steps.confirmation.error') : ''}\n data-testid=\"address\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const BillingContact = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n const { billingContact } = getCustomerData();\n\n const billingContactData = [\n billingContact.firstName || billingContact.lastName\n ? `${billingContact.firstName} ${billingContact.lastName}`\n : null,\n billingContact.email,\n billingContact.phone.value ? `${billingContact.phone.countryCode}${billingContact.phone.value}` : null,\n ].filter(Boolean);\n\n return (\n \n {billingContactData.length > 0 ? billingContactData.join(', ') : t('steps.confirmation.sameAsContact')}\n \n }\n onClick={() => onClick('billingContactPerson')}\n data-testid=\"billing-contact\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const CustomerType = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n const { customerType } = getCustomerData();\n\n return (\n {(customerType && t(`steps.confirmation.${customerType}`)) || t('steps.confirmation.noData')}\n }\n onClick={() => onClick('customerType')}\n error={!customerType ? t('steps.confirmation.error') : ''}\n data-testid=\"customer-type\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const Name = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n const { firstName, middleName, lastName } = getCustomerData();\n\n return (\n \n \n {firstName} {middleName} {lastName}\n \n {firstName || middleName || lastName ? null : {t('steps.confirmation.missingData')}}\n \n }\n onClick={() => onClick('name')}\n error={!firstName || !middleName || !lastName ? t('steps.confirmation.error') : ''}\n data-testid=\"name\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { useCreateCustomer } from '~/customer';\nimport { DataSection } from '~/ui';\n\nimport { Value } from '../Value';\n\ninterface Props {\n onClick: (step: string) => void;\n}\n\nexport const PersonalId = ({ onClick }: Props) => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData } = useCreateCustomer();\n const { personalId } = getCustomerData();\n\n return (\n {personalId || t('steps.confirmation.noData')}}\n onClick={() => onClick('personalId')}\n error={!personalId ? t('steps.confirmation.error') : ''}\n data-testid=\"personal-id\"\n />\n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box, Button } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { isCompletedOnboardingCustomer } from '~/services/firestore';\nimport { StepTitle } from '~/ui';\n\nimport { AccountManager } from '../BusinessConfirmationStep/AccountManager';\nimport { Address } from './Address';\nimport { BillingContact } from './BillingContact';\nimport { CustomerType } from './CustomerType';\nimport { Name } from './Name';\nimport { PersonalId } from './PersonalId';\n\nexport const ResidentConfirmationStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { getCustomerData, setCurrentStep, onCompletion, setRedirectTo, navigatorSteps } = useCreateCustomer();\n\n const customerData = getCustomerData();\n\n const editStep = (step: string) => {\n setCurrentStep(step);\n setRedirectTo('residentConfirmation');\n };\n\n return (\n \n \n \n {t('steps.confirmation.title')}\n \n\n \n {navigatorSteps.includes('accountManager') && }\n\n \n\n \n\n \n\n
\n\n \n \n \n\n \n \n {t('steps.confirmation.button')}\n \n \n \n );\n};\n","export { ResidentConfirmationStep } from './ResidentConfirmationStep';\n","import { useTranslation } from 'react-i18next';\nimport { Box, Button, Typography } from 'ui';\n\nimport { useCreateCustomer } from '~/customer';\nimport { StepTitle } from '~/ui';\n\nexport const ResidentStepsPreviewStep = () => {\n const { t } = useTranslation('createCustomerWizard');\n const { goToNextStep } = useCreateCustomer();\n\n return (\n \n \n \n {t('steps.title')}\n \n\n \n \n 1. {t('steps.name.title')}\n \n\n \n 2. {t('steps.personalId.title')}\n \n \n\n \n 3. {t('steps.address.title')}\n \n\n \n 4. {t('steps.billingContact.title')}\n \n \n\n \n \n );\n};\n","'use client';\n\nimport { DocumentData } from 'firebase/firestore';\nimport { useSearchParams } from 'next/navigation';\nimport { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { BillingPlans, isSupportedPlan } from 'types';\n\nimport { CreateCustomerProvider, useCreateCustomer, useCustomers } from '~/customer';\nimport { CreateCustomerState } from '~/customer/hooks/useCreateCustomer/types';\nimport { OnboardingRequest } from '~/services/firestore';\nimport { MobilePageHeader, ProcessDetails, WizardLayout } from '~/ui';\nimport { Steps } from '~/utils';\n\nimport { AccountManagerStep } from './AccountManagerStep';\nimport { BillingContactPersonStep } from './BillingContactPersonStep';\nimport { BusinessConfirmationStep } from './BusinessConfirmationStep';\nimport { BusinessContactPersonStep } from './BusinessContactPersonStep';\nimport { BusinessRepresentative1Step } from './BusinessRepresentative1Step';\nimport { BusinessRepresentative2Step } from './BusinessRepresentative2Step';\nimport { BusinessStepsPreviewStep } from './BusinessStepsPreviewStep';\nimport { CompanyEIKStep } from './CompanyEIKStep';\nimport { CustomerAddressStep } from './CustomerAddressStep';\nimport { CustomerNameStep } from './CustomerNameStep';\nimport { CustomerTypeStep } from './CustomerTypeStep';\nimport { FillInOptionsStep } from './FillInOptionsStep';\nimport { InvoiceUploadStep } from './InvoiceUploadStep';\nimport { LegalEntityNameStep } from './LegalEntityNameStep';\nimport { LoaderView } from './LoaderView';\nimport { PersonalIdStep } from './PersonalIdStep';\nimport { RegisteredCustomerMessage } from './RegisteredCustomerMessage';\nimport { ResidentConfirmationStep } from './ResidentConfirmationStep';\nimport { ResidentStepsPreviewStep } from './ResidentStepsPreviewStep';\n\nconst STEPS = {\n accountManager: AccountManagerStep,\n address: CustomerAddressStep,\n billingContactPerson: BillingContactPersonStep,\n businessConfirmation: BusinessConfirmationStep,\n businessRepresentative1: BusinessRepresentative1Step,\n businessRepresentative2: BusinessRepresentative2Step,\n businessStepsPreview: BusinessStepsPreviewStep,\n contactPerson: BusinessContactPersonStep,\n customerType: CustomerTypeStep,\n eikId: CompanyEIKStep,\n fillInOptions: FillInOptionsStep,\n invoiceUpload: InvoiceUploadStep,\n legalEntityName: LegalEntityNameStep,\n name: CustomerNameStep,\n personalId: PersonalIdStep,\n residentConfirmation: ResidentConfirmationStep,\n residentStepsPreview: ResidentStepsPreviewStep,\n};\n\ninterface CurrentStepProps {\n total: number;\n CurrentStepComponent: React.ReactNode;\n}\n\nconst StepComponent = ({ total, CurrentStepComponent }: CurrentStepProps) => {\n if (total > 0) {\n return ;\n }\n\n return CurrentStepComponent;\n};\n\nconst Wizard = ({ onInvoiceUpload }: { onInvoiceUpload?: (data: OnboardingRequest) => void }) => {\n const { t } = useTranslation();\n const { getCurrentStep, goToPreviousStep, navigatorSteps, setPlan } = useCreateCustomer();\n const currentStep = getCurrentStep();\n const searchParams = useSearchParams();\n const plan = searchParams && searchParams.get('plan');\n\n const { isLoading, data } = useCustomers({ size: 1 });\n\n useEffect(() => {\n if (typeof plan === 'string' && isSupportedPlan(plan)) {\n setPlan(BillingPlans[plan as keyof typeof BillingPlans]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const CurrentStep = STEPS[currentStep as keyof typeof STEPS] || STEPS.customerType;\n\n const showBackButton = navigatorSteps.includes('accountManager')\n ? currentStep !== 'accountManager' && data?.total === 0\n : currentStep !== 'customerType' && data?.total === 0;\n\n return (\n \n }\n rightChild={\n isLoading ? (\n \n ) : (\n }\n />\n )\n }\n header={\n \n }\n />\n );\n};\n\ninterface CreateCustomerWizardProps {\n onCompletion: () => void;\n onUpdate: (data: CreateCustomerState['customerData']) => void;\n onInvoiceUpload?: (data: OnboardingRequest) => void;\n onboardingData?: DocumentData | null;\n skipSteps?: Steps;\n}\n\nexport const CreateCustomerWizard = ({\n onCompletion,\n onUpdate,\n onInvoiceUpload,\n onboardingData,\n skipSteps,\n}: CreateCustomerWizardProps) => (\n \n \n \n);\n","import { CreateCustomerWizard } from './CreateCustomerWizard';\n\nexport { CreateCustomerWizard };\n","import { createDataCacheKeys, Customer, Page } from '~/data';\nimport { CustomerFilter, useCustomerApi, usePaginatedQuery, UsePaginatedQueryResult } from '~/data/api';\n\nconst cacheKeys = createDataCacheKeys('customers-picker');\n\nconst defaultPageObject: Page = {\n items: [],\n page: 1,\n pages: 1,\n size: 1,\n total: 1,\n};\n\ntype UserCustomersOptions = {\n filterBy?: CustomerFilter;\n size?: number;\n enabled?: boolean;\n};\n\nexport type UseCustomersResult = UsePaginatedQueryResult;\n\nexport const usePickerCustomers = (\n { filterBy, size, enabled = true }: UserCustomersOptions = {\n filterBy: undefined,\n }\n): UseCustomersResult => {\n const api = useCustomerApi();\n\n const { data, isLoading, isError, isSuccess, error, fetchNextPage } = usePaginatedQuery({\n cacheKey: [...cacheKeys.list({ filterBy })],\n enabled,\n fetchAll: (pageParams) =>\n api.getAll({ filter: filterBy, page: { page: pageParams.page, size: size || pageParams.size } }),\n });\n\n return {\n data: data || defaultPageObject,\n error,\n fetchNextPage,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","import { create } from 'store';\n\nexport const useSelectedCustomerIds = create<{\n selectedCustomerIds: string[];\n setSelectedCustomerIds: (type: string[]) => void;\n}>()((set) => ({\n selectedCustomerIds: [],\n setSelectedCustomerIds: (newCustomers) => set({ selectedCustomerIds: newCustomers }),\n}));\n","'use client';\n\nimport { Checkbox, ListItemText, MenuItem, TypographyOverflow } from 'ui';\n\ninterface Props {\n customerId: string;\n checked: boolean;\n name: string;\n onClick: (customerId: string) => void;\n}\n\nexport const CustomerItem = ({ customerId, name, checked, onClick }: Props) => {\n const toggleChecked = () => {\n onClick(customerId);\n };\n\n return (\n ({\n bgcolor: checked ? 'mintGreen.light' : 'transparent',\n maxWidth: spacing(40),\n })}\n >\n \n {name}} />\n \n );\n};\n","import { Badge } from 'ui';\nimport { PowerOutlined } from 'ui/icons';\n\ninterface CustomerCountBadgeProps {\n count: number;\n}\n\nconst CustomerCountBadge = ({ count }: CustomerCountBadgeProps) => {\n return (\n ({\n '& .MuiBadge-badge': { color: theme.palette.common.white, left: 1, top: 0, width: 10 },\n })}\n >\n \n \n );\n};\n\nexport default CustomerCountBadge;\n","import CustomerCountBadge from './CustomerCountBadge';\nimport { CustomerPicker } from './CustomerPicker';\n\nexport { CustomerCountBadge, CustomerPicker };\n","'use client';\n\nimport { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AutocompleteRenderInputParams, TextField } from 'ui';\n\nimport { Customer } from '~/data';\n\nimport { usePickerCustomers } from '../../../hooks/usePickerCustomers/usePickerCustomers';\nimport { CustomerCountBadge } from '..';\n\ninterface Props {\n params: AutocompleteRenderInputParams;\n onChange: (customers: Customer[]) => void;\n selectedCount: number;\n}\n\nexport const SearchField = ({ params, selectedCount, onChange }: Props) => {\n const { t } = useTranslation();\n const [search, setSearch] = useState('');\n const { data, isLoading } = usePickerCustomers({ filterBy: { search } });\n\n useEffect(() => {\n if (!isLoading && data) {\n onChange(data.items);\n }\n }, [search, isLoading, data, onChange]);\n\n return (\n {\n setSearch(e.target.value);\n }}\n InputProps={{\n ...params.InputProps,\n startAdornment: ,\n }}\n />\n );\n};\n","'use client';\n\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AutocompleteField, SxProps, Theme } from 'ui';\n\nimport { Customer } from '~/data';\n\nimport { usePickerCustomers } from '../../../hooks/usePickerCustomers/usePickerCustomers';\nimport { useSelectedCustomerIds } from '../../../hooks/useSelectedCustomerIds/useSelectedCustomerIds';\nimport { CustomerItem } from './CustomerItem';\nimport { SearchField } from './SearchField';\n\ninterface Props {\n sx?: SxProps;\n}\n\nconst orderBySelected = (selectedCustomers: Customer[], customers: Customer[]): Customer[] => {\n return [\n ...selectedCustomers,\n ...customers.filter((customer) => !selectedCustomers.find((c) => c.customerId === customer.customerId)),\n ];\n};\n\nexport const CustomerPicker = ({ sx }: Props) => {\n const { t } = useTranslation();\n const [options, setOptions] = useState([]);\n const { selectedCustomerIds: selectedCustomersIds, setSelectedCustomerIds: setSelectedCustomersIds } =\n useSelectedCustomerIds();\n\n const { data: selectedCustomers } = usePickerCustomers({\n enabled: selectedCustomersIds.length > 0,\n filterBy: { customerIdIn: selectedCustomersIds.join(',') },\n });\n\n const handleChange = (customers: Customer[]) => {\n setOptions(customers);\n };\n\n const onCustomerClick = (customerId: string) => {\n if (selectedCustomersIds.includes(customerId)) {\n setSelectedCustomersIds(selectedCustomersIds.filter((id) => id !== customerId));\n return;\n }\n\n setSelectedCustomersIds([...selectedCustomersIds, customerId]);\n };\n\n const customerOptions = orderBySelected(selectedCustomers.items, options);\n\n return (\n \n getOptionLabel={(option) => option.name}\n sx={{\n width: 210,\n ...sx,\n }}\n options={customerOptions}\n data-testid=\"customer-picker\"\n noOptionsText={t('common:noResults')}\n filterOptions={() => customerOptions}\n renderOption={(_props, customer) => {\n return (\n selectedId === customer.customerId))}\n onClick={onCustomerClick}\n />\n );\n }}\n clearOnBlur={false}\n renderInput={(params) => (\n \n )}\n />\n );\n};\n","import { CustomerPicker } from './CustomerPicker';\n\nexport { CustomerPicker };\n","import { useSuspenseQuery } from '@tanstack/react-query';\n\nimport { BaseHTTPResponse, Contact, createDataCacheKeys, ListOptions, Page } from '~/data';\nimport { ResponseError, useCustomerApi } from '~/data/api';\n\nconst getCacheKey = (customerId: string, listOptions: ListOptions = {}) =>\n createDataCacheKeys(`customers/${customerId}/contacts`).list(listOptions);\n\ntype UseCustomerContactsResult = BaseHTTPResponse>;\n\ntype CustomerContactsOptions = {\n customerId: string;\n};\n\nexport const useCustomerContacts = ({ customerId }: CustomerContactsOptions): UseCustomerContactsResult => {\n const api = useCustomerApi();\n\n const { data, error, isLoading, isError, isSuccess } = useSuspenseQuery, ResponseError>({\n queryFn: () => api.getContacts(customerId, { page: 1, size: 5 }),\n queryKey: getCacheKey(customerId),\n });\n\n return {\n data,\n error,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","import { useSuspenseQuery } from '@tanstack/react-query';\n\nimport { BaseHTTPResponse, createDataCacheKeys, Invoice, ListOptions, Page } from '~/data';\nimport { ResponseError, useCustomerApi } from '~/data/api';\n\nconst getCacheKey = (customerId: string, listOptions: ListOptions = {}) =>\n createDataCacheKeys(`customers/${customerId}/invoices`).list(listOptions);\n\ntype UseCustomerInvoicesResult = BaseHTTPResponse>;\n\ntype CustomerInvoicesOptions = {\n customerId: string;\n};\n\nexport const useCustomerInvoices = ({ customerId }: CustomerInvoicesOptions): UseCustomerInvoicesResult => {\n const api = useCustomerApi();\n\n const { data, error, isLoading, isError, isSuccess } = useSuspenseQuery, ResponseError>({\n queryFn: () => api.getInvoices(customerId, { page: 1, size: 5 }),\n queryKey: getCacheKey(customerId),\n });\n\n return {\n data,\n error,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","import { useSuspenseQuery } from '@tanstack/react-query';\n\nimport { BaseHTTPResponse, createDataCacheKeys, ListOptions, MeteringPoint, Page } from '~/data';\nimport { ResponseError, useCustomerApi } from '~/data/api';\n\nconst getCacheKey = (customerId: string, listOptions: ListOptions = {}) =>\n createDataCacheKeys(`customers/${customerId}/metering-points`).list(listOptions);\n\ntype UseCustomerMeteringPointsResult = BaseHTTPResponse>;\n\ntype CustomerMeteringPointsOptions = {\n customerId: string;\n};\n\nexport const useCustomerMeteringPoints = ({\n customerId,\n}: CustomerMeteringPointsOptions): UseCustomerMeteringPointsResult => {\n const api = useCustomerApi();\n\n const { data, error, isLoading, isError, isSuccess } = useSuspenseQuery, ResponseError>({\n queryFn: () => api.getMeteringPoints(customerId, { page: 1, size: 5 }),\n queryKey: getCacheKey(customerId),\n });\n\n return {\n data,\n error,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","import { useSuspenseQuery } from '@tanstack/react-query';\n\nimport {\n BaseHTTPResponse,\n Contact,\n createDataCacheKeys,\n Customer,\n Invoice,\n MeteringPoint,\n transformMeteringPoints,\n} from '~/data';\nimport { ResponseError, useCustomerApi } from '~/data/api';\n\nimport { useCustomerContacts } from '../useCustomerContacts/useCustomerContacts';\nimport { useCustomerInvoices } from '../useCustomerInvoices/useCustomerInvoices';\nimport { useCustomerMeteringPoints } from '../useCustomerMeteringPoints/useCustomerMeteringPoints';\n\nconst cacheKeys = createDataCacheKeys('customers');\n\ntype UseCustomerResult = Omit, 'data'> & {\n data: {\n customer: Customer | undefined;\n invoices: {\n items: Invoice[];\n total: number;\n };\n contacts: {\n items: Contact[];\n total: number;\n };\n meteringPoints: {\n items: MeteringPoint[];\n total: number;\n };\n };\n};\n\ntype CustomerOptions = {\n customerId: string;\n};\n\nexport const useCustomer = ({ customerId }: CustomerOptions): UseCustomerResult => {\n const api = useCustomerApi();\n\n const customer = useSuspenseQuery({\n queryFn: () => api.get(customerId),\n queryKey: cacheKeys.detail(customerId),\n });\n\n const invoices = useCustomerInvoices({ customerId });\n const contacts = useCustomerContacts({ customerId });\n const meteringPoints = useCustomerMeteringPoints({ customerId });\n\n return {\n data: {\n contacts: {\n items: contacts.data.items || [],\n total: contacts.data.total || 0,\n },\n customer: customer.data,\n invoices: {\n items: invoices.data.items || [],\n total: invoices.data.total || 0,\n },\n meteringPoints: {\n items: transformMeteringPoints(meteringPoints.data?.items || []),\n total: meteringPoints.data?.total || 0,\n },\n },\n error: customer.error || invoices.error || contacts.error || meteringPoints.error,\n isError: customer.isError || invoices.isError || contacts.isError || meteringPoints.isError,\n isLoading: customer.isLoading || invoices.isLoading || contacts.isLoading || meteringPoints.isLoading,\n isSuccess: customer.isSuccess && invoices.isSuccess && contacts.isSuccess && meteringPoints.isSuccess,\n };\n};\n","import { CreateCustomerWizard } from './components/CreateCustomerWizard';\nimport { CustomerCard, CustomerDetails } from './components/detail';\nimport { CustomersList } from './components/list';\nimport { CustomerPicker } from './components/shared/CustomerPicker';\nimport getCustomerRepresentatives from './helpers/getCustomerRepresentatives';\nimport { CreateCustomerProvider, useCreateCustomer } from './hooks/useCreateCustomer';\nimport { useCustomer } from './hooks/useCustomer/useCustomer';\nimport { useCustomerContacts } from './hooks/useCustomerContacts/useCustomerContacts';\nimport { useCustomers } from './hooks/useCustomers/useCustomers';\nimport { useSelectedCustomerIds } from './hooks/useSelectedCustomerIds/useSelectedCustomerIds';\n\nexport {\n CreateCustomerProvider,\n CreateCustomerWizard,\n CustomerCard,\n CustomerDetails,\n CustomerPicker,\n CustomersList,\n getCustomerRepresentatives,\n useCreateCustomer,\n useCustomer,\n useCustomerContacts,\n useCustomers,\n useSelectedCustomerIds,\n};\n","import { useAuthUser } from '~/auth';\n\nconst useAuthFetch = () => {\n const { getToken } = useAuthUser();\n\n const request = async (url: string, options: RequestInit) => {\n const token = await getToken();\n\n if (!token) {\n return Promise.reject(new Error('No token'));\n }\n\n return fetch(url, {\n ...options,\n headers: {\n ...options.headers,\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n });\n };\n\n return { request };\n};\n\nexport { useAuthFetch };\n","'use client';\n\nimport logger from 'logger';\n\nimport { useAuthFetch } from './useAuthFetch';\n\nconst extractFileAndBucketName = (url: string) => {\n const bucketRegex = /https:\\/\\/storage\\.googleapis\\.com\\/([^/]+)\\//;\n const fileRegex = /(protocols\\/.+)/;\n\n const bucketMatch = url.match(bucketRegex);\n const fileMatch = url.match(fileRegex);\n\n return {\n bucketName: bucketMatch && bucketMatch[1],\n fileName: fileMatch && fileMatch[1],\n };\n};\n\nexport const useCloudStorageFile = () => {\n const { request } = useAuthFetch();\n\n const getFile = async ({ fileUrl }: { fileUrl: string }) => {\n const { fileName, bucketName } = extractFileAndBucketName(fileUrl);\n\n const response = await request(`/api/cloud-storage-files?fileName=${fileName}&bucketName=${bucketName}`, {\n method: 'GET',\n });\n\n const fileContent = await response.blob();\n\n if (!response.ok) {\n logger.error('Failed to fetch file');\n }\n\n return { fileContent };\n };\n\n return { getFile };\n};\n","'use client';\n\nimport logger from 'logger';\n\nimport { useAuthFetch } from './useAuthFetch';\n\nexport const useDriveFile = () => {\n const { request } = useAuthFetch();\n\n const getFile = async ({ fileUrl }: { fileUrl: string }) => {\n const fileIdMatch = fileUrl.match(/id=([^&]*)/);\n\n const fileId = fileIdMatch && fileIdMatch[1];\n\n const response = await request(`/api/drive-files?fileId=${fileId}`, {\n method: 'GET',\n });\n\n const fileContent = await response.blob();\n\n if (!response.ok) {\n logger.error('Failed to fetch file');\n }\n\n return { fileContent };\n };\n\n return { getFile };\n};\n","import { useAuthFetch } from './useAuthFetch';\n\ninterface Init {\n invoiceNumber: string;\n encoded: string;\n}\n\ntype InitReturnType = {\n data: {\n invoiceNumber: string;\n };\n};\n\ntype UseEPayInitReturnType = {\n init: (payload: Init) => Promise;\n};\n\nconst useEPayInitRequest = (): UseEPayInitReturnType => {\n const { request } = useAuthFetch();\n\n const init = async ({ encoded, invoiceNumber }: Init): Promise => {\n const reponse = await request('/api/payments/epay-init', {\n body: JSON.stringify({\n encoded,\n invoiceNumber,\n }),\n method: 'POST',\n });\n\n if (!reponse.ok) {\n throw new Error('Failed to init payment');\n }\n\n return reponse.json() as Promise;\n };\n\n return { init };\n};\n\nexport { useEPayInitRequest };\n","import logger from 'logger';\nimport { addError, Errors } from 'rum';\n\nimport { useAuthFetch } from './useAuthFetch';\n\ninterface PayloadParams {\n invoiceNumber: string;\n amount: number;\n}\n\ntype EPayPayloadResponseType = {\n data: T;\n error: string | null;\n};\n\ntype UseEPayPayloadReturnType = {\n getPayload: (payload: PayloadParams) => Promise>;\n};\n\nconst useEPayPayloadRequest = (): UseEPayPayloadReturnType => {\n const { request } = useAuthFetch();\n\n const getPayload = async ({ amount, invoiceNumber }: PayloadParams) => {\n const response = await request('/api/payments/epay-payload', {\n body: JSON.stringify({\n amount,\n invoiceNumber,\n }),\n method: 'POST',\n });\n\n const { error, data } = (await response.json()) as EPayPayloadResponseType;\n\n if (!response.ok) {\n logger.error('Unable to build ePay payload', { error });\n addError(Errors.UNABLE_TO_BUILD_EPAY_PAYLOAD, 'Unable to build ePay payload');\n }\n\n return { data, error };\n };\n\n return { getPayload };\n};\n\nexport { useEPayPayloadRequest };\n","export { useCloudStorageFile } from './hooks/useCloudStorageFile';\nexport { useDriveFile } from './hooks/useDriveFile';\nexport { useEPayInitRequest } from './hooks/useEPayInitRequest';\nexport { useEPayPayloadRequest } from './hooks/useEPayPayloadRequest';\n","import {\n Annex as AnnexBasic,\n Contract as ContractBasic,\n CustomerBasic,\n InvoiceBasic,\n InvoiceStatusInvoiceStatusEnum,\n LineItem,\n PointInvoiceAddendum,\n} from '@toki-power/public-api';\n\nimport ResponseError from './api/ResponseError';\n\nexport type {\n Address,\n Page as ApiPage,\n Contact,\n GetContractFileV1200ResponseData as ContractFile,\n GetCustomerTypeByEmailv1200ResponseData as CustomerProfileType,\n ImpersonalizedCustomers as ImpersonalizedCustomer,\n InvoiceDetails,\n Message,\n MeteringPoint,\n Middleware,\n PlanPrice,\n PointInvoiceAddendum,\n ProtocolBasic as Protocol,\n ResponseContext,\n} from '@toki-power/public-api';\n\nexport type BaseHTTPResponse = {\n data: T;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: ResponseError | null;\n};\n\nexport type InvoiceStatus = InvoiceStatusInvoiceStatusEnum;\n\nexport type Customer = CustomerBasic;\n\nexport type CustomerType = 'person' | 'company' | null;\n\nexport type Invoice = InvoiceBasic;\n\nexport type Contract = ContractBasic;\n\nexport type Annex = AnnexBasic;\n\nexport const isInvoice = (invoice: Invoice | PointInvoiceAddendum): invoice is Invoice => {\n return Object.prototype.hasOwnProperty.call(invoice, 'pdfUrl');\n};\n\nexport type InvoiceLineItem = LineItem;\n\nexport interface Page {\n items: T[];\n total: number;\n page: number;\n pages: number;\n size: number;\n}\n\nexport type PageParams = {\n size: number;\n page: number;\n};\n\nexport interface GetAllOptions {\n page?: PageParams;\n filter?: T;\n}\n","'use client';\n\nimport { formatDate, toMonthNameAndYearString } from 'dates';\nimport { memo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { InvoiceCard as UiInvoiceCard, Typography } from 'ui';\n\nimport { Invoice, PointInvoiceAddendum } from '~/data';\nimport { isInvoice } from '~/data/types';\nimport { useInvoiceBalance } from '~/invoice/hooks/useInvoiceBalance/useInvoiceBalance';\nimport { LinkContainer } from '~/ui';\n\nimport getInvoicePath from '../../../helpers/getInvoicePath';\nimport { recordInvoiceDownload } from '../../../helpers/getInvoicePath/recordInvoiceDownload';\n\nexport const InvoiceCard = memo(\n ({ invoice, onClick }: { invoice: Invoice | PointInvoiceAddendum; onClick?: () => void }) => {\n const { t } = useTranslation();\n const {\n invoiceNumber,\n invoiceDate,\n paymentDeadline,\n meteringPointsCount,\n totalInvoiceCost,\n customer,\n status,\n balance,\n } = invoice;\n\n const downloadUrl = isInvoice(invoice) && invoice.pdfUrl !== null ? invoice.pdfUrl : undefined;\n\n const paymentBalance = useInvoiceBalance({ balance });\n\n return (\n \n ]}\n />,\n ]}\n />,\n t('invoices:meteringPoints', {\n meteringPointsCount,\n }),\n ]}\n paymentBalance={paymentBalance}\n statusText={t(`invoices:${status === 'Part-paid' ? 'partPaid' : status.toLowerCase()}`)}\n customerName={customer.name}\n onInvoiceDownload={() => isInvoice(invoice) && recordInvoiceDownload(invoice)}\n status={status}\n />\n \n );\n }\n);\n","import { useInvoice } from '../useInvoice/useInvoice';\n\ntype InvoiceMeteringPointsOptions = {\n invoiceId: string;\n};\n\nexport const useInvoiceMeteringPoints = ({ invoiceId }: InvoiceMeteringPointsOptions) => {\n const { data, error, isError, isLoading, isSuccess } = useInvoice({ invoiceId });\n\n const meteringPoints = data?.meteringPoints || [];\n\n return {\n data: meteringPoints || [],\n error,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","import {\n Bar,\n BarChart as BarRechart,\n CartesianGrid,\n Legend,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { COLORS_ARRAY } from '../../constants';\nimport { ChartBaseProps, TooltipFormatter } from '../../types';\nimport { labelFormatter } from '../../utils';\n\ninterface Config {\n name: string;\n color?: string;\n accessorKey: keyof K & string;\n}\n\ninterface Props extends ChartBaseProps {\n config: Config[];\n data: T[];\n tooltipFormatter?: TooltipFormatter;\n legendAlign?: 'top' | 'bottom';\n xAxisKey: keyof T & string;\n}\n\nconst BarChart = ({\n config,\n customTooltip,\n data,\n height = 260,\n legendAlign = 'top',\n tooltipFormatter,\n title,\n tooltip,\n xAxisKey,\n}: Props) => {\n const isBottomLegend = legendAlign === 'bottom';\n\n return (\n \n \n \n \n \n {tooltip && (\n \n )}\n \n {config.map(({ accessorKey, color, name }, i) => (\n \n ))}\n {title && (\n \n {title}\n \n )}\n \n \n );\n};\n\nexport default BarChart;\n","export const centerTitle = (text: string) => {\n if (text.includes(' ')) {\n const [firstWord, secondWord] = text.split(' ');\n\n return (\n <>\n \n {firstWord}\n \n \n {secondWord}\n \n \n );\n }\n\n return text;\n};\n","import { DonutPayload, DonutTooltipFormatter } from './types';\n\nconst tooltipStyle = {\n background: '#fff',\n border: 'solid 1px #aaa',\n padding: '10px',\n};\n\ninterface Props {\n payload: DonutPayload;\n tooltipFormatter?: DonutTooltipFormatter;\n}\n\nexport const DefaultTooltip = ({ payload, tooltipFormatter }: Props) => {\n if (!payload || !payload.value || !payload.name) return null;\n\n return (\n
\n {tooltipFormatter ? (\n
{tooltipFormatter(payload.value, payload.name, payload).reverse().join(': ')}
\n ) : (\n
{`${payload?.name}: ${payload?.value}`}
\n )}\n
\n );\n};\n","interface RenderCustomizedLabelProps {\n cx: number;\n cy: number;\n midAngle: number;\n innerRadius: number;\n outerRadius: number;\n percent: number;\n handleMouseEnter: () => void;\n handleMouseLeave: () => void;\n}\n\nexport const renderCustomizedLabel = ({\n cx,\n cy,\n midAngle,\n innerRadius,\n outerRadius,\n percent,\n handleMouseEnter,\n handleMouseLeave,\n}: RenderCustomizedLabelProps) => {\n const RADIAN = Math.PI / 180;\n\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n \n {`${(percent * 100).toFixed(0)}%`}\n \n );\n};\n","import { ReactNode, useState } from 'react';\nimport { Cell, Pie, PieChart, ResponsiveContainer, Tooltip } from 'recharts';\n\nimport { COLORS_ARRAY } from '../../constants';\nimport { ChartBaseProps } from '../../types';\nimport { centerTitle } from './centerTitle';\nimport { DefaultTooltip } from './DefaultTooltip';\nimport { renderCustomizedLabel } from './renderCustomizedLabel';\nimport { DonutPayload, DonutTooltipFormatter } from './types';\n\ntype ChartData = T & { color?: string; name: string; value: number | string };\n\ninterface Props extends ChartBaseProps {\n tooltipFormatter?: DonutTooltipFormatter;\n data: ChartData[];\n innerRadius?: number;\n outerRadius?: number;\n}\ninterface RenderTooltip {\n (payload: DonutPayload | undefined, tooltipFormatter?: DonutTooltipFormatter): ReactNode;\n}\n\nconst renderTooltip: RenderTooltip = (payload, tooltipFormatter) => {\n if (payload) {\n return ;\n }\n\n return null;\n};\n\nconst DonutChart = ({\n height = 260,\n tooltip,\n data,\n title,\n tooltipFormatter,\n customTooltip,\n innerRadius = 60,\n outerRadius = 100,\n}: Props) => {\n const [active, setActive] = useState(false);\n const [payload, setPayload] = useState();\n\n const handleMouseEnter = () => {\n setActive(true);\n };\n\n const handleMouseLeave = () => {\n setActive(false);\n };\n\n return (\n \n \n renderCustomizedLabel({ ...props, handleMouseEnter, handleMouseLeave })}\n onMouseEnter={(props) => setPayload(props)}\n isAnimationActive={false}\n >\n {data.map(({ color }, i) => (\n \n ))}\n \n {title && (\n \n {centerTitle(title)}\n \n )}\n {tooltip && (\n renderTooltip(payload, tooltipFormatter))}\n />\n )}\n \n \n );\n};\n\nexport default DonutChart;\n","const COLORS_ARRAY = ['#E328AF', '#FFAB2D', '#7F46F0', '#5ECFFF'];\n\nexport { COLORS_ARRAY };\n","import { LabelFormatter } from '../types';\n\nexport const labelFormatter: LabelFormatter = (label, payload) => {\n if (payload && payload.length) {\n const customLabel = payload[0].payload?.tooltipLabel;\n return customLabel || label;\n }\n\n return null;\n};\n","import {\n CartesianGrid,\n Legend,\n Line,\n LineChart as LineRechart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { COLORS_ARRAY } from '../../constants';\nimport { ChartBaseProps, TooltipFormatter } from '../../types';\nimport { labelFormatter } from '../../utils';\n\ninterface Config {\n name?: string;\n color?: string;\n accessorKey: keyof K & string;\n}\n\ninterface Props extends ChartBaseProps {\n tooltipFormatter?: TooltipFormatter;\n xAxisKey: keyof T & string;\n legendAlign?: 'top' | 'bottom';\n data: T[];\n lineWidth?: number;\n config: Config[];\n hasLegend?: boolean;\n showXAxis?: boolean;\n showYAxis?: boolean;\n showGrid?: boolean;\n}\n\nconst LineChart = ({\n xAxisKey,\n tooltip,\n customTooltip,\n height = 260,\n lineWidth,\n data,\n config,\n tooltipFormatter,\n legendAlign = 'top',\n title,\n hasLegend = true,\n showXAxis = true,\n showYAxis = true,\n showGrid = true,\n}: Props) => {\n const isBottomLegend = legendAlign === 'bottom';\n\n return (\n \n \n {showGrid && }\n {showXAxis && }\n {showYAxis && }\n\n {tooltip && }\n {hasLegend && }\n\n {config.map(({ accessorKey, color, name }, i) => (\n \n ))}\n\n {title && (\n \n {title}\n \n )}\n \n \n );\n};\n\nexport default LineChart;\n","export { default as BarChart } from './BarChart/BarChart';\nexport { default as DonutChart } from './DonutChart/DonutChart';\nexport { default as LineChart } from './LineChart/LineChart';\n","export { BarChart, DonutChart, LineChart } from './components';\nexport type { DonutTooltipFormatter } from './components/DonutChart/types';\nexport * from './types';\n","import { ReactElement } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Box, Typography } from 'ui';\n\ninterface Props {\n i18nKey: string;\n value: string | number;\n wrapped?: boolean;\n valueBold?: boolean;\n}\n\nexport const MeteringPointData = ({ i18nKey, value, wrapped = true, valueBold = false }: Props): ReactElement => {\n const { t } = useTranslation();\n\n if (wrapped) {\n return (\n \n ,\n ,\n ]}\n />\n \n );\n }\n\n return (\n \n \n {t(`meteringPoints:${i18nKey}`)}\n \n\n \n {value}\n \n \n );\n};\n","import { ChartBaseProps, LineChart } from 'charts';\nimport { toMonthNameAndYearString } from 'dates';\nimport { IfFeatureEnabled } from 'feature-flag';\nimport { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Typography, TypographyOverflow } from 'ui';\n\nimport { getAddress, PointInvoiceAddendum } from '~/data';\n\nimport { InvoiceMeteringPointTable } from '../../../list';\nimport { MeteringPointData } from '../../MeteringPointData';\n\ntype ChartData = {\n date: string;\n value: number;\n};\n\nconst CHART_DATA: ChartData[] = [\n { date: '01.01.2021', value: 10 },\n { date: '02.01.2021', value: 25 },\n { date: '03.01.2021', value: 50 },\n { date: '04.01.2021', value: 40 },\n { date: '05.01.2021', value: 70 },\n];\n\nconst customTooltip: ChartBaseProps['customTooltip'] = ({ payload }) => {\n if (!payload?.length) {\n return ;\n }\n\n const { date, value } = payload[0].payload;\n\n return (\n ({ boxShadow: customShadows.main })}\n >\n \n {date}\n \n\n {value}\n \n );\n};\n\ninterface Props {\n date: string;\n meteringPointInvoice: PointInvoiceAddendum;\n}\n\nexport const InvoiceMeteringPointDetails = ({ date, meteringPointInvoice }: Props): ReactElement => {\n const { t } = useTranslation();\n const { meteringPointId, name, customer, erp, plan, profile, address } = meteringPointInvoice.meteringPoint;\n\n return (\n \n \n {name}\n\n \n ({customer.name})\n \n \n\n \n \n \n {erp && }\n {plan && }\n \n\n \n {address && }\n {profile && }\n \n \n\n \n \n \n\n \n \n \n \n {t('invoices:dailyConsumptionReport')}\n \n\n \n {toMonthNameAndYearString({ date: new Date(date), locale: 'bg' })}\n \n \n\n \n data={CHART_DATA}\n config={[{ accessorKey: 'value' }]}\n xAxisKey=\"date\"\n lineWidth={3}\n hasLegend={false}\n showXAxis={false}\n showYAxis={false}\n showGrid={false}\n tooltip\n customTooltip={customTooltip}\n />\n \n \n \n );\n};\n","import { ReactElement } from 'react';\nimport { Box, Typography, TypographyOverflow } from 'ui';\n\nimport { getAddress, MeteringPoint } from '~/data';\n\ninterface Props {\n meteringPoint: MeteringPoint;\n onClick: (meteringPoint: MeteringPoint) => void;\n}\n\nexport const MeteringPointCard = ({ meteringPoint, onClick }: Props): ReactElement => (\n ({\n '&:hover': { backgroundColor: 'limeGreen.light', cursor: 'pointer' },\n backgroundColor: 'common.white',\n borderBottom: '1px solid',\n borderBottomColor: 'mintGreen.light',\n textDecoration: 'none',\n })}\n onClick={() => onClick(meteringPoint)}\n >\n \n \n {meteringPoint.meteringPointId}\n \n\n {meteringPoint.name && (\n \n {meteringPoint.name}\n \n )}\n \n\n {meteringPoint.address && (\n \n {getAddress(meteringPoint.address)}\n \n )}\n \n);\n","import { ReactElement, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AutocompleteField, Box, createFilterOptions, TextField, useResolution } from 'ui';\n\nimport { PointInvoiceAddendum } from '~/data';\n\nimport { MeteringPointCard } from '../../InvoiceMeteringPointCard';\n\ninterface Props {\n meteringPointInvoices: PointInvoiceAddendum[];\n defaultOption: PointInvoiceAddendum;\n onChange: (meteringPointInvoice: PointInvoiceAddendum) => void;\n dataTestId?: string;\n}\n\nconst buildOptionLabel = (option: PointInvoiceAddendum) => {\n if (!option.meteringPoint.name) {\n return option.meteringPoint.meteringPointId;\n }\n\n return `${option.meteringPoint.meteringPointId}, ${option.meteringPoint.name}`;\n};\n\nexport const InvoiceMeteringPointSwitcher = ({\n meteringPointInvoices,\n defaultOption,\n onChange,\n dataTestId,\n}: Props): ReactElement => {\n const { t } = useTranslation('invoices');\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const [selectedMeteringPoint, setSelectedMeteringPoint] = useState(defaultOption);\n const { isTablet } = useResolution();\n\n const filterOptions = createFilterOptions({\n matchFrom: 'any',\n stringify: (option) =>\n `${option.meteringPoint.name} ${option.meteringPoint.address} ${option.meteringPoint.meteringPointId}`,\n });\n\n const handleMeteringPointClick = (pointInvoiceAddendum: PointInvoiceAddendum) => {\n setSelectedMeteringPoint(pointInvoiceAddendum);\n onChange(pointInvoiceAddendum);\n setOpen(false);\n };\n\n return (\n \n \n isOptionEqualToValue={(option, value) => option.invoiceId === value.invoiceId}\n getOptionLabel={buildOptionLabel}\n value={selectedMeteringPoint}\n options={meteringPointInvoices}\n filterOptions={filterOptions}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n noOptionsText={t('common:noResults')}\n autoHighlight\n renderOption={(_props, pointInvoiceAddendum) => {\n return (\n handleMeteringPointClick(pointInvoiceAddendum)}\n />\n );\n }}\n renderInput={(params) => (\n {\n setSearch(e.target.value);\n }}\n />\n )}\n />\n \n );\n};\n","'use client';\n\nimport { useSearchParams } from 'next/navigation';\nimport { useState } from 'react';\nimport { Box, Paper, useTheme } from 'ui';\n\nimport { PointInvoiceAddendum } from '~/data';\n\nimport { useInvoiceMeteringPoints } from '../../../hooks/useInvoiceMeteringPoints/useInvoiceMeteringPoints';\nimport { InvoiceMeteringPointDetails } from './InvoiceMeteringPointDetails/InvoiceMeteringPointDetails';\nimport { InvoiceMeteringPointSwitcher } from './InvoiceMeteringPointSwitcher/InvoiceMeteringPointSwitcher';\n\ninterface Props {\n invoiceId: string;\n}\n\nexport const MeteringPointsPreview = ({ invoiceId }: Props) => {\n const searchParams = useSearchParams();\n const { data: meteringPointInvoices } = useInvoiceMeteringPoints({ invoiceId });\n\n const meteringPointInvoiceId = searchParams && searchParams.get('pointInvoiceAddendum');\n const selectedMeteringPoint = meteringPointInvoices.find(\n (pointInvoiceAddendum) => pointInvoiceAddendum.invoiceId === meteringPointInvoiceId\n );\n\n const [meteringPointInvoice, setMeteringPointInvoice] = useState(\n selectedMeteringPoint || meteringPointInvoices[0]\n );\n const { customShadows } = useTheme();\n\n const onMeteringPointChange = (invoice: PointInvoiceAddendum) => {\n setMeteringPointInvoice(invoice);\n };\n\n return (\n <>\n \n \n \n\n \n \n \n \n );\n};\n","import { MeteringPointsPreview } from './MeteringPointsPreview';\n\nexport { MeteringPointsPreview };\n","import { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Alert, Box } from 'ui';\n\nimport { usePaymentNotification } from '~/payment';\nimport { PaymentStatus } from '~/services/firestore/payment/types';\n\ntype StatusNotificationMap = {\n [key in PaymentStatus]?: {\n messageKey: string;\n severity: 'success' | 'info';\n color: string;\n };\n};\n\nconst STATUS_NOTIFICATION_MAP: StatusNotificationMap = {\n [PaymentStatus.PROCESSING]: {\n color: 'notifications.orange',\n messageKey: 'paymentProcessingNotification',\n severity: 'info',\n },\n [PaymentStatus.PAID]: {\n color: 'notifications.green',\n messageKey: 'paymentSuccessNotification',\n severity: 'success',\n },\n};\n\ninterface Props {\n invoiceStatus: string;\n}\n\nconst PaymentNotification = ({ invoiceStatus }: Props) => {\n const lastInvoiceStatus = useRef(invoiceStatus);\n const [isMessageVisible, setIsMessageVisible] = useState(false);\n\n const { t } = useTranslation('invoices');\n const { getNotificationStatus } = usePaymentNotification();\n const notificationStatus = getNotificationStatus();\n\n const message =\n notificationStatus && STATUS_NOTIFICATION_MAP[notificationStatus]\n ? STATUS_NOTIFICATION_MAP[notificationStatus]\n : null;\n\n useEffect(() => {\n // Show success message when invoice status changes from Unpaid to Paid\n if (message && invoiceStatus === 'Paid' && lastInvoiceStatus.current === 'Unpaid') {\n setIsMessageVisible(true);\n lastInvoiceStatus.current = invoiceStatus;\n\n setTimeout(() => {\n setIsMessageVisible(false);\n }, 10000);\n }\n\n // Show processing message when invoice status changes to Processing\n if (invoiceStatus === 'Unpaid' && message) {\n setIsMessageVisible(true);\n }\n }, [invoiceStatus, message]);\n\n if (!message || !isMessageVisible) {\n return null;\n }\n\n return (\n \n \n {t(message.messageKey)}\n \n \n );\n};\n\nexport { PaymentNotification };\n","'use client';\n\nimport { useFeatureIsOn } from 'feature-flag';\nimport logger from 'logger';\nimport { useRouter, useSearchParams } from 'next/navigation';\nimport { useTranslation } from 'react-i18next';\nimport { Box, DetailsPageTitle, Paper, useTheme } from 'ui';\n\nimport { useInvoiceBalance } from '~/invoice/hooks/useInvoiceBalance/useInvoiceBalance';\nimport { PaymentNotificationProvider } from '~/payment/hooks';\nimport { GoBackButton } from '~/ui';\n\nimport { useInvoice } from '../../hooks/useInvoice/useInvoice';\nimport { DownloadButtons } from '../shared';\nimport { InvoiceSummary } from './InvoiceSummary/InvoiceSummary';\nimport { MeteringPointsPreview } from './MeteringPointsPreview';\nimport { PaymentNotification } from './PaymentNotification';\n\ninterface Props {\n invoiceId: string;\n}\n\ntype PerformGoBackArgs = {\n push: (path: string) => void;\n back: () => void;\n ref?: string | null;\n};\n\nconst performGoBack = ({ push, back, ref }: PerformGoBackArgs): void => {\n if (ref === 'epay') {\n push('/invoices');\n return;\n }\n\n back();\n};\n\nexport const InvoiceDetails = ({ invoiceId }: Props) => {\n const { customShadows } = useTheme();\n const isEPayEnabled = useFeatureIsOn('epay');\n\n const { push, back } = useRouter();\n const searchParams = useSearchParams();\n\n const { t } = useTranslation('invoices');\n\n const { data: invoice } = useInvoice({ invoiceId });\n\n const statusText = useInvoiceBalance({ balance: invoice?.balance });\n const status = t(`${invoice?.status.toLowerCase()}`);\n\n if (!invoice) {\n logger.debug('Invoice not found');\n return null;\n }\n\n return (\n \n \n performGoBack({ back, push, ref: searchParams?.get('ref') })} />}\n rightButtons={}\n />\n \n\n {invoice && (\n <>\n {isEPayEnabled && }\n\n \n \n \n \n \n\n \n \n )}\n \n );\n};\n","import { Grid, TypographyOverflow } from 'ui';\n\nexport const CompanyInvoiceDetails = ({ data }: { data: string[] }) => {\n return (\n \n {data.map((text) => (\n \n {text}\n \n ))}\n \n );\n};\n","import { ReactNode } from 'react';\nimport { Grid, TypographyOverflow, useResolution } from 'ui';\n\nimport { CompanyInvoiceDetails } from './CompanyInvoiceDetails';\n\ninterface Props {\n avatar: ReactNode;\n description: string;\n name: string;\n address: string;\n detailedData: string[];\n}\n\nexport const CompanyAvatarDetails = ({ avatar, name, address, detailedData, description }: Props) => {\n const { isTablet } = useResolution();\n\n return (\n <>\n ({ color: theme.palette.grey[500] })}\n lines={2}\n lineHeight={1}\n height={30}\n >\n {description}\n \n\n \n {isTablet && (\n \n {avatar}\n \n )}\n\n \n \n {name}\n \n \n {address}\n \n\n {isTablet && }\n \n\n {!isTablet && (\n \n \n \n )}\n \n \n );\n};\n","'use client';\n\nimport { styled } from 'ui';\n\nexport const GradientDivider = styled('div')(({ theme }) => ({\n background: `transparent ${theme.palette.gradient.rainbow} 0% 0% no-repeat padding-box`,\n borderRadius: 10,\n height: 7,\n margin: `${theme.spacing(4)} 0`,\n width: '100%',\n}));\n","'use client';\n\nimport { formatDate } from 'dates';\nimport { useFeatureIsOn } from 'feature-flag';\nimport { PaymentEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useRouter } from 'next/navigation';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Avatar, Box, Button, Grid, Typography } from 'ui';\n\nimport { getAddress } from '~/data';\nimport { usePaymentNotification } from '~/payment';\n\nimport { useInvoice } from '../../../hooks/useInvoice/useInvoice';\nimport { InvoiceDues, InvoiceItemsTable } from '../../list';\nimport { InvoiceDates } from '../../shared';\nimport { CompanyAvatarDetails } from '../CompanyAvatarDetails';\nimport { GradientDivider } from './styled';\n\ninterface Props {\n invoiceId: string;\n}\n\nexport const InvoiceSummary = ({ invoiceId }: Props) => {\n const { t } = useTranslation();\n const { push } = useRouter();\n const isEPayEnabled = useFeatureIsOn('epay');\n const { isPaymentAvailable } = usePaymentNotification();\n\n const navigateToPayment = () => {\n trackTagManagerEvent(PaymentEvents.choosePaymentMethod, { invoiceId });\n push(`/invoices/${invoiceId}/payment`);\n };\n\n const { data: invoice } = useInvoice({ invoiceId });\n\n return (\n invoice && (\n <>\n \n \n }\n description={t('invoices:recipient')}\n name={invoice.customer.name}\n address={getAddress(invoice.customer.address)}\n detailedData={[\n t('invoices:bulstat', { value: invoice.customer.customerId }),\n t('invoices:vatId', { value: invoice.customer.vatNo }),\n ]}\n />\n \n\n \n \n }\n description={t('invoices:supplier')}\n name={t('brand:companyName')}\n address={t('brand:address')}\n detailedData={[\n t('invoices:bulstat', { value: t('brand:bulstat') }),\n t('invoices:vatId', { value: t('brand:bulstat') }),\n t('invoices:revenueTaxNumber', { value: t('brand:revenueTaxNumber') }),\n t('invoices:accountablePerson', { value: t('brand:accountablePerson') }),\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 {isEPayEnabled && invoice.status === 'Unpaid' && isPaymentAvailable() && (\n \n )}\n \n \n )\n );\n};\n","import { InvoiceCard } from './InvoiceCard/InvoiceCard';\nimport { InvoiceDetails } from './InvoiceDetails';\nimport { InvoiceSummary } from './InvoiceSummary/InvoiceSummary';\n\nexport { InvoiceCard, InvoiceDetails, InvoiceSummary };\n","import { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { CardListContainer } from 'ui';\n\nimport { Invoice, PointInvoiceAddendum } from '~/data';\n\nimport { InvoiceCard } from '../detail';\n\nexport const InvoiceCardList = ({ list }: { list: Invoice[] | PointInvoiceAddendum[] }) => {\n return (\n {\n return (\n trackTagManagerEvent(BlenderEvents.invoiceDetails)}\n />\n );\n })}\n />\n );\n};\n","'use client';\n\nimport { useParams } from 'next/navigation';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Typography } from 'ui';\n\ninterface Props {\n Component: React.ElementType;\n}\n\nconst InvoiceDetailsContainer = ({ Component }: Props) => {\n const { t } = useTranslation();\n\n const params = useParams();\n const id = params && params.id;\n\n if (typeof id !== 'string') {\n return (\n \n {t('invalidInvoiceNumber')}\n \n );\n }\n\n return ;\n};\n\nexport default InvoiceDetailsContainer;\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport {\n CurrencyFormat,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n useTheme,\n} from 'ui';\n\nimport { InvoiceLineItem } from '~/data';\n\nexport const InvoiceItemsTable = ({ items }: { items: InvoiceLineItem[] }) => {\n const theme = useTheme();\n const { t } = useTranslation('invoices');\n\n return (\n <>\n \n \n \n \n {t('service')}\n {t('unit')}\n {t('quantity')}\n {t('price')}\n {t('amount')}\n \n \n\n \n {items.map(({ invoiceLineItemId, name, unit, quantity, price, totalCost }) => (\n \n {name} *\n {unit}\n {quantity}\n {price}\n \n \n \n \n ))}\n \n
\n
\n\n \n {t('invoiceItemsTableNote')}\n \n \n );\n};\n","import { Invoice } from '~/data';\nimport { useLayoutStore } from '~/store';\nimport { NoResultsMessage } from '~/ui';\n\nimport { InvoiceCardList } from './InvoiceCardList';\nimport { InvoiceTable } from './InvoiceTable';\n\nexport const InvoiceList = ({ list }: { list: Invoice[] }) => {\n const { layout } = useLayoutStore();\n\n if (!list) {\n return ;\n }\n\n if (layout === 'table') {\n return ;\n }\n\n return ;\n};\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport {\n Box,\n CurrencyFormat,\n Stack,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n useTheme,\n} from 'ui';\n\nimport { InvoiceLineItem } from '~/data';\n\ninterface Props {\n totalInvoiceCost: number;\n items: InvoiceLineItem[];\n}\n\nexport const InvoiceMeteringPointTable = ({ items, totalInvoiceCost }: Props) => {\n const theme = useTheme();\n const { t } = useTranslation('invoices');\n\n return (\n <>\n \n \n \n \n {t('service')}\n {t('unit')}\n {t('quantity')}\n {t('price')}\n {t('amount')}\n \n \n\n \n {items.map(({ invoiceLineItemId, name, unit, quantity, price, totalCost }) => (\n \n {name} *\n {unit}\n {quantity}\n {price}\n \n \n \n \n ))}\n \n
\n
\n\n \n {t('invoiceItemsTableNote')}\n \n\n \n \n {t('total')}:\n \n\n \n \n \n \n \n );\n};\n","'use client';\n\nimport { formatDate } from 'dates';\nimport { useFeatureIsOn } from 'feature-flag';\nimport Link from 'next/link';\nimport { memo, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button, DataTable, DataTableColumns, DownloadIconButton, Typography } from 'ui';\n\nimport { Invoice } from '~/data';\n\nimport getInvoicePath from '../../helpers/getInvoicePath';\nimport { recordInvoiceDownload } from '../../helpers/getInvoicePath/recordInvoiceDownload';\n\ntype RenderProps = {\n row: Invoice;\n};\n\nconst DownloadInvoiceButton = ({ row }: RenderProps) =>\n row.pdfUrl && (\n {\n recordInvoiceDownload(row);\n }}\n />\n );\n\nconst InvoicePathButton = memo(({ row }: RenderProps) => {\n const { t } = useTranslation('invoices');\n\n return (\n \n );\n});\n\nconst CustomerName = ({ row }: RenderProps) => {row.customer.name};\n\ntype CellRenderMap = {\n [key: string]: (props: RenderProps) => React.ReactNode;\n};\n\nconst CELL_RENDER_MAP: CellRenderMap = {\n customer: CustomerName,\n downloadUrl: DownloadInvoiceButton,\n path: InvoicePathButton,\n};\n\nexport const InvoiceTable = ({ list }: { list: Invoice[] }) => {\n const { t } = useTranslation('invoices');\n const isDownloadEnabled = useFeatureIsOn('invoice_download_pdf');\n\n const tableColumns = useMemo(() => {\n const columns: DataTableColumns[] = [\n { accessor: 'customer', header: t('table.customerName') },\n { accessor: 'invoiceNumber', header: t('table.invoiceNumber') },\n {\n accessor: 'invoiceDate',\n header: t('table.date'),\n value: ({ row }: { row: Invoice }) => formatDate({ date: row.invoiceDate }),\n },\n {\n accessor: 'paymentDeadline',\n header: t('table.dueDate'),\n value: ({ row }: { row: Invoice }) => formatDate({ date: row.paymentDeadline }),\n },\n { accessor: 'meteringPointsCount', header: t('table.objects') },\n { accessor: 'totalInvoiceCost', header: t('table.amount') },\n {\n accessor: 'status',\n header: t('table.status'),\n value: ({ row }: { row: Invoice }) =>\n t(`invoices:${row.status === 'Part-paid' ? 'partPaid' : row.status.toLowerCase()}`),\n },\n ];\n\n if (isDownloadEnabled) {\n columns.push({ header: t('table.download'), virtualColumn: 'downloadUrl' });\n }\n\n columns.push({ header: '', virtualColumn: 'path' });\n\n return columns;\n }, [isDownloadEnabled, t]);\n\n return (\n \n columns={tableColumns}\n uid=\"invoiceNumber\"\n data-testid=\"invoice-table\"\n data={list}\n renderCell={(row, accessor) => {\n const Cell = CELL_RENDER_MAP[accessor];\n\n if (!Cell) {\n return null;\n }\n\n return ;\n }}\n />\n );\n};\n","'use client';\n\nimport { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useTranslation } from 'react-i18next';\nimport { MobileSwiper, Typography, useResolution } from 'ui';\n\nimport { Invoice, PointInvoiceAddendum } from '~/data';\n\nimport { InvoiceCard } from '../detail';\nimport { InvoiceCardList } from './InvoiceCardList';\n\ninterface Props {\n list: Invoice[] | PointInvoiceAddendum[];\n}\n\nexport const RecentInvoiceList = ({ list }: Props) => {\n const { isDesktop } = useResolution();\n const { t } = useTranslation();\n\n if (!list.length) {\n return {t('invoices:noInvoicesFound')};\n }\n\n const recentInvoiceList = list.map((invoice) => (\n trackTagManagerEvent(BlenderEvents.invoiceDetails)}\n />\n ));\n\n return isDesktop ? : ;\n};\n","'use client';\n\nimport { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ListPageTitle, SearchControl, SortControl, SortControlOption, useResolution } from 'ui';\n\nimport { CustomerPicker, useSelectedCustomerIds } from '~/customer';\nimport { InvoiceOrderBy } from '~/data/api';\nimport { LayoutSwitcher, ScrollableViewWithData } from '~/ui';\n\nimport { useInvoices } from '../../hooks/useInvoices/useInvoices';\nimport { InvoiceList } from './InvoiceList';\n\nconst UserInvoices = () => {\n const { t } = useTranslation();\n\n const { selectedCustomerIds: selectedCustomersIds } = useSelectedCustomerIds();\n const [orderBy, setOrderBy] = useState('-invoice_date');\n const [invoiceNumber, setInvoiceNumber] = useState();\n\n const { isTablet } = useResolution();\n\n const handleSearch = (invoiceNumberQuery: string) => {\n trackTagManagerEvent(BlenderEvents.invoiceSearch);\n setInvoiceNumber(invoiceNumberQuery);\n };\n\n const handleSortChange = (option: SortControlOption) => {\n trackTagManagerEvent(BlenderEvents.invoiceOrderBy);\n setOrderBy(option.order);\n };\n\n const sortOptions: SortControlOption[] = [\n { key: 'date', label: t('invoices:sortByDate'), order: '-invoice_date' },\n { key: 'amount', label: t('invoices:sortByAmountAsc'), order: '+total_invoice_cost' },\n { key: 'amount', label: t('invoices:sortByAmount'), order: '-total_invoice_cost' },\n ];\n\n return (\n <>\n \n }\n desktopActions={\n <>\n \n \n \n \n }\n />\n\n \n \n );\n};\n\nexport default UserInvoices;\n","import { Box, CurrencyFormat, Stack, SupportedCurrencies, Typography } from 'ui';\n\nexport const InvoiceDues = ({\n items,\n currency,\n}: {\n items: { name: string; value: number }[];\n currency: SupportedCurrencies;\n}) =>\n items.map(({ name, value }) => (\n \n \n {name}:\n \n\n \n \n \n \n ));\n","import InvoiceDetailsContainer from './InvoiceDetailsContainer';\nimport { InvoiceDues } from './InvoiceDues';\nimport { InvoiceItemsTable } from './InvoiceItemsTable';\nimport { InvoiceList } from './InvoiceList';\nimport { InvoiceMeteringPointTable } from './InvoiceLocationTable';\nimport { RecentInvoiceList } from './RecentInvoiceList';\nimport UserInvoices from './UserInvoices';\n\nexport {\n InvoiceDetailsContainer,\n InvoiceDues,\n InvoiceItemsTable,\n InvoiceList,\n InvoiceMeteringPointTable,\n RecentInvoiceList,\n UserInvoices,\n};\n","'use client';\n\nimport { Typography } from 'ui';\n\ninterface Props {\n title: string;\n align?: 'left' | 'center';\n}\n\nexport const Title = ({ title, align = 'left' }: Props) => {\n return (\n \n {title}\n \n );\n};\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport { Box, Paper, Typography } from 'ui';\n\nimport { Title } from './Title';\n\nexport const PaymentNotAvailable = () => {\n const { t } = useTranslation('invoices');\n\n return (\n \n \n \n \n </Box>\n\n <Box mb={4}>\n <Typography variant=\"body1\" textAlign=\"center\">\n {t('paymentNotAvailable.description')}\n </Typography>\n </Box>\n </Paper>\n </Box>\n );\n};\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport { Box, Card, Typography, useTheme } from 'ui';\n\nimport { EPayButton, PaymentOption } from '~/payment';\n\ninterface Props {\n invoiceId: string;\n invoiceNumber: string;\n totalInvoiceCost: number;\n paymentOption: PaymentOption;\n onPaymentInit: () => Promise<void>;\n}\n\ntype TranslationMap = {\n [key in PaymentOption]: string;\n};\n\nconst TRANSLATION_MAP: TranslationMap = {\n credit_paydirect: 'ePayCard',\n paylogin: 'ePayProfile',\n};\n\nexport const PaymentOptionCard = ({\n invoiceNumber,\n invoiceId,\n totalInvoiceCost,\n paymentOption,\n onPaymentInit,\n}: Props) => {\n const { t } = useTranslation('invoices');\n const { customShadows } = useTheme();\n\n const translationKey = TRANSLATION_MAP[paymentOption];\n\n return (\n <Card\n sx={{\n borderRadius: 4,\n boxShadow: customShadows.main,\n height: '100%',\n p: 2,\n }}\n >\n <Box>\n <Typography variant=\"h6\" color=\"info.main\" fontWeight=\"bold\">\n {t(`${translationKey}.title`)}\n </Typography>\n </Box>\n\n <Box mb={2}>\n <Typography variant=\"body2\">{t(`${translationKey}.description`)}</Typography>\n </Box>\n\n <EPayButton\n invoiceId={invoiceId}\n invoiceNumber={invoiceNumber}\n amount={totalInvoiceCost}\n paymentOption={paymentOption}\n onPaymentInit={onPaymentInit}\n />\n </Card>\n );\n};\n","'use client';\n\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Loader, Paper, useTheme } from 'ui';\n\nimport { formatNumberToCurrency } from '~/invoice/helpers/formatNumberToCurrency';\nimport { usePaymentNotification } from '~/payment/hooks';\n\nimport { PaymentNotAvailable } from './PaymentNotAvailable';\nimport { PaymentOptionCard } from './PaymentOptionCard';\nimport { Title } from './Title';\n\ninterface Props {\n invoiceId: string;\n invoiceNumber: string;\n totalInvoiceCost: number;\n}\n\nexport const PaymentMethods = ({ invoiceId, invoiceNumber, totalInvoiceCost }: Props) => {\n const { customShadows } = useTheme();\n const { t } = useTranslation('invoices');\n const { isLoading, isPaymentAvailable } = usePaymentNotification();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const onPaymentInit = async () => {\n setIsSubmitting(true);\n };\n\n if (isLoading()) {\n return (\n <Box p={8} display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n <Loader />\n </Box>\n );\n }\n\n if (!isPaymentAvailable() && !isSubmitting) {\n return <PaymentNotAvailable />;\n }\n\n return (\n <Box mb={4}>\n <Paper\n sx={{\n boxShadow: customShadows.main,\n p: {\n xs: 2,\n },\n }}\n >\n <Title title={t('paymentAmount', { value: formatNumberToCurrency({ value: totalInvoiceCost }) })} />\n\n <Box mb={2}>\n <Title title={t('pay')} />\n </Box>\n\n <Box mb={4}>\n <PaymentOptionCard\n invoiceId={invoiceId}\n invoiceNumber={invoiceNumber}\n totalInvoiceCost={totalInvoiceCost}\n paymentOption=\"paylogin\"\n onPaymentInit={onPaymentInit}\n />\n </Box>\n\n <Box mb={2}>\n <PaymentOptionCard\n invoiceId={invoiceId}\n invoiceNumber={invoiceNumber}\n totalInvoiceCost={totalInvoiceCost}\n paymentOption=\"credit_paydirect\"\n onPaymentInit={onPaymentInit}\n />\n </Box>\n </Paper>\n </Box>\n );\n};\n","'use client';\n\nimport logger from 'logger';\nimport { useTranslation } from 'react-i18next';\nimport { Box, DetailsPageTitle } from 'ui';\n\nimport { useInvoiceBalance } from '~/invoice/hooks/useInvoiceBalance/useInvoiceBalance';\nimport { PaymentNotificationProvider } from '~/payment/hooks';\nimport { GoBackButton } from '~/ui';\n\nimport { useInvoice } from '../../hooks/useInvoice/useInvoice';\nimport { DownloadButtons } from '../shared';\nimport { PaymentMethods } from './PaymentMethods';\n\ninterface Props {\n invoiceId: string;\n}\n\nexport const InvoicePayment = ({ invoiceId }: Props) => {\n const { t } = useTranslation('invoices');\n\n const { data: invoice } = useInvoice({ invoiceId });\n\n const statusText = useInvoiceBalance({ balance: invoice?.balance });\n const status = t(`${invoice?.status.toLowerCase()}`);\n\n if (!invoice) {\n logger.debug('Invoice not found');\n return null;\n }\n\n return (\n <PaymentNotificationProvider invoice={invoice}>\n <Box mb={4}>\n <DetailsPageTitle\n title={t('invoice')}\n subtitle={invoice?.invoiceNumber || ''}\n secondaryTitle={t('status')}\n secondarySubtitle={statusText || status}\n leftButtons={<GoBackButton />}\n rightButtons={<DownloadButtons invoiceId={invoiceId} />}\n />\n </Box>\n\n {invoice && (\n <PaymentMethods\n invoiceId={invoiceId}\n invoiceNumber={invoice.invoiceNumber}\n totalInvoiceCost={invoice.totalInvoiceCost}\n />\n )}\n </PaymentNotificationProvider>\n );\n};\n","import { IfFeatureEnabled } from 'feature-flag';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Actions, addAction } from 'rum';\nimport { Box, DownloadButton, useResolution } from 'ui';\n\nimport { recordInvoiceDownload } from '../../helpers/getInvoicePath/recordInvoiceDownload';\nimport { useInvoice } from '../../hooks/useInvoice/useInvoice';\n\ninterface Props {\n invoiceId: string;\n}\n\nexport const DownloadButtons = ({ invoiceId }: Props) => {\n const { t } = useTranslation('invoices');\n const { isTablet } = useResolution();\n const { data: invoice } = useInvoice({ invoiceId });\n\n const buttonSize = isTablet ? 'lg' : 'sm';\n\n return (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n }}\n >\n {invoice && invoice.hourlyInquiryUrl && (\n <IfFeatureEnabled feature=\"invoice_hourly_report\">\n <DownloadButton\n downloadUrl={invoice.hourlyInquiryUrl}\n size={buttonSize}\n variant=\"secondary\"\n onClick={() => {\n addAction(Actions.BLENDER_DOWNLOAD_HOURLY_REPORT, {\n invoiceId: invoice.invoiceId,\n invoiceNumber: invoice.invoiceNumber,\n pdfUrl: invoice.pdfUrl,\n });\n }}\n >\n {t('downloadHourlyReport')}\n </DownloadButton>\n </IfFeatureEnabled>\n )}\n {invoice && invoice.pdfUrl && (\n <IfFeatureEnabled feature=\"invoice_download_pdf\">\n <Box ml={1}>\n <DownloadButton\n downloadUrl={invoice.pdfUrl}\n size={buttonSize}\n onClick={() => {\n recordInvoiceDownload(invoice);\n }}\n >\n {t('downloadPdf')}\n </DownloadButton>\n </Box>\n </IfFeatureEnabled>\n )}\n </Box>\n );\n};\n","import { formatDate } from 'dates';\nimport { Trans } from 'react-i18next';\nimport { Typography } from 'ui';\n\nexport const InvoiceDates = ({ date }: { date: Date }) => {\n return (\n <Typography>\n <Trans\n i18nKey=\"invoices:date\"\n values={{ date: formatDate({ date }) }}\n components={[<Typography display=\"inline\" component=\"span\" fontWeight=\"bold\" />]}\n />\n </Typography>\n );\n};\n","import { DownloadButtons } from './DownloadButtons';\nimport { InvoiceDates } from './InvoiceDates';\n\nexport { DownloadButtons, InvoiceDates };\n","export const formatNumberToCurrency = ({ value, currency = 'BGN' }: { value: number; currency?: 'BGN' | 'EUR' }) =>\n new Intl.NumberFormat('bg-BG', { currency, style: 'currency' }).format(value);\n","import { Invoice } from '~/data';\n\nconst getInvoicePath = (invoice: Pick<Invoice, 'invoiceId' | 'parentId'>): string => {\n if (invoice.parentId) {\n return `/invoices/${invoice.parentId}?pointInvoiceAddendum=${invoice.invoiceId}`;\n }\n\n return `/invoices/${invoice.invoiceId}`;\n};\n\nexport default getInvoicePath;\n","import getInvoicePath from './getInvoicePath';\n\nexport default getInvoicePath;\n","import { Actions, addAction } from 'rum';\n\nimport { Invoice } from '~/data';\n\nexport const recordInvoiceDownload = (invoice: Pick<Invoice, 'invoiceId' | 'invoiceNumber' | 'pdfUrl'>) => {\n addAction(Actions.BLENDER_DOWNLOAD_INVOICE_PDF, {\n invoiceId: invoice.invoiceId,\n invoiceNumber: invoice.invoiceNumber,\n pdfUrl: invoice.pdfUrl,\n });\n};\n","import { useSuspenseQuery } from '@tanstack/react-query';\n\nimport { BaseHTTPResponse, createDataCacheKeys, InvoiceDetails, transformInvoice } from '~/data';\nimport { ResponseError, useInvoiceApi } from '~/data/api';\n\nconst cacheKeys = createDataCacheKeys('invoices');\n\ntype UseInvoicesResult = BaseHTTPResponse<InvoiceDetails | undefined> & {\n refetch: () => void;\n};\n\ntype InvoiceOptions = {\n invoiceId: string;\n};\n\nexport const useInvoice = ({ invoiceId }: InvoiceOptions): UseInvoicesResult => {\n const api = useInvoiceApi();\n\n const { data, error, isLoading, isError, isSuccess, refetch } = useSuspenseQuery<InvoiceDetails, ResponseError>({\n queryFn: () => api.get(invoiceId),\n queryKey: cacheKeys.detail(invoiceId),\n });\n\n return {\n data: transformInvoice(data),\n error,\n isError,\n isLoading,\n isSuccess,\n refetch,\n };\n};\n","import { useTranslation } from 'react-i18next';\n\nimport { formatNumberToCurrency } from '~/invoice/helpers/formatNumberToCurrency';\n\nexport const useInvoiceBalance = ({ balance }: { balance: number | null | undefined }) => {\n const { t } = useTranslation('invoices');\n\n if (!balance) {\n return null;\n }\n\n const balanceType = balance > 0 ? 'balance' : 'overpaidBalance';\n const balanceCurrency = formatNumberToCurrency({ value: Math.abs(balance) });\n\n return t(`invoices:${balanceType}`, {\n value: balanceCurrency,\n });\n};\n","import { createDataCacheKeys, Invoice } from '~/data';\nimport {\n InvoiceFilter,\n InvoiceOrderBy,\n useInvoiceApi,\n UsePaginatedQueryResult,\n useSuspensePaginatedQuery,\n} from '~/data/api';\n\nconst cacheKeys = createDataCacheKeys('invoices');\n\nexport type InvoicesOptions = {\n orderBy?: InvoiceOrderBy;\n filterBy?: InvoiceFilter;\n size?: number;\n};\n\nexport type UseInvoicesResult = UsePaginatedQueryResult<Invoice>;\n\nexport const useInvoices = (\n { orderBy, filterBy, size }: InvoicesOptions = { filterBy: undefined, orderBy: '-invoice_date' }\n): UseInvoicesResult => {\n const api = useInvoiceApi();\n\n const { data, isLoading, isError, isSuccess, error, fetchNextPage } = useSuspensePaginatedQuery<Invoice>({\n cacheKey: [...cacheKeys.list({ filterBy, orderBy })],\n fetchAll: (pageParams) =>\n api.getAll({ filter: filterBy, orderBy, page: { page: pageParams.page, size: size || pageParams.size } }),\n });\n\n return {\n data,\n error,\n fetchNextPage,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","export { InvoicePayment } from './InvoicePayment';\n","import { InvoiceDetails, InvoiceSummary } from './components/detail';\nimport { InvoiceDetailsContainer, InvoiceList, RecentInvoiceList } from './components/list';\nimport { InvoicePayment } from './components/payment';\nimport { useInvoice } from './hooks/useInvoice/useInvoice';\nimport { useInvoices } from './hooks/useInvoices/useInvoices';\n\nexport {\n InvoiceDetails,\n InvoiceDetailsContainer,\n InvoiceList,\n InvoicePayment,\n InvoiceSummary,\n RecentInvoiceList,\n useInvoice,\n useInvoices,\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box } from 'ui';\n\nimport { useCreateMeteringPoint } from '~/meteringPoint';\nimport { OptionCard, StepTitle } from '~/ui';\n\nexport const AccountOptionsStep = () => {\n const { t } = useTranslation('createMeteringPointWizard');\n const { goToNextStep } = useCreateMeteringPoint();\n\n return (\n <Box>\n <Box mb={2}>\n <StepTitle>{t('steps.accountOptions.title')}</StepTitle>\n </Box>\n\n <Box mb={2}>\n <OptionCard title={t('steps.accountOptions.currentAccount')} onClick={goToNextStep} />\n </Box>\n\n <OptionCard title={t('steps.accountOptions.newAccount')} onClick={() => {}} />\n </Box>\n );\n};\n","import { AccountOptionsStep } from './AccountOptionsStep';\n\nexport { AccountOptionsStep };\n","import { useTranslation } from 'react-i18next';\nimport { Box, Link, Typography } from 'ui';\n\ninterface ErrorMessageProps {\n message?: string;\n}\n\nexport const ErrorMessage = ({ message }: ErrorMessageProps) => {\n const { t } = useTranslation('createMeteringPointWizard');\n\n return (\n <Box display=\"flex\" flex={1} alignItems=\"center\" justifyContent=\"center\" flexDirection=\"column\" height=\"100%\">\n <Box display=\"flex\" flex={1} alignItems=\"center\" justifyContent=\"center\" flexDirection=\"column\">\n <Box mb={2}>\n <Typography data-testid=\"contract-generation-error\" variant=\"h5\">\n {t('steps.completion.errorOnContractGenerationTitle')}\n </Typography>\n </Box>\n\n {message && (\n <Typography variant=\"body1\" textAlign=\"center\">\n {message}\n </Typography>\n )}\n\n <Typography variant=\"body1\" textAlign=\"center\">\n {t('steps.completion.errorOnContractGeneration')}\n </Typography>\n\n <Link href={`mailto:${t('steps.completion.supportEmail')}`}>{t('steps.completion.supportEmail')}</Link>\n </Box>\n </Box>\n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box, Loader, Typography } from 'ui';\n\nexport const LoadingMessage = () => {\n const { t } = useTranslation('createMeteringPointWizard');\n\n return (\n <Box display=\"flex\" flex={1} alignItems=\"center\" justifyContent=\"flex-start\" flexDirection=\"column\" height=\"100%\">\n <Box mb={2}>\n <Typography variant=\"h5\">{t('steps.completion.loadingMessageTitle')}</Typography>\n </Box>\n\n <Box display=\"flex\" flex={1} alignItems=\"center\" justifyContent=\"center\" flexDirection=\"column\">\n <Box mb={1}>\n <Typography data-testid=\"contract-generation-loading-message\" variant=\"body1\" textAlign=\"center\">\n {t('steps.completion.loadingMessage1')}\n </Typography>\n </Box>\n\n <Box mb={4}>\n <Typography variant=\"body1\" textAlign=\"center\">\n {t('steps.completion.loadingMessage2')}\n </Typography>\n </Box>\n\n <Loader />\n </Box>\n </Box>\n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { Box, IconButton, Typography } from 'ui';\nimport { DeleteOutline } from 'ui/icons';\n\nimport { isCompletedAddress, isCompletedMeteringPoint, MeteringPoint } from '~/services/firestore';\nimport { OptionCard } from '~/ui';\n\nconst Value = ({ children }: { children: React.ReactNode }) => (\n <Typography display=\"inline\" variant=\"body2\" fontWeight={400}>\n {children}\n </Typography>\n);\n\ninterface LabelProps {\n children: React.ReactNode;\n hasError?: boolean;\n}\n\nconst Label = ({ children, hasError }: LabelProps) => (\n <Typography display=\"inline\" variant=\"body1\" color={hasError ? 'error.main' : undefined} fontWeight={600}>\n {children}\n </Typography>\n);\n\ninterface MeteringPointCardProps {\n meteringPoint: MeteringPoint;\n editMeteringPoint: () => void;\n removeMeteringPoint: () => void;\n}\n\nexport const MeteringPointCard = ({\n meteringPoint,\n editMeteringPoint,\n removeMeteringPoint,\n}: MeteringPointCardProps) => {\n const { t } = useTranslation('createMeteringPointWizard');\n const { name, meteringPointId, address } = meteringPoint;\n const isValid = isCompletedMeteringPoint(meteringPoint);\n const isAddressValid = isCompletedAddress(address);\n\n return (\n <OptionCard\n title={name || t('steps.confirmation.missingData')}\n titleColor={!name ? 'error.main' : undefined}\n onClick={editMeteringPoint}\n selected={!isValid}\n selectedColor=\"error.main\"\n action={\n <IconButton\n onClick={(event) => {\n event.stopPropagation();\n removeMeteringPoint();\n }}\n data-testid={`remove-metering-point-${meteringPointId}`}\n >\n <DeleteOutline fontSize=\"medium\" />\n </IconButton>\n }\n data-testid={`edit-metering-point-${meteringPointId}`}\n >\n <Box>\n <Label hasError={!meteringPointId}>{t('meteringPointId')}: </Label>\n <Value>{meteringPointId}</Value>\n </Box>\n\n <Box>\n <Label hasError={!isAddressValid}>{t('address')}: </Label>\n {address?.region && <Value>{address?.region},</Value>}\n <Value>\n {address?.postCode && `${address.postCode},`} {address?.settlement && `${address.settlement},`}\n </Value>\n {address?.area && <Value>{address?.area},</Value>}\n <Value>\n {address?.addressLine1} {address?.addressLine2}\n </Value>\n\n {address?.region ||\n address?.postCode ||\n address?.settlement ||\n address?.addressLine1 ||\n address?.addressLine2 ? null : (\n <Value>{t('steps.confirmation.missingData')}</Value>\n )}\n </Box>\n </OptionCard>\n );\n};\n","'use client';\n\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Button, Typography } from 'ui';\n\nimport { parseConsumerResponseError, ResponseError } from '~/data/api';\nimport { useCreateMeteringPoint } from '~/meteringPoint';\nimport { isCompletedMeteringPoint } from '~/services/firestore';\nimport { StepTitle } from '~/ui';\n\nimport { ErrorMessage } from './ErrorMessage';\nimport { LoadingMessage } from './LoadingMessage';\nimport { MeteringPointCard } from './MeteringPointCard';\n\ntype HasOnCompletionError = {\n error: boolean;\n errorMessage?: string;\n};\n\nexport const CompletionStep = () => {\n const [isLoading, setIsLoading] = useState(false);\n const [hasOnCompletionError, setHasOnCompletionError] = useState<HasOnCompletionError>({\n error: false,\n errorMessage: undefined,\n });\n const { t } = useTranslation('createMeteringPointWizard');\n const { onCompletion, setCurrentStep, getAllMeteringPoints, setCurrentMeteringPointIndex, removeMeteringPoint } =\n useCreateMeteringPoint();\n\n const meteringPoints = getAllMeteringPoints();\n\n const hasMeteringPointMissingData = !meteringPoints.every(isCompletedMeteringPoint);\n const isHidden = isLoading || hasOnCompletionError.error;\n\n const isDisabled = meteringPoints.length === 0 || hasMeteringPointMissingData;\n\n const goToCreateMeteringPoint = () => {\n setCurrentMeteringPointIndex(meteringPoints.length);\n setCurrentStep('name');\n };\n\n const editMeteringPoint = (index: number) => {\n setCurrentMeteringPointIndex(index);\n setCurrentStep('confirmation');\n };\n\n const onCompletionButtonPress = async () => {\n trackTagManagerEvent(OnboardingEvents.submitMeteringPoints);\n setIsLoading(true);\n\n try {\n await onCompletion();\n } catch (error) {\n let completionError;\n\n if (error instanceof ResponseError) {\n completionError = await parseConsumerResponseError(error);\n\n if (completionError) {\n completionError = t(`steps.completion.${completionError}`);\n }\n }\n\n setHasOnCompletionError({\n error: true,\n errorMessage: completionError,\n });\n }\n\n setIsLoading(false);\n };\n\n return (\n <>\n <Box display=\"flex\" flexDirection=\"column\" flex={1} sx={{ overflowY: 'auto' }}>\n {!isLoading && !hasOnCompletionError.error && <StepTitle>{t('steps.completion.title')}</StepTitle>}\n {hasMeteringPointMissingData && (\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <Typography variant=\"body1\" color=\"error\">\n {t('steps.confirmation.error')}\n </Typography>\n </Box>\n )}\n\n {isLoading && <LoadingMessage />}\n\n {!isLoading && !hasOnCompletionError.error && (\n <>\n {meteringPoints.map((meteringPoint, index) => (\n <Box mb={2} key={meteringPoint.meteringPointId}>\n <MeteringPointCard\n meteringPoint={meteringPoint}\n editMeteringPoint={() => editMeteringPoint(index)}\n removeMeteringPoint={() => removeMeteringPoint(index)}\n />\n </Box>\n ))}\n\n {meteringPoints.length === 0 && (\n <Box display=\"flex\" flex={1} flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <Typography variant=\"h6\" color=\"error\">\n {t('steps.completion.error')}\n </Typography>\n </Box>\n )}\n </>\n )}\n\n {hasOnCompletionError.error && <ErrorMessage message={hasOnCompletionError.errorMessage} />}\n </Box>\n\n <Box>\n {!isHidden && (\n <Box display=\"flex\" flexDirection=\"column\" mt={2} gap={2}>\n <Button\n size=\"lg\"\n fullWidth\n onClick={goToCreateMeteringPoint}\n data-testid=\"create-metering-point-button\"\n color=\"gradient\"\n >\n {t('createMeteringPoint')}\n </Button>\n\n <Button\n size=\"lg\"\n color=\"lightGrey\"\n fullWidth\n onClick={onCompletionButtonPress}\n disabled={isDisabled}\n data-testid=\"generate-contract-button\"\n >\n {t('continue')}\n </Button>\n </Box>\n )}\n </Box>\n </>\n );\n};\n","import { CompletionStep } from './CompletionStep';\n\nexport { CompletionStep };\n","import { useTranslation } from 'react-i18next';\nimport { Box, Button, Typography } from 'ui';\n\nimport { NavigatorStep, useCreateMeteringPoint } from '~/meteringPoint';\nimport { isCompletedAddress, isCompletedMeteringPoint } from '~/services/firestore';\nimport { DataSection, StepTitle } from '~/ui';\n\nconst Value = ({ children }: { children: React.ReactNode }) => (\n <Typography variant=\"body2\" fontWeight={400}>\n {children}\n </Typography>\n);\n\nexport const ConfirmationStep = () => {\n const { t } = useTranslation('createMeteringPointWizard');\n const { getMeteringPoint, setCurrentStep, currentMeteringPointIndex, goToNextStep, setRedirectTo } =\n useCreateMeteringPoint();\n\n const meteringPoint = getMeteringPoint(currentMeteringPointIndex);\n const { name, meteringPointId, address, previousUtility } = meteringPoint;\n\n const editStep = (step: NavigatorStep) => {\n setCurrentStep(step);\n setRedirectTo('confirmation');\n };\n\n return (\n <Box display=\"flex\" flex={1} flexDirection=\"column\" justifyContent=\"space-between\">\n <Box>\n <Box mb={2} ml={1}>\n <StepTitle>{t('steps.confirmation.title')}</StepTitle>\n </Box>\n\n <Box display=\"flex\" flexDirection=\"column\" gap={3}>\n <DataSection\n label={t('steps.confirmation.name')}\n Value={\n <>\n <Value>{name}</Value>\n {name ? null : <Value>{t('steps.confirmation.missingData')}</Value>}\n </>\n }\n onClick={() => editStep('name')}\n error={!name ? t('steps.confirmation.error') : ''}\n data-testid=\"name\"\n />\n\n <DataSection\n label={t('steps.confirmation.address')}\n Value={\n <Box>\n {address?.region && <Value>{address?.region},</Value>}\n <Value>\n {address?.postCode && `${address.postCode},`} {address?.settlement && `${address.settlement},`}\n </Value>\n {address?.area && <Value>{address?.area},</Value>}\n <Value>\n {address?.addressLine1} {address?.addressLine2}\n </Value>\n\n {address?.region ||\n address?.postCode ||\n address?.settlement ||\n address?.addressLine1 ||\n address?.addressLine2 ? null : (\n <Value>{t('steps.confirmation.missingData')}</Value>\n )}\n </Box>\n }\n onClick={() => editStep('address')}\n error={!isCompletedAddress(address) ? t('steps.confirmation.error') : ''}\n data-testid=\"address\"\n />\n\n <DataSection\n label={t('steps.confirmation.meteringPointId')}\n Value={<Value>{meteringPointId || t('steps.confirmation.noData')}</Value>}\n onClick={() => editStep('meteringPointId')}\n error={!meteringPointId ? t('steps.confirmation.error') : ''}\n data-testid=\"metering-point-id\"\n />\n\n {previousUtility && (\n <DataSection\n label={t('steps.confirmation.previousUtility')}\n Value={<Value>{previousUtility || t('steps.confirmation.noData')}</Value>}\n onClick={() => editStep('meteringPointId')}\n error={!previousUtility ? t('steps.confirmation.error') : ''}\n />\n )}\n </Box>\n </Box>\n\n <Button\n size=\"lg\"\n fullWidth\n onClick={goToNextStep}\n disabled={!isCompletedMeteringPoint(meteringPoint)}\n data-testid=\"save-metering-point-button\"\n color=\"gradient\"\n >\n {t('save')}\n </Button>\n </Box>\n );\n};\n","import { ConfirmationStep } from './ConfirmationStep';\n\nexport { ConfirmationStep };\n","export const regions = [\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","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { Autocomplete, Checkbox, FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport { regions } from 'forms/components/RegionAutocomplete/regions';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { bool, object, string } from 'yup';\n\nimport { areaCities, areas, settlements } from '~/config';\nimport { useCreateMeteringPoint } from '~/meteringPoint';\nimport { ContinueButton, StepTitle } from '~/ui';\n\ninterface FormValues {\n area?: string;\n postCode: string;\n region: string;\n settlement: string;\n street: string;\n useAccountAddress?: boolean;\n}\n\nexport const MeteringPointAddressStep = () => {\n const { t } = useTranslation('createMeteringPointWizard');\n const {\n goToNextStep,\n getMeteringPoint,\n setAddress,\n currentMeteringPointIndex,\n navigateWithRedirect,\n getAccountAddress,\n } = useCreateMeteringPoint();\n\n const { address } = getMeteringPoint(currentMeteringPointIndex);\n\n const requiredMessage = t('steps.address.fields.required');\n\n const resolver = yupResolver(\n object({\n area: string().when('settlement', {\n is: (value: string) => areaCities.includes(value),\n then: () => string().required(requiredMessage).nullable(),\n }),\n postCode: string().required(requiredMessage),\n region: string().required(requiredMessage),\n settlement: string().required(requiredMessage),\n street: string().required(requiredMessage),\n useAccountAddress: bool(),\n })\n );\n\n const { handleSubmit, watch, resetField, setValue, formState, ...rest } = useForm<FormValues>({\n defaultValues: {\n area: address?.area || '',\n postCode: address?.postCode || '',\n region: address?.region || '',\n settlement: address?.settlement || '',\n street: address?.addressLine1 || '',\n useAccountAddress: false,\n },\n mode: 'onChange',\n resolver,\n });\n\n const useAccountAddress = watch('useAccountAddress');\n\n const onSubmit: SubmitHandler<FormValues> = async (values) => {\n trackTagManagerEvent(OnboardingEvents.meteringPointAddress);\n\n setAddress(\n {\n addressLine1: values.street,\n addressLine2: '',\n area: values.area || '',\n municipality: '',\n postCode: values.postCode,\n region: values.region,\n settlement: values.settlement,\n },\n currentMeteringPointIndex\n );\n\n navigateWithRedirect(goToNextStep);\n };\n\n const region = watch('region');\n const settlement = watch('settlement');\n\n const handleUseAccountAddressChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const accountAddress = getAccountAddress();\n\n const meteringPointAddress = {\n area: accountAddress.area || '',\n postCode: accountAddress.postCode || '',\n region: accountAddress.region || '',\n settlement: accountAddress.settlement || '',\n street: accountAddress.addressLine1,\n };\n\n const isChecked = event.target.checked;\n\n if (isChecked) {\n Object.entries(meteringPointAddress).forEach(([key, value]) =>\n setValue(key as keyof typeof meteringPointAddress, value)\n );\n } else {\n Object.keys(meteringPointAddress).forEach((key) => resetField(key as keyof typeof meteringPointAddress));\n }\n };\n\n return (\n <FormProvider {...{ formState, handleSubmit, resetField, setValue, watch, ...rest }}>\n <Form\n onSubmit={handleSubmit(onSubmit)}\n style={{\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between',\n }}\n >\n <Box display=\"flex\" flexDirection=\"column\">\n <Box mb={2}>\n <StepTitle>{t('steps.address.title')}</StepTitle>\n </Box>\n\n <Checkbox\n name=\"useAccountAddress\"\n label={t('steps.address.fields.useAccountAddress.label')}\n onChange={handleUseAccountAddressChange}\n data-testid=\"use-account-address\"\n />\n\n <Box mb={2} mt={1}>\n <TextInput\n required\n autocomplete=\"post-code\"\n data-testid=\"post-code\"\n label={t('steps.address.fields.postCode.label')}\n name=\"postCode\"\n shrink\n placeholder={t('steps.address.fields.postCode.placeholder')}\n />\n </Box>\n\n <Box mb={2}>\n <Autocomplete\n label={t(`steps.address.fields.region.label`)}\n data-testid=\"region\"\n name=\"region\"\n autocomplete=\"region\"\n required\n options={regions}\n shrink\n placeholder={t('steps.address.fields.region.placeholder')}\n />\n </Box>\n\n <Box mb={2}>\n <Autocomplete\n label={t('steps.address.fields.settlement.label')}\n name=\"settlement\"\n autocomplete=\"settlement\"\n required\n disabled={!region}\n data-testid=\"settlement\"\n options={region ? settlements[region] : []}\n shrink\n placeholder={t('steps.address.fields.settlement.placeholder')}\n />\n </Box>\n\n {areaCities.includes(settlement) && (\n <Box mb={2}>\n <Autocomplete\n label={t(`steps.address.fields.area.label`)}\n name=\"area\"\n autocomplete=\"area\"\n required\n disabled={!settlement}\n data-testid=\"area\"\n options={settlement ? areas[settlement.split(' ')[1]] : []}\n shrink\n placeholder={t('steps.address.fields.area.placeholder')}\n />\n </Box>\n )}\n\n <Box mb={2}>\n <TextInput\n required\n data-testid=\"street\"\n autocomplete=\"address\"\n label={t('steps.address.fields.street.label')}\n name=\"street\"\n shrink\n placeholder={t('steps.address.fields.street.placeholder')}\n />\n </Box>\n </Box>\n\n <ContinueButton\n data-testid=\"metering-point-address-submit-button\"\n disabled={!useAccountAddress && !formState.isValid}\n />\n </Form>\n </FormProvider>\n );\n};\n","export const meteringPointLabel = {\n Благоевград: 'meteringPoint',\n Бургас: 'itn',\n Варна: 'uin',\n 'Велико Търново': 'uin',\n Видин: 'meteringPoint',\n Враца: 'meteringPoint',\n Габрово: 'uin',\n Добрич: 'uin',\n Кърджали: 'itn',\n Кюстендил: 'meteringPoint',\n Ловеч: 'meteringPoint',\n Монтана: 'meteringPoint',\n Пазарджик: 'itn',\n Перник: 'meteringPoint',\n Плевен: 'meteringPoint',\n Пловдив: 'itn',\n Разград: 'uin',\n Русе: 'uin',\n Силистра: 'uin',\n Сливен: 'itn',\n Смолян: 'itn',\n София: 'meteringPoint',\n 'София (столица)': 'meteringPoint',\n 'Стара Загора': 'itn',\n Търговище: 'uin',\n Хасково: 'itn',\n Шумен: 'uin',\n Ямбол: 'itn',\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { Autocomplete, FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form, Typography } from 'ui';\nimport { object, string } from 'yup';\n\nimport { energyUtilityOptions } from '~/config';\nimport { meteringPointLabel } from '~/config/meteringPointLabel';\nimport { useCreateMeteringPoint } from '~/meteringPoint';\nimport {\n isErpEso,\n isErpGoldenSands,\n isErpNorth,\n isErpSouth,\n isErpWest,\n} from '~/meteringPoint/helpers/determineErp/determineErp';\nimport { ContinueButton, StepTitle } from '~/ui';\n\nimport { MeteringPointParticle } from '../shared';\n\ninterface FormValues {\n meteringPointId: string;\n previousUtility?: string;\n}\n\nexport const MeteringPointIdStep = () => {\n const { t } = useTranslation('createMeteringPointWizard');\n const {\n goToNextStep,\n getMeteringPoint,\n setMeteringPointId,\n currentMeteringPointIndex,\n navigateWithRedirect,\n setPreviousUtility,\n } = useCreateMeteringPoint();\n\n const { meteringPointId, address, previousUtility } = getMeteringPoint(currentMeteringPointIndex);\n const { region, settlement } = address;\n\n const invalidMeteringPointIdMessage = t('steps.meteringPointId.fields.meteringPointId.invalid');\n\n const regionLabel = meteringPointLabel[region as keyof typeof meteringPointLabel];\n\n const resolver = yupResolver(\n object({\n meteringPointId: string()\n .required(t('steps.meteringPointId.fields.meteringPointId.required'))\n .test('meteringPointValidation', invalidMeteringPointIdMessage, (value, { path, createError }) => {\n const conditions: { [key: string]: () => boolean } = {\n itn: () => isErpSouth(value) || isErpEso(value),\n meteringPoint: () => isErpWest(value) || isErpEso(value),\n uin: () =>\n settlement === 'к.к. Златни Пясъци'\n ? isErpGoldenSands(value) || isErpEso(value)\n : isErpNorth(value) || isErpEso(value),\n };\n\n if (!conditions[regionLabel]?.()) {\n return createError({ message: invalidMeteringPointIdMessage, path });\n }\n\n return true;\n }),\n previousUtility:\n regionLabel === 'meteringPoint'\n ? string().required(t('steps.meteringPointId.fields.previousUtility.required'))\n : string(),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm<FormValues>({\n defaultValues: {\n meteringPointId,\n previousUtility,\n },\n mode: 'onChange',\n resolver,\n });\n\n const onSubmit: SubmitHandler<FormValues> = async (values) => {\n trackTagManagerEvent(OnboardingEvents.meteringPointId);\n\n setMeteringPointId(values.meteringPointId, currentMeteringPointIndex);\n\n if (values.previousUtility) {\n setPreviousUtility(values.previousUtility, currentMeteringPointIndex);\n }\n\n navigateWithRedirect(goToNextStep);\n };\n\n return (\n <FormProvider {...{ formState, handleSubmit, watch, ...rest }}>\n <Form\n onSubmit={handleSubmit(onSubmit)}\n style={{\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between',\n }}\n >\n <Box display=\"flex\" flexDirection=\"column\">\n <Box mb={2}>\n <StepTitle>{t('steps.meteringPointId.title')}</StepTitle>\n </Box>\n\n <TextInput\n required\n margin=\"normal\"\n fullWidth\n label={t('steps.meteringPointId.fields.meteringPointId.label')}\n placeholder={t('steps.meteringPointId.fields.meteringPointId.placeholder')}\n name=\"meteringPointId\"\n autoFocus\n shrink\n data-testid=\"metering-point-id\"\n />\n\n {regionLabel && (\n <Box mt={1}>\n <Box mb={1}>\n <Typography>{t('steps.meteringPointId.meteringPointLabels.formats')}</Typography>\n <Typography>\n {t(\n `steps.meteringPointId.meteringPointLabels.${settlement === 'к.к. Златни Пясъци' ? 'goldenSands' : regionLabel}`\n )}\n </Typography>\n </Box>\n <MeteringPointParticle src={regionLabel} />\n </Box>\n )}\n\n {regionLabel === 'meteringPoint' && (\n <Box mt={3}>\n <Autocomplete\n label={t('steps.meteringPointId.fields.previousUtility.label')}\n name=\"previousUtility\"\n placeholder={t('steps.meteringPointId.fields.previousUtility.placeholder')}\n required\n fullWidth\n shrink\n options={energyUtilityOptions}\n data-testid=\"previous-utility\"\n />\n </Box>\n )}\n </Box>\n\n <ContinueButton data-testid=\"metering-point-id-submit-button\" disabled={!formState.isValid} />\n </Form>\n </FormProvider>\n );\n};\n","/* eslint-disable no-inline-styles/no-inline-styles */\nimport { OnboardingEvents, trackTagManagerEvent } from 'firebase-client';\nimport { FormProvider, SubmitHandler, TextInput, useForm, yupResolver } from 'forms';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Form } from 'ui';\nimport { object, string } from 'yup';\n\nimport { useCreateMeteringPoint } from '~/meteringPoint';\nimport { ContinueButton, StepTitle } from '~/ui';\n\ninterface FormValues {\n meteringPointName: string;\n}\n\nexport const MeteringPointNameStep = () => {\n const { t } = useTranslation('createMeteringPointWizard');\n const { goToNextStep, getMeteringPoint, setName, currentMeteringPointIndex, navigateWithRedirect } =\n useCreateMeteringPoint();\n\n const { name } = getMeteringPoint(currentMeteringPointIndex);\n\n const resolver = yupResolver(\n object({\n meteringPointName: string().required(t('steps.name.fields.name.required')),\n })\n );\n\n const { handleSubmit, watch, formState, ...rest } = useForm<FormValues>({\n defaultValues: {\n meteringPointName: name,\n },\n resolver,\n });\n\n const onSubmit: SubmitHandler<FormValues> = async ({ meteringPointName }) => {\n trackTagManagerEvent(OnboardingEvents.meteringPointName);\n\n setName(meteringPointName, currentMeteringPointIndex);\n\n navigateWithRedirect(goToNextStep);\n };\n\n return (\n <FormProvider {...{ formState, handleSubmit, watch, ...rest }}>\n <Form\n onSubmit={handleSubmit(onSubmit)}\n style={{\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between',\n }}\n >\n <Box display=\"flex\" flexDirection=\"column\">\n <Box mb={2}>\n <StepTitle>{t('steps.name.title')}</StepTitle>\n </Box>\n\n <TextInput\n required\n margin=\"normal\"\n fullWidth\n label={t('steps.name.fields.name.label')}\n placeholder={t('steps.name.fields.name.placeholder')}\n name=\"meteringPointName\"\n autoFocus\n shrink\n data-testid=\"metering-point-name\"\n />\n </Box>\n\n <ContinueButton data-testid=\"metering-point-name-submit-button\" disabled={!formState.isValid} />\n </Form>\n </FormProvider>\n );\n};\n","'use client';\n\nimport { DocumentData } from 'firebase/firestore';\nimport { useTranslation } from 'react-i18next';\n\nimport { CreateMeteringPointProvider, useCreateMeteringPoint } from '~/meteringPoint';\nimport { CreateMeteringPointState } from '~/meteringPoint/hooks/useCreateMeteringPoint/types';\nimport { MobilePageHeader, ProcessDetails, WizardLayout } from '~/ui';\nimport { Steps } from '~/utils';\n\nimport { AccountOptionsStep } from './AccountOptionsStep';\nimport { CompletionStep } from './CompletionStep';\nimport { ConfirmationStep } from './ConfirmationStep';\nimport { MeteringPointAddressStep } from './MeteringPointAddressStep';\nimport { MeteringPointIdStep } from './MeteringPointIdStep';\nimport { MeteringPointNameStep } from './MeteringPointNameStep';\n\nconst STEPS = {\n accountOptions: AccountOptionsStep,\n address: MeteringPointAddressStep,\n completion: CompletionStep,\n confirmation: ConfirmationStep,\n meteringPointId: MeteringPointIdStep,\n name: MeteringPointNameStep,\n};\n\nexport const Wizard = () => {\n const { t } = useTranslation('createMeteringPointWizard');\n const { getCurrentStep, goToPreviousStep } = useCreateMeteringPoint();\n\n const currentStep = getCurrentStep();\n\n const CurrentStep = STEPS[currentStep as keyof typeof STEPS] || STEPS.accountOptions;\n\n const showBackButton = currentStep !== 'name' && currentStep !== 'completion';\n\n return (\n <WizardLayout\n leftChild={\n <ProcessDetails\n title={t('title')}\n subtitle={t('subtitle')}\n onBackClick={goToPreviousStep}\n showBackButton={showBackButton}\n />\n }\n rightChild={<CurrentStep />}\n header={<MobilePageHeader title={t('title')} onBackClick={goToPreviousStep} showBackButton={showBackButton} />}\n />\n );\n};\n\ninterface CreateMeteringPointWizardProps {\n onCompletion: () => Promise<void>;\n onUpdate: (data: CreateMeteringPointState['meteringPointsData']) => void;\n skipSteps?: Steps;\n onboardingData?: DocumentData | null;\n}\n\nexport const CreateMeteringPointWizard = ({\n onCompletion,\n skipSteps,\n onUpdate,\n onboardingData,\n}: CreateMeteringPointWizardProps) => (\n <CreateMeteringPointProvider\n skipSteps={skipSteps}\n onCompletion={onCompletion}\n onUpdate={onUpdate}\n onboardingData={onboardingData}\n >\n <Wizard />\n </CreateMeteringPointProvider>\n);\n","'use client';\n\nimport { useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Box, Grid, MeteringPointCard as MeteringPointCardUI, Typography } from 'ui';\n\nimport { getCustomerRepresentatives } from '~/customer';\nimport { getAddress, MeteringPoint } from '~/data';\nimport { LinkContainer } from '~/ui';\n\nimport getMeteringPointPath from '../../helpers/getMeteringPointPath';\n\ninterface DetailValueProps {\n labelKey: string;\n value: string | number | null;\n align: 'flex-start' | 'flex-end';\n}\n\nconst DetailValue = ({ labelKey, value, align }: DetailValueProps) => {\n return (\n <Box display=\"flex\" flex={1} flexDirection=\"row\" justifyContent={align}>\n <Trans\n i18nKey={`meteringPoints:${labelKey}`}\n values={{ [labelKey]: value }}\n components={[\n <Typography variant=\"body2\" color=\"textColor.light\" component=\"span\" />,\n <Typography variant=\"body2\" fontWeight=\"bold\" ml={0.5} component=\"span\" />,\n ]}\n />\n </Box>\n );\n};\n\ninterface DetailsProps {\n erp: string;\n profile: string | null;\n plan: string | null;\n status: string;\n price: number | null;\n}\n\nconst Details = ({ erp, profile, plan, status, price }: DetailsProps) => {\n const data = useMemo(() => {\n return [\n { labelKey: 'erp', value: erp },\n { labelKey: 'profile', value: profile },\n { labelKey: 'plan', value: plan },\n { labelKey: 'price', value: price },\n { labelKey: 'status', value: status },\n ].filter(({ value }) => value);\n }, [erp, plan, price, profile, status]);\n\n return (\n <Grid container spacing={2}>\n {data.map(({ labelKey, value }, index) => {\n return (\n <Grid item xs={6} key={labelKey}>\n <DetailValue labelKey={labelKey} value={value} align={index % 2 === 0 ? 'flex-start' : 'flex-end'} />\n </Grid>\n );\n })}\n </Grid>\n );\n};\n\ninterface MeteringPointProps {\n displayCustomerName?: boolean;\n meteringPoint: MeteringPoint;\n onClick?: () => void;\n}\n\nexport const MeteringPointCard = ({ displayCustomerName = false, meteringPoint, onClick }: MeteringPointProps) => {\n const { t } = useTranslation();\n const { customer, name, meteringPointId, address, erp, profile, plan, price, status } = meteringPoint;\n\n return (\n <LinkContainer href={getMeteringPointPath(meteringPoint)} onClick={onClick}>\n <MeteringPointCardUI\n data-testid=\"metering-point-card\"\n title={\n <Trans\n i18nKey=\"meteringPoints:id\"\n values={{ id: meteringPointId }}\n components={[\n <Typography variant=\"body2\" color=\"textColor.light\" display=\"inline\" />,\n <Typography variant=\"body2\" display=\"inline\" />,\n ]}\n />\n }\n subtitle={name}\n customerName={displayCustomerName ? customer.name : undefined}\n address={address ? getAddress(address) : null}\n details={erp ? <Details erp={erp} profile={profile} plan={plan} price={price} status={status} /> : null}\n representativesLabel={t('meteringPoints:representatives')}\n representatives={getCustomerRepresentatives(customer)}\n />\n </LinkContainer>\n );\n};\n","import { useSuspenseQuery } from '@tanstack/react-query';\n\nimport { BaseHTTPResponse, createDataCacheKeys, ListOptions, Page, PointInvoiceAddendum } from '~/data';\nimport { ResponseError, useMeteringPointApi } from '~/data/api';\n\nconst getCacheKey = (meteringPointId: string, listOptions: ListOptions = {}) =>\n createDataCacheKeys(`metering-points/${meteringPointId}/invoices`).list(listOptions);\n\nexport type UseMeteringPointInvoicesResult = BaseHTTPResponse<Page<PointInvoiceAddendum>>;\n\ntype MeteringPointInvoicesOptions = {\n meteringPointId: string;\n};\n\nexport const useMeteringPointInvoices = ({\n meteringPointId,\n}: MeteringPointInvoicesOptions): UseMeteringPointInvoicesResult => {\n const api = useMeteringPointApi();\n\n const { data, error, isLoading, isError, isSuccess } = useSuspenseQuery<Page<PointInvoiceAddendum>, ResponseError>({\n queryFn: () => api.getInvoices(meteringPointId, { page: 1, size: 5 }),\n queryKey: getCacheKey(meteringPointId),\n });\n\n return {\n data,\n error,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","import { useSuspenseQuery } from '@tanstack/react-query';\n\nimport { useCustomerContacts } from '~/customer';\nimport {\n BaseHTTPResponse,\n Contact,\n createDataCacheKeys,\n MeteringPoint,\n PointInvoiceAddendum,\n transformMeteringPoint,\n} from '~/data';\nimport { ResponseError, useMeteringPointApi } from '~/data/api';\n\nimport { useMeteringPointInvoices } from '../useMeteringPointInvoices/useMeteringPointInvoices';\n\nconst cacheKeys = createDataCacheKeys('metering-points');\n\ntype UseMeteringPointResult = Omit<BaseHTTPResponse<MeteringPoint>, 'data'> & {\n data: {\n meteringPoint: MeteringPoint | undefined;\n contacts: Contact[];\n invoices: PointInvoiceAddendum[];\n };\n};\n\ntype MeteringPointOptions = {\n meteringPointId: string;\n};\n\nexport const useMeteringPoint = ({ meteringPointId }: MeteringPointOptions): UseMeteringPointResult => {\n const api = useMeteringPointApi();\n\n const meteringPoint = useSuspenseQuery<MeteringPoint, ResponseError>({\n queryFn: () => api.get(meteringPointId),\n queryKey: cacheKeys.detail(meteringPointId),\n });\n const contacts = useCustomerContacts({ customerId: meteringPoint.data.customer.customerId || '' });\n const invoices = useMeteringPointInvoices({ meteringPointId });\n\n return {\n data: {\n contacts: contacts.data?.items || [],\n invoices: invoices.data?.items || [],\n meteringPoint: meteringPoint.data && transformMeteringPoint(meteringPoint.data),\n },\n error: meteringPoint.error || contacts.error || invoices.error,\n isError: meteringPoint.isError || contacts.isError || invoices.isError,\n isLoading: meteringPoint.isLoading || contacts.isLoading || invoices.isLoading,\n isSuccess: meteringPoint.isSuccess && contacts.isSuccess && invoices.isSuccess,\n };\n};\n","'use client';\n\nimport logger from 'logger';\nimport { useTranslation } from 'react-i18next';\nimport { DetailsPageTitle, PageSection, Stack } from 'ui';\n\nimport { RecentInvoiceList } from '~/invoice';\nimport { GoBackButton, NextLink } from '~/ui';\n\nimport { useMeteringPoint } from '../../hooks/useMeteringPoint/useMeteringPoint';\nimport { MeteringPointDetailedData } from '../list';\n\ninterface Props {\n id: string;\n}\n\nconst MeteringPointDetails = ({ id }: Props) => {\n const { t } = useTranslation();\n\n const {\n data: { meteringPoint, contacts, invoices },\n } = useMeteringPoint({ meteringPointId: id });\n\n if (!meteringPoint) {\n logger.debug('Metering point not found');\n return null;\n }\n\n return (\n <>\n <DetailsPageTitle\n leftButtons={<GoBackButton />}\n subtitle={meteringPoint.customer.name}\n title={meteringPoint.name || ''}\n />\n\n <Stack spacing={4} mt={4}>\n <MeteringPointDetailedData meteringPoint={meteringPoint} contacts={contacts} />\n\n <PageSection\n title={t('invoices:invoiceAppendices')}\n subtitle={<NextLink href=\"/invoices\">{t('seeMore')}</NextLink>}\n >\n <RecentInvoiceList list={invoices} />\n </PageSection>\n </Stack>\n </>\n );\n};\n\nexport default MeteringPointDetails;\n","import { MeteringPointCard } from './MeteringPointCard';\nimport MeteringPointDetails from './MeteringPointDetails';\n\nexport { MeteringPointCard, MeteringPointDetails };\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport { CardMobileSwiper, ListItemGroup, TabPanel, useResolution } from 'ui';\nimport {\n AccountBalance,\n Assessment,\n Business,\n ElectricalServices,\n Email,\n LocationOn,\n Money,\n Person,\n Phone,\n Power,\n Tag,\n} from 'ui/icons';\n\nimport { getCustomerRepresentatives } from '~/customer';\nimport { Contact, getAddress, MeteringPoint } from '~/data';\n\ninterface Props {\n meteringPoint: MeteringPoint;\n contacts: Contact[];\n}\n\nconst buildData = (meteringPoint: MeteringPoint, contacts: Contact[], t: (key: string) => string) => {\n return [\n {\n details: [\n {\n icon: Tag,\n subtitle: t('common:tabPanelTabs.meteringPointsData.id'),\n title: meteringPoint.meteringPointId,\n },\n {\n icon: Business,\n subtitle: t('common:tabPanelTabs.meteringPointsData.name'),\n title: meteringPoint.name,\n },\n {\n icon: LocationOn,\n subtitle: t('common:tabPanelTabs.meteringPointsData.address'),\n title: meteringPoint.address ? getAddress(meteringPoint.address) : null,\n },\n {\n icon: ElectricalServices,\n subtitle: t('common:tabPanelTabs.meteringPointsData.erp'),\n title: meteringPoint.erp,\n },\n {\n icon: Power,\n subtitle: t('common:tabPanelTabs.meteringPointsData.profile'),\n title: meteringPoint.profile,\n },\n {\n icon: Assessment,\n subtitle: t('common:tabPanelTabs.meteringPointsData.plan'),\n title: meteringPoint.plan,\n },\n {\n icon: Money,\n subtitle: t('common:tabPanelTabs.meteringPointsData.price'),\n title: meteringPoint.price ? meteringPoint.price.toString() : null,\n },\n ],\n key: 'meteringPointsData',\n },\n {\n details: [\n {\n icon: Tag,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.customerName'),\n title: meteringPoint.customer.name,\n },\n {\n icon: Power,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.customerId'),\n title: meteringPoint.customer.customerId,\n },\n {\n icon: AccountBalance,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.vatRegistration'),\n title: meteringPoint.customer.vatNo\n ? t('common:tabPanelTabs.tradeRegistryData.yes')\n : t('common:tabPanelTabs.tradeRegistryData.no'),\n },\n {\n icon: LocationOn,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.address'),\n title: getAddress(meteringPoint.customer.address),\n },\n ...(getCustomerRepresentatives(meteringPoint.customer).map((representative) => ({\n icon: Person,\n subtitle: t('common:tabPanelTabs.tradeRegistryData.representative'),\n title: representative,\n })) || []),\n ],\n key: 'tradeRegistryData',\n },\n {\n details: [\n ...(contacts[0]\n ? [\n {\n icon: Person,\n subtitle: t('common:tabPanelTabs.contactData.name'),\n title: contacts[0].name,\n },\n {\n icon: Phone,\n subtitle: t('common:tabPanelTabs.contactData.phone'),\n title: contacts[0].phone,\n },\n {\n icon: Phone,\n subtitle: t('common:tabPanelTabs.contactData.phone'),\n title: contacts[0].phoneMobile,\n },\n {\n icon: Email,\n subtitle: t('common:tabPanelTabs.contactData.email'),\n title: contacts[0].email,\n },\n ]\n : []),\n ],\n key: 'contactData',\n },\n ];\n};\n\nconst MeteringPointDetailedData = ({ meteringPoint, contacts }: Props) => {\n const { t } = useTranslation();\n const { isTablet } = useResolution();\n\n const data = buildData(meteringPoint, contacts, t);\n\n const listData = data.map(({ key, details }) => ({\n content: <ListItemGroup data={details} />,\n label: t(`tabPanelTabs.${key}.tabName`),\n }));\n\n return isTablet ? <TabPanel tabs={listData} /> : <CardMobileSwiper elements={listData} />;\n};\n\nexport default MeteringPointDetailedData;\n","'use client';\n\nimport { useParams } from 'next/navigation';\nimport { useTranslation } from 'react-i18next';\nimport { addWarning, Warnings } from 'rum';\n\nimport { MeteringPointDetails } from '../detail';\n\nconst MeteringPointDetailsContainer = () => {\n const { t } = useTranslation();\n\n const params = useParams();\n const id = params && params.id;\n\n if (typeof id !== 'string') {\n addWarning(Warnings.INVALID_QUERY_PARAM, { page: `metering-points/${id}`, query: id });\n }\n\n return typeof id === 'string' ? <MeteringPointDetails id={id} /> : <p>{t('customers:customer.notFound')}</p>;\n};\n\nexport default MeteringPointDetailsContainer;\n","import { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { CardListContainer } from 'ui';\n\nimport { MeteringPoint } from '~/data';\n\nimport { MeteringPointCard } from '../detail/MeteringPointCard';\n\nexport const MeteringPointCardList = ({ list }: { list: MeteringPoint[] }) => {\n return (\n <CardListContainer\n elements={list.map((meteringPoint) => (\n <MeteringPointCard\n displayCustomerName\n key={meteringPoint.meteringPointId}\n meteringPoint={meteringPoint}\n onClick={() => trackTagManagerEvent(BlenderEvents.meteringPointDetails)}\n />\n ))}\n />\n );\n};\n","import { TFunction } from 'i18next';\nimport NextLink from 'next/link';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button, DataTable, DataTableColumns, TypographyOverflow } from 'ui';\n\nimport { getAddress, MeteringPoint } from '~/data';\n\nimport getMeteringPointPath from '../../helpers/getMeteringPointPath';\n\ntype RenderProps = {\n row: MeteringPoint;\n};\n\nconst MeteringPointPathButton = ({ row, t }: RenderProps & { t: TFunction }) => (\n <Button\n LinkComponent={NextLink}\n href={getMeteringPointPath(row)}\n color=\"limeGreen\"\n size=\"lg\"\n data-testid=\"see-more-metering-point\"\n >\n {t('seeMore')}\n </Button>\n);\n\nconst CellValue = ({ value }: { value: string }) => (\n <TypographyOverflow variant=\"body2\" lines={2}>\n {value}\n </TypographyOverflow>\n);\n\nconst CustomerCell = ({ row }: RenderProps) => <CellValue value={row.customer.name} />;\n\nconst NameCell = ({ row }: RenderProps) => <CellValue value={row.name || ''} />;\n\nconst AddressCell = ({ row }: RenderProps) => <CellValue value={row.address ? getAddress(row.address) : ''} />;\n\nconst buildTableColumns = (t: TFunction): DataTableColumns<MeteringPoint>[] => [\n {\n accessor: 'customer',\n header: t('meteringPoints:table.customerName'),\n value: CustomerCell,\n },\n { accessor: 'name', header: t('meteringPoints:table.name'), value: NameCell },\n {\n accessor: 'address',\n header: t('meteringPoints:table.address'),\n value: AddressCell,\n },\n { accessor: 'meteringPointId', header: t('meteringPoints:table.id') },\n { accessor: 'profile', header: t('meteringPoints:table.profile') },\n { accessor: 'erp', header: t('meteringPoints:table.erp') },\n { header: '', value: ({ row }) => <MeteringPointPathButton row={row} t={t} />, virtualColumn: 'path' },\n];\n\nexport const MeteringPointTable = ({ list }: { list: MeteringPoint[] }) => {\n const { t } = useTranslation();\n\n const tableColumns = useMemo(() => buildTableColumns(t), [t]);\n\n return (\n <DataTable<MeteringPoint>\n columns={tableColumns}\n data-testid=\"metering-point-table\"\n uid=\"meteringPointId\"\n data={list}\n />\n );\n};\n","'use client';\n\nimport { MeteringPoint } from '~/data';\nimport { useLayoutStore } from '~/store';\nimport { NoResultsMessage } from '~/ui';\n\nimport { MeteringPointCardList } from './MeteringPointCardList';\nimport { MeteringPointTable } from './MeteringPointTable';\n\nexport const MeteringPointsList = ({ list }: { list: MeteringPoint[] }) => {\n const { layout } = useLayoutStore();\n\n if (!list) {\n return <NoResultsMessage />;\n }\n\n if (layout === 'table') {\n return <MeteringPointTable list={list} />;\n }\n\n return <MeteringPointCardList list={list} />;\n};\n","import { GetAllMeteringPointsV2Request } from '@toki-power/public-api';\n\nimport { createDataCacheKeys, MeteringPoint, PageParams, transformMeteringPoints } from '~/data';\nimport { useMeteringPointApi, UsePaginatedQueryResult, useSuspensePaginatedQuery } from '~/data/api';\n\nconst cacheKeys = createDataCacheKeys('meteringPoints');\n\nexport type UseMeteringPointsResult = UsePaginatedQueryResult<MeteringPoint>;\n\ntype MeteringPointsOptions = {\n filterBy: Pick<GetAllMeteringPointsV2Request, 'customerType' | 'orderBy' | 'ownerIdIn' | 'search'>;\n size?: number;\n};\n\nexport const useMeteringPoints = (\n { filterBy, size }: MeteringPointsOptions = { filterBy: { customerType: 'owner' } }\n) => {\n const api = useMeteringPointApi();\n\n const fetchAll = (pageParams: PageParams) =>\n api.getAll({\n page: pageParams.page,\n size: size || pageParams.size,\n ...filterBy,\n });\n\n const { data, isLoading, isError, isSuccess, error, fetchNextPage } = useSuspensePaginatedQuery<MeteringPoint>({\n cacheKey: [\n ...cacheKeys.list({\n filterBy,\n }),\n ],\n fetchAll,\n itemsDecorator: transformMeteringPoints,\n });\n\n return {\n data,\n error,\n fetchNextPage,\n isError,\n isLoading,\n isSuccess,\n };\n};\n","'use client';\n\nimport { BlenderEvents, trackTagManagerEvent } from 'firebase-client';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, ListPageTitle, SearchControl, useResolution } from 'ui';\n\nimport { CustomerPicker, useSelectedCustomerIds } from '~/customer';\nimport { MeteringPointsOptions } from '~/data/api';\nimport { LayoutSwitcher, ScrollableViewWithData } from '~/ui';\n\nimport { useMeteringPoints } from '../../hooks/useMeteringPoints/useMeteringPoints';\nimport { CustomerTypeSelect } from '../shared';\nimport { MeteringPointsList } from './MeteringPointsList';\n\nconst UserMeteringPoints = () => {\n const { t } = useTranslation();\n const [searchQuery, setSearchQuery] = useState<string>();\n const { selectedCustomerIds } = useSelectedCustomerIds();\n const [customerType, setCustomerType] = useState<MeteringPointsOptions['customerType']>('owner');\n\n const { isTablet } = useResolution();\n\n const handleSearch = (q: string) => {\n trackTagManagerEvent(BlenderEvents.meteringPointSearch);\n setSearchQuery(q);\n };\n\n const onCustomerTypeChange = (value: MeteringPointsOptions['customerType']) => {\n setCustomerType(value);\n };\n\n return (\n <>\n <ListPageTitle\n title={t('nav.meteringPoints')}\n desktopActions={\n <>\n <Box mr={1}>\n <CustomerTypeSelect customerType={customerType} onCustomerTypeChange={onCustomerTypeChange} />\n </Box>\n\n <CustomerPicker\n sx={{\n mr: 1,\n }}\n />\n\n <LayoutSwitcher />\n </>\n }\n actions={\n <SearchControl\n name={t('meteringPoints:search')}\n placeholder={t('meteringPoints:search')}\n onSearch={handleSearch}\n popoverPosition={isTablet ? 'right' : 'left'}\n />\n }\n />\n\n <ScrollableViewWithData\n useDataHook={useMeteringPoints}\n hookOptions={{\n filterBy: { customerType, ownerIdIn: selectedCustomerIds.join(','), search: searchQuery },\n }}\n ListComponent={MeteringPointsList}\n />\n </>\n );\n};\n\nexport default UserMeteringPoints;\n","import MeteringPointDetailedData from './MeteringPointDetailedData';\nimport MeteringPointDetailsContainer from './MeteringPointDetailsContainer';\nimport { MeteringPointsList } from './MeteringPointsList';\nimport UserMeteringPoints from './UserMeteringPoints';\n\nexport { MeteringPointDetailedData, MeteringPointDetailsContainer, MeteringPointsList, UserMeteringPoints };\n","import { useTranslation } from 'react-i18next';\nimport { MenuItem, SelectChangeEvent, SelectField } from 'ui';\n\nimport { MeteringPointsOptions } from '~/data/api';\n\nconst OPTIONS: {\n label: string;\n value: MeteringPointsOptions['customerType'];\n}[] = [\n {\n label: 'all',\n value: 'owner',\n },\n {\n label: 'leased',\n value: 'contract',\n },\n];\n\ninterface CustomerTypeSelectProps {\n customerType: MeteringPointsOptions['customerType'];\n onCustomerTypeChange: (value: MeteringPointsOptions['customerType']) => void;\n}\n\nexport const CustomerTypeSelect = ({ customerType, onCustomerTypeChange }: CustomerTypeSelectProps) => {\n const { t } = useTranslation('meteringPoints');\n\n const handleChange = (event: SelectChangeEvent<unknown>) => {\n const { value } = event.target;\n\n onCustomerTypeChange(value as MeteringPointsOptions['customerType']);\n };\n\n return (\n <SelectField<MeteringPointsOptions['customerType']> value={customerType} onChange={handleChange} variant=\"outlined\">\n {OPTIONS.map(({ value, label }) => (\n <MenuItem key={value} value={value}>\n {t(label)}\n </MenuItem>\n ))}\n </SelectField>\n );\n};\n","'use client';\n\nimport Image from 'next/image';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Button, Dialog, DialogActions, DialogContent, Typography } from 'ui';\n\ninterface Props {\n src: string;\n}\n\nexport const MeteringPointParticle = ({ src }: Props) => {\n const [showModal, setShowModal] = useState<boolean>(false);\n const { t } = useTranslation('meteringPoints');\n const handleClose = () => setShowModal(false);\n\n return (\n <>\n <Typography>\n {`${t('pointInfo.invoiceInfo')}. `}\n <Box component=\"span\" color=\"secondary.main\" sx={{ cursor: 'pointer' }} onClick={() => setShowModal(true)}>\n {t('pointInfo.example')}\n </Box>\n </Typography>\n\n <Dialog onClose={handleClose} open={showModal} maxWidth=\"md\">\n <DialogContent>\n <Image src={`/images/measuringPointLabels/${src}.jpg`} alt=\"invoice\" width={700} height={500} />\n <Typography>{t('pointInfo.exampleInfo')}</Typography>\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose}>{t('common:close')}</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n","import { CustomerTypeSelect } from './CustomerTypeSelect';\nimport { MeteringPointParticle } from './MeteringPointParticle';\n\nexport { CustomerTypeSelect, MeteringPointParticle };\n","const METERING_POINTS_REGEX = {\n ERP_GOLDEN_SANDS: /^(32Z5[A-Za-z0-9]{12})$/,\n ERP_NORTH: /^(32Z4[A-Za-z0-9]{12})$/,\n ERP_SOUTH: /^(\\d{7})$/,\n ERP_WEST: /^(32Z1[A-Za-z0-9]{12})$/,\n ESO: /^(32X[A-Za-z0-9]{13})$/,\n};\n\nconst isErpNorth = (meteringPointNumber: string | undefined): boolean => {\n return !meteringPointNumber ? false : METERING_POINTS_REGEX.ERP_NORTH.test(meteringPointNumber);\n};\n\nconst isErpWest = (meteringPointNumber: string | undefined): boolean => {\n return !meteringPointNumber ? false : METERING_POINTS_REGEX.ERP_WEST.test(meteringPointNumber);\n};\n\nconst isErpSouth = (meteringPointNumber: string | undefined): boolean => {\n return !meteringPointNumber ? false : METERING_POINTS_REGEX.ERP_SOUTH.test(meteringPointNumber);\n};\nconst isErpGoldenSands = (meteringPointNumber: string | undefined): boolean => {\n return !meteringPointNumber ? false : METERING_POINTS_REGEX.ERP_GOLDEN_SANDS.test(meteringPointNumber);\n};\nconst isErpEso = (meteringPointNumber: string | undefined): boolean => {\n return !meteringPointNumber ? false : METERING_POINTS_REGEX.ESO.test(meteringPointNumber);\n};\n\nexport { isErpEso, isErpGoldenSands, isErpNorth, isErpSouth, isErpWest };\n","import { MeteringPoint } from '~/data';\n\nconst getMeteringPointPath = (meteringPoint: Pick<MeteringPoint, 'meteringPointId'>): string => {\n return `/metering-points/${meteringPoint.meteringPointId}`;\n};\n\nexport default getMeteringPointPath;\n","import getMeteringPointPath from './getMeteringPointPath';\n\nexport default getMeteringPointPath;\n","import { Steps } from '~/utils';\n\nimport { NavigatorStep } from './types';\n\nexport const NAVIGATOR_STEPS: NavigatorStep[] = [\n 'accountOptions',\n 'name',\n 'address',\n 'meteringPointId',\n 'confirmation',\n 'completion',\n];\n\nexport const getNavigationSteps = (skipSteps: Steps = []): Steps[] => {\n return NAVIGATOR_STEPS.filter((step) => !skipSteps.includes(step));\n};\n","import { Address } from '~/data';\n\nimport { CreateMeteringPointState } from './types';\n\ntype SetNameAction = {\n payload: {\n name: string;\n };\n type: 'SET_NAME';\n meteringPointIndex: number;\n};\n\nexport const SET_NAME: SetNameAction = {\n meteringPointIndex: 0,\n payload: {\n name: '',\n },\n type: 'SET_NAME',\n};\n\ntype SetMeteringPointIdAction = {\n payload: {\n meteringPointId: string;\n };\n type: 'SET_METERING_POINT_ID';\n meteringPointIndex: number;\n};\n\nexport const SET_METERING_POINT_ID: SetMeteringPointIdAction = {\n meteringPointIndex: 0,\n payload: {\n meteringPointId: '',\n },\n type: 'SET_METERING_POINT_ID',\n};\n\ntype SetPreviousUtilityAction = {\n payload: {\n previousUtility: string;\n };\n type: 'SET_PREVIOUS_UTILITY';\n meteringPointIndex: number;\n};\n\nexport const SET_PREVIOUS_UTILITY: SetPreviousUtilityAction = {\n meteringPointIndex: 0,\n payload: {\n previousUtility: '',\n },\n type: 'SET_PREVIOUS_UTILITY',\n};\n\ntype SetAddressAction = {\n payload: {\n address: Address;\n };\n type: 'SET_ADDRESS';\n meteringPointIndex: number;\n};\n\nexport const SET_ADDRESS: SetAddressAction = {\n meteringPointIndex: 0,\n payload: {\n address: {\n addressLine1: '',\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n },\n },\n type: 'SET_ADDRESS',\n};\n\ntype SetMeteringPointsDataAction = {\n payload: {\n meteringPointsData: CreateMeteringPointState['meteringPointsData'];\n };\n type: 'SET_METERING_POINTS_DATA';\n};\n\nexport const SET_METERING_POINTS_DATA: SetMeteringPointsDataAction = {\n payload: {\n meteringPointsData: [],\n },\n type: 'SET_METERING_POINTS_DATA',\n};\n\ntype SetCurrentMeteringPointIndexAction = {\n payload: {\n currentMeteringPointIndex: number;\n };\n type: 'SET_CURRENT_METERING_POINT_INDEX';\n};\n\nexport const SET_CURRENT_METERING_POINT_INDEX: SetCurrentMeteringPointIndexAction = {\n payload: {\n currentMeteringPointIndex: 0,\n },\n type: 'SET_CURRENT_METERING_POINT_INDEX',\n};\n\nexport type Action =\n | SetNameAction\n | SetMeteringPointIdAction\n | SetAddressAction\n | SetCurrentMeteringPointIndexAction\n | SetMeteringPointsDataAction\n | SetPreviousUtilityAction;\n","import { Reducer } from 'react';\n\nimport {\n Action,\n SET_ADDRESS,\n SET_CURRENT_METERING_POINT_INDEX,\n SET_METERING_POINT_ID,\n SET_METERING_POINTS_DATA,\n SET_NAME,\n SET_PREVIOUS_UTILITY,\n} from './actions';\nimport { CreateMeteringPointState } from './types';\n\nexport const stateReducer: Reducer<CreateMeteringPointState, Action> = (prevState, action) => {\n switch (action.type) {\n case SET_NAME.type:\n case SET_ADDRESS.type:\n case SET_METERING_POINT_ID.type:\n case SET_PREVIOUS_UTILITY.type:\n if (!prevState.meteringPointsData[action.meteringPointIndex]) {\n return {\n ...prevState,\n meteringPointsData: [\n ...prevState.meteringPointsData,\n { ...action.payload } as CreateMeteringPointState['meteringPointsData'][number],\n ],\n };\n }\n\n return {\n ...prevState,\n meteringPointsData: prevState.meteringPointsData.map((meteringPoint, index) => {\n if (index === action.meteringPointIndex) {\n return {\n ...meteringPoint,\n ...action.payload,\n };\n }\n return meteringPoint;\n }),\n };\n case SET_METERING_POINTS_DATA.type:\n case SET_CURRENT_METERING_POINT_INDEX.type:\n return {\n ...prevState,\n ...action.payload,\n };\n\n default:\n return prevState;\n }\n};\n","import { DocumentData } from 'firebase/firestore';\nimport { Reducer, useCallback, useReducer } from 'react';\n\nimport { Address } from '~/data';\nimport { MeteringPoint } from '~/services/firestore';\n\nimport {\n Action,\n SET_ADDRESS,\n SET_CURRENT_METERING_POINT_INDEX,\n SET_METERING_POINT_ID,\n SET_METERING_POINTS_DATA,\n SET_NAME,\n SET_PREVIOUS_UTILITY,\n} from './actions';\nimport { stateReducer } from './stateReducer';\nimport { CreateMeteringPointState } from './types';\n\nexport const DEFAULT_METERING_POINT_STATE: MeteringPoint = {\n address: {\n addressLine1: '',\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n },\n meteringPointId: '',\n name: '',\n previousUtility: '',\n};\n\nexport const DEFAULT_STATE: CreateMeteringPointState = {\n currentMeteringPointIndex: 0,\n meteringPointsData: [],\n};\n\ninterface UseStateManagerOptions {\n onboardingData?: DocumentData | null;\n}\n\nexport type UseStateManagerReturn = {\n addMeteringPoint: (meteringPointData: MeteringPoint) => void;\n removeMeteringPoint: (meteringPointIndex: number) => void;\n setAddress: (address: Address, meteringPointIndex: number) => void;\n setCurrentMeteringPointIndex: (meteringPointIndex: number) => void;\n setMeteringPointId: (meteringPointId: string, meteringPointIndex: number) => void;\n setPreviousUtility: (previousUtility: string, meteringPointIndex: number) => void;\n setMeteringPointsData: (meteringPointsData: CreateMeteringPointState['meteringPointsData']) => void;\n setName: (name: string, meteringPointIndex: number) => void;\n state: CreateMeteringPointState;\n};\n\nexport const useStateManager = ({ onboardingData }: UseStateManagerOptions): UseStateManagerReturn => {\n const onboardingMeteringPoints = onboardingData?.meteringPointsData;\n\n const [state, dispatch] = useReducer<Reducer<CreateMeteringPointState, Action>>(\n stateReducer,\n onboardingMeteringPoints?.length\n ? {\n currentMeteringPointIndex: onboardingMeteringPoints.length - 1,\n meteringPointsData: onboardingMeteringPoints,\n }\n : DEFAULT_STATE\n );\n\n const setMeteringPointId = (meteringPointId: string, meteringPointIndex: number): void => {\n dispatch({ meteringPointIndex, payload: { meteringPointId }, type: SET_METERING_POINT_ID.type });\n };\n\n const setPreviousUtility = (previousUtility: string, meteringPointIndex: number): void => {\n dispatch({ meteringPointIndex, payload: { previousUtility }, type: SET_PREVIOUS_UTILITY.type });\n };\n\n const setName = (name: string, meteringPointIndex: number): void => {\n dispatch({ meteringPointIndex, payload: { name }, type: SET_NAME.type });\n };\n\n const setAddress = (address: Address, meteringPointIndex: number): void => {\n dispatch({ meteringPointIndex, payload: { address }, type: SET_ADDRESS.type });\n };\n\n const setMeteringPointsData = (meteringPointsData: CreateMeteringPointState['meteringPointsData']): void => {\n dispatch({ payload: { meteringPointsData }, type: SET_METERING_POINTS_DATA.type });\n };\n\n const addMeteringPoint = (meteringPointData: MeteringPoint) => {\n const meteringPointsData = [...state.meteringPointsData, meteringPointData];\n dispatch({ payload: { meteringPointsData }, type: SET_METERING_POINTS_DATA.type });\n };\n\n const setCurrentMeteringPointIndex = useCallback((meteringPointIndex: number): void => {\n dispatch({\n payload: { currentMeteringPointIndex: meteringPointIndex },\n type: SET_CURRENT_METERING_POINT_INDEX.type,\n });\n }, []);\n\n const removeMeteringPoint = (meteringPointIndex: number) => {\n const newMeteringPointsData = [...state.meteringPointsData];\n newMeteringPointsData.splice(meteringPointIndex, 1);\n\n dispatch({ payload: { meteringPointsData: newMeteringPointsData }, type: SET_METERING_POINTS_DATA.type });\n\n if (state.currentMeteringPointIndex === meteringPointIndex) {\n setCurrentMeteringPointIndex(0);\n }\n };\n\n return {\n addMeteringPoint,\n removeMeteringPoint,\n setAddress,\n setCurrentMeteringPointIndex,\n setMeteringPointId,\n setMeteringPointsData,\n setName,\n setPreviousUtility,\n state,\n };\n};\n","'use client';\n\nimport { DocumentData } from 'firebase/firestore';\nimport { createContext, useCallback, useContext, useEffect, useMemo } from 'react';\n\nimport { Address } from '~/data';\nimport { MeteringPoint } from '~/services/firestore';\nimport { Steps, useStepNavigator } from '~/utils';\n\nimport { getNavigationSteps, NAVIGATOR_STEPS } from './steps';\nimport { DEFAULT_METERING_POINT_STATE, DEFAULT_STATE, useStateManager, UseStateManagerReturn } from './useStateManager';\n\ntype MeteringPointState = UseStateManagerReturn['state'];\n\ntype StateManagerActions = Omit<UseStateManagerReturn, 'state'>;\n\ntype StepNavigatorActions = Omit<ReturnType<typeof useStepNavigator>, 'getRedirectTo' | 'getHistory'>;\n\ntype CreateMeteringPointContext = StateManagerActions &\n StepNavigatorActions & {\n getAccountAddress: () => Address;\n currentMeteringPointIndex: MeteringPointState['currentMeteringPointIndex'];\n meteringPointsData: MeteringPointState['meteringPointsData'];\n getMeteringPoint: (meteringPointIndex: number) => MeteringPoint;\n getAllMeteringPoints: () => MeteringPoint[];\n getCurrentMeteringPointIndex: () => number;\n onCompletion: () => Promise<void>;\n };\n\nconst CreateMeteringPointContext = createContext<CreateMeteringPointContext>({\n addMeteringPoint: () => {},\n currentMeteringPointIndex: 0,\n getAccountAddress: () => ({\n addressLine1: '',\n addressLine2: '',\n area: '',\n municipality: '',\n postCode: '',\n region: '',\n settlement: '',\n }),\n getAllMeteringPoints: () => [],\n getCurrentMeteringPointIndex: () => 0,\n getCurrentStep: () => NAVIGATOR_STEPS[0],\n getMeteringPoint: () => DEFAULT_METERING_POINT_STATE,\n goToNextStep: () => {},\n goToPreviousStep: () => {},\n meteringPointsData: DEFAULT_STATE.meteringPointsData,\n navigateWithRedirect: () => {},\n onCompletion: () => Promise.resolve(),\n removeMeteringPoint: () => {},\n setAddress: () => {},\n setCurrentMeteringPointIndex: () => {},\n setCurrentStep: () => {},\n setMeteringPointId: () => {},\n setMeteringPointsData: () => {},\n setName: () => {},\n setPreviousUtility: () => {},\n setRedirectTo: () => {},\n});\n\ninterface CreateMeteringPointProviderProps {\n children: React.ReactNode;\n onCompletion: () => Promise<void>;\n onUpdate: (data: MeteringPointState['meteringPointsData']) => void;\n skipSteps?: Steps;\n onboardingData?: DocumentData | null;\n}\n\nexport const CreateMeteringPointProvider = ({\n children,\n onCompletion,\n onUpdate,\n skipSteps,\n onboardingData,\n}: CreateMeteringPointProviderProps) => {\n const navigatorSteps = getNavigationSteps(skipSteps);\n const onboardingMeteringPoints = onboardingData?.meteringPointsData;\n const {\n addMeteringPoint,\n removeMeteringPoint,\n setAddress,\n setCurrentMeteringPointIndex,\n setMeteringPointId,\n setMeteringPointsData,\n setPreviousUtility,\n setName,\n state,\n } = useStateManager({ onboardingData });\n\n const { getCurrentStep, goToNextStep, goToPreviousStep, setRedirectTo, setCurrentStep, navigateWithRedirect } =\n useStepNavigator({\n initialStep: onboardingMeteringPoints?.length ? NAVIGATOR_STEPS[5] : navigatorSteps[0],\n steps: navigatorSteps,\n });\n\n useEffect(() => {\n onUpdate(state.meteringPointsData);\n }, [onUpdate, state.meteringPointsData]);\n\n const getMeteringPoint = useCallback(\n (meteringPointIndex: number): MeteringPoint => {\n if (!state.meteringPointsData[meteringPointIndex]) {\n return DEFAULT_METERING_POINT_STATE;\n }\n\n return state.meteringPointsData[meteringPointIndex];\n },\n [state.meteringPointsData]\n );\n\n const getAllMeteringPoints = useCallback((): MeteringPoint[] => {\n return state.meteringPointsData;\n }, [state.meteringPointsData]);\n\n const getCurrentMeteringPointIndex = useCallback((): number => {\n return state.currentMeteringPointIndex;\n }, [state.currentMeteringPointIndex]);\n\n const getAccountAddress = useCallback((): Address => {\n return onboardingData?.customerData.address;\n }, [onboardingData?.customerData.address]);\n\n const context = useMemo(\n () => ({\n addMeteringPoint,\n getAccountAddress,\n getAllMeteringPoints,\n getCurrentMeteringPointIndex,\n getCurrentStep,\n getMeteringPoint,\n goToNextStep,\n goToPreviousStep,\n navigateWithRedirect,\n onCompletion,\n removeMeteringPoint,\n setAddress,\n setCurrentMeteringPointIndex,\n setCurrentStep,\n setMeteringPointId,\n setMeteringPointsData,\n setName,\n setPreviousUtility,\n setRedirectTo,\n ...state,\n }),\n [\n addMeteringPoint,\n getAccountAddress,\n getAllMeteringPoints,\n getCurrentMeteringPointIndex,\n getCurrentStep,\n getMeteringPoint,\n goToNextStep,\n goToPreviousStep,\n navigateWithRedirect,\n onCompletion,\n removeMeteringPoint,\n setAddress,\n setCurrentMeteringPointIndex,\n setCurrentStep,\n setMeteringPointId,\n setMeteringPointsData,\n setName,\n setPreviousUtility,\n setRedirectTo,\n state,\n ]\n );\n\n return <CreateMeteringPointContext.Provider value={context}>{children}</CreateMeteringPointContext.Provider>;\n};\n\nexport const useCreateMeteringPoint = () => {\n const context = useContext(CreateMeteringPointContext);\n\n if (!context) {\n throw new Error('useCreateMeteringPoint must be used within a CreateMeteringPointProvider');\n }\n\n return context;\n};\n","import { CreateMeteringPointWizard } from './CreateMeteringPointWizard';\n\nexport { CreateMeteringPointWizard };\n","import { CreateMeteringPointProvider, useCreateMeteringPoint } from './useCreateMeteringPoint';\n\nexport type { NavigatorStep } from './types';\n\nexport { CreateMeteringPointProvider, useCreateMeteringPoint };\n","import { CreateMeteringPointWizard } from './components/CreateMeteringPointWizard';\nimport { MeteringPointCard, MeteringPointDetails } from './components/detail';\nimport { MeteringPointDetailsContainer, MeteringPointsList } from './components/list';\nimport { CreateMeteringPointProvider, useCreateMeteringPoint } from './hooks/useCreateMeteringPoint';\n\nexport * from './helpers/determineErp/determineErp';\nexport type { NavigatorStep } from './hooks/useCreateMeteringPoint';\n\nexport {\n CreateMeteringPointProvider,\n CreateMeteringPointWizard,\n MeteringPointCard,\n MeteringPointDetails,\n MeteringPointDetailsContainer,\n MeteringPointsList,\n useCreateMeteringPoint,\n};\n","import { UseMutateAsyncFunction, useMutation } from '@tanstack/react-query';\n\nimport { BaseHTTPResponse, createDataCacheKeys } from '~/data';\nimport { useEPayInitRequest } from '~/data/appApi';\n\ntype InitReturnType = Awaited<ReturnType<ReturnType<typeof useEPayInitRequest>['init']>>;\n\nconst cacheKeys = createDataCacheKeys('epayInit');\n\ninterface Init {\n encoded: string;\n}\n\ntype UseEPayInitReturnType = Omit<BaseHTTPResponse<InitReturnType>, 'error' | 'data'> & {\n error: Error | null;\n init: UseMutateAsyncFunction<InitReturnType, Error, Init>;\n};\n\ninterface UseEPayInit {\n invoiceNumber: string;\n}\n\nconst useEPayInit = ({ invoiceNumber }: UseEPayInit): UseEPayInitReturnType => {\n const { init: initRequest } = useEPayInitRequest();\n\n const { mutateAsync, isError, isSuccess, isPending, error } = useMutation({\n mutationFn: async ({ encoded }: Init) => {\n return initRequest({ encoded, invoiceNumber });\n },\n mutationKey: cacheKeys.detail(`epay-init-${invoiceNumber}`),\n });\n\n return {\n error,\n init: mutateAsync,\n isError,\n isLoading: isPending,\n isSuccess,\n };\n};\n\nexport { useEPayInit };\n","import { useQuery } from '@tanstack/react-query';\n\nimport { BaseHTTPResponse, createDataCacheKeys } from '~/data';\nimport { useEPayPayloadRequest } from '~/data/appApi';\n\nimport { PaymentPayload } from '../utils/epay/types';\n\nconst cacheKeys = createDataCacheKeys('epayPayload');\n\ntype UseEPayPayloadReturnType = Omit<BaseHTTPResponse<PaymentPayload | null>, 'error'> & {\n error: Error | null;\n};\n\ninterface UseEPayPayload {\n invoiceNumber: string;\n amount: number;\n}\n\nconst useEPayPayload = ({ invoiceNumber, amount }: UseEPayPayload): UseEPayPayloadReturnType => {\n const { getPayload } = useEPayPayloadRequest<PaymentPayload>();\n\n const {\n data: payload,\n isLoading,\n isError,\n isSuccess,\n error,\n } = useQuery({\n enabled: !!invoiceNumber && !!amount,\n queryFn: async () => {\n const { error: payloadError, data } = await getPayload({ amount, invoiceNumber });\n\n if (payloadError) {\n throw payloadError;\n }\n\n return data;\n },\n queryKey: [cacheKeys.detail(`${invoiceNumber}-${amount}`)],\n });\n\n return {\n data: payload || null,\n error,\n isError,\n isLoading,\n isSuccess,\n };\n};\n\nexport { useEPayPayload };\n","export { useEPayInit } from './useEPayInit';\nexport { useEPayPayload } from './useEPayPayload';\nexport { PaymentNotificationProvider, usePaymentNotification } from './usePaymentNotification';\n","import { doc, onSnapshot } from 'firebase/firestore';\nimport { db } from 'firebase-client';\nimport { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { InvoiceDetails } from '~/data';\nimport { useInvoice } from '~/invoice';\nimport { Payment } from '~/services/firestore/payment';\nimport { PaymentStatus } from '~/services/firestore/payment/types';\n\ntype PaymentNotification = {\n paymentStatus: PaymentStatus | null;\n isLoading: boolean;\n};\n\ninterface PaymentNotificationContextOptions {\n getNotificationStatus: () => PaymentStatus | null;\n isPaymentAvailable: () => boolean;\n isLoading: () => boolean;\n}\n\nconst PaymentNotificationContext = createContext<PaymentNotificationContextOptions>({\n getNotificationStatus: () => null,\n isLoading: () => false,\n isPaymentAvailable: () => false,\n});\n\ninterface PaymentNotificationProviderProps {\n children: React.ReactNode;\n invoice: InvoiceDetails;\n}\n\nexport const PaymentNotificationProvider = ({ children, invoice }: PaymentNotificationProviderProps) => {\n const [notification, setNotification] = useState<PaymentNotification>({\n isLoading: true,\n paymentStatus: null,\n });\n const { refetch } = useInvoice({ invoiceId: invoice.invoiceId });\n\n useEffect(() => {\n const unsubscribe = onSnapshot(doc(db, 'payments', invoice.invoiceNumber), (snapshot) => {\n const data = snapshot.data() as Payment | undefined;\n\n if (!data) {\n setNotification({\n isLoading: false,\n paymentStatus: null,\n });\n\n return;\n }\n\n setNotification({\n isLoading: false,\n paymentStatus: data.status,\n });\n\n if (data.status === PaymentStatus.PAID && invoice.status === 'Unpaid') {\n refetch();\n }\n });\n\n return () => unsubscribe();\n }, [invoice.invoiceNumber, invoice.status, refetch]);\n\n const getNotificationStatus = useCallback(() => notification.paymentStatus, [notification.paymentStatus]);\n\n const isPaymentAvailable = useCallback(\n () => !notification.paymentStatus && !notification.isLoading,\n [notification.paymentStatus, notification.isLoading]\n );\n\n const isLoading = useCallback(() => notification.isLoading, [notification.isLoading]);\n\n const value = useMemo(\n () => ({\n getNotificationStatus,\n isLoading,\n isPaymentAvailable,\n }),\n [getNotificationStatus, isPaymentAvailable, isLoading]\n );\n\n return <PaymentNotificationContext.Provider value={value}>{children}</PaymentNotificationContext.Provider>;\n};\n\nexport const usePaymentNotification = (): PaymentNotificationContextOptions => {\n return useContext(PaymentNotificationContext);\n};\n","import { PaymentEvents, trackTagManagerEvent } from 'firebase-client';\nimport logger from 'logger';\nimport React, { memo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Box, Button } from 'ui';\n\nimport { useEPayInit, useEPayPayload } from '../hooks';\n\nexport type PaymentOption = 'paylogin' | 'credit_paydirect';\n\ninterface Props {\n invoiceId: string;\n invoiceNumber: string;\n amount: number;\n paymentOption: PaymentOption;\n onPaymentInit: () => Promise<void>;\n}\n\nconst BUTTON_LABELS = {\n credit_paydirect: 'ePayCard.payWithCard',\n paylogin: 'ePayProfile.payWithEPay',\n};\n\nconst EPayButton = memo(({ invoiceNumber, invoiceId, amount, paymentOption, onPaymentInit }: Props) => {\n const { t } = useTranslation();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const formRef = useRef<HTMLFormElement>(null);\n const {\n isLoading,\n data: payload,\n error,\n } = useEPayPayload({\n amount,\n invoiceNumber,\n });\n const redirectUrl = `${window.location.origin}/invoices/${invoiceId}/?ref=epay`;\n\n const { isLoading: isInitStarted, init } = useEPayInit({ invoiceNumber });\n\n const isDisabled = Boolean(isLoading || !payload || error);\n\n const onSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n setIsSubmitting(true);\n event.preventDefault();\n\n if (!payload) {\n logger.error('ePay payload is missing', { invoiceId });\n return;\n }\n\n trackTagManagerEvent(PaymentEvents.initializePayment, { invoiceId, invoiceNumber, paymentOption });\n\n await onPaymentInit();\n await init({ encoded: payload.encoded });\n\n formRef.current?.submit();\n };\n\n return (\n <Box display=\"flex\" flex={1}>\n <form action={process.env.NEXT_PUBLIC_EPAY_SUBMIT_URL} method=\"POST\" onSubmit={onSubmit} ref={formRef}>\n {payload?.checksum && payload?.encoded && (\n <>\n <input type=\"hidden\" name=\"PAGE\" value={paymentOption} />\n <input type=\"hidden\" name=\"ENCODED\" value={payload.encoded} />\n <input type=\"hidden\" name=\"CHECKSUM\" value={payload.checksum} />\n <input type=\"hidden\" name=\"URL_OK\" value={redirectUrl} />\n <input type=\"hidden\" name=\"URL_CANCEL\" value={redirectUrl} />\n </>\n )}\n\n <Box\n sx={{ bgcolor: 'primary.main', borderRadius: 4 }}\n display=\"flex\"\n flex={1}\n flexDirection=\"row\"\n alignItems=\"center\"\n >\n <Button\n type=\"submit\"\n color=\"gradient\"\n loading={isInitStarted || isSubmitting}\n disabled={isDisabled || paymentOption === null}\n >\n {t(`invoices:${BUTTON_LABELS[paymentOption]}`)}\n </Button>\n </Box>\n </form>\n </Box>\n );\n});\n\nexport { EPayButton };\n","export type { PaymentOption } from './components/EPayButton';\nexport { EPayButton } from './components/EPayButton';\nexport { PaymentNotificationProvider, usePaymentNotification } from './hooks/usePaymentNotification';\n","import { Timestamp } from 'firebase/firestore';\n\nexport enum PaymentStatus {\n INIT = 'INIT',\n PROCESSING = 'PROCESSING',\n PAID = 'PAID',\n ERROR = 'ERROR',\n}\n\nexport type Payment = {\n invoiceNumber: string;\n userId: string;\n status: PaymentStatus;\n paymentNotificationPayload: string | null;\n paymentRequestPayload: string | null;\n isSonitaNotified: boolean;\n sonitaResponse: string | null;\n isInvoiceStatusUpdated: boolean;\n createdAt: Timestamp;\n};\n"],"names":["areaCities","areas","Варна","Пловдив","София","energyUtilityOptions","regions","settlements","Благоевград","Бургас","Видин","Враца","Габрово","Добрич","Кърджали","Кюстендил","Ловеч","Монтана","Пазарджик","Перник","Плевен","Разград","Русе","Силистра","Сливен","Смолян","Търговище","Хасково","Шумен","Ямбол","CustomerCard","customer","onClick","param","t","useTranslation","name","customerId","address","representatives","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","LinkContainer","href","getCustomerPath","CustomerCardUI","data-testid","title","id","subtitle","getAddress","representativesLabel","split","CustomerDetails","data","invoices","contacts","meteringPoints","useCustomer","jsxs","Fragment","DetailsPageTitle","leftButtons","GoBackButton","titleGraphic","Avatar","shape","size","withGradient","Stack","spacing","mt","CustomerDetailedData","items","PageSection","NextLink","RecentInvoiceList","list","direction","alignItems","gap","Typography","variant","color","fontWeight","lineHeight","total","CustomerMeteringPoints","logger","debug","CustomerCardList","CardListContainer","elements","map","trackTagManagerEvent","BlenderEvents","customerDetails","buildContactData","contactsData","phone","push","icon","Phone","phoneMobile","email","Email","buildData","details","Tag","PowerOutlined","AccountBalance","vatNo","LocationOn","getCustomerRepresentatives","Person","representative","key","__webpack_exports__","isTablet","useResolution","listData","content","ListItemGroup","label","concat","TabPanel","tabs","CardMobileSwiper","params","useParams","addWarning","Warnings","INVALID_QUERY_PARAM","page","query","p","CustomerStats","stats","value","Trans","i18nKey","values","components","display","StatsList","RepresentativesCell","row","AvatarGroup","users","CustomerPathButton","Button","LinkComponent","buildTableColumns","accessor","header","props","virtualColumn","CustomerTable","tableColumns","useMemo","DataTable","columns","uid","CustomersList","layout","useLayoutStore","NoResultsMessage","UserCustomers","searchQuery","setSearchQuery","useState","ListPageTitle","desktopActions","LayoutSwitcher","actions","SearchControl","placeholder","onSearch","customerSearch","q","popoverPosition","ScrollableViewWithData","useDataHook","useCustomers","hookOptions","filterBy","search","ListComponent","isDesktop","cardsList","slice","jsx_runtime","MeteringPointCard","meteringPoint","customerMeteringPointDetails","meteringPointId","maxElements","totalElements","seeMoreHref","MobileSwiper","helpers_getCustomerPath","helpers_getCustomerRepresentatives","cacheKeys","createDataCacheKeys","arguments","length","undefined","api","useCustomerApi","isLoading","isError","isSuccess","error","fetchNextPage","useSuspensePaginatedQuery","cacheKey","fetchAll","getAll","filter","pageParams","BEFORE_PREVIOUS_CALLBACKS","stateManager","setCurrentRepresentativeIndex","businessRepresentative1","businessRepresentative2","RESIDENT_CUSTOMER_NAVIGATOR_STEPS","BUSINESS_CUSTOMER_NAVIGATOR_STEPS","getNavigationSteps","skipSteps","customerType","navigatorSteps","step","includes","useBusinessStepNavigator","onboardingData","customerData","getCurrentStep","getHistory","goToNextStep","goToPreviousStep","setCurrentStep","setRedirectTo","navigateWithRedirect","useStepNavigator","initialStep","steps","useResidentStepNavigator","SET_ACCOUNT_MANAGER","type","SET_PLAN_ID","SET_CUSTOMER_TYPE","SET_NAME","SET_LEGAL_ENTITY_NAME","SET_PERSONAL_ID","SET_EIK","SET_ADDRESS","SET_REPRESENTATIVES","SET_CUSTOMER_CONTACT","SET_USE_ACCOUNT_CONTACT","SET_CUSTOMER_BILLING_CONTACT","SET_BILLING_DATA_SOURCE","SET_CUSTOMER_DATA","stateReducer","prevState","action","payload","accountManager","addressLine1","addressLine2","area","municipality","postCode","region","settlement","billingContact","firstName","lastName","country","countryCode","billingDataSource","contact","currentRepresentativeIndex","eik","legalEntityName","middleName","personalId","useAccountContact","useStateManager","onboardingCustomerData","state","dispatch","useReducer","removeRepresentative","newRepresentatives","splice","representativeIndex","setAccountManager","setAddress","setBillingDataSource","setCustomerBillingContact","setCustomerContact","setCustomerData","setCustomerType","setEIK","setLegalEntityName","setName","setPersonalId","setPlan","planId","setRepresentatives","setUseAccountContact","CreateCustomerContext","createContext","businessStepNavigator","getCustomerBillingContact","DEFAULT_STATE","getCustomerContact","getCustomerData","getRepresentatives","getResidentialCustomerContact","isCompany","onCompletion","residentStepNavigator","CreateCustomerProvider","children","onUpdate","useEffect","useCallback","accountData","phoneNumber","navigator","currentStep","beforePreviousCallback","context","Provider","useCreateCustomer","useContext","Value","AccountManager","DataSection","Address","Box","isCompletedAddress","BillingContact","billingContactData","Boolean","join","Contact","contactData","CustomerType","Eik","LegalEntityName","Representatives","setRepresentativeStep","index","deleteIcon","onDelete","NameInputs","translationNamespace","TextInput","required","margin","fullWidth","autoFocus","shrink","formatAddress","addressLine","isLegalEntity","legalEntityTypes","some","parseCustomerName","rest","parseMeteringPointsData","meteringPointAddress","meteringPointName","parseInvoiceFileData","invoiceFile","invoiceData","analyzeInvoice","receiverAddress","customerName","receiverName","splitLegalEntityName","legalEntityNameParts","companyType","pop","COMPANY_TYPES","LoaderView","justifyContent","height","Loader","RegisteredCustomerMessage","flex","flexDirection","mb","textAlign","Name","PersonalId","STEPS","resolver","yupResolver","object","string","handleSubmit","watch","formState","getValues","useForm","defaultValues","onSubmit","FormProvider","Form","style","StepTitle","flexGrow","autocomplete","ContinueButton","disabled","isValid","requiredMessage","when","is","then","nullable","street","resetField","OnboardingEvents","customerAddress","Autocomplete","options","billingContactPerson","customerContact","customerAccountData","mixed","defined","test","validatePhoneNumber","setValue","clearErrors","trigger","billingData","subscription","unsubscribe","RadioButtons","onChange","optionValue","Object","entries","forEach","PhoneInput","businessConfirmation","isLargeMobile","useMediaQuery","editStep","maxHeight","ml","overflow","position","isCompletedOnboardingCustomer","addRepresentative","boolean","REPRESENTATIVE_INDEX","history","lastStep","Checkbox","businessStepsPreview","contactPerson","bool","mode","event","target","checked","onSelection","OptionCard","description","residentialCustomerType","selected","businessCustomerType","eikId","getCompany","useTradeRegister","setIsLoading","matches","NUMBERS_ONLY_REGEX","message","searchInTradeRegister","companyEIK","user_id","company","owners","owner","loading","fillInOptions","fillDataByInvoice","fillDataManually","invoiceUpload","onInvoiceUpload","onDrop","acceptedFiles","uploadInvoice","file","meteringPointsData","getRootProps","getInputProps","open","useDropzone","accept","maxFiles","useFsAccessApi","Card","sx","customShadows","boxShadow","main","input","CardContent","FileUploadOutlined","alignSelf","companyName","companyTypeLabel","find","toUpperCase","isOptionEqualToValue","option","min","PID_LENGTH","max","residentConfirmation","residentStepsPreview","StepComponent","CurrentStepComponent","Wizard","searchParams","useSearchParams","plan","get","isSupportedPlan","BillingPlans","CurrentStep","showBackButton","WizardLayout","leftChild","ProcessDetails","onBackClick","iconSource","rightChild","MobilePageHeader","CreateCustomerWizard","defaultPageObject","pages","usePickerCustomers","enabled","usePaginatedQuery","useSelectedCustomerIds","create","selectedCustomerIds","setSelectedCustomerIds","set","newCustomers","CustomerItem","toggleChecked","MenuItem","bgcolor","maxWidth","ListItemText","primary","TypographyOverflow","shared_CustomerCountBadge","count","Badge","badgeContent","anchorOrigin","horizontal","vertical","theme","palette","common","white","left","top","width","SearchField","selectedCount","setSearch","TextField","e","InputProps","startAdornment","CustomerCountBadge","orderBySelected","selectedCustomers","customers","c","CustomerPicker","setOptions","selectedCustomersIds","setSelectedCustomersIds","customerIdIn","handleChange","onCustomerClick","customerOptions","AutocompleteField","getOptionLabel","noOptionsText","filterOptions","renderOption","_props","selectedId","clearOnBlur","renderInput","getCacheKey","listOptions","useCustomerContacts","useSuspenseQuery","queryFn","getContacts","queryKey","useCustomerInvoices","getInvoices","useCustomerMeteringPoints","getMeteringPoints","detail","transformMeteringPoints","useAuthFetch","getToken","useAuthUser","request","url","token","fetch","headers","Authorization","Promise","reject","extractFileAndBucketName","bucketMatch","match","fileMatch","bucketName","fileName","useCloudStorageFile","getFile","fileUrl","response","method","fileContent","blob","ok","useDriveFile","fileIdMatch","fileId","useEPayInitRequest","init","encoded","invoiceNumber","reponse","body","JSON","stringify","json","useEPayPayloadRequest","getPayload","amount","addError","Errors","UNABLE_TO_BUILD_EPAY_PAYLOAD","isInvoice","prototype","hasOwnProperty","call","invoice","InvoiceCard","memo","invoiceDate","paymentDeadline","meteringPointsCount","totalInvoiceCost","status","balance","downloadUrl","pdfUrl","paymentBalance","useInvoiceBalance","getInvoicePath","UiInvoiceCard","toMonthNameAndYearString","date","formatDate","component","dueDate","statusText","toLowerCase","onInvoiceDownload","recordInvoiceDownload","useInvoiceMeteringPoints","invoiceId","useInvoice","COLORS_ARRAY","labelFormatter","customLabel","tooltipLabel","components_LineChart_LineChart","xAxisKey","tooltip","customTooltip","lineWidth","config","tooltipFormatter","legendAlign","hasLegend","showXAxis","showYAxis","showGrid","isBottomLegend","ResponsiveContainer","LineRechart","bottom","right","CartesianGrid","strokeDasharray","XAxis","dataKey","axisLine","tickLine","YAxis","Tooltip","formatter","Legend","align","iconType","iconSize","verticalAlign","i","accessorKey","Line","stroke","strokeWidth","text","x","y","dominantBaseline","fontSize","MeteringPointData","wrapped","valueBold","marginBottom","CHART_DATA","padding","borderRadius","InvoiceMeteringPointDetails","meteringPointInvoice","erp","profile","md","xs","lines","InvoiceMeteringPointTable","lineItems","IfFeatureEnabled","feature","border","borderColor","Date","locale","LineChart","backgroundColor","cursor","borderBottom","borderBottomColor","textDecoration","buildOptionLabel","InvoiceMeteringPointSwitcher","meteringPointInvoices","defaultOption","dataTestId","setOpen","selectedMeteringPoint","setSelectedMeteringPoint","createFilterOptions","matchFrom","handleMeteringPointClick","pointInvoiceAddendum","onOpen","onClose","autoHighlight","MeteringPointsPreview","meteringPointInvoiceId","setMeteringPointInvoice","useTheme","Paper","m","xl","STATUS_NOTIFICATION_MAP","PaymentStatus","PROCESSING","messageKey","severity","PAID","PaymentNotification","invoiceStatus","lastInvoiceStatus","useRef","isMessageVisible","setIsMessageVisible","getNotificationStatus","usePaymentNotification","notificationStatus","current","setTimeout","Alert","performGoBack","back","ref","InvoiceDetails","isEPayEnabled","useFeatureIsOn","useRouter","PaymentNotificationProvider","secondaryTitle","secondarySubtitle","rightButtons","DownloadButtons","InvoiceSummary","CompanyInvoiceDetails","Grid","container","pt","item","noWrap","CompanyAvatarDetails","avatar","detailedData","letterSpacing","textTransform","grey","lg","GradientDivider","styled","background","gradient","rainbow","isPaymentAvailable","columnSpacing","rowSpacing","bgColor","src","InvoiceDates","InvoiceItemsTable","InvoiceDues","totalCost","vat","currency","flexWrap","totalInvoiceWords","totalInvoiceCostWords","PaymentEvents","choosePaymentMethod","InvoiceCardList","invoiceDetails","Component","TableContainer","Table","TableHead","TableRow","darkGreen","rounded","TableCell","TableBody","invoiceLineItemId","unit","quantity","price","CurrencyFormat","fontStyle","InvoiceList","InvoiceTable","CELL_RENDER_MAP","DownloadIconButton","path","Link","isDownloadEnabled","renderCell","Cell","recentInvoiceList","orderBy","setOrderBy","setInvoiceNumber","sortOptions","order","invoiceSearch","invoiceNumberQuery","mr","SortControl","invoiceOrderBy","useInvoices","Title","PaymentNotAvailable","TRANSLATION_MAP","credit_paydirect","paylogin","PaymentOptionCard","paymentOption","onPaymentInit","translationKey","EPayButton","PaymentMethods","isSubmitting","setIsSubmitting","formatNumberToCurrency","InvoicePayment","buttonSize","hourlyInquiryUrl","DownloadButton","addAction","Actions","BLENDER_DOWNLOAD_HOURLY_REPORT","Intl","NumberFormat","format","helpers_getInvoicePath","parentId","BLENDER_DOWNLOAD_INVOICE_PDF","useInvoiceApi","refetch","transformInvoice","balanceType","balanceCurrency","Math","abs","ErrorMessage","LoadingMessage","Label","hasError","editMeteringPoint","removeMeteringPoint","isCompletedMeteringPoint","isAddressValid","titleColor","selectedColor","IconButton","stopPropagation","DeleteOutline","meteringPointLabel","accountOptions","useCreateMeteringPoint","getMeteringPoint","currentMeteringPointIndex","getAccountAddress","useAccountAddress","accountAddress","keys","completion","hasOnCompletionError","setHasOnCompletionError","errorMessage","getAllMeteringPoints","setCurrentMeteringPointIndex","hasMeteringPointMissingData","every","isHidden","isDisabled","onCompletionButtonPress","submitMeteringPoints","completionError","ResponseError","parseConsumerResponseError","overflowY","confirmation","previousUtility","setMeteringPointId","setPreviousUtility","invalidMeteringPointIdMessage","regionLabel","conditions","createError","itn","isErpSouth","isErpEso","isErpWest","uin","isErpGoldenSands","isErpNorth","MeteringPointParticle","CreateMeteringPointWizard","CreateMeteringPointProvider","DetailValue","labelKey","Details","displayCustomerName","getMeteringPointPath","MeteringPointCardUI","useMeteringPointInvoices","useMeteringPointApi","useMeteringPoint","transformMeteringPoint","detail_MeteringPointDetails","MeteringPointDetailedData","Business","ElectricalServices","Power","Assessment","Money","toString","MeteringPointDetails","MeteringPointCardList","meteringPointDetails","MeteringPointPathButton","CellValue","CustomerCell","NameCell","AddressCell","MeteringPointTable","MeteringPointsList","useMeteringPoints","itemsDecorator","list_UserMeteringPoints","CustomerTypeSelect","onCustomerTypeChange","meteringPointSearch","ownerIdIn","OPTIONS","SelectField","showModal","setShowModal","handleClose","Dialog","DialogContent","Image","alt","DialogActions","METERING_POINTS_REGEX","ERP_GOLDEN_SANDS","ERP_NORTH","ERP_SOUTH","ERP_WEST","ESO","meteringPointNumber","helpers_getMeteringPointPath","NAVIGATOR_STEPS","SET_METERING_POINT_ID","SET_PREVIOUS_UTILITY","SET_METERING_POINTS_DATA","SET_CURRENT_METERING_POINT_INDEX","meteringPointIndex","DEFAULT_METERING_POINT_STATE","onboardingMeteringPoints","addMeteringPoint","meteringPointData","newMeteringPointsData","setMeteringPointsData","CreateMeteringPointContext","getCurrentMeteringPointIndex","resolve","useEPayInit","initRequest","mutateAsync","isPending","useMutation","mutationFn","mutationKey","useEPayPayload","useQuery","payloadError","PaymentNotificationContext","notification","setNotification","paymentStatus","onSnapshot","doc","db","snapshot","BUTTON_LABELS","formRef","redirectUrl","window","location","origin","isInitStarted","preventDefault","initializePayment","submit","form","process","checksum"],"sourceRoot":""}