{"version":3,"file":"static/js/main.2f63cad0.js","mappings":"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,uBACP,IAAO,iBACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,iBACP,IAAO,IACP,IAAO,OACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,IACP,IAAO,SACP,IAAO,MACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,KACP,IAAO,IACP,IAAO,gBACP,IAAO,SACP,IAAO,MACP,IAAO,SACP,IAAO,OACP,IAAO,eACP,IAAO,MACP,IAAO,IACP,IAAO,UACP,IAAO,OACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,UACP,IAAO,MACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,OACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,SACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,OACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,SACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,SACP,IAAO,IACP,IAAO,OACP,IAAO,2BACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,SACP,IAAO,KACP,IAAO,OACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,qBACP,IAAO,KACP,IAAO,SACP,IAAO,MACP,IAAO,qBACP,IAAO,SACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,eACP,IAAO,OACP,IAAO,IACP,IAAO,UACP,IAAO,SACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,SACP,IAAO,gBACP,IAAO,UACP,IAAO,sBACP,IAAO,qBACP,IAAO,SACP,IAAO,KACP,IAAO,SACP,IAAO,qBACP,IAAO,SACP,IAAO,QClWX,SAAWrC,GACP,IAAIsC,EAAiB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC7G,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,M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EAClC,EACO0M,CACX,CAT4B,KAUY3sD,SC1JpC4sD,GAAa,CACb,SACA,QACA,cACA,4BACA,kCACA,wCACA,oCACA,uBACA,0BACA,0BACA,2CAEAC,GAAc,CACd,CAAE/oU,UAAW,OAAQg9K,SAAU,yBAC/B,CAAEh9K,UAAW,aAAcg9K,SAAU,+BACrC,CAAEh9K,UAAW,QAASg9K,SAAU,0BAChC,CAAEh9K,UAAW,QAASg9K,SAAU,0BAChC,CAAEh9K,UAAW,OAAQg9K,SAAU,qCAE/BgsJ,GAAW,CAAC,WACZ,UACA,cACA,aACA,YACA,SACA,UACA,SACA,UACA,eACA,iBACA,UACA,WACA,eACA,iBACA,gBACA,SACA,YACA,mBACA,WACA,UACA,gBACA,aACA,SACA,YACA,cACA,cACA,aACA,cACA,SACA,mBACA,YACA,UACA,UACA,UACA,UACA,eACA,cACA,cACA,UACA,YACA,YACA,aACA,UACA,SACA,eACA,mBACA,cACA,YACA,cACA,cACA,aACA,cACA,YACA,eACA,YACA,SACA,WACA,aACA,aACA,UACA,SACA,YACA,aACA,aACA,eACA,qBACA,SACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,YACA,eACA,SACA,WACA,iBACA,YACA,eACA,eACA,eACA,UACA,oBAEAC,GAAoC,WACpC,SAASA,IACT,CA0EA,OAzEAA,EAAmBC,eAAiB,WAChC,MAAO,CACHC,UAAW,CACPjvE,KAAM4uE,GACN/oU,WAAYgpU,IAGxB,EACAE,EAAmBG,SAAW,SAAU37U,GACpC,IAAI6nC,EAAOxjC,KAAKo3U,iBAEhB,OADap3U,KAAKu3U,eAAe/zS,EAAM7nC,EAE3C,EACAw7U,EAAmBI,eAAiB,SAAU/zS,EAAM7nC,GAChDqE,KAAKi3U,YAAczzS,EAAK6zS,UAAUppU,WAClCjO,KAAKg3U,WAAaxzS,EAAK6zS,UAAUjvE,KACjCpoQ,KAAKw3U,YAAclrU,SAASS,cAAc,OAC1C/M,KAAKw3U,YAAY5qU,UAAYjR,EAC7BqE,KAAKy3U,gBACLz3U,KAAK03U,iBACL13U,KAAK23U,iBACL,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CV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,OAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IA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","sources":["../node_modules/clsx/dist/clsx.m.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/domelementtype/lib/index.js","../node_modules/domhandler/lib/index.js","../node_modules/domhandler/lib/node.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/html-dom-parser/lib/client/constants.js","../node_modules/html-dom-parser/lib/client/domparser.js","../node_modules/html-dom-parser/lib/client/html-to-dom.js","../node_modules/html-dom-parser/lib/client/utilities.js","../node_modules/html-react-parser/index.js","../node_modules/html-react-parser/lib/attributes-to-props.js","../node_modules/html-react-parser/lib/dom-to-react.js","../node_modules/html-react-parser/lib/utilities.js","../node_modules/inline-style-parser/index.js","../node_modules/json2mq/index.js","../node_modules/load-script/index.js","../node_modules/lodash.debounce/index.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/moment/moment.js","../pdfjs-dist/build/pdf/webpack/universalModuleDefinition","../pdfjs-dist/build/pdf/src/shared/util.js","../pdfjs-dist/build/pdf/src/display/api.js","../pdfjs-dist/build/pdf/src/display/annotation_storage.js","../pdfjs-dist/build/pdf/src/display/editor/editor.js","../pdfjs-dist/build/pdf/src/display/editor/tools.js","../pdfjs-dist/build/pdf/src/display/display_utils.js","../pdfjs-dist/build/pdf/src/display/base_factory.js","../pdfjs-dist/build/pdf/src/shared/murmurhash3.js","../pdfjs-dist/build/pdf/src/display/font_loader.js","../pdfjs-dist/build/pdf/src/display/node_utils.js","../pdfjs-dist/build/pdf/src/display/canvas.js","../pdfjs-dist/build/pdf/src/display/pattern_helper.js","../pdfjs-dist/build/pdf/src/shared/image_utils.js","../pdfjs-dist/build/pdf/src/display/worker_options.js","../pdfjs-dist/build/pdf/src/shared/message_handler.js","../pdfjs-dist/build/pdf/src/display/metadata.js","../pdfjs-dist/build/pdf/src/display/optional_content_config.js","../pdfjs-dist/build/pdf/src/display/transport_stream.js","../pdfjs-dist/build/pdf/src/display/fetch_stream.js","../pdfjs-dist/build/pdf/src/display/network_utils.js","../pdfjs-dist/build/pdf/src/display/content_disposition.js","../pdfjs-dist/build/pdf/src/display/network.js","../pdfjs-dist/build/pdf/src/display/node_stream.js","../pdfjs-dist/build/pdf/src/display/svg.js","../pdfjs-dist/build/pdf/src/display/xfa_text.js","../pdfjs-dist/build/pdf/src/display/text_layer.js","../pdfjs-dist/build/pdf/src/display/editor/annotation_editor_layer.js","../pdfjs-dist/build/pdf/src/display/editor/freetext.js","../pdfjs-dist/build/pdf/src/display/annotation_layer.js","../pdfjs-dist/build/pdf/src/shared/scripting_utils.js","../pdfjs-dist/build/pdf/web/l10n_utils.js","../pdfjs-dist/build/pdf/src/display/xfa_layer.js","../pdfjs-dist/build/pdf/src/display/editor/ink.js","../pdfjs-dist/build/pdf/src/display/editor/stamp.js","../pdfjs-dist/build/pdf/webpack/bootstrap","../pdfjs-dist/build/pdf/src/pdf.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../Datetime/webpack/bootstrap","../Datetime/external \"react\"","../Datetime/external \"moment\"","../Datetime/external \"react-dom\"","../Datetime/node_modules/prop-types/index.js","../Datetime/node_modules/prop-types/factoryWithThrowingShims.js","../Datetime/node_modules/prop-types/lib/ReactPropTypesSecret.js","../Datetime/src/parts/ViewNavigation.js","../Datetime/src/views/DaysView.js","../Datetime/src/views/MonthsView.js","../Datetime/src/views/YearsView.js","../Datetime/src/views/TimeView.js","../Datetime/node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../Datetime/src/DateTime.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/props.js","../node_modules/react-player/lib/utils.js","../node_modules/react-property/lib/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/simple-react-validator/dist/simple-react-validator.min.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/style-to-js/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-object/index.js","../node_modules/toastify-js/src/toastify.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/assertClassBrand.js","../node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js","../node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js","../node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js","../node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js","../node_modules/@babel/runtime/helpers/classPrivateGetter.js","../node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","../node_modules/@tanstack/query-core/src/utils.ts","../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","../node_modules/@tanstack/query-core/src/notifyManager.ts","../node_modules/@tanstack/query-core/src/subscribable.ts","../node_modules/@tanstack/query-core/src/focusManager.ts","../node_modules/@tanstack/query-core/src/onlineManager.ts","../node_modules/@tanstack/query-core/src/thenable.ts","../node_modules/@tanstack/query-core/src/retryer.ts","../node_modules/@tanstack/query-core/src/removable.ts","../node_modules/@tanstack/query-core/src/query.ts","../node_modules/@tanstack/query-core/src/queryCache.ts","../node_modules/@tanstack/query-core/src/mutation.ts","../node_modules/@tanstack/query-core/src/mutationCache.ts","../node_modules/@tanstack/query-core/src/infiniteQueryBehavior.ts","../node_modules/@tanstack/query-core/src/queryClient.ts","../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx","../node_modules/immer/src/utils/env.ts","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/immer.ts","../node_modules/use-immer/src/index.ts","shared/hooks/useModal.js","modules/Dashboard/DashboardView.js","../node_modules/@tanstack/query-core/src/mutationObserver.ts","../node_modules/@tanstack/react-query/src/utils.ts","../node_modules/@tanstack/react-query/src/useMutation.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/@babel/runtime/helpers/esm/OverloadYield.js","../node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/@sentry/src/worldwide.ts","../node_modules/@sentry/src/constants.ts","../node_modules/@sentry/src/is.ts","../node_modules/@sentry/src/browser.ts","../node_modules/@sentry/src/debug-build.ts","../node_modules/@sentry/src/logger.ts","../node_modules/@sentry/src/string.ts","../node_modules/@sentry/src/object.ts","../node_modules/@sentry/src/misc.ts","../node_modules/@sentry/src/time.ts","../node_modules/@sentry/src/syncpromise.ts","../node_modules/@sentry/src/eventProcessors.ts","../node_modules/@sentry/src/session.ts","../node_modules/@sentry/src/utils/getRootSpan.ts","../node_modules/@sentry/src/baggage.ts","../node_modules/@sentry/src/tracing.ts","../node_modules/@sentry/src/utils/spanUtils.ts","../node_modules/@sentry/src/tracing/dynamicSamplingContext.ts","../node_modules/@sentry/src/utils/applyScopeDataToEvent.ts","../node_modules/@sentry/src/scope.ts","../node_modules/@sentry/src/version.ts","../node_modules/@sentry/src/hub.ts","../node_modules/@sentry/src/stacktrace.ts","../node_modules/@sentry/src/normalize.ts","../node_modules/@sentry/src/memo.ts","../node_modules/@sentry/src/utils/prepareEvent.ts","../node_modules/@sentry/src/exports.ts","utils/apiConfig.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","utils/helper.js","utils/cookies.js","../node_modules/html-react-parser/index.mjs","utils/errorFormatter.js","utils/customValidation.js","../node_modules/@tanstack/query-core/src/queryObserver.ts","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/@tanstack/react-query/src/QueryErrorResetBoundary.tsx","../node_modules/@tanstack/react-query/src/isRestoring.ts","../node_modules/@tanstack/react-query/src/suspense.ts","../node_modules/@tanstack/react-query/src/useBaseQuery.ts","../node_modules/@tanstack/react-query/src/errorBoundaryUtils.ts","../node_modules/@tanstack/react-query/src/useQuery.ts","modules/Dashboard/hooks/useDashboardBanner.js","modules/Dashboard/hooks/useProgramListQuery.js","modules/Dashboard/components/DashboardBanner.js","assets/images/icons/arrow-right-icon-white.svg","modules/Dashboard/components/ProgramCard.js","../node_modules/reactstrap/esm/utils.js","../node_modules/reactstrap/esm/FormFeedback.js","../node_modules/reactstrap/esm/Input.js","../node_modules/reactstrap/esm/Label.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-select/node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-select/dist/react-select.esm.js","shared/components/InputControl.js","modules/Dashboard/components/ConfirmRegistrationModalBody.js","assets/images/activationCode.svg","assets/images/icons/right-arrow.svg","modules/Dashboard/components/DashboardActivationCode.js","modules/Dashboard/containers/LandingPage.js","../node_modules/reactstrap/esm/Spinner.js","assets/images/confirm-icon-graphics.svg","assets/images/invalid-icon-graphics.svg","assets/images/check-graphics.svg","modules/Dashboard/containers/DashboardPrograms.js","modules/Dashboard/hooks/useDashboard.js","modules/Dashboard/api/programs.api.js","modules/Dashboard/api/program.key.js","modules/Notification/Notifications.js","modules/Notification/containers/NotificationItems.js","modules/Notification/containers/NotificationHead.js","modules/Notification/api/notification.api.js","modules/Notification/api/notification.key.js","modules/Notification/hooks/useNotificationBanner.js","modules/Notification/hooks/useNotificationBannerQuery.js","modules/Notification/components/NotificationIndividualItem.js","modules/Notification/components/NotificationEmptyMessage.js","assets/images/notification.svg","modules/Notification/components/NotificationDropDown.js","modules/Notification/components/NotificationBanner.js","assets/images/icons/speaker-filled-brown.svg","modules/Notification/components/NotificationModal.js","modules/Notification/components/NotificationCardSkelton.js","modules/Notification/components/NotificationDropDownSkelton.js","modules/Program/Program.js","assets/images/error-theory-not-found-graphics.svg","assets/images/icons/book-icon-blue.svg","assets/images/icons/theory-icon.svg","assets/images/icons/suitcase-icon-pink.svg","assets/images/icons/checklist-icon-brown.svg","assets/images/icons/certificate-icon-green.svg","modules/Program/containers/ProgramDetails.js","modules/Program/hooks/useProgram.js","modules/Program/hooks/useProgramQuery.js","modules/Program/api/program.key.js","modules/Program/api/program.api.js","assets/images/icons/speaker-icon-brown.svg","modules/Program/components/ProgramDetailsCard.js","assets/images/icons/question-icon.svg","modules/Program/components/HelpFlotingIcon.js","assets/images/icons/arrow-right-icon-dark.svg","assets/images/icons/user-drop-icon.svg","assets/images/icons/certificate-icon-black.svg","assets/images/icons/activation-code-icon.svg","assets/images/icons/logout-icon.svg","modules/Profile/components/ProfileDropDown.js","../node_modules/reactstrap/esm/Portal.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/reactstrap/esm/Fade.js","../node_modules/reactstrap/esm/Modal.js","modules/Profile/components/ChangePassword.js","assets/images/icons/lock-icon.svg","modules/Profile/components/ChangePasswordModalBody.js","assets/images/icons/close-icon-white-round.svg","modules/Profile/components/ActivationCode.js","modules/Profile/components/ActivationCodeModalBody.js","assets/images/icons/trash-icon.svg","modules/Profile/components/AccountDeletionModalBody.js","assets/images/shocking-vector.svg","modules/Profile/components/AccountDeletionConfirmModalBody.js","modules/Profile/components/ProfileDropDownSkelton.js","modules/Profile/api/profile.api.js","modules/Profile/hooks/useProfileQuery.js","modules/Profile/api/profile.key.js","modules/Profile/hooks/usePassword.js","modules/Profile/hooks/useAccountDeletion.js","modules/LearningMaterials/LearningMaterials.js","modules/LearningMaterials/containers/CourseGroupList.js","modules/LearningMaterials/containers/CourseList.js","modules/LearningMaterials/containers/CourseTask.js","modules/LearningMaterials/containers/CourseTaskDetailsMobileView.js","modules/LearningMaterials/hooks/useLearningMaterials.js","modules/LearningMaterials/hooks/useCourseTask.js","modules/LearningMaterials/hooks/useCourse.js","modules/LearningMaterials/hooks/useCourseTaskListQuery.js","modules/LearningMaterials/hooks/useStudentSpecificDataQuery.js","modules/LearningMaterials/hooks/useCourseTaskDetailsQuery.js","modules/LearningMaterials/api/LearningMaterials.api.js","utils/queryBuilder.js","modules/LearningMaterials/api/LearningMaterials.key.js","assets/images/icons/green-check-filled.svg","assets/images/icons/right-direction-icon.svg","modules/LearningMaterials/components/CourseCard.js","modules/LearningMaterials/components/CourseGroupCard.js","assets/images/student-specific-data-img.svg","modules/LearningMaterials/components/CourseTaskSideBar.js","assets/images/icons/fullscreen.svg","modules/LearningMaterials/components/CouseTaskView.js","modules/LearningMaterials/components/CourseTaskSideBarCard.js","modules/LearningMaterials/components/CourseTaskTheory.js","modules/LearningMaterials/components/CourseTaskVideo.js","modules/LearningMaterials/components/CourseTaskDocs.js","modules/LearningMaterials/components/CourseTaskFooter.js","assets/images/icons/link-icon.svg","modules/LearningMaterials/components/ExternalLinkContent.js","assets/images/icons/pdf-icon.svg","modules/LearningMaterials/components/PdfContent.js","assets/images/icons/video-icon.svg","modules/LearningMaterials/components/VideoContent.js","modules/LearningMaterials/components/VideoLinkContent.js","modules/LearningMaterials/components/CourseTheoryAttachment.js","shared/hooks/useVideoPlayer.js","modules/LearningMaterials/components/StudentSpecificDataList.js","modules/LearningMaterials/components/StudentSpecificDataBtn.js","modules/LearningMaterials/components/CourseTheory.js","../node_modules/@syncfusion/ej2-base/src/util.js","../node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","../node_modules/@syncfusion/ej2-base/src/hijri-parser.js","../node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","../node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","../node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","../node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","../node_modules/@syncfusion/ej2-base/src/observer.js","../node_modules/@syncfusion/ej2-base/src/internationalization.js","../node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","../node_modules/@syncfusion/ej2-base/src/ajax.js","../node_modules/@syncfusion/ej2-base/src/browser.js","../node_modules/@syncfusion/ej2-base/src/event-handler.js","../node_modules/@syncfusion/ej2-base/src/dom.js","../node_modules/@syncfusion/ej2-base/src/base.js","../node_modules/@syncfusion/ej2-base/src/notify-property-change.js","../node_modules/@syncfusion/ej2-base/src/animation.js","../node_modules/@syncfusion/ej2-base/src/module-loader.js","../node_modules/@syncfusion/ej2-base/src/validate-lic.js","../node_modules/@syncfusion/ej2-base/src/child-property.js","../node_modules/@syncfusion/ej2-base/src/component.js","../node_modules/@syncfusion/ej2-base/src/draggable.js","../node_modules/@syncfusion/ej2-base/src/droppable.js","../node_modules/@syncfusion/ej2-base/src/keyboard.js","../node_modules/@syncfusion/ej2-base/src/l10n.js","../node_modules/@syncfusion/ej2-base/src/touch.js","../node_modules/@syncfusion/ej2-base/src/template.js","../node_modules/@syncfusion/ej2-base/src/template-engine.js","../node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","../node_modules/@syncfusion/ej2-buttons/src/common/common.js","../node_modules/@syncfusion/ej2-buttons/src/button/button.js","../node_modules/@syncfusion/ej2-popups/src/common/position.js","../node_modules/@syncfusion/ej2-popups/src/common/collision.js","../node_modules/@syncfusion/ej2-popups/src/popup/popup.js","../node_modules/@syncfusion/ej2-popups/src/common/resize.js","../node_modules/@syncfusion/ej2-popups/src/dialog/dialog.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/text-layer.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/path-util.js","../node_modules/@syncfusion/ej2-inputs/src/input/input.js","../node_modules/@syncfusion/ej2-inputs/src/textbox/textbox.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/matrix.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/point.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing-util.js","../node_modules/@syncfusion/ej2-buttons/src/check-box/check-box.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/types.js","../node_modules/@syncfusion/ej2-navigations/src/common/h-scroll.js","../node_modules/@syncfusion/ej2-navigations/src/common/v-scroll.js","../node_modules/@syncfusion/ej2-navigations/src/toolbar/toolbar.js","../node_modules/@syncfusion/ej2-navigations/src/tab/tab.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/signature.js","../node_modules/@syncfusion/ej2-lists/src/common/list-base.js","../node_modules/@syncfusion/ej2-data/src/adaptors.js","../node_modules/@syncfusion/ej2-data/src/manager.js","../node_modules/@syncfusion/ej2-data/src/util.js","../node_modules/@syncfusion/ej2-data/src/query.js","../node_modules/@syncfusion/ej2-navigations/src/common/menu-scroll.js","../node_modules/@syncfusion/ej2-navigations/src/common/menu-base.js","../node_modules/@syncfusion/ej2-notifications/src/toast/toast.js","../node_modules/@syncfusion/ej2-navigations/src/context-menu/context-menu.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/context-menu.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/size.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/pdf-annotation.js","../node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/navigation-pane.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/enum/enum.js","../node_modules/@syncfusion/ej2-inputs/src/numerictextbox/numerictextbox.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/ajax-handler.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/rect.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/diagram-util.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/dom-util.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/base-util.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/drawing-element.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/text-element.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/container.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/selector.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/path-element.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/connector-util.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/action.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/tools.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/canvas-renderer.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/svg-renderer.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/dom-util.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-context-menu.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/spinner.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-ui-adaptor.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/pdfviewer-base.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/form-fields/form-fields.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/image-element.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/renderer.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/canvas.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/html-element.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/pdfviewer.js","../node_modules/@syncfusion/ej2-react-base/src/component-base.js","../node_modules/@syncfusion/ej2-react-base/src/complex-base.js","../node_modules/@syncfusion/ej2-react-base/src/services.js","../node_modules/@syncfusion/ej2-react-base/src/template.js","../node_modules/@syncfusion/ej2-react-pdfviewer/src/pdfviewer/pdfviewer.component.js","../node_modules/@syncfusion/ej2-react-base/src/util.js","../node_modules/@syncfusion/ej2-popups/src/spinner/spinner.js","../node_modules/@syncfusion/ej2-dropdowns/src/common/incremental-search.js","../node_modules/@syncfusion/ej2-dropdowns/src/drop-down-base/drop-down-base.js","../node_modules/@syncfusion/ej2-dropdowns/src/drop-down-list/drop-down-list.js","../node_modules/@syncfusion/ej2-dropdowns/src/combo-box/combo-box.js","../node_modules/@syncfusion/ej2-navigations/src/menu/menu.js","../node_modules/@syncfusion/ej2-splitbuttons/src/common/common.js","../node_modules/@syncfusion/ej2-splitbuttons/src/drop-down-button/drop-down-button.js","../node_modules/@syncfusion/ej2-splitbuttons/src/split-button/split-button.js","../node_modules/@syncfusion/ej2-inputs/src/slider/slider.js","../node_modules/@syncfusion/ej2-inputs/src/color-picker/color-picker.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/annotation-toolbar.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/formdesigner-toolbar.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/toolbar.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/navigation/page-navigation.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/text-search/text-search.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/magnification/magnification.js","modules/ContentViewer/PDFViewer.js","modules/Help/Help.js","assets/images/error-something-went-wrong-graphics.svg","modules/Help/container/HelpView.js","modules/Help/hooks/useHelp.js","modules/Help/hooks/useHelpQuery.js","modules/Help/api/help.key.js","modules/Help/api/help.api.js","modules/Privacy/container/PrivacyAndPolicy.js","modules/Privacy/hooks/usePrivacy.js","modules/Privacy/Privacy.js","modules/FAQ/Faq.js","modules/FAQ/container/FrequentlyQuestions.js","modules/FAQ/hooks/useFaq.js","modules/TermsAndCondition/container/TermsCondition.js","modules/TermsAndCondition/hooks/useTermsAndCondition.js","modules/TermsAndCondition/TermsAndConditions.js","modules/Assessment/Assessment.js","modules/Assessment/hook/useAssessment.js","modules/Assessment/hook/useAssessmentQuery.js","modules/Assessment/hook/useAssessmentScheduleQuery.js","modules/Assessment/hook/useAssessmentSlotQuery.js","modules/Assessment/hook/useAssessmentResultQuery.js","modules/Assessment/hook/useTimeout.js","assets/images/assessmet-empty-graphics.svg","modules/Assessment/containers/AssessmentList.js","assets/images/icons/tile-menu-icon-grey.svg","assets/images/icons/prev-icon-black.svg","assets/images/icons/next-icon-black.svg","assets/images/icons/close-icon-blue.svg","assets/images/icons/flag-icon-blue.svg","modules/Assessment/containers/Questionnaire.js","modules/Assessment/containers/Review.js","assets/images/assessment-session-expired.svg","modules/Assessment/containers/ExpiredPage.js","modules/Assessment/containers/QuestionsAllMobile.js","modules/Assessment/containers/AssessmentResult.js","modules/Assessment/containers/StartingAssessment.js","assets/images/icons/quesion-mark-grey.svg","assets/images/icons/timer-icon-dark-grey.svg","assets/images/icons/close-filled-red.svg","assets/images/icons/sand-timer-bown-icon.svg","assets/images/icons/not-attempted.svg","modules/Assessment/components/AssessmentItem.js","assets/images/icons/calendar-icon-dark-grey.svg","modules/Assessment/components/AttemptItem.js","modules/Assessment/components/AssessmentStatusRow.js","modules/Assessment/components/AssessmentSpinnerElement.js","../node_modules/reactstrap/esm/ModalHeader.js","../node_modules/reactstrap/esm/ModalBody.js","../node_modules/reactstrap/esm/ModalFooter.js","modules/Assessment/components/AssessmentScheduleModal.js","modules/Assessment/components/TimeSelector.js","assets/images/assessment-date-confirm-graphics.svg","modules/Assessment/components/ScheduleConfirmModal.js","assets/images/assessment-scheduled-graphics.svg","modules/Assessment/components/ScheduleSuccessfullModal.js","assets/images/assessment-schedule-failed-graphics.svg","modules/Assessment/components/ScheduleUnsuccessfullModal.js","modules/Assessment/components/ScheduledDateView.js","assets/images/icons/question-icon-thick-black.svg","assets/images/icons/clock-icon-black.svg","assets/images/icons/board-with-checks-icon-black.svg","modules/Assessment/components/InstructionsModal.js","assets/images/assessment-timeout-graphics.svg","modules/Assessment/components/TimeoutModal.js","modules/Assessment/components/HelpModal.js","modules/Assessment/components/AssessmentTimer.js","modules/Assessment/components/QuestionItem.js","modules/Assessment/components/QuestionStatusBadge.js","modules/Assessment/components/QuestionLegend.js","modules/Assessment/components/QuestionsModal.js","modules/Assessment/components/QuestionModalItem.js","assets/images/assessment-submit-confirm-graphics.svg","modules/Assessment/components/AnswerSubmitConfirmModal.js","modules/Assessment/components/ReviewItem.js","assets/images/icons/close-icon-round-filled-grey.svg","assets/images/icons/question-icon-thick-black-2.svg","assets/images/icons/book-dark-black-thick-icon.svg","modules/Assessment/components/QuestionIndexMobileModal.js","assets/images/icons/check-green-filled-bordered.svg","assets/images/icons/close-red-filled-bordered.svg","assets/images/icons/calendar-icon-assessment.svg","assets/images/icons/timer-icon-assessment.svg","modules/Assessment/components/ResultCard.js","assets/images/icons/result-md-icon.svg","modules/Assessment/components/PublishSoonCard.js","../node_modules/canvas-confetti/dist/confetti.module.mjs","modules/Assessment/components/ConfettiEffect.js","modules/Assessment/components/TokenExpiredModal.js","modules/Assessment/api/assessment.api.js","modules/Assessment/api/assessment.key.js","modules/Certificate/Certificate.js","assets/images/error-no-certificate-found-graphics.svg","assets/images/shocking-sale.svg","modules/Certificate/container/CertificateList.js","../node_modules/react-pdf/dist/esm/pdfjs.js","../node_modules/make-event-props/dist/esm/index.js","../node_modules/make-cancellable-promise/dist/esm/index.js","../node_modules/react-pdf/node_modules/clsx/dist/clsx.mjs","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/dequal/dist/index.mjs","../node_modules/react-pdf/dist/esm/DocumentContext.js","../node_modules/react-pdf/dist/esm/Message.js","../node_modules/react-pdf/dist/esm/LinkService.js","../node_modules/react-pdf/dist/esm/PasswordResponses.js","../node_modules/react-pdf/dist/esm/shared/utils.js","../node_modules/react-pdf/dist/esm/shared/hooks/useResolver.js","../node_modules/react-pdf/dist/esm/Document.js","../node_modules/merge-refs/dist/esm/index.js","../node_modules/react-pdf/dist/esm/PageContext.js","../node_modules/react-pdf/dist/esm/shared/constants.js","../node_modules/react-pdf/dist/esm/shared/structTreeUtils.js","../node_modules/react-pdf/dist/esm/StructTreeItem.js","../node_modules/react-pdf/dist/esm/shared/hooks/usePageContext.js","../node_modules/react-pdf/dist/esm/StructTree.js","../node_modules/react-pdf/dist/esm/Page/PageCanvas.js","../node_modules/react-pdf/dist/esm/Page/PageSVG.js","../node_modules/react-pdf/dist/esm/Page/TextLayer.js","../node_modules/react-pdf/dist/esm/shared/hooks/useDocumentContext.js","../node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../node_modules/react-pdf/dist/esm/Page.js","assets/images/icons/left-arrow-long.svg","assets/images/icons/linkedin-icon.svg","assets/images/icons/download-icon-white.svg","modules/Certificate/components/CertificatePreviewModal.js","assets/images/icons/certificate-badge.svg","assets/images/icons/calendar-icon-grey.svg","assets/images/icons/timer-icon-grey.svg","modules/Certificate/components/CertificateItem.js","modules/Certificate/hooks/useCertificate.js","modules/Certificate/hooks/useProgramCertificateQuery.js","modules/Certificate/api/certificate.key.js","modules/Certificate/api/certificate.api.js","modules/Certificate/hooks/useStudentBatchCertificatesQuery.js","modules/Certificate/hooks/useCertificateProgramSelectListQuery.js","shared/hooks/useProfileDropDown.js","shared/hooks/errorFormatter.js","shared/components/ModalLayout.js","shared/components/PasswordToggle.js","shared/components/ControlledTextarea.js","shared/components/ProtectedRoute.js","../node_modules/react-error-boundary/dist/react-error-boundary.esm.js","shared/components/GlobalErrorHandler.js","shared/components/LoadingSpinner.js","assets/images/icons/home-icon.svg","shared/components/PageHeader.js","shared/components/MainHeader.js","shared/components/FooterLink.js","shared/components/MainFooter.js","shared/components/CommonProgressBar.js","shared/components/CommonIcons.js","shared/components/SpinnerComponent.js","shared/components/VideoPlayerModal.js","shared/components/ErrorComponent.js","shared/components/HeaderLink.js","assets/images/icons/notifiction-icon.svg","assets/images/icons/user-icon.svg","assets/images/icons/book-dark-grey-thick-icon.svg","assets/images/icons/question-icon-thick-grey.svg","assets/images/icons/warning-round-filled-blue.svg","shared/components/HeaderRightBlock.js","modules/LearningMaterials/hooks/useCustomActivityLog.js","shared/components/MediaPreviewModal.js","shared/components/YouTubePlayer.js","shared/containers/AuthLayout.js","shared/containers/PageLayout.js","../node_modules/@firebase/util/src/crypt.ts","../node_modules/@firebase/util/src/defaults.ts","../node_modules/@firebase/util/src/global.ts","../node_modules/@firebase/util/src/deferred.ts","../node_modules/@firebase/util/src/environment.ts","../node_modules/@firebase/util/src/errors.ts","../node_modules/@firebase/util/src/obj.ts","../node_modules/@firebase/util/src/exponential_backoff.ts","../node_modules/@firebase/util/src/compat.ts","../node_modules/@firebase/component/src/component.ts","../node_modules/@firebase/component/src/constants.ts","../node_modules/@firebase/component/src/provider.ts","../node_modules/@firebase/component/src/component_container.ts","../node_modules/@firebase/logger/src/logger.ts","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../node_modules/@firebase/app/src/platformLoggerService.ts","../node_modules/@firebase/app/src/logger.ts","../node_modules/@firebase/app/src/constants.ts","../node_modules/@firebase/app/src/internal.ts","../node_modules/@firebase/app/src/errors.ts","../node_modules/@firebase/app/src/firebaseApp.ts","../node_modules/@firebase/app/src/api.ts","../node_modules/@firebase/app/src/indexeddb.ts","../node_modules/@firebase/app/src/heartbeatService.ts","../node_modules/@firebase/app/src/registerCoreComponents.ts","../node_modules/@firebase/app/src/index.ts","../node_modules/firebase/app/index.ts","../node_modules/@firebase/installations/src/util/constants.ts","../node_modules/@firebase/installations/src/util/errors.ts","../node_modules/@firebase/installations/src/functions/common.ts","../node_modules/@firebase/installations/src/util/sleep.ts","../node_modules/@firebase/installations/src/helpers/generate-fid.ts","../node_modules/@firebase/installations/src/helpers/buffer-to-base64-url-safe.ts","../node_modules/@firebase/installations/src/util/get-key.ts","../node_modules/@firebase/installations/src/helpers/fid-changed.ts","../node_modules/@firebase/installations/src/helpers/idb-manager.ts","../node_modules/@firebase/installations/src/helpers/get-installation-entry.ts","../node_modules/@firebase/installations/src/functions/create-installation-request.ts","../node_modules/@firebase/installations/src/functions/generate-auth-token-request.ts","../node_modules/@firebase/installations/src/helpers/refresh-auth-token.ts","../node_modules/@firebase/installations/src/api/get-token.ts","../node_modules/@firebase/installations/src/helpers/extract-app-config.ts","../node_modules/@firebase/installations/src/functions/config.ts","../node_modules/@firebase/installations/src/api/get-id.ts","../node_modules/@firebase/installations/src/index.ts","../node_modules/@firebase/analytics/src/constants.ts","../node_modules/@firebase/analytics/src/logger.ts","../node_modules/@firebase/analytics/src/errors.ts","../node_modules/@firebase/analytics/src/helpers.ts","../node_modules/@firebase/analytics/src/get-config.ts","../node_modules/@firebase/analytics/src/functions.ts","../node_modules/@firebase/analytics/src/initialize-analytics.ts","../node_modules/@firebase/analytics/src/factory.ts","../node_modules/@firebase/analytics/src/api.ts","../node_modules/@firebase/analytics/src/index.ts","master/config/firebaseConfig.js","master/Master.js","master/api/authenticate.api.js","master/api/cookie.expiry.key.js","master/api/settings.key.js","master/api/questionnaire.api.js","assets/images/login-page-graphics.svg","assets/images/login-passwrod-graphics.svg","assets/images/signup-finish-graphics.svg","assets/images/envelop-graphics.svg","assets/images/icons/user-avatar.svg","assets/images/warning-graphics.svg","master/containers/Login.js","assets/images/support-ticket-graphics.svg","master/containers/SupportTicket.js","master/hooks/useAuthenticate.js","master/hooks/useSupportTicket.js","master/hooks/useSettings.js","master/api/settings.api.js","master/hooks/useQuestionareContext.js","master/hooks/useQuestionnaire.js","shared/hooks/useNetworkStatus.js","shared/hooks/useMediaPreview.js","master/hooks/useStartAssessmentQuery.js","master/hooks/useTimer.js","master/containers/ForgotPassword.js","master/hooks/useForgotPassword.js","master/containers/ResetPassword.js","master/hooks/useResetPassword.js","master/containers/GeneratePassword.js","master/hooks/useGeneratePassword.js","../node_modules/@nergy-ui/practicetool/node_modules/use-immer/src/index.ts","../node_modules/@nergy-ui/practicetool/dist/index.js","master/containers/Home.js","assets/images/error-page-not-found-graphics.svg","master/containers/PageNotFound.js","assets/images/error-session-expired-graphics.svg","master/containers/SessionExpired.js","master/containers/External.js","master/hooks/useHandleExternalToken.js","../node_modules/posthog-js/src/utils/globals.ts","../node_modules/posthog-js/src/types.ts","../node_modules/posthog-js/src/config.ts","../node_modules/posthog-js/src/utils/string-utils.ts","../node_modules/posthog-js/src/utils/type-utils.ts","../node_modules/posthog-js/src/utils/logger.ts","../node_modules/posthog-js/src/entrypoints/external-scripts-loader.ts","../node_modules/posthog-js/src/utils/index.ts","../node_modules/posthog-js/src/constants.ts","../node_modules/posthog-js/src/posthog-featureflags.ts","../node_modules/posthog-js/src/uuidv7.ts","../node_modules/posthog-js/src/storage.ts","../node_modules/posthog-js/src/utils/request-utils.ts","../node_modules/posthog-js/src/utils/user-agent-utils.ts","../node_modules/posthog-js/src/utils/event-utils.ts","../node_modules/posthog-js/src/posthog-persistence.ts","../node_modules/posthog-js/src/extensions/replay/sessionrecording-utils.ts","../node_modules/posthog-js/node_modules/.pnpm/@rrweb+types@2.0.0-alpha.18/node_modules/@rrweb/types/dist/types.js","../node_modules/posthog-js/src/utils/element-utils.ts","../node_modules/posthog-js/src/autocapture-utils.ts","../node_modules/posthog-js/src/extensions/replay/config.ts","../node_modules/posthog-js/src/utils/number-utils.ts","../node_modules/posthog-js/src/extensions/replay/mutation-rate-limiter.ts","../node_modules/posthog-js/node_modules/.pnpm/fflate@0.4.8/node_modules/fflate/esm/browser.js","../node_modules/posthog-js/src/extensions/replay/sessionrecording.ts","../node_modules/posthog-js/src/remote-config.ts","../node_modules/posthog-js/src/extensions/toolbar.ts","../node_modules/posthog-js/src/request-queue.ts","../node_modules/posthog-js/src/utils/encode-utils.ts","../node_modules/posthog-js/src/request.ts","../node_modules/posthog-js/src/retry-queue.ts","../node_modules/posthog-js/src/sessionid.ts","../node_modules/posthog-js/src/utils/request-router.ts","../node_modules/posthog-js/src/extensions/sentry-integration.ts","../node_modules/posthog-js/src/extensions/segment-integration.ts","../node_modules/posthog-js/src/page-view.ts","../node_modules/posthog-js/src/posthog-surveys-types.ts","../node_modules/posthog-js/node_modules/.pnpm/preact@10.19.3/node_modules/preact/dist/preact.module.js","../node_modules/posthog-js/src/extensions/surveys/surveys-utils.tsx","../node_modules/posthog-js/src/utils/simple-event-emitter.ts","../node_modules/posthog-js/src/extensions/surveys/action-matcher.ts","../node_modules/posthog-js/src/utils/survey-event-receiver.ts","../node_modules/posthog-js/src/posthog-surveys.ts","../node_modules/posthog-js/src/rate-limiter.ts","../node_modules/posthog-js/src/session-props.ts","../node_modules/posthog-js/src/utils/blocked-uas.ts","../node_modules/posthog-js/src/extensions/rageclick.ts","../node_modules/posthog-js/src/extensions/dead-clicks-autocapture.ts","../node_modules/posthog-js/src/heatmaps.ts","../node_modules/posthog-js/src/scroll-manager.ts","../node_modules/posthog-js/src/autocapture.ts","../node_modules/posthog-js/src/extensions/tracing-headers.ts","../node_modules/posthog-js/src/consent.ts","../node_modules/posthog-js/src/extensions/exception-autocapture/index.ts","../node_modules/posthog-js/src/extensions/web-vitals/index.ts","../node_modules/posthog-js/src/web-experiments.ts","../node_modules/posthog-js/src/posthog-exceptions.ts","../node_modules/posthog-js/src/site-apps.ts","../node_modules/posthog-js/src/utils/identify-utils.ts","../node_modules/posthog-js/src/posthog-core.ts","../node_modules/posthog-js/src/entrypoints/module.no-external.es.ts","../node_modules/posthog-js/react/dist/esm/index.js","master/containers/PageViewTracker.js","master/containers/SignUp.js","master/hooks/useSignUp.js","master/contexts/AppScope.js","master/contexts/QuestionnaireScope.js","master/components/NetworkStatusMessage.js","master/components/OfflineIcon.js","master/components/OnlineIcon.js","../node_modules/@sentry/src/integration.ts","../node_modules/@sentry/src/integrations/inboundfilters.ts","../node_modules/@sentry/src/integrations/functiontostring.ts","../node_modules/@sentry/src/sdk.ts","../node_modules/@sentry/src/supports.ts","../node_modules/@sentry/src/vendor/supportsHistory.ts","../node_modules/@sentry/src/instrument/_handlers.ts","../node_modules/@sentry/src/instrument/history.ts","../node_modules/@sentry/src/dsn.ts","../node_modules/@sentry/src/envelope.ts","../node_modules/@sentry/src/error.ts","../node_modules/@sentry/src/api.ts","../node_modules/@sentry/src/metrics/envelope.ts","../node_modules/@sentry/src/metrics/utils.ts","../node_modules/@sentry/src/baseclient.ts","../node_modules/@sentry/src/utils/sdkMetadata.ts","../node_modules/src/debug-build.ts","../node_modules/src/eventbuilder.ts","../node_modules/src/helpers.ts","../node_modules/src/client.ts","../node_modules/@sentry/src/env.ts","../node_modules/src/userfeedback.ts","../node_modules/@sentry/src/clientreport.ts","../node_modules/@sentry/src/instrument/console.ts","../node_modules/@sentry/src/instrument/dom.ts","../node_modules/@sentry/src/instrument/xhr.ts","../node_modules/@sentry/src/instrument/fetch.ts","../node_modules/@sentry/src/severity.ts","../node_modules/@sentry/src/url.ts","../node_modules/src/integrations/breadcrumbs.ts","../node_modules/src/integrations/dedupe.ts","../node_modules/@sentry/src/instrument/globalError.ts","../node_modules/@sentry/src/instrument/globalUnhandledRejection.ts","../node_modules/src/integrations/globalhandlers.ts","../node_modules/src/integrations/httpcontext.ts","../node_modules/@sentry/src/aggregate-errors.ts","../node_modules/src/integrations/linkederrors.ts","../node_modules/src/integrations/trycatch.ts","../node_modules/src/stack-parsers.ts","../node_modules/@sentry/src/promisebuffer.ts","../node_modules/@sentry/src/ratelimit.ts","../node_modules/@sentry/src/transports/base.ts","../node_modules/src/transports/utils.ts","../node_modules/src/transports/fetch.ts","../node_modules/src/transports/xhr.ts","../node_modules/src/sdk.ts","../node_modules/@sentry/src/metrics/metric-summary.ts","../node_modules/@sentry/src/semanticAttributes.ts","../node_modules/@sentry/src/tracing/spanstatus.ts","../node_modules/@sentry/src/tracing/span.ts","../node_modules/@sentry/src/utils/hasTracingEnabled.ts","../node_modules/@sentry/src/tracing/trace.ts","../node_modules/@sentry/src/tracing/transaction.ts","../node_modules/@sentry/src/tracing/idletransaction.ts","../node_modules/@sentry/src/tracing/utils.ts","../node_modules/@sentry/src/tracing/errors.ts","../node_modules/@sentry/src/tracing/sampling.ts","../node_modules/@sentry/src/tracing/hubextensions.ts","../node_modules/@sentry-internal/src/common/debug-build.ts","../node_modules/@sentry-internal/src/browser/types.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/bindReporter.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getNavigationEntry.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getActivationStart.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/initMetric.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/generateUniqueID.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/observe.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/onHidden.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getVisibilityWatcher.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/polyfills/interactionCountPolyfill.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getINP.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getLCP.ts","../node_modules/@sentry-internal/src/browser/web-vitals/onTTFB.ts","../node_modules/@sentry-internal/src/browser/instrument.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getCLS.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getFID.ts","../node_modules/@sentry/src/span.ts","../node_modules/@sentry-internal/src/browser/metrics/utils.ts","../node_modules/@sentry-internal/src/browser/metrics/index.ts","../node_modules/@sentry/src/tracing/measurement.ts","../node_modules/@sentry-internal/src/common/fetch.ts","../node_modules/@sentry-internal/src/browser/request.ts","../node_modules/@sentry-internal/src/browser/browsertracing.ts","../node_modules/@sentry-internal/src/browser/router.ts","../node_modules/@sentry-internal/src/browser/backgroundtab.ts","index.js"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for ' + '');\n printWindow.document.close();\n printWindow.focus();\n // eslint-disable-next-line\n var interval = setInterval(function () {\n if (printWindow.ready) {\n printWindow.print();\n printWindow.close();\n clearInterval(interval);\n }\n }, 500);\n return printWindow;\n}\n/**\n * Function to normalize the units applied to the element.\n *\n * @param {number|string} value ?\n * @returns {string} result\n * @private\n */\nexport function formatUnit(value) {\n var result = value + '';\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\n return result;\n }\n return result + 'px';\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function enableBlazorMode() {\n isBlazorPlatform = true;\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {boolean} result\n * @private\n */\nexport function isBlazor() {\n return isBlazorPlatform;\n}\n/**\n * Function to convert xPath to DOM element in blazor platform\n *\n * @returns {HTMLElement} result\n * @param {HTMLElement | object} element ?\n * @private\n */\nexport function getElement(element) {\n var xPath = 'xPath';\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[\"\" + xPath])) {\n return document.evaluate(element[\"\" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n }\n return element;\n}\n/**\n * Function to fetch the Instances of a HTML element for the given component.\n *\n * @param {string | HTMLElement} element ?\n * @param {any} component ?\n * @returns {Object} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getInstance(element, component) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n for (var _i = 0, _a = elem[\"\" + instances]; _i < _a.length; _i++) {\n var inst = _a[_i];\n if (inst instanceof component) {\n return inst;\n }\n }\n }\n return null;\n}\n/**\n * Function to add instances for the given element.\n *\n * @param {string | HTMLElement} element ?\n * @param {Object} instance ?\n * @returns {void} ?\n * @private\n */\nexport function addInstance(element, instance) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n elem[\"\" + instances].push(instance);\n }\n else {\n elem[\"\" + instances] = [instance];\n }\n}\n/**\n * Function to generate the unique id.\n *\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function uniqueID() {\n if ((typeof window) === 'undefined') {\n return;\n }\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n return intCrypto.getRandomValues(num);\n}\n/**\n *\n * @param {Int16Array} num ?\n * @returns {string} ?\n */\nfunction combineArray(num) {\n var ret = '';\n for (var i = 0; i < 5; i++) {\n ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];\n }\n return ret;\n}\n","/**\n * Parser\n */\nvar defaultNumberingSystem = {\n 'latn': {\n '_digits': '0123456789',\n '_type': 'numeric'\n }\n};\nimport { isUndefined, getValue, isBlazor } from '../util';\nvar defaultNumberSymbols = {\n 'decimal': '.',\n 'group': ',',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'exponential': 'E'\n};\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n/**\n * Interface for parser base\n *\n * @private\n */\nvar ParserBase = /** @class */ (function () {\n function ParserBase() {\n }\n /**\n * Returns the cldr object for the culture specifies\n *\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\n * @param {string} cName - Specifies the culture name.\n * @returns {Object} ?\n */\n ParserBase.getMainObject = function (obj, cName) {\n var value = isBlazor() ? cName : 'main.' + cName;\n return getValue(value, obj);\n };\n /**\n * Returns the numbering system object from given cldr data.\n *\n * @param {Object} obj - Specifies the object from which number system is acquired.\n * @returns {Object} ?\n */\n ParserBase.getNumberingSystem = function (obj) {\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\n };\n /**\n * Returns the reverse of given object keys or keys specified.\n *\n * @param {Object} prop - Specifies the object to be reversed.\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\n * @returns {Object} ?\n */\n ParserBase.reverseObject = function (prop, keys) {\n var propKeys = keys || Object.keys(prop);\n var res = {};\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n // eslint-disable-next-line\n if (!res.hasOwnProperty(prop[key])) {\n // eslint-disable-next-line\n res[prop[key]] = key;\n }\n }\n return res;\n };\n /**\n * Returns the symbol regex by skipping the escape sequence.\n *\n * @param {string[]} props - Specifies the array values to be skipped.\n * @returns {RegExp} ?\n */\n ParserBase.getSymbolRegex = function (props) {\n var regexStr = props.map(function (str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n }).join('|');\n return new RegExp(regexStr, 'g');\n };\n /**\n *\n * @param {Object} prop ?\n * @returns {Object} ?\n */\n ParserBase.getSymbolMatch = function (prop) {\n var matchKeys = Object.keys(defaultNumberSymbols);\n var ret = {};\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\n var key = matchKeys_1[_i];\n // eslint-disable-next-line\n ret[prop[key]] = defaultNumberSymbols[key];\n }\n return ret;\n };\n /**\n * Returns regex string for provided value\n *\n * @param {string} val ?\n * @returns {string} ?\n */\n ParserBase.constructRegex = function (val) {\n var len = val.length;\n var ret = '';\n for (var i = 0; i < len; i++) {\n if (i !== len - 1) {\n ret += val[parseInt(i.toString(), 10)] + '|';\n }\n else {\n ret += val[parseInt(i.toString(), 10)];\n }\n }\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {string} value - Specifies the values to be replaced.\n * @param {RegExp} regex - Specifies the regex to search.\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\n * @returns {string} ?\n */\n ParserBase.convertValueParts = function (value, regex, obj) {\n return value.replace(regex, function (str) {\n // eslint-disable-next-line\n return obj[str];\n });\n };\n /**\n * Returns default numbering system object for formatting from cldr data\n *\n * @param {Object} obj ?\n * @returns {NumericObject} ?\n */\n ParserBase.getDefaultNumberingSystem = function (obj) {\n var ret = {};\n ret.obj = getValue('numbers', obj);\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} needSymbols ?\n * @param {boolean} blazorMode ?\n * @returns {Object} ?\n */\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\n var ret = {};\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem) || blazorMode) {\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\n ret.numberParseRegex = new RegExp(this.constructRegex(digits), 'g');\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\n if (needSymbols) {\n ret.numericRegex = digits[0] + '-' + digits[9];\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\n ret.numberSystem = cur.nSystem;\n }\n }\n }\n return ret;\n };\n /**\n * Returns number mapper object for the provided cldr data\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} isNumber ?\n * @returns {NumberMapper} ?\n */\n // eslint-disable-next-line\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\n var ret = { mapper: {} };\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem)) {\n ret.numberSystem = cur.nSystem;\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\n var i = latnNumberSystem_1[_i];\n // eslint-disable-next-line\n ret.mapper[i] = digits[i];\n }\n }\n }\n return ret;\n };\n ParserBase.nPair = 'numericPair';\n ParserBase.nRegex = 'numericRegex';\n ParserBase.numberingSystems = defaultNumberingSystem;\n return ParserBase;\n}());\nexport { ParserBase };\n/**\n * @private\n */\nvar blazorCurrencyData = {\n 'DJF': 'Fdj',\n 'ERN': 'Nfk',\n 'ETB': 'Br',\n 'NAD': '$',\n 'ZAR': 'R',\n 'XAF': 'FCFA',\n 'GHS': 'GH₵',\n 'XDR': 'XDR',\n 'AED': 'د.إ.‏',\n 'BHD': 'د.ب.‏',\n 'DZD': 'د.ج.‏',\n 'EGP': 'ج.م.‏',\n 'ILS': '₪',\n 'IQD': 'د.ع.‏',\n 'JOD': 'د.ا.‏',\n 'KMF': 'CF',\n 'KWD': 'د.ك.‏',\n 'LBP': 'ل.ل.‏',\n 'LYD': 'د.ل.‏',\n 'MAD': 'د.م.‏',\n 'MRU': 'أ.م.',\n 'OMR': 'ر.ع.‏',\n 'QAR': 'ر.ق.‏',\n 'SAR': 'ر.س.‏',\n 'SDG': 'ج.س.',\n 'SOS': 'S',\n 'SSP': '£',\n 'SYP': 'ل.س.‏',\n 'TND': 'د.ت.‏',\n 'YER': 'ر.ي.‏',\n 'CLP': '$',\n 'INR': '₹',\n 'TZS': 'TSh',\n 'EUR': '€',\n 'AZN': '₼',\n 'RUB': '₽',\n 'BYN': 'Br',\n 'ZMW': 'K',\n 'BGN': 'лв.',\n 'NGN': '₦',\n 'XOF': 'CFA',\n 'BDT': '৳',\n 'CNY': '¥',\n 'BAM': 'КМ',\n 'UGX': 'USh',\n 'USD': '$',\n 'CZK': 'Kč',\n 'GBP': '£',\n 'DKK': 'kr.',\n 'KES': 'Ksh',\n 'CHF': 'CHF',\n 'MVR': 'ރ.',\n 'BTN': 'Nu.',\n 'XCD': 'EC$',\n 'AUD': '$',\n 'BBD': '$',\n 'BIF': 'FBu',\n 'BMD': '$',\n 'BSD': '$',\n 'BWP': 'P',\n 'BZD': '$',\n 'CAD': '$',\n 'NZD': '$',\n 'FJD': '$',\n 'FKP': '£',\n 'GIP': '£',\n 'GMD': 'D',\n 'GYD': '$',\n 'HKD': '$',\n 'IDR': 'Rp',\n 'JMD': '$',\n 'KYD': '$',\n 'LRD': '$',\n 'MGA': 'Ar',\n 'MOP': 'MOP$',\n 'MUR': 'Rs',\n 'MWK': 'MK',\n 'MYR': 'RM',\n 'PGK': 'K',\n 'PHP': '₱',\n 'PKR': 'Rs',\n 'RWF': 'RF',\n 'SBD': '$',\n 'SCR': 'SR',\n 'SEK': 'kr',\n 'SGD': '$',\n 'SHP': '£',\n 'SLL': 'Le',\n 'ANG': 'NAf.',\n 'SZL': 'E',\n 'TOP': 'T$',\n 'TTD': '$',\n 'VUV': 'VT',\n 'WST': 'WS$',\n 'ARS': '$',\n 'BOB': 'Bs',\n 'BRL': 'R$',\n 'COP': '$',\n 'CRC': '₡',\n 'CUP': '$',\n 'DOP': '$',\n 'GTQ': 'Q',\n 'HNL': 'L',\n 'MXN': '$',\n 'NIO': 'C$',\n 'PAB': 'B/.',\n 'PEN': 'S/',\n 'PYG': '₲',\n 'UYU': '$',\n 'VES': 'Bs.S',\n 'IRR': 'ريال',\n 'GNF': 'FG',\n 'CDF': 'FC',\n 'HTG': 'G',\n 'XPF': 'FCFP',\n 'HRK': 'kn',\n 'HUF': 'Ft',\n 'AMD': '֏',\n 'ISK': 'kr',\n 'JPY': '¥',\n 'GEL': '₾',\n 'CVE': '​',\n 'KZT': '₸',\n 'KHR': '៛',\n 'KPW': '₩',\n 'KRW': '₩',\n 'KGS': 'сом',\n 'AOA': 'Kz',\n 'LAK': '₭',\n 'MZN': 'MTn',\n 'MKD': 'ден',\n 'MNT': '₮',\n 'BND': '$',\n 'MMK': 'K',\n 'NOK': 'kr',\n 'NPR': 'रु',\n 'AWG': 'Afl.',\n 'SRD': '$',\n 'PLN': 'zł',\n 'AFN': '؋',\n 'STN': 'Db',\n 'MDL': 'L',\n 'RON': 'lei',\n 'UAH': '₴',\n 'LKR': 'රු.',\n 'ALL': 'Lekë',\n 'RSD': 'дин.',\n 'TJS': 'смн',\n 'THB': '฿',\n 'TMT': 'm.',\n 'TRY': '₺',\n 'UZS': 'сўм',\n 'VND': '₫',\n 'TWD': 'NT$'\n};\n/**\n *\n * @param {string} currencyCode ?\n * @returns {string} ?\n */\nexport function getBlazorCurrencySymbol(currencyCode) {\n return getValue(currencyCode || '', blazorCurrencyData);\n}\n","/***\n * Hijri parser\n */\n// eslint-disable-next-line\nexport var HijriParser;\n(function (HijriParser) {\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\n ];\n /**\n *\n * @param {Date} gDate ?\n * @returns {Object} ?\n */\n function getHijriDate(gDate) {\n var day = gDate.getDate();\n var month = gDate.getMonth();\n var year = gDate.getFullYear();\n var tMonth = month + 1;\n var tYear = year;\n if (tMonth < 3) {\n tYear -= 1;\n tMonth += 12;\n }\n var yPrefix = Math.floor(tYear / 100.);\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\n var b = julianNumber + julilanOffset + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var tempMonth = Math.floor((b - d) / 30.6001);\n day = (b - d) - Math.floor(30.6001 * tempMonth);\n month = Math.floor((b - d) / 20.6001);\n if (month > 13) {\n c += 1;\n month -= 12;\n }\n month -= 1;\n year = c - 4716;\n var modifiedJulianDate = julianNumber - 2400000;\n // date calculation for year after 2077\n var iyear = 10631. / 30.;\n var z = julianNumber - 1948084;\n var cyc = Math.floor(z / 10631.);\n z = z - 10631 * cyc;\n var j = Math.floor((z - 0.1335) / iyear);\n var iy = 30 * cyc + j;\n z = z - Math.floor(j * iyear + 0.1335);\n var im = Math.floor((z + 28.5001) / 29.5);\n /* istanbul ignore next */\n if (im === 13) {\n im = 12;\n }\n var tempDay = z - Math.floor(29.5001 * im - 29);\n var i = 0;\n for (; i < dateCorrection.length; i++) {\n if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {\n break;\n }\n }\n var iln = i + 16260;\n var ii = Math.floor((iln - 1) / 12);\n var hYear = ii + 1;\n var hmonth = iln - 12 * ii;\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\n if ((hDate + '').length > 2) {\n hDate = tempDay;\n hmonth = im;\n hYear = iy;\n }\n return { year: hYear, month: hmonth, date: hDate };\n }\n HijriParser.getHijriDate = getHijriDate;\n /**\n *\n * @param {number} year ?\n * @param {number} month ?\n * @param {number} day ?\n * @returns {Date} ?\n */\n function toGregorian(year, month, day) {\n var iy = year;\n var im = month;\n var id = day;\n var ii = iy - 1;\n var iln = (ii * 12) + 1 + (im - 1);\n var i = iln - 16260;\n var mcjdn = id + dateCorrection[i - 1] - 1;\n var julianDate = mcjdn + 2400000;\n var z = Math.floor(julianDate + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var gDay = b - d - Math.floor(e * 30.6001);\n var gMonth = e - (e > 13.5 ? 13 : 1);\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\n /* istanbul ignore next */\n if (gYear <= 0) {\n gMonth--;\n } // No year zero\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\n }\n HijriParser.toGregorian = toGregorian;\n})(HijriParser || (HijriParser = {}));\n","import { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\nimport { HijriParser } from '../hijri-parser';\nimport { isNullOrUndefined, extend } from '../util';\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\nvar standalone = 'stand-alone';\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\nvar timeSetter = {\n m: 'getMinutes',\n h: 'getHours',\n H: 'getHours',\n s: 'getSeconds',\n d: 'getDate',\n f: 'getMilliseconds'\n};\nexport var datePartMatcher = {\n 'M': 'month',\n 'd': 'day',\n 'E': 'weekday',\n 'c': 'weekday',\n 'y': 'year',\n 'm': 'minute',\n 'h': 'hour',\n 'H': 'hour',\n 's': 'second',\n 'L': 'month',\n 'a': 'designator',\n 'z': 'timeZone',\n 'Z': 'timeZone',\n 'G': 'era',\n 'f': 'milliseconds'\n};\nvar timeSeparator = 'timeSeparator';\n/* tslint:disable no-any */\n/**\n * Date Format is a framework provides support for date formatting.\n *\n * @private\n */\nvar DateFormat = /** @class */ (function () {\n function DateFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which date will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateFormat.dateFormat = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numObject = getValue('parserObject.numbers', dependable);\n var dateObject = dependable.dateObject;\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n if (isBlazor()) {\n resPattern = resPattern.replace(/tt/, 'a');\n }\n formatOptions.pattern = resPattern;\n formatOptions.numMapper = isBlazor() ?\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\n var str = patternMatch_1[_i];\n var len = str.length;\n var char = str[0];\n if (char === 'K') {\n char = 'h';\n }\n switch (char) {\n case 'E':\n case 'c':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.weekday = getValue('days.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.weekday = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n break;\n case 'M':\n case 'L':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.month = getValue('months.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.month = dependable.dateObject[base.month][standalone][base.monthIndex[len]];\n }\n break;\n case 'a':\n formatOptions.designator = isBlazor() ?\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\n break;\n case 'G':\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\n break;\n case 'z':\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n break;\n }\n }\n }\n return function (value) {\n if (isNaN(value.getDate())) {\n return null;\n }\n return _this.intDateFormatter(value, formatOptions);\n };\n };\n /**\n * Returns formatted date string based on options passed.\n *\n * @param {Date} value ?\n * @param {FormatOptions} options ?\n * @returns {string} ?\n */\n DateFormat.intDateFormatter = function (value, options) {\n var pattern = options.pattern;\n var ret = '';\n var matches = pattern.match(base.dateParseRegex);\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n var length_1 = match.length;\n var char = match[0];\n if (char === 'K') {\n char = 'h';\n }\n var curval = void 0;\n var curvalstr = '';\n var isNumber = void 0;\n var processNumber = void 0;\n var curstr = '';\n switch (char) {\n case 'M':\n case 'L':\n curval = dObject.month;\n if (length_1 > 2) {\n // eslint-disable-next-line\n ret += options.month[curval];\n }\n else {\n isNumber = true;\n }\n break;\n case 'E':\n case 'c':\n // eslint-disable-next-line\n ret += options.weekday[weekdayKey[value.getDay()]];\n break;\n case 'H':\n case 'h':\n case 'm':\n case 's':\n case 'd':\n case 'f':\n isNumber = true;\n if (char === 'd') {\n curval = dObject.date;\n }\n else if (char === 'f') {\n isNumber = false;\n processNumber = true;\n // eslint-disable-next-line\n curvalstr = value[timeSetter[char]]().toString();\n curvalstr = curvalstr.substring(0, length_1);\n var curlength = curvalstr.length;\n if (length_1 !== curlength) {\n if (length_1 > 3) {\n continue;\n }\n for (var i = 0; i < length_1 - curlength; i++) {\n curvalstr = '0' + curvalstr.toString();\n }\n }\n curstr += curvalstr;\n }\n else {\n // eslint-disable-next-line\n curval = value[timeSetter[char]]();\n }\n if (char === 'h') {\n curval = curval % 12 || 12;\n }\n break;\n case 'y':\n processNumber = true;\n curstr += dObject.year;\n if (length_1 === 2) {\n curstr = curstr.substr(curstr.length - 2);\n }\n break;\n case 'a':\n // eslint-disable-next-line\n var desig = value.getHours() < 12 ? 'am' : 'pm';\n // eslint-disable-next-line\n ret += options.designator[desig];\n break;\n case 'G':\n // eslint-disable-next-line\n var dec = value.getFullYear() < 0 ? 0 : 1;\n // eslint-disable-next-line\n var retu = options.era[dec];\n if (isNullOrUndefined(retu)) {\n // eslint-disable-next-line\n retu = options.era[dec ? 0 : 1];\n }\n ret += retu || '';\n break;\n case '\\'':\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\n break;\n case 'z':\n // eslint-disable-next-line\n var timezone = value.getTimezoneOffset();\n // eslint-disable-next-line\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\n if (timezone === 0) {\n ret += options.timeZone.gmtZeroFormat;\n }\n else {\n processNumber = true;\n curstr = this.getTimeZoneValue(timezone, pattern_1);\n }\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\n break;\n case ':':\n // eslint-disable-next-line\n ret += options.numMapper.numberSymbols[timeSeparator];\n break;\n case '/':\n ret += options.dateSeperator;\n break;\n case 'W':\n isNumber = true;\n curval = base.getWeekOfYear(value);\n break;\n default:\n ret += match;\n }\n if (isNumber) {\n processNumber = true;\n curstr = this.checkTwodigitNumber(curval, length_1);\n }\n if (processNumber) {\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\n }\n }\n return ret;\n };\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\n if (isIslamic) {\n return HijriParser.getHijriDate(value);\n }\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\n };\n /**\n * Returns two digit numbers for given value and length\n *\n * @param {number} val ?\n * @param {number} len ?\n * @returns {string} ?\n */\n DateFormat.checkTwodigitNumber = function (val, len) {\n var ret = val + '';\n if (len === 2 && ret.length !== 2) {\n return '0' + ret;\n }\n return ret;\n };\n /**\n * Returns the value of the Time Zone.\n *\n * @param {number} tVal ?\n * @param {string} pattern ?\n * @returns {string} ?\n * @private\n */\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\n var _this = this;\n var splt = pattern.split(';');\n var curPattern = splt[tVal > 0 ? 1 : 0];\n var no = Math.abs(tVal);\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\n var len = str.length;\n var ishour = str.indexOf('H') !== -1;\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\n });\n };\n return DateFormat;\n}());\nexport { DateFormat };\n","import { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\nimport { defaultCurrencyCode } from '../internationalization';\nimport { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nvar errorText = {\n 'ms': 'minimumSignificantDigits',\n 'ls': 'maximumSignificantDigits',\n 'mf': 'minimumFractionDigits',\n 'lf': 'maximumFractionDigits'\n};\nvar integerError = 'minimumIntegerDigits';\nvar percentSign = 'percentSign';\nvar minusSign = 'minusSign';\nvar spaceRegex = /\\s/;\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\nvar infinity = 'infinity';\nvar nan = 'nan';\n/**\n * Module for number formatting.\n *\n * @private\n */\nvar NumberFormat = /** @class */ (function () {\n function NumberFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberFormat.numberFormatter = function (culture, option, cldr) {\n var _this = this;\n var fOptions = extend({}, option);\n var cOptions = {};\n var dOptions = {};\n var symbolPattern;\n var dependable = base.getDependables(cldr, culture, '', true);\n var numObject = dependable.numericObject;\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + percentSign];\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + minusSign];\n var symbols = dOptions.numberMapper.numberSymbols;\n if ((option.format) && !(base.formatRegex.test(option.format))) {\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\n }\n else {\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\n fOptions.isCurrency = fOptions.type === 'currency';\n fOptions.isPercent = fOptions.type === 'percent';\n if (!isBlazor()) {\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\n }\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\n if (!isUndefined(fOptions.fractionDigits)) {\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\n }\n if (isUndefined(fOptions.useGrouping)) {\n fOptions.useGrouping = true;\n }\n if (fOptions.isCurrency && !isBlazor()) {\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\n }\n if (!isBlazor()) {\n var split = symbolPattern.split(';');\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\n if (fOptions.useGrouping) {\n fOptions.groupSeparator = symbols[mapper[2]];\n fOptions.groupData = this.getGroupingDetails(split[0]);\n }\n }\n else {\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\n if (fOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\n }\n }\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\n if (minFrac) {\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\n }\n if (isUndefined(fOptions.maximumFractionDigits)) {\n var mval = cOptions.nData.maximumFraction;\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\n }\n var mfrac = fOptions.minimumFractionDigits;\n var lfrac = fOptions.maximumFractionDigits;\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\n if (mfrac > lfrac) {\n fOptions.maximumFractionDigits = mfrac;\n }\n }\n }\n extend(cOptions.nData, fOptions);\n extend(cOptions.pData, fOptions);\n return function (value) {\n if (isNaN(value)) {\n return symbols[mapper[1]];\n }\n else if (!isFinite(value)) {\n return symbols[mapper[0]];\n }\n return _this.intNumberFormatter(value, cOptions, dOptions);\n };\n };\n /**\n * Returns grouping details for the pattern provided\n *\n * @param {string} pattern ?\n * @returns {GroupDetails} ?\n */\n NumberFormat.getGroupingDetails = function (pattern) {\n var ret = {};\n var match = pattern.match(base.negativeDataRegex);\n if (match && match[4]) {\n var pattern_1 = match[4];\n var p = pattern_1.lastIndexOf(',');\n if (p !== -1) {\n var temp = pattern_1.split('.')[0];\n ret.primary = (temp.length - p) - 1;\n var s = pattern_1.lastIndexOf(',', p - 1);\n if (s !== -1) {\n ret.secondary = p - 1 - s;\n }\n }\n }\n return ret;\n };\n /**\n * Returns if the provided integer range is valid.\n *\n * @param {number} val1 ?\n * @param {number} val2 ?\n * @param {boolean} checkbothExist ?\n * @param {boolean} isFraction ?\n * @returns {boolean} ?\n */\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\n var decide = isFraction ? 'f' : 's';\n var dint = 0;\n var str1 = errorText['l' + decide];\n // eslint-disable-next-line\n var str2 = errorText['m' + decide];\n if (!isUndefined(val1)) {\n this.checkRange(val1, str1, isFraction);\n dint++;\n }\n if (!isUndefined(val2)) {\n this.checkRange(val2, str2, isFraction);\n dint++;\n }\n if (dint === 2) {\n if (val1 < val2) {\n throwError(str2 + 'specified must be less than the' + str1);\n }\n else {\n return true;\n }\n }\n else if (checkbothExist && dint === 1) {\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\n }\n return false;\n };\n /**\n * Check if the provided fraction range is valid\n *\n * @param {number} val ?\n * @param {string} text ?\n * @param {boolean} isFraction ?\n * @returns {void} ?\n */\n NumberFormat.checkRange = function (val, text, isFraction) {\n var range = isFraction ? [0, 20] : [1, 21];\n if (val < range[0] || val > range[1]) {\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\n }\n };\n /**\n * Returns formatted numeric string for provided formatting options\n *\n * @param {number} value ?\n * @param {base.GenericFormatOptions} fOptions ?\n * @param {CommonOptions} dOptions ?\n * @returns {string} ?\n */\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions) {\n var curData;\n if (isUndefined(fOptions.nData.type)) {\n return undefined;\n }\n else {\n if (value < 0) {\n value = value * -1;\n curData = fOptions.nData;\n }\n else if (value === 0) {\n curData = fOptions.zeroData || fOptions.pData;\n }\n else {\n curData = fOptions.pData;\n }\n var fValue = '';\n if (curData.isPercent) {\n value = value * 100;\n }\n if (curData.groupOne) {\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\n }\n else {\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n }\n if (curData.type === 'scientific') {\n fValue = value.toExponential(curData.maximumFractionDigits);\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\n }\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\n fValue = curData.format === \"#,###,,;(#,###,,)\" ? this.customPivotFormat(parseInt(fValue)) : fValue;\n if (curData.useGrouping) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\n }\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\n if (curData.nlead === 'N/A') {\n return curData.nlead;\n }\n else {\n return curData.nlead + fValue + curData.nend;\n }\n }\n };\n /**\n * Returns significant digits processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processSignificantDigits = function (value, min, max) {\n var temp = value + '';\n var tn;\n var length = temp.length;\n if (length < min) {\n return value.toPrecision(min);\n }\n else {\n temp = value.toPrecision(max);\n tn = +temp;\n return tn + '';\n }\n };\n /**\n * Returns grouped numeric string\n *\n * @param {string} val ?\n * @param {number} level1 ?\n * @param {string} sep ?\n * @param {string} decimalSymbol ?\n * @param {number} level2 ?\n * @returns {string} ?\n */\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\n var split = val.split(decimalSymbol);\n var prefix = split[0];\n var length = prefix.length;\n var str = '';\n while (length > level1) {\n str = prefix.slice(length - level1, length) + (str.length ?\n (sep + str) : '');\n length -= level1;\n if (flag) {\n level1 = level2;\n flag = false;\n }\n }\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\n return split.join(decimalSymbol);\n };\n /**\n * Returns fraction processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processFraction = function (value, min, max) {\n var temp = (value + '').split('.')[1];\n var length = temp ? temp.length : 0;\n if (min && length < min) {\n var ret = '';\n if (length === 0) {\n ret = value.toFixed(min);\n }\n else {\n ret += value;\n for (var j = 0; j < min - length; j++) {\n ret += '0';\n }\n return ret;\n }\n return value.toFixed(min);\n }\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\n return value.toFixed(max);\n }\n return value + '';\n };\n /**\n * Returns integer processed numeric string\n *\n * @param {string} value ?\n * @param {number} min ?\n * @returns {string} ?\n */\n NumberFormat.processMinimumIntegers = function (value, min) {\n var temp = value.split('.');\n var lead = temp[0];\n var len = lead.length;\n if (len < min) {\n for (var i = 0; i < min - len; i++) {\n lead = '0' + lead;\n }\n temp[0] = lead;\n }\n return temp.join('.');\n };\n /**\n * Returns custom format for pivot table\n *\n * @param {number} value ?\n */\n NumberFormat.customPivotFormat = function (value) {\n if (value >= 500000) {\n value /= 1000000;\n var _a = value.toString().split(\".\"), integer = _a[0], decimal = _a[1];\n return decimal && +decimal.substring(0, 1) >= 5\n ? Math.ceil(value).toString()\n : Math.floor(value).toString();\n }\n return \"\";\n };\n return NumberFormat;\n}());\nexport { NumberFormat };\n","import { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nimport { isUndefined, throwError, getValue, isNullOrUndefined, isBlazor } from '../util';\nimport { datePartMatcher } from './date-formatter';\nimport { HijriParser } from '../hijri-parser';\nvar standalone = 'stand-alone';\nvar latnRegex = /^[0-9]*$/;\nvar timeSetter = {\n minute: 'setMinutes',\n hour: 'setHours',\n second: 'setSeconds',\n day: 'setDate',\n month: 'setMonth',\n milliseconds: 'setMilliseconds'\n};\nvar month = 'months';\n/* tslint:disable no-any */\n/**\n * Date Parser.\n *\n * @private\n */\nvar DateParser = /** @class */ (function () {\n function DateParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which string date will be parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateParser.dateParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), false, isBlazor());\n var parseOptions = {};\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n var regexString = '';\n var hourOnly;\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n parseOptions = { isIslamic: base.islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture };\n var patternMatch = resPattern.match(base.dateParseRegex) || [];\n var length_1 = patternMatch.length;\n var gmtCorrection = 0;\n var zCorrectTemp = 0;\n var isgmtTraversed = false;\n var nRegx = numOptions.numericRegex;\n // eslint-disable-next-line\n var numMapper = isBlazor() ? dependable.parserObject.numbers :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n for (var i = 0; i < length_1; i++) {\n var str = patternMatch[parseInt(i.toString(), 10)];\n var len = str.length;\n var char = (str[0] === 'K') ? 'h' : str[0];\n var isNumber = void 0;\n var canUpdate = void 0;\n // eslint-disable-next-line\n var charKey = datePartMatcher[char];\n var optional = (len === 2) ? '' : '?';\n if (isgmtTraversed) {\n gmtCorrection = zCorrectTemp;\n isgmtTraversed = false;\n }\n switch (char) {\n case 'E':\n case 'c':\n // eslint-disable-next-line\n var weekData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n weekData = getValue('days.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n weekData = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n var weekObject = parser.reverseObject(weekData);\n // tslint:enable\n regexString += '(' + Object.keys(weekObject).join('|') + ')';\n break;\n case 'M':\n case 'L':\n case 'd':\n case 'm':\n case 's':\n case 'h':\n case 'H':\n case 'f':\n canUpdate = true;\n if ((char === 'M' || char === 'L') && len > 2) {\n var monthData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n monthData = getValue('months.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n monthData = dependable.dateObject[month][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(monthData);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n }\n else if (char === 'f') {\n if (len > 3) {\n continue;\n }\n isNumber = true;\n regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')';\n }\n else {\n isNumber = true;\n regexString += '(' + nRegx + nRegx + optional + ')';\n }\n if (char === 'h') {\n parseOptions.hour12 = true;\n }\n break;\n case 'W':\n // eslint-disable-next-line\n var opt = len === 1 ? '?' : '';\n regexString += '(' + nRegx + opt + nRegx + ')';\n break;\n case 'y':\n canUpdate = isNumber = true;\n if (len === 2) {\n regexString += '(' + nRegx + nRegx + ')';\n }\n else {\n regexString += '(' + nRegx + '{' + len + ',})';\n }\n break;\n case 'a':\n canUpdate = true;\n // eslint-disable-next-line\n var periodValur = isBlazor() ?\n getValue('dayPeriods', dependable.dateObject) :\n getValue('dayPeriods.format.wide', dependable.dateObject);\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(periodValur);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n break;\n case 'G':\n canUpdate = true;\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(isBlazor() ?\n getValue('eras', dependable.dateObject) : getValue('eras.' + eText, dependable.dateObject));\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + '?)';\n break;\n case 'z':\n // eslint-disable-next-line\n var tval = new Date().getTimezoneOffset();\n canUpdate = (tval !== 0);\n // eslint-disable-next-line\n parseOptions[charKey] = getValue('dates.timeZoneNames', dependable.parserObject);\n // eslint-disable-next-line\n var tzone = parseOptions[charKey];\n hourOnly = (len < 4);\n // eslint-disable-next-line\n var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat;\n hpattern = hpattern.replace(/:/g, numMapper.timeSeparator);\n regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?';\n isgmtTraversed = true;\n zCorrectTemp = hourOnly ? 6 : 12;\n break;\n case '\\'':\n // eslint-disable-next-line\n var iString = str.replace(/'/g, '');\n regexString += '(' + iString + ')?';\n break;\n default:\n regexString += '([\\\\D])';\n break;\n }\n if (canUpdate) {\n parseOptions.evalposition[\"\" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };\n }\n if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {\n parseOptions.parserRegex = new RegExp('^' + regexString + '$', 'i');\n }\n }\n }\n return function (value) {\n var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions);\n if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {\n return null;\n }\n if (parseOptions.isIslamic) {\n var dobj = {};\n var tYear = parsedDateParts.year;\n var tDate = parsedDateParts.day;\n var tMonth = parsedDateParts.month;\n var ystrig = tYear ? (tYear + '') : '';\n var is2DigitYear = (ystrig.length === 2);\n if (!tYear || !tMonth || !tDate || is2DigitYear) {\n dobj = HijriParser.getHijriDate(new Date());\n }\n if (is2DigitYear) {\n tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);\n }\n // tslint:disable-next-line\n var dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);\n parsedDateParts.year = dateObject.getFullYear();\n parsedDateParts.month = dateObject.getMonth() + 1;\n parsedDateParts.day = dateObject.getDate();\n }\n return _this.getDateObject(parsedDateParts);\n };\n };\n /* tslint:disable */\n /**\n * Returns date object for provided date options\n *\n * @param {DateParts} options ?\n * @param {Date} value ?\n * @returns {Date} ?\n */\n DateParser.getDateObject = function (options, value) {\n var res = value || new Date();\n res.setMilliseconds(0);\n var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day'];\n var y = options.year;\n var desig = options.designator;\n var tzone = options.timeZone;\n if (!isUndefined(y)) {\n var len = (y + '').length;\n if (len <= 2) {\n var century = Math.floor(res.getFullYear() / 100) * 100;\n y += century;\n }\n res.setFullYear(y);\n }\n for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) {\n var key = tKeys_1[_i];\n // eslint-disable-next-line\n var tValue = options[key];\n if (isUndefined(tValue) && key === 'day') {\n res.setDate(1);\n }\n if (!isUndefined(tValue)) {\n if (key === 'month') {\n tValue -= 1;\n if (tValue < 0 || tValue > 11) {\n return new Date('invalid');\n }\n var pDate = res.getDate();\n res.setDate(1);\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate();\n res.setDate(pDate < lDate ? pDate : lDate);\n }\n else {\n if (key === 'day') {\n var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate();\n if ((tValue < 1 || tValue > lastDay)) {\n return null;\n }\n }\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n }\n }\n }\n if (!isUndefined(desig)) {\n var hour = res.getHours();\n if (desig === 'pm') {\n res.setHours(hour + (hour === 12 ? 0 : 12));\n }\n else if (hour === 12) {\n res.setHours(0);\n }\n }\n if (!isUndefined(tzone)) {\n var tzValue = tzone - res.getTimezoneOffset();\n if (tzValue !== 0) {\n res.setMinutes(res.getMinutes() + tzValue);\n }\n }\n return res;\n };\n /**\n * Returns date parsing options for provided value along with parse and numeric options\n *\n * @param {string} value ?\n * @param {ParseOptions} parseOptions ?\n * @param {NumericOptions} num ?\n * @returns {DateParts} ?\n */\n DateParser.internalDateParse = function (value, parseOptions, num) {\n var matches = value.match(parseOptions.parserRegex);\n var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 };\n if (isNullOrUndefined(matches)) {\n return null;\n }\n else {\n var props = Object.keys(parseOptions.evalposition);\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var curObject = parseOptions.evalposition[\"\" + prop];\n var matchString = matches[curObject.pos];\n if (curObject.isNumber) {\n // eslint-disable-next-line\n retOptions[prop] = this.internalNumberParser(matchString, num);\n }\n else {\n if (prop === 'timeZone' && !isUndefined(matchString)) {\n var pos = curObject.pos;\n var val = void 0;\n var tmatch = matches[pos + 1];\n var flag = !isUndefined(tmatch);\n if (curObject.hourOnly) {\n val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60;\n }\n else {\n val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60;\n val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);\n }\n if (!isNullOrUndefined(val)) {\n retOptions[\"\" + prop] = val;\n }\n }\n else {\n // eslint-disable-next-line\n matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))\n ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;\n // eslint-disable-next-line\n retOptions[prop] = parseOptions[prop][matchString];\n }\n }\n }\n if (parseOptions.hour12) {\n retOptions.hour12 = true;\n }\n }\n return retOptions;\n };\n /**\n * Returns parsed number for provided Numeric string and Numeric Options\n *\n * @param {string} value ?\n * @param {NumericOptions} option ?\n * @returns {number} ?\n */\n DateParser.internalNumberParser = function (value, option) {\n value = parser.convertValueParts(value, option.numberParseRegex, option.numericPair);\n if (latnRegex.test(value)) {\n return +value;\n }\n return null;\n };\n /**\n * Returns parsed time zone RegExp for provided hour format and time zone\n *\n * @param {string} hourFormat ?\n * @param {base.TimeZoneOptions} tZone ?\n * @param {string} nRegex ?\n * @returns {string} ?\n */\n DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) {\n var pattern = tZone.gmtFormat;\n var ret;\n var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')';\n var splitStr;\n ret = hourFormat.replace('+', '\\\\+');\n if (hourFormat.indexOf('HH') !== -1) {\n ret = ret.replace(/HH|mm/g, '(' + cRegex + ')');\n }\n else {\n ret = ret.replace(/H|m/g, '(' + cRegex + '?)');\n }\n // eslint-disable-next-line\n splitStr = (ret.split(';').map(function (str) {\n return pattern.replace('{0}', str);\n }));\n ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat;\n return ret;\n };\n /**\n * Returns zone based value.\n *\n * @param {boolean} flag ?\n * @param {string} val1 ?\n * @param {string} val2 ?\n * @param {NumericOptions} num ?\n * @returns {number} ?\n */\n DateParser.getZoneValue = function (flag, val1, val2, num) {\n var ival = flag ? val1 : val2;\n if (!ival) {\n return 0;\n }\n var value = this.internalNumberParser(ival, num);\n if (flag) {\n return -value;\n }\n return value;\n };\n return DateParser;\n}());\nexport { DateParser };\n","import { extend, isNullOrUndefined, isBlazor, getValue } from '../util';\nimport { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nvar parseRegex = /^([^0-9]*)(([0-9,]*[0-9]+)(\\.[0-9]+)?)([Ee][+-]?[0-9]+)?([^0-9]*)$/;\nvar groupRegex = /,/g;\nvar keys = ['minusSign', 'infinity'];\n/**\n * Module for Number Parser.\n *\n * @private\n */\nvar NumberParser = /** @class */ (function () {\n function NumberParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberParser.numberParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numOptions;\n if ((base.formatRegex.test(option.format)) || !(option.format)) {\n extend(parseOptions, base.getProperNumericSkeleton(option.format || 'N'));\n parseOptions.custom = false;\n if (!parseOptions.fractionDigits) {\n if (option.maximumFractionDigits) {\n parseOptions.maximumFractionDigits = option.maximumFractionDigits;\n }\n }\n }\n else {\n extend(parseOptions, base.customFormat(option.format, null, null));\n }\n var numbers = getValue('numbers', dependable.parserObject);\n // eslint-disable-next-line\n numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), true, isBlazor());\n parseOptions.symbolRegex = parser.getSymbolRegex(Object.keys(numOptions.symbolMatch));\n // eslint-disable-next-line\n parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]];\n var symbolpattern;\n if (!isBlazor()) {\n symbolpattern = base.getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount);\n if (symbolpattern) {\n symbolpattern = symbolpattern.replace(/\\u00A4/g, base.defaultCurrency);\n var split = symbolpattern.split(';');\n parseOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, '');\n parseOptions.pData = base.getFormatData(split[0], true, '');\n }\n }\n else {\n parseOptions.nData = extend({}, {}, getValue(parseOptions.type + 'nData', numbers));\n parseOptions.pData = extend({}, {}, getValue(parseOptions.type + 'pData', numbers));\n if (parseOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], getValue('currencySymbol', numbers), option.currency);\n }\n }\n return function (value) {\n return _this.getParsedNumber(value, parseOptions, numOptions);\n };\n };\n /**\n * Returns parsed number for the provided formatting options\n *\n * @param {string} value ?\n * @param {NumericParts} options ?\n * @param {NumericOptions} numOptions ?\n * @returns {number} ?\n */\n NumberParser.getParsedNumber = function (value, options, numOptions) {\n var isNegative;\n var isPercent;\n var tempValue;\n var lead;\n var end;\n var ret;\n if (value.indexOf(options.infinity) !== -1) {\n return Infinity;\n }\n else {\n value = parser.convertValueParts(value, options.symbolRegex, numOptions.symbolMatch);\n value = parser.convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair);\n value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value;\n if (value.indexOf('.') === 0) {\n value = '0' + value;\n }\n var matches = value.match(parseRegex);\n if (isNullOrUndefined(matches)) {\n return NaN;\n }\n lead = matches[1];\n tempValue = matches[2];\n var exponent = matches[5];\n end = matches[6];\n isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) :\n ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1));\n isPercent = isNegative ?\n options.nData.isPercent :\n options.pData.isPercent;\n tempValue = tempValue.replace(groupRegex, '');\n if (exponent) {\n tempValue += exponent;\n }\n ret = +tempValue;\n if (options.type === 'percent' || isPercent) {\n ret = ret / 100;\n }\n if (options.custom || options.fractionDigits) {\n ret = parseFloat(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits));\n }\n if (options.maximumFractionDigits) {\n ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative);\n }\n if (isNegative) {\n ret *= -1;\n }\n return ret;\n }\n };\n NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) {\n var decimalSplitValue = value.split('.');\n if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) {\n ret = +(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits));\n }\n return ret;\n };\n return NumberParser;\n}());\nexport { NumberParser };\n","import { isNullOrUndefined, getValue, extend, isBlazor } from './util';\nvar Observer = /** @class */ (function () {\n function Observer(context) {\n this.ranArray = [];\n this.boundedEvents = {};\n if (isNullOrUndefined(context)) {\n return;\n }\n this.context = context;\n }\n /**\n * To attach handler for given property in current context.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Specifies the handler function to be called while event notified.\n * @param {Object} context - Specifies the context binded to the handler.\n * @param {string} id - specifies the random generated id.\n * @returns {void}\n */\n Observer.prototype.on = function (property, handler, context, id) {\n if (isNullOrUndefined(handler)) {\n return;\n }\n var cntxt = context || this.context;\n if (this.notExist(property)) {\n this.boundedEvents[\"\" + property] = [{ handler: handler, context: cntxt }];\n return;\n }\n if (!isNullOrUndefined(id)) {\n if (this.ranArray.indexOf(id) === -1) {\n this.ranArray.push(id);\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt, id: id });\n }\n }\n else if (!this.isHandlerPresent(this.boundedEvents[\"\" + property], handler)) {\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt });\n }\n };\n /**\n * To remove handlers from a event attached using on() function.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\n * @param {string} id - specifies the random generated id.\n * @returns {void} ?\n */\n Observer.prototype.off = function (property, handler, id) {\n if (this.notExist(property)) {\n return;\n }\n var curObject = getValue(property, this.boundedEvents);\n if (handler) {\n for (var i = 0; i < curObject.length; i++) {\n if (id) {\n if (curObject[parseInt(i.toString(), 10)].id === id) {\n curObject.splice(i, 1);\n var indexLocation = this.ranArray.indexOf(id);\n if (indexLocation !== -1) {\n this.ranArray.splice(indexLocation, 1);\n }\n break;\n }\n }\n else if (handler === curObject[parseInt(i.toString(), 10)].handler) {\n curObject.splice(i, 1);\n break;\n }\n }\n }\n else {\n delete this.boundedEvents[\"\" + property];\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\n * @returns {void} ?\n */\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\n if (this.notExist(property)) {\n if (successHandler) {\n successHandler.call(this, argument);\n }\n return;\n }\n if (argument) {\n argument.name = property;\n }\n var blazor = 'Blazor';\n var curObject = getValue(property, this.boundedEvents).slice(0);\n if (window[\"\" + blazor]) {\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\n }\n else {\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\n var cur = curObject_1[_i];\n cur.handler.call(cur.context, argument);\n }\n if (successHandler) {\n successHandler.call(this, argument);\n }\n }\n };\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\n var _this = this;\n var isTrigger = index === objs.length - 1;\n if (index < objs.length) {\n var obj_1 = objs[parseInt(index.toString(), 10)];\n var promise = obj_1.handler.call(obj_1.context, argument);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n return promise;\n }\n promise.then(function (data) {\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\n extend(argument, argument, data, true);\n if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }).catch(function (data) {\n if (errorHandler) {\n errorHandler.call(obj_1.context, typeof data === 'string' &&\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\n }\n });\n }\n else if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }\n };\n // eslint-disable-next-line\n Observer.prototype.dateReviver = function (key, value) {\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\n return (new Date(value));\n }\n return (value);\n };\n Observer.prototype.isJson = function (value) {\n try {\n JSON.parse(value);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n /**\n * To destroy handlers in the event\n *\n * @returns {void} ?\n */\n Observer.prototype.destroy = function () {\n this.boundedEvents = this.context = undefined;\n };\n /**\n * Returns if the property exists.\n *\n * @param {string} prop ?\n * @returns {boolean} ?\n */\n Observer.prototype.notExist = function (prop) {\n // eslint-disable-next-line\n return this.boundedEvents.hasOwnProperty(prop) === false || this.boundedEvents[prop].length <= 0;\n };\n /**\n * Returns if the handler is present.\n *\n * @param {BoundOptions[]} boundedEvents ?\n * @param {Function} handler ?\n * @returns {boolean} ?\n */\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\n var cur = boundedEvents_1[_i];\n if (cur.handler === handler) {\n return true;\n }\n }\n return false;\n };\n return Observer;\n}());\nexport { Observer };\n","import { DateFormat } from './intl/date-formatter';\nimport { NumberFormat } from './intl/number-formatter';\nimport { DateParser } from './intl/date-parser';\nimport { NumberParser } from './intl/number-parser';\nimport { IntlBase } from './intl/intl-base';\nimport { extend, getValue, isBlazor } from './util';\nimport { Observer } from './observer';\n/**\n * Specifies the observer used for external change detection.\n */\nexport var onIntlChange = new Observer();\n/**\n * Specifies the default rtl status for EJ2 components.\n */\nexport var rightToLeft = false;\n/**\n * Specifies the CLDR data loaded for internationalization functionalities.\n *\n * @private\n */\nexport var cldrData = {};\n/**\n * Specifies the default culture value to be considered.\n *\n * @private\n */\nexport var defaultCulture = 'en-US';\n/**\n * Specifies default currency code to be considered\n *\n * @private\n */\nexport var defaultCurrencyCode = 'USD';\nvar mapper = ['numericObject', 'dateObject'];\n/**\n * Internationalization class provides support to parse and format the number and date object to the desired format.\n * ```typescript\n * // To set the culture globally\n * setCulture('en-GB');\n *\n * // To set currency code globally\n * setCurrencyCode('EUR');\n *\n * //Load cldr data\n * loadCldr(gregorainData);\n * loadCldr(timeZoneData);\n * loadCldr(numbersData);\n * loadCldr(numberSystemData);\n *\n * // To use formatter in component side\n * let Intl:Internationalization = new Internationalization();\n *\n * // Date formatting\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\n * dateFormatter(new Date('11/2/2016'));\n * dateFormatter(new Date('25/2/2030'));\n * Intl.formatDate(new Date(),{skeleton:'E'});\n *\n * //Number formatting\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\n * numberFormatter(24563334);\n * Intl.formatNumber(123123,{skeleton:'p2'});\n *\n * // Date parser\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\n * dateParser('10:30 PM');\n * Intl.parseDate('10',{skeleton:'H'});\n * ```\n */\nvar Internationalization = /** @class */ (function () {\n function Internationalization(cultureName) {\n if (cultureName) {\n this.culture = cultureName;\n }\n }\n /**\n * Returns the format function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateFormat = function (options) {\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\n };\n /**\n * Returns the format function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberFormat = function (options) {\n if (options && !options.currency) {\n options.currency = defaultCurrencyCode;\n }\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateParser = function (options) {\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberParser = function (options) {\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\n };\n /**\n * Returns the formatted string based on format options.\n *\n * @param {number} value - Specifies the number to format.\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatNumber = function (value, option) {\n return this.getNumberFormat(option)(value);\n };\n /**\n * Returns the formatted date string based on format options.\n *\n * @param {Date} value - Specifies the number to format.\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatDate = function (value, option) {\n return this.getDateFormat(option)(value);\n };\n /**\n * Returns the date object for given date string and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\n * @returns {Date} ?\n */\n Internationalization.prototype.parseDate = function (value, option) {\n return this.getDateParser(option)(value);\n };\n /**\n * Returns the number object from the given string value and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\n * @returns {number} ?\n */\n Internationalization.prototype.parseNumber = function (value, option) {\n return this.getNumberParser(option)(value);\n };\n /**\n * Returns Native Date Time Pattern\n *\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\n };\n /**\n * Returns Native Number Pattern\n *\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\n * @param {boolean} isExcel ?\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\n };\n /**\n * Returns the First Day of the Week\n *\n * @returns {number} ?\n */\n Internationalization.prototype.getFirstDayOfWeek = function () {\n return IntlBase.getWeekData(this.getCulture(), cldrData);\n };\n /**\n * Returns the culture\n *\n * @returns {string} ?\n */\n Internationalization.prototype.getCulture = function () {\n return this.culture || defaultCulture;\n };\n return Internationalization;\n}());\nexport { Internationalization };\n/**\n * Set the default culture to all EJ2 components\n *\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCulture(cultureName) {\n defaultCulture = cultureName;\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\n}\n/**\n * Set the default currency code to all EJ2 components\n *\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCurrencyCode(currencyCode) {\n defaultCurrencyCode = currencyCode;\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\n}\n/**\n * Load the CLDR data into context\n *\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\n * @returns {void} ?\n */\nexport function loadCldr() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var obj = data_1[_a];\n extend(cldrData, obj, {}, true);\n }\n}\n/**\n * To enable or disable RTL functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\n * @returns {void} ?\n */\nexport function enableRtl(status) {\n if (status === void 0) { status = true; }\n rightToLeft = status;\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\n}\n/**\n * To get the numeric CLDR object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} type ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getNumericObject(locale, type) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\n // eslint-disable-next-line\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\n var numSystem = getValue('defaultNumberingSystem', numObject);\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\n}\n/**\n * To get the numeric CLDR number base object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\n * @returns {string} ?\n * @ignore\n * @private\n */\nexport function getNumberDependable(locale, currency) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\n // eslint-disable-next-line\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\n}\n/**\n * To get the default date CLDR object.\n *\n * @param {string} mode ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getDefaultDateObject(mode) {\n // eslint-disable-next-line\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\n}\n","import { defaultCurrencyCode } from '../internationalization';\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\nimport { DateFormat } from './date-formatter';\nimport { NumberFormat } from './number-formatter';\nimport { isUndefined } from '../util';\nexport var blazorCultureFormats = {\n 'en-US': {\n 'd': 'M/d/y',\n 'D': 'EEEE, MMMM d, y',\n 'f': 'EEEE, MMMM d, y h:mm a',\n 'F': 'EEEE, MMMM d, y h:mm:s a',\n 'g': 'M/d/y h:mm a',\n 'G': 'M/d/yyyy h:mm:ss tt',\n 'm': 'MMMM d',\n 'M': 'MMMM d',\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\n 't': 'h:mm tt',\n 'T': 'h:m:s tt',\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\n 'y': 'MMMM yyyy',\n 'Y': 'MMMM yyyy'\n }\n};\n/**\n * Date base common constants and function for date parser and formatter.\n */\n// eslint-disable-next-line\nexport var IntlBase;\n(function (IntlBase) {\n // tslint:disable-next-line:max-line-length\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*[0#\\ ]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\n var fractionRegex = /[0-9]/g;\n IntlBase.defaultCurrency = '$';\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\n var patternMatch = {\n 'G': '',\n 'M': 'm',\n 'L': 'm',\n 'H': 'h',\n 'c': 'd',\n '\\'': '\"',\n ' a': ' AM/PM',\n 'yy': 'yy',\n 'y': 'yyyy',\n 'EEEE': 'dddd',\n 'E': 'ddd'\n };\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\n var defaultFirstDay = 'sun';\n IntlBase.islamicRegex = /^islamic/;\n var firstDayMapper = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n };\n IntlBase.formatRegex = /(^[ncpae]{1})([0-1]?[0-9]|20)?$/i;\n IntlBase.currencyFormatRegex = /(^[ca]{1})([0-1]?[0-9]|20)?$/i;\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\n var typeMapper = {\n '$': 'isCurrency',\n '%': 'isPercent',\n '-': 'isNegative',\n 0: 'nlead',\n 1: 'nend'\n };\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\n /* tslint:disable:quotemark */\n IntlBase.defaultObject = {\n 'dates': {\n 'calendars': {\n 'gregorian': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'narrow': {\n '1': 'J',\n '2': 'F',\n '3': 'M',\n '4': 'A',\n '5': 'M',\n '6': 'J',\n '7': 'J',\n '8': 'A',\n '9': 'S',\n '10': 'O',\n '11': 'N',\n '12': 'D'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'Before Christ',\n '0-alt-variant': 'Before Common Era',\n '1': 'Anno Domini',\n '1-alt-variant': 'Common Era'\n },\n 'eraAbbr': {\n '0': 'BC',\n '0-alt-variant': 'BCE',\n '1': 'AD',\n '1-alt-variant': 'CE'\n },\n 'eraNarrow': {\n '0': 'B',\n '0-alt-variant': 'BCE',\n '1': 'A',\n '1-alt-variant': 'CE'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y',\n 'long': 'MMMM d, y',\n 'medium': 'MMM d, y',\n 'short': 'M/d/yy'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'hmsv': 'h:mm:ss a v',\n 'Hmsv': 'HH:mm:ss v',\n 'hmv': 'h:mm a v',\n 'Hmv': 'HH:mm v',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y',\n 'yM': 'M/y',\n 'yMd': 'M/d/y',\n 'yMEd': 'E, M/d/y',\n 'yMMM': 'MMM y',\n 'yMMMd': 'MMM d, y',\n 'yMMMEd': 'E, MMM d, y',\n 'yMMMM': 'MMMM y'\n }\n }\n },\n 'islamic': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Muh.',\n '2': 'Saf.',\n '3': 'Rab. I',\n '4': 'Rab. II',\n '5': 'Jum. I',\n '6': 'Jum. II',\n '7': 'Raj.',\n '8': 'Sha.',\n '9': 'Ram.',\n '10': 'Shaw.',\n '11': 'Dhuʻl-Q.',\n '12': 'Dhuʻl-H.'\n },\n 'narrow': {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '10': '10',\n '11': '11',\n '12': '12'\n },\n 'wide': {\n '1': 'Muharram',\n '2': 'Safar',\n '3': 'Rabiʻ I',\n '4': 'Rabiʻ II',\n '5': 'Jumada I',\n '6': 'Jumada II',\n '7': 'Rajab',\n '8': 'Shaʻban',\n '9': 'Ramadan',\n '10': 'Shawwal',\n '11': 'Dhuʻl-Qiʻdah',\n '12': 'Dhuʻl-Hijjah'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'AH'\n },\n 'eraAbbr': {\n '0': 'AH'\n },\n 'eraNarrow': {\n '0': 'AH'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y G',\n 'long': 'MMMM d, y G',\n 'medium': 'MMM d, y G',\n 'short': 'M/d/y GGGGG'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y G',\n 'yyyy': 'y G',\n 'yyyyM': 'M/y GGGGG',\n 'yyyyMd': 'M/d/y GGGGG',\n 'yyyyMEd': 'E, M/d/y GGGGG',\n 'yyyyMMM': 'MMM y G',\n 'yyyyMMMd': 'MMM d, y G',\n 'yyyyMMMEd': 'E, MMM d, y G',\n 'yyyyMMMM': 'MMMM y G',\n 'yyyyQQQ': 'QQQ y G',\n 'yyyyQQQQ': 'QQQQ y G'\n }\n }\n }\n },\n 'timeZoneNames': {\n 'hourFormat': '+HH:mm;-HH:mm',\n 'gmtFormat': 'GMT{0}',\n 'gmtZeroFormat': 'GMT'\n }\n },\n 'numbers': {\n 'currencies': {\n 'USD': {\n 'displayName': 'US Dollar',\n 'symbol': '$',\n 'symbol-alt-narrow': '$'\n },\n 'EUR': {\n 'displayName': 'Euro',\n 'symbol': '€',\n 'symbol-alt-narrow': '€'\n },\n 'GBP': {\n 'displayName': 'British Pound',\n 'symbol-alt-narrow': '£'\n }\n },\n 'defaultNumberingSystem': 'latn',\n 'minimumGroupingDigits': '1',\n 'symbols-numberSystem-latn': {\n 'decimal': '.',\n 'group': ',',\n 'list': ';',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'exponential': 'E',\n 'superscriptingExponent': '×',\n 'perMille': '‰',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'timeSeparator': ':'\n },\n 'decimalFormats-numberSystem-latn': {\n 'standard': '#,##0.###'\n },\n 'percentFormats-numberSystem-latn': {\n 'standard': '#,##0%'\n },\n 'currencyFormats-numberSystem-latn': {\n 'standard': '¤#,##0.00',\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\n },\n 'scientificFormats-numberSystem-latn': {\n 'standard': '#E0'\n }\n }\n };\n IntlBase.blazorDefaultObject = {\n 'numbers': {\n 'mapper': {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9'\n },\n 'mapperDigits': '0123456789',\n 'numberSymbols': {\n 'decimal': '.',\n 'group': ',',\n 'plusSign': '+',\n 'minusSign': '-',\n 'percentSign': '%',\n 'nan': 'NaN',\n 'timeSeparator': ':',\n 'infinity': '∞'\n },\n 'timeSeparator': ':',\n 'currencySymbol': '$',\n 'currencypData': {\n 'nlead': '$',\n 'nend': '',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentpData': {\n 'nlead': '',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentnData': {\n 'nlead': '-',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'currencynData': {\n 'nlead': '($',\n 'nend': ')',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalnData': {\n 'nlead': '-',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalpData': {\n 'nlead': '',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n }\n },\n 'dates': {\n 'dayPeriods': {\n 'am': 'AM',\n 'pm': 'PM'\n },\n 'dateSeperator': '/',\n 'days': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n },\n 'months': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n },\n 'eras': {\n '1': 'AD'\n }\n }\n };\n /* tslint:enable:quotemark */\n IntlBase.monthIndex = {\n 3: 'abbreviated',\n 4: 'wide',\n 5: 'narrow',\n 1: 'abbreviated'\n };\n /**\n *\n */\n IntlBase.month = 'months';\n IntlBase.days = 'days';\n /**\n * Default numerber Object\n */\n IntlBase.patternMatcher = {\n C: 'currency',\n P: 'percent',\n N: 'decimal',\n A: 'currency',\n E: 'scientific'\n };\n /**\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\n *\n * @private\n * @param {string} skeleton ?\n * @param {Object} dateObject ?\n * @param {string} type ?\n * @param {boolean} isIslamic ?\n * @param {string} blazorCulture ?\n * @returns {string} ?\n */\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\n var resPattern;\n var iType = type || 'date';\n if (blazorCulture) {\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\n }\n else {\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\n if (iType === 'dateTime') {\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\n }\n }\n else {\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\n }\n if (isUndefined(resPattern) && skeleton === 'yMd') {\n resPattern = 'M/d/y';\n }\n }\n return resPattern;\n }\n IntlBase.getResultantPattern = getResultantPattern;\n /**\n * Returns the dependable object for provided cldr data and culture\n *\n * @private\n * @param {Object} cldr ?\n * @param {string} culture ?\n * @param {string} mode ?\n * @param {boolean} isNumber ?\n * @returns {any} ?\n */\n function getDependables(cldr, culture, mode, isNumber) {\n var ret = {};\n var calendartype = mode || 'gregorian';\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\n if (isNumber) {\n ret.numericObject = getValue('numbers', ret.parserObject);\n }\n else {\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\n ret.dateObject = getValue(dateString, ret.parserObject);\n }\n return ret;\n }\n IntlBase.getDependables = getDependables;\n /**\n * Returns the symbol pattern for provided parameters\n *\n * @private\n * @param {string} type ?\n * @param {string} numSystem ?\n * @param {Object} obj ?\n * @param {boolean} isAccount ?\n * @returns {string} ?\n */\n function getSymbolPattern(type, numSystem, obj, isAccount) {\n return getValue(type + 'Formats-numberSystem-' +\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\n numSystem + '.standard', obj) : '');\n }\n IntlBase.getSymbolPattern = getSymbolPattern;\n /**\n *\n * @param {string} format ?\n * @returns {string} ?\n */\n function ConvertDateToWeekFormat(format) {\n var convertMapper = format.match(IntlBase.dateConverterMapper);\n if (convertMapper && isBlazor()) {\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\n return format.replace(IntlBase.dateConverterMapper, tempString);\n }\n return format;\n }\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\n /**\n *\n * @param {DateFormatOptions} formatOptions ?\n * @param {string} culture ?\n * @returns {DateFormatOptions} ?\n */\n function compareBlazorDateFormats(formatOptions, culture) {\n var format = formatOptions.format || formatOptions.skeleton;\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\n if (!curFormatMapper) {\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\n }\n if (curFormatMapper) {\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\n }\n return formatOptions;\n }\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\n /**\n * Returns proper numeric skeleton\n *\n * @private\n * @param {string} skeleton ?\n * @returns {any} ?\n */\n function getProperNumericSkeleton(skeleton) {\n var matches = skeleton.match(IntlBase.formatRegex);\n var ret = {};\n var pattern = matches[1].toUpperCase();\n ret.isAccount = (pattern === 'A');\n // eslint-disable-next-line\n ret.type = IntlBase.patternMatcher[pattern];\n if (skeleton.length > 1) {\n ret.fractionDigits = parseInt(matches[2], 10);\n }\n return ret;\n }\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\n /**\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\n *\n * @private\n * @param {string} pattern ?\n * @param {boolean} needFraction ?\n * @param {string} cSymbol ?\n * @param {boolean} fractionOnly ?\n * @returns {any} ?\n */\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\n var match = pattern.match(IntlBase.customRegex);\n if (match) {\n if (!fractionOnly) {\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\n nData.groupPattern = match[4];\n }\n var fraction = match[7];\n if (fraction && needFraction) {\n var fmatch = fraction.match(fractionRegex);\n if (!isNullOrUndefined(fmatch)) {\n nData.minimumFraction = fmatch.length;\n }\n else {\n nData.minimumFraction = 0;\n }\n nData.maximumFraction = fraction.length - 1;\n }\n }\n return nData;\n }\n IntlBase.getFormatData = getFormatData;\n /**\n * Changes currency symbol\n *\n * @private\n * @param {string} val ?\n * @param {string} sym ?\n * @returns {string} ?\n */\n function changeCurrencySymbol(val, sym) {\n if (val) {\n return val.replace(IntlBase.defaultCurrency, sym);\n }\n return '';\n }\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\n /**\n * Returns currency symbol based on currency code ?\n *\n * @private\n * @param {Object} numericObject ?\n * @param {string} currencyCode ?\n * @param {string} altSymbol ?\n * @returns {string} ?\n */\n function getCurrencySymbol(numericObject, currencyCode, altSymbol) {\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\n var getCurrency = getValue('currencies.' + currencyCode + symbol, numericObject) ||\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\n return getCurrency;\n }\n IntlBase.getCurrencySymbol = getCurrencySymbol;\n /**\n * Returns formatting options for custom number format\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {any} obj ?\n * @returns {any} ?\n */\n function customFormat(format, dOptions, obj) {\n var options = {};\n var formatSplit = format.split(';');\n var data = ['pData', 'nData', 'zeroData'];\n for (var i = 0; i < formatSplit.length; i++) {\n // eslint-disable-next-line\n options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);\n }\n if (isNullOrUndefined(options.nData)) {\n options.nData = extend({}, options.pData);\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\n }\n return options;\n }\n IntlBase.customFormat = customFormat;\n /**\n * Returns custom formatting options\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {Object} numObject ?\n * @returns {any} ?\n */\n function customNumberFormat(format, dOptions, numObject) {\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\n var pattern = format.match(IntlBase.customRegex);\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\n cOptions.type = undefined;\n return cOptions;\n }\n cOptions.nlead = pattern[1];\n cOptions.nend = pattern[10];\n var integerPart = pattern[6];\n var spaceCapture = integerPart.match(/\\ $/g) ? true : false;\n var spaceGrouping = integerPart.replace(/\\ $/g, '').indexOf(' ') !== -1;\n cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping;\n integerPart = integerPart.replace(/,/g, '');\n var fractionPart = pattern[7];\n if (integerPart.indexOf('0') !== -1) {\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\n }\n if (!isNullOrUndefined(fractionPart)) {\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\n if (cOptions.minimumFractionDigits === -1) {\n cOptions.minimumFractionDigits = 0;\n }\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\n }\n }\n if (!isNullOrUndefined(dOptions)) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\n if (!cOptions.isCurrency) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\n }\n }\n else {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\n }\n if (!isNullOrUndefined(numObject)) {\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\n if (cOptions.useGrouping) {\n // eslint-disable-next-line\n cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\n }\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\n cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, '');\n }\n return cOptions;\n }\n IntlBase.customNumberFormat = customNumberFormat;\n /**\n * Returns formatting options for currency or percent type\n *\n * @private\n * @param {string[]} parts ?\n * @param {string} actual ?\n * @param {string} symbol ?\n * @returns {any} ?\n */\n function isCurrencyPercent(parts, actual, symbol) {\n var options = { nlead: parts[0], nend: parts[1] };\n for (var i = 0; i < 2; i++) {\n var part = parts[parseInt(i.toString(), 10)];\n var loc = part.indexOf(actual);\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\n // eslint-disable-next-line\n options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\n // eslint-disable-next-line\n options[typeMapper[actual]] = true;\n options.type = options.isCurrency ? 'currency' : 'percent';\n break;\n }\n }\n return options;\n }\n IntlBase.isCurrencyPercent = isCurrencyPercent;\n /**\n * Returns culture based date separator\n *\n * @private\n * @param {Object} dateObj ?\n * @returns {string} ?\n */\n function getDateSeparator(dateObj) {\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[d‏M‏]([^d‏M])[d‏M‏]/i);\n return value ? value[1] : '/';\n }\n IntlBase.getDateSeparator = getDateSeparator;\n /**\n * Returns Native Date Time pattern\n *\n * @private\n * @param {string} culture ?\n * @param {DateFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcelFormat ?\n * @returns {string} ?\n */\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\n var dependable = getDependables(cldr, culture, options.calendar);\n if (isBlazor()) {\n options = compareBlazorDateFormats(options, culture);\n }\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\n if (isExcelFormat) {\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\n // eslint-disable-next-line\n return patternMatch[pattern];\n });\n if (actualPattern.indexOf('z') !== -1) {\n var tLength = actualPattern.match(/z/g).length;\n var timeZonePattern = void 0;\n var options_1 = { 'timeZone': {} };\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n var value = new Date();\n var timezone = value.getTimezoneOffset();\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\n if (timezone === 0) {\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\n }\n else {\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\n }\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\n }\n actualPattern = actualPattern.replace(/ $/, '');\n }\n return actualPattern;\n }\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\n /**\n *\n * @param {string} actual ?\n * @param {any} option ?\n * @returns {any} ?\n */\n // eslint-disable-next-line\n function processSymbol(actual, option) {\n if (actual.indexOf(',') !== -1) {\n // eslint-disable-next-line\n var split = actual.split(',');\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\n }\n else {\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\n }\n return actual;\n }\n /**\n * Returns Native Number pattern\n *\n * @private\n * @param {string} culture ?\n * @param {NumberFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcel ?\n * @returns {string} ?\n */\n function getActualNumberFormat(culture, options, cldr, isExcel) {\n var dependable = getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numrericObject = dependable.numericObject;\n var minFrac;\n var curObj = {};\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\n var dOptions = {};\n if (curMatch) {\n dOptions.numberMapper = isBlazor() ?\n extend({}, dependable.numericObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\n var split = symbolPattern.split(';');\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\n getFormatData(split[1] || '-' + split[0], true, curCode);\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\n getFormatData(split[0], false, curCode);\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\n }\n }\n var actualPattern;\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\n parseOptions.custom = false;\n actualPattern = '###0';\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\n var defaultMinimum = 0;\n if (parseOptions.fractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\n }\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\n }\n if (options.minimumIntegerDigits) {\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\n }\n if (options.useGrouping) {\n actualPattern = groupingPattern(actualPattern);\n }\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\n if (isBlazor() && parseOptions.type !== 'currency') {\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\n }\n var cPattern = actualPattern;\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\n if (curObj.hasNegativePattern || isBlazor()) {\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\n }\n }\n if (parseOptions.type === 'percent' && !isBlazor()) {\n actualPattern += ' %';\n }\n }\n else {\n actualPattern = options.format.replace(/'/g, '\"');\n }\n if (Object.keys(dOptions).length > 0) {\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\n }\n return actualPattern;\n }\n IntlBase.getActualNumberFormat = getActualNumberFormat;\n /**\n *\n * @param {string} pattern ?\n * @param {number} minDigits ?\n * @param {number} maxDigits ?\n * @returns {string} ?\n */\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\n pattern += '.';\n for (var a = 0; a < minDigits; a++) {\n pattern += '0';\n }\n if (minDigits < maxDigits) {\n var diff = maxDigits - minDigits;\n for (var b = 0; b < diff; b++) {\n pattern += '#';\n }\n }\n return pattern;\n }\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\n /**\n *\n * @param {string} pattern ?\n * @param {number} digits ?\n * @returns {string} ?\n */\n function minimumIntegerPattern(pattern, digits) {\n var temp = pattern.split('.');\n var integer = '';\n for (var x = 0; x < digits; x++) {\n integer += '0';\n }\n return temp[1] ? (integer + '.' + temp[1]) : integer;\n }\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\n /**\n *\n * @param {string} pattern ?\n * @returns {string} ?\n */\n function groupingPattern(pattern) {\n var temp = pattern.split('.');\n var integer = temp[0];\n var no = 3 - integer.length % 3;\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\n integer = hash + integer;\n pattern = '';\n for (var x = integer.length - 1; x > 0; x = x - 3) {\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;\n }\n pattern = pattern.slice(1);\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\n }\n IntlBase.groupingPattern = groupingPattern;\n /**\n *\n * @param {string} culture ?\n * @param {Object} cldr ?\n * @returns {number} ?\n */\n function getWeekData(culture, cldr) {\n var firstDay = defaultFirstDay;\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\n var iCulture = culture;\n if ((/en-/).test(iCulture)) {\n iCulture = iCulture.slice(3);\n }\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\n if (mapper) {\n firstDay = mapper[\"\" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;\n }\n return firstDayMapper[\"\" + firstDay];\n }\n IntlBase.getWeekData = getWeekData;\n /**\n * @private\n * @param {any} pData ?\n * @param {string} aCurrency ?\n * @param {string} rCurrency ?\n * @returns {void} ?\n */\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\n if (aCurrency !== iCurrency) {\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\n var data = pData_1[_i];\n data.nend = data.nend.replace(aCurrency, iCurrency);\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\n }\n }\n }\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\n /**\n * @private\n * @param {Date} date ?\n * @returns {number} ?\n */\n function getWeekOfYear(date) {\n var newYear = new Date(date.getFullYear(), 0, 1);\n var day = newYear.getDay();\n var weeknum;\n day = (day >= 0 ? day : day + 7);\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\n if (day < 4) {\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\n if (weeknum > 52) {\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\n var nday = nYear.getDay();\n nday = nday >= 0 ? nday : nday + 7;\n weeknum = nday < 4 ? 1 : 53;\n }\n }\n else {\n weeknum = Math.floor((daynum + day - 1) / 7);\n }\n return weeknum;\n }\n IntlBase.getWeekOfYear = getWeekOfYear;\n})(IntlBase || (IntlBase = {}));\n","import { isNullOrUndefined, merge } from './util';\nvar headerRegex = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm;\nvar defaultType = 'GET';\n/**\n * Ajax class provides ability to make asynchronous HTTP request to the server\n * ```typescript\n * var ajax = new Ajax(\"index.html\", \"GET\", true);\n * ajax.send().then(\n * function (value) {\n * console.log(value);\n * },\n * function (reason) {\n * console.log(reason);\n * });\n * ```\n */\nvar Ajax = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n *\n * @param {string|Object} options ?\n * @param {string} type ?\n * @param {boolean} async ?\n * @returns defaultType any\n */\n function Ajax(options, type, async, contentType) {\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n */\n this.mode = true;\n /**\n * A boolean value indicating whether to ignore the promise reject.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n this.options = {};\n if (typeof options === 'string') {\n this.url = options;\n this.type = type ? type.toUpperCase() : defaultType;\n this.mode = !isNullOrUndefined(async) ? async : true;\n }\n else if (typeof options === 'object') {\n this.options = options;\n merge(this, this.options);\n }\n this.type = this.type ? this.type.toUpperCase() : defaultType;\n this.contentType = (this.contentType !== undefined) ? this.contentType : contentType;\n }\n /**\n *\n * Send the request to server.\n *\n * @param {any} data - To send the user data\n * @return {Promise} ?\n */\n Ajax.prototype.send = function (data) {\n var _this = this;\n this.data = isNullOrUndefined(data) ? this.data : data;\n var eventArgs = {\n cancel: false,\n httpRequest: null\n };\n var promise = new Promise(function (resolve, reject) {\n _this.httpRequest = new XMLHttpRequest();\n _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); };\n if (!isNullOrUndefined(_this.onLoad)) {\n _this.httpRequest.onload = _this.onLoad;\n }\n if (!isNullOrUndefined(_this.onProgress)) {\n _this.httpRequest.onprogress = _this.onProgress;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onAbort)) {\n _this.httpRequest.onabort = _this.onAbort;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onError)) {\n _this.httpRequest.onerror = _this.onError;\n }\n //** Upload Events **/\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onUploadProgress)) {\n _this.httpRequest.upload.onprogress = _this.onUploadProgress;\n }\n _this.httpRequest.open(_this.type, _this.url, _this.mode);\n // Set default headers\n if (!isNullOrUndefined(_this.data) && _this.contentType !== null) {\n _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8');\n }\n if (_this.beforeSend) {\n eventArgs.httpRequest = _this.httpRequest;\n _this.beforeSend(eventArgs);\n }\n if (!eventArgs.cancel) {\n _this.httpRequest.send(!isNullOrUndefined(_this.data) ? _this.data : null);\n }\n });\n return promise;\n };\n Ajax.prototype.successHandler = function (data) {\n if (this.onSuccess) {\n this.onSuccess(data, this);\n }\n return data;\n };\n Ajax.prototype.failureHandler = function (reason) {\n if (this.onFailure) {\n this.onFailure(this.httpRequest);\n }\n return reason;\n };\n Ajax.prototype.stateChange = function (resolve, reject) {\n var data = this.httpRequest.responseText;\n if (this.dataType && this.dataType.toLowerCase() === 'json') {\n if (data === '') {\n data = undefined;\n }\n else {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // no exception handle\n }\n }\n }\n if (this.httpRequest.readyState === 4) {\n //success range should be 200 to 299\n if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) {\n resolve(this.successHandler(data));\n }\n else {\n if (this.emitError) {\n reject(new Error(this.failureHandler(this.httpRequest.statusText)));\n }\n else {\n resolve();\n }\n }\n }\n };\n /**\n * To get the response header from XMLHttpRequest\n *\n * @param {string} key Key to search in the response header\n * @returns {string} ?\n */\n Ajax.prototype.getResponseHeader = function (key) {\n var responseHeaders;\n var header;\n // eslint-disable-next-line\n responseHeaders = {};\n var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n while (headers) {\n responseHeaders[headers[1].toLowerCase()] = headers[2];\n headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n }\n // eslint-disable-next-line\n header = responseHeaders[key.toLowerCase()];\n return isNullOrUndefined(header) ? null : header;\n };\n return Ajax;\n}());\nexport { Ajax };\n","import { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n // eslint-disable-next-line\n if (!!Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {boolean}\n */\n Browser.getEvent = function (event) {\n // eslint-disable-next-line\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { debounce, extend } from './util';\nimport { Browser } from './browser';\n/**\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\n * ```html\n *
\n * \n * ```\n */\nvar EventHandler = /** @class */ (function () {\n function EventHandler() {\n }\n // to get the event data based on element\n EventHandler.addOrGetEventData = function (element) {\n if ('__eventList' in element) {\n return element.__eventList.events;\n }\n else {\n element.__eventList = {};\n return element.__eventList.events = [];\n }\n };\n /**\n * Add an event to the specified DOM element.\n *\n * @param {any} element - Target HTML DOM element\n * @param {string} eventName - A string that specifies the name of the event\n * @param {Function} listener - Specifies the function to run when the event occurs\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\n * @returns {Function} ?\n */\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\n var eventData = EventHandler.addOrGetEventData(element);\n var debounceListener;\n if (intDebounce) {\n debounceListener = debounce(listener, intDebounce);\n }\n else {\n debounceListener = listener;\n }\n if (bindTo) {\n debounceListener = debounceListener.bind(bindTo);\n }\n var event = eventName.split(' ');\n for (var i = 0; i < event.length; i++) {\n eventData.push({\n name: event[parseInt(i.toString(), 10)],\n listener: listener,\n debounce: debounceListener\n });\n if (Browser.isIE) {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);\n }\n else {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });\n }\n }\n return debounceListener;\n };\n /**\n * Remove an event listener that has been attached before.\n *\n * @param {any} element - Specifies the target html element to remove the event\n * @param {string} eventName - A string that specifies the name of the event to remove\n * @param {Function} listener - Specifies the function to remove\n * @returns {void} ?\n */\n EventHandler.remove = function (element, eventName, listener) {\n var eventData = EventHandler.addOrGetEventData(element);\n var event = eventName.split(' ');\n var _loop_1 = function (j) {\n var index = -1;\n var debounceListener;\n if (eventData && eventData.length !== 0) {\n eventData.some(function (x, i) {\n return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?\n (index = i, debounceListener = x.debounce, true) : false;\n });\n }\n if (index !== -1) {\n eventData.splice(index, 1);\n }\n if (debounceListener) {\n element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);\n }\n };\n for (var j = 0; j < event.length; j++) {\n _loop_1(j);\n }\n };\n /**\n * Clear all the event listeners that has been previously attached to the element.\n *\n * @param {any} element - Specifies the target html element to clear the events\n * @returns {void} ?\n */\n EventHandler.clearEvents = function (element) {\n var eventData;\n var copyData;\n // eslint-disable-next-line\n eventData = EventHandler.addOrGetEventData(element);\n // eslint-disable-next-line\n copyData = extend([], copyData, eventData);\n for (var i = 0; i < copyData.length; i++) {\n element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce);\n eventData.shift();\n }\n };\n /**\n * Trigger particular event of the element.\n *\n * @param {any} element - Specifies the target html element to trigger the events\n * @param {string} eventName - Specifies the event to trigger for the specified element.\n * Can be a custom event, or any of the standard events.\n * @param {any} eventProp - Additional parameters to pass on to the event properties\n * @returns {void} ?\n */\n EventHandler.trigger = function (element, eventName, eventProp) {\n var eventData = EventHandler.addOrGetEventData(element);\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\n var event_1 = eventData_1[_i];\n if (event_1.name === eventName) {\n event_1.debounce.call(this, eventProp);\n }\n }\n };\n return EventHandler;\n}());\nexport { EventHandler };\n","/**\n * Functions related to dom operations.\n */\nimport { EventHandler } from './event-handler';\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\nvar SVG_REG = /^svg|^path|^g/;\n/**\n * Function to create Html element.\n *\n * @param {string} tagName - Name of the tag, id and class names.\n * @param {ElementProperties} properties - Object to set properties in the element.\n * @param {ElementProperties} properties.id - To set the id to the created element.\n * @param {ElementProperties} properties.className - To add classes to the element.\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\n * @returns {any} ?\n * @private\n */\nexport function createElement(tagName, properties) {\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\n if (typeof (properties) === 'undefined') {\n return element;\n }\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\n if (properties.className !== undefined) {\n element.className = properties.className;\n }\n if (properties.id !== undefined) {\n element.id = properties.id;\n }\n if (properties.styles !== undefined) {\n element.setAttribute('style', properties.styles);\n }\n if (properties.attrs !== undefined) {\n attributes(element, properties.attrs);\n }\n return element;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function addClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\n var className = classList_1[_b];\n if (isObject(ele)) {\n var curClass = getValue('attributes.className', ele);\n if (isNullOrUndefined(curClass)) {\n setValue('attributes.className', className, ele);\n }\n else if (!new RegExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\n setValue('attributes.className', curClass + ' ' + className, ele);\n }\n }\n else {\n if (!ele.classList.contains(className)) {\n ele.classList.add(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function removeClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n var flag = isObject(ele);\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\n if (canRemove) {\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\n var className = classList_2[_b];\n if (flag) {\n var classes_1 = getValue('attributes.className', ele);\n var classArr = classes_1.split(' ');\n var index = classArr.indexOf(className);\n if (index !== -1) {\n classArr.splice(index, 1);\n }\n setValue('attributes.className', classArr.join(' '), ele);\n }\n else {\n ele.classList.remove(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to get classlist.\n *\n * @param {string | string[]} classes - An element the need to check visibility\n * @returns {string[]} ?\n * @private\n */\nfunction getClassList(classes) {\n var classList = [];\n if (typeof classes === 'string') {\n classList.push(classes);\n }\n else {\n classList = classes;\n }\n return classList;\n}\n/**\n * The function used to check element is visible or not.\n *\n * @param {Element|Node} element - An element the need to check visibility\n * @returns {boolean} ?\n * @private\n */\nexport function isVisible(element) {\n var ele = element;\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\n}\n/**\n * The function used to insert an array of elements into a first of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function prepend(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.insertBefore(docFrag, toElement.firstElementChild);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function used to insert an array of elements into last of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function append(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.appendChild(docFrag);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function is used to evaluate script from Ajax request\n *\n * @param {Element} ele - An element is going to evaluate the script\n * @returns {void} ?\n */\nfunction executeScript(ele) {\n var eleArray = ele.querySelectorAll('script');\n eleArray.forEach(function (element) {\n var script = document.createElement('script');\n script.text = element.innerHTML;\n document.head.appendChild(script);\n detach(script);\n });\n}\n/**\n * The function used to remove the element from parentnode\n *\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function detach(element) {\n var parentNode = element.parentNode;\n if (parentNode) {\n return parentNode.removeChild(element);\n }\n}\n/**\n * The function used to remove the element from Dom also clear the bounded events\n *\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\n * @returns {void} ?\n * @private\n */\nexport function remove(element) {\n var parentNode = element.parentNode;\n EventHandler.clearEvents(element);\n parentNode.removeChild(element);\n}\n/**\n * The function helps to set multiple attributes to an element\n *\n * @param {Element|Node} element - An element that need to set attributes.\n * @param {string} attributes - JSON Object that is going to as attributes.\n * @returns {Element} ?\n * @private\n */\n// eslint-disable-next-line\nexport function attributes(element, attributes) {\n var keys = Object.keys(attributes);\n var ele = element;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (isObject(ele)) {\n var iKey = key;\n if (key === 'tabindex') {\n iKey = 'tabIndex';\n }\n ele.attributes[\"\" + iKey] = attributes[\"\" + key];\n }\n else {\n ele.setAttribute(key, attributes[\"\" + key]);\n }\n }\n return ele;\n}\n/**\n * The function selects the element from giving context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function select(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n return context.querySelector(selector);\n}\n/**\n * The function selects an array of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {HTMLElement[]} ?\n * @private\n */\n// eslint-disable-next-line\nexport function selectAll(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n var nodeList = context.querySelectorAll(selector);\n return nodeList;\n}\n/**\n * The function selects an id of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @returns {string} ?\n * @private\n */\nfunction querySelectId(selector) {\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\n var idList = selector.split(',');\n for (var i = 0; i < idList.length; i++) {\n var list = idList[parseInt(i.toString(), 10)].split(' ');\n for (var j = 0; j < list.length; j++) {\n if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {\n if (!list[parseInt(j.toString(), 10)].match(/\\[.*\\]/)) {\n var splitId = list[parseInt(j.toString(), 10)].split('#');\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\n var setId = list[parseInt(j.toString(), 10)].split('.');\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\n list[parseInt(j.toString(), 10)] = setId.join('.');\n }\n }\n }\n }\n idList[parseInt(i.toString(), 10)] = list.join(' ');\n }\n return idList.join(',');\n }\n return selector;\n}\n/**\n * Returns single closest parent element based on class selector.\n *\n * @param {Element} element - An element that need to find the closest element.\n * @param {string} selector - A classSelector of closest element.\n * @returns {Element} ?\n * @private\n */\nexport function closest(element, selector) {\n var el = element;\n if (typeof el.closest === 'function') {\n return el.closest(selector);\n }\n while (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n}\n/**\n * Returns all sibling elements of the given element.\n *\n * @param {Element|Node} element - An element that need to get siblings.\n * @returns {Element[]} ?\n * @private\n */\nexport function siblings(element) {\n var siblings = [];\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\n var curNode = childNodes_1[_i];\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\n siblings.push(curNode);\n }\n }\n return siblings;\n}\n/**\n * set the value if not exist. Otherwise set the existing value\n *\n * @param {HTMLElement} element - An element to which we need to set value.\n * @param {string} property - Property need to get or set.\n * @param {string} value - value need to set.\n * @returns {string} ?\n * @private\n */\nexport function getAttributeOrDefault(element, property, value) {\n var attrVal;\n var isObj = isObject(element);\n if (isObj) {\n attrVal = getValue('attributes.' + property, element);\n }\n else {\n attrVal = element.getAttribute(property);\n }\n if (isNullOrUndefined(attrVal) && value) {\n if (!isObj) {\n element.setAttribute(property, value.toString());\n }\n else {\n element.attributes[\"\" + property] = value;\n }\n attrVal = value;\n }\n return attrVal;\n}\n/**\n * Set the style attributes to Html element.\n *\n * @param {HTMLElement} element - Element which we want to set attributes\n * @param {any} attrs - Set the given attributes to element\n * @returns {void} ?\n * @private\n */\nexport function setStyleAttribute(element, attrs) {\n if (attrs !== undefined) {\n Object.keys(attrs).forEach(function (key) {\n // eslint-disable-next-line\n element.style[key] = attrs[key];\n });\n }\n}\n/**\n * Method for add and remove classes to a dom element.\n *\n * @param {Element} element - Element for add and remove classes\n * @param {string[]} addClasses - List of classes need to be add to the element\n * @param {string[]} removeClasses - List of classes need to be remove from the element\n * @returns {void} ?\n * @private\n */\nexport function classList(element, addClasses, removeClasses) {\n addClass([element], addClasses);\n removeClass([element], removeClasses);\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Element} element - Element to compare with the selector.\n * @param {string} selector - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function matches(element, selector) {\n // eslint-disable-next-line\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (matches) {\n return matches.call(element, selector);\n }\n else {\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\n }\n}\n/**\n * Method to get the html text from DOM.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} innerHTML - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function includeInnerHTML(ele, innerHTML) {\n ele.innerHTML = innerHTML;\n}\n/**\n * Method to get the containsclass.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} className - String selector which element will satisfy.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function containsClass(ele, className) {\n if (isObject(ele)) {\n // eslint-disable-next-line\n return new RegExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\n }\n else {\n return ele.classList.contains(className);\n }\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Object} element - Element to compare with the selector.\n * @param {boolean} deep ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function cloneNode(element, deep) {\n if (isObject(element)) {\n if (deep) {\n return extend({}, {}, element, true);\n }\n }\n else {\n return element.cloneNode(deep);\n }\n}\n","import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/* tslint:enable:no-any */\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n // tslint:disable-next-line:no-any\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n /* tslint:disable:no-any */\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n /* tslint:enable:no-any */\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n // tslint:disable-next-line:no-any\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line\n this.element.ej2_instances =\n this.element.ej2_instances.filter(function (i) { return i !== _this; });\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\n// tslint:disable-next-line:no-any\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n // tslint:disable-next-line:no-any\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @return {void}\n * @private\n */\n// tslint:disable-next-line:no-any\nexport function removeChildInstance(element) {\n // tslint:disable-next-line:no-any\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n // tslint:disable-next-line:no-any\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\n","import { createInstance, isUndefined, merge, extend, getValue } from './util';\n/**\n * Returns the Class Object\n *\n * @param {ClassObject} instance - instance of ClassObject\n * @param {string} curKey - key of the current instance\n * @param {Object} defaultValue - default Value\n * @param {Object[]} type ?\n * @returns {ClassObject} ?\n */\n// eslint-disable-next-line\nfunction getObject(instance, curKey, defaultValue, type) {\n // eslint-disable-next-line\n if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {\n instance.properties[\"\" + curKey] = createInstance(type, [instance, curKey, defaultValue]);\n }\n return instance.properties[\"\" + curKey];\n}\n/**\n * Returns object array\n *\n * @param {ClassObject} instance ?\n * @param {string} curKey ?\n * @param {Object[]} defaultValue ?\n * @param {Object} type ?\n * @param {boolean} isSetter ?\n * @param {boolean} isFactory ?\n * @returns {Object[]} ?\n */\n// eslint-disable-next-line\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\n var result = [];\n var len = defaultValue ? defaultValue.length : 0;\n for (var i = 0; i < len; i++) {\n var curType = type;\n if (isFactory) {\n curType = type(defaultValue[parseInt(i.toString(), 10)], instance);\n }\n if (isSetter) {\n var inst = createInstance(curType, [instance, curKey, {}, true]);\n inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);\n result.push(inst);\n }\n else {\n result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));\n }\n }\n return result;\n}\n/**\n * Returns the properties of the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertyGetter(defaultValue, curKey) {\n return function () {\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n this.properties[\"\" + curKey] = defaultValue;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n * Set the properties for the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertySetter(defaultValue, curKey) {\n return function (newValue) {\n if (this.properties[\"\" + curKey] !== newValue) {\n // eslint-disable-next-line\n var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n this.saveChanges(curKey, newValue, oldVal);\n this.properties[\"\" + curKey] = newValue;\n }\n };\n}\n/**\n * Returns complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexGetter(defaultValue, curKey, type) {\n return function () {\n return getObject(this, curKey, defaultValue, type);\n };\n}\n/**\n * Sets complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexSetter(defaultValue, curKey, type) {\n return function (newValue) {\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (this.properties.hasOwnProperty(curKey)) {\n return this.properties[\"\" + curKey];\n }\n else {\n return getObject(this, curKey, defaultValue, curType);\n }\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var curType = type(newValue, this);\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayGetter(defaultValue, curKey, type) {\n return function () {\n var _this = this;\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\n || this.ignoreCollectionWatch);\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {\n ['push', 'pop'].forEach(function (extendFunc) {\n var descriptor = {\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[\"\" + curKey]).bind(_this),\n configurable: true\n };\n Object.defineProperty(_this.properties[\"\" + curKey], extendFunc, descriptor);\n });\n }\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {\n Object.defineProperty(this.properties[\"\" + curKey], 'isComplexArray', { value: true });\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArraySetter(defaultValue, curKey, type) {\n return function (newValue) {\n this.isComplexArraySetter = true;\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\n this.isComplexArraySetter = false;\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n // eslint-disable-next-line\n var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {string} dFunc ?\n * @param {string} curKey ?\n * @param {Object} type ?\n * @param {Object} prop ?\n * @returns {Object} ?\n */\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\n /* tslint:disable no-function-expression */\n return function () {\n var newValue = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newValue[_i] = arguments[_i];\n }\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\n switch (dFunc) {\n case 'push':\n for (var i = 0; i < newValue.length; i++) {\n Array.prototype[\"\" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]);\n var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc);\n this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc);\n }\n break;\n case 'pop':\n Array.prototype[\"\" + dFunc].apply(prop);\n // eslint-disable-next-line\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\n break;\n }\n return prop;\n };\n}\n/**\n *\n * @param {string} keyString ?\n * @param {Object} value ?\n * @param {boolean} isControlParent ?\n * @param {string} arrayFunction ?\n * @returns {Object} ?\n */\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\n var modelObject = keyString;\n if (isControlParent) {\n modelObject = {};\n modelObject[\"\" + keyString] = value;\n if (value && typeof value === 'object') {\n var action = 'ejsAction';\n modelObject[\"\" + keyString][\"\" + action] = arrayFunction;\n }\n }\n return modelObject;\n}\n// eslint-disable-next-line\n/**\n * Method used to create property. General syntax below.\n *\n * @param {Object} defaultValue - Specifies the default value of property.\n * @returns {PropertyDecorator} ?\n * ```\n * @Property('TypeScript')\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Property(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: propertySetter(defaultValue, key),\n get: propertyGetter(defaultValue, key),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'prop', defaultValue);\n };\n}\n/**\n * Method used to create complex property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Complex({},Type)\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Complex(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexSetter(defaultValue, key, type),\n get: complexGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex Factory property. General syntax below.\n *\n * @param {Function} type - Specifies the class factory type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @ComplexFactory(defaultType, factoryFunction)\n * propertyName: Type1 | Type2;\n * ```\n * @private\n */\nexport function ComplexFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexFactorySetter({}, key, type),\n get: complexFactoryGetter({}, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', {}, type);\n };\n}\n/**\n * Method used to create complex array property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Collection(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArraySetter(defaultValue, key, type),\n get: complexArrayGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex factory array property. General syntax below.\n *\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyCollectionInfo} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function CollectionFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArrayFactorySetter([], key, type),\n get: complexArrayFactoryGetter([], key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', {}, type);\n };\n}\n/**\n * Method used to create event property. General syntax below.\n *\n * @returns {PropertyDecorator} ?\n * ```\n * @Event(()=>{return true;})\n * ```\n * @private\n */\nexport function Event() {\n return function (target, key) {\n var eventDescriptor = {\n set: function (newValue) {\n var oldValue = this.properties[\"\" + key];\n if (oldValue !== newValue) {\n var finalContext = getParentContext(this, key);\n if (isUndefined(oldValue) === false) {\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\n }\n finalContext.context.addEventListener(finalContext.prefix, newValue);\n this.properties[\"\" + key] = newValue;\n }\n },\n get: propertyGetter(undefined, key),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, eventDescriptor);\n addPropertyCollection(target, key, 'event');\n };\n}\n/**\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\n *\n * @param {Function} classConstructor ?\n * @returns {void} ?\n * ```\n * @NotifyPropertyChanges\n * class DemoClass implements INotifyPropertyChanged {\n *\n * @Property()\n * property1: string;\n *\n * dataBind: () => void;\n *\n * constructor() { }\n *\n * onPropertyChanged(newProp: any, oldProp: any) {\n * // Called when property changed\n * }\n * }\n * ```\n * @private\n */\n// eslint-disable-next-line\nexport function NotifyPropertyChanges(classConstructor) {\n /** Need to code */\n}\n/**\n * Method used to create the builderObject for the target component.\n *\n * @param {BuildInfo} target ?\n * @param {string} key ?\n * @param {string} propertyType ?\n * @param {Object} defaultValue ?\n * @param {Function} type ?\n * @returns {void} ?\n * @private\n */\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\n if (isUndefined(target.propList)) {\n target.propList = {\n props: [],\n complexProps: [],\n colProps: [],\n events: [],\n propNames: [],\n complexPropNames: [],\n colPropNames: [],\n eventNames: []\n };\n }\n // eslint-disable-next-line\n target.propList[propertyType + 's'].push({\n propertyName: key,\n defaultValue: defaultValue,\n type: type\n });\n // eslint-disable-next-line\n target.propList[propertyType + 'Names'].push(key);\n}\n/**\n * Returns an object containing the builder properties\n *\n * @param {Function} component ?\n * @returns {Object} ?\n * @private\n */\nfunction getBuilderProperties(component) {\n if (isUndefined(component.prototype.builderObject)) {\n component.prototype.builderObject = {\n properties: {}, propCollections: [], add: function () {\n this.isPropertyArray = true;\n this.propCollections.push(extend({}, this.properties, {}));\n }\n };\n var rex = /complex/;\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\n var key = _a[_i];\n var _loop_1 = function (prop) {\n if (rex.test(key)) {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n var childType = {};\n merge(childType, getBuilderProperties(prop.type));\n value(childType);\n var tempValue;\n if (!childType.isPropertyArray) {\n tempValue = extend({}, childType.properties, {});\n }\n else {\n tempValue = childType.propCollections;\n }\n this.properties[prop.propertyName] = tempValue;\n childType.properties = {};\n childType.propCollections = [];\n childType.isPropertyArray = false;\n return this;\n };\n }\n else {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n this.properties[prop.propertyName] = value;\n return this;\n };\n }\n };\n for (var _b = 0, _c = component.prototype.propList[\"\" + key]; _b < _c.length; _b++) {\n var prop = _c[_b];\n _loop_1(prop);\n }\n }\n }\n return component.prototype.builderObject;\n}\n/**\n * Method used to create builder for the components\n *\n * @param {any} component -specifies the target component for which builder to be created.\n * @returns {Object} ?\n * @private\n */\nexport function CreateBuilder(component) {\n var builderFunction = function (element) {\n this.element = element;\n return this;\n };\n var instanceFunction = function (element) {\n // eslint-disable-next-line\n if (!builderFunction.prototype.hasOwnProperty('create')) {\n builderFunction.prototype = getBuilderProperties(component);\n builderFunction.prototype.create = function () {\n var temp = extend({}, {}, this.properties);\n this.properties = {};\n return new component(temp, this.element);\n };\n }\n return new builderFunction(element);\n };\n return instanceFunction;\n}\n/**\n * Returns parent options for the object\n *\n * @param {Object} context ?\n * @param {string} prefix ?\n * @returns {ParentOption} ?\n * @private\n */\nfunction getParentContext(context, prefix) {\n // eslint-disable-next-line\n if (context.hasOwnProperty('parentObj') === false) {\n return { context: context, prefix: prefix };\n }\n else {\n var curText = getValue('propName', context);\n if (curText) {\n prefix = curText + '-' + prefix;\n }\n return getParentContext(getValue('parentObj', context), prefix);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { createElement, selectAll, closest } from './dom';\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { EventHandler } from './event-handler';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\n/**\n * The Animation framework provide options to animate the html DOM elements\n * ```typescript\n * let animeObject = new Animation({\n * name: 'SlideLeftIn',\n * duration: 1000\n * });\n * animeObject.animate('#anime1');\n * animeObject.animate('#anime2', { duration: 500 });\n * ```\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(options) {\n var _this = _super.call(this, options, undefined) || this;\n /**\n * @private\n */\n _this.easing = {\n ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)',\n linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)',\n easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)',\n easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)',\n easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)',\n elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)',\n elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)',\n elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)'\n };\n return _this;\n }\n Animation_1 = Animation;\n /**\n * Applies animation to the current element.\n *\n * @param {string | HTMLElement} element - Element which needs to be animated.\n * @param {AnimationModel} options - Overriding default animation settings.\n * @returns {void} ?\n */\n Animation.prototype.animate = function (element, options) {\n options = !options ? {} : options;\n var model = this.getModel(options);\n if (typeof element === 'string') {\n var elements = Array.prototype.slice.call(selectAll(element, document));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element_1 = elements_1[_i];\n model.element = element_1;\n Animation_1.delayAnimation(model);\n }\n }\n else {\n model.element = element;\n Animation_1.delayAnimation(model);\n }\n };\n /**\n * Stop the animation effect on animated element.\n *\n * @param {HTMLElement} element - Element which needs to be stop the animation.\n * @param {AnimationOptions} model - Handling the animation model at stop function.\n * @return {void}\n */\n Animation.stop = function (element, model) {\n element.style.animation = '';\n element.removeAttribute('e-animate');\n var animationId = element.getAttribute('e-animation-id');\n if (animationId) {\n var frameId = parseInt(animationId, 10);\n cancelAnimationFrame(frameId);\n element.removeAttribute('e-animation-id');\n }\n if (model && model.end) {\n model.end.call(this, model);\n }\n };\n /**\n * Set delay to animation element\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.delayAnimation = function (model) {\n if (animationMode === 'Disable') {\n if (model.begin) {\n model.begin.call(this, model);\n }\n if (model.end) {\n model.end.call(this, model);\n }\n }\n else {\n if (model.delay) {\n setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);\n }\n else {\n Animation_1.applyAnimation(model);\n }\n }\n };\n /**\n * Triggers animation\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.applyAnimation = function (model) {\n var _this = this;\n model.timeStamp = 0;\n var step = 0;\n var timerId = 0;\n var prevTimeStamp = 0;\n var duration = model.duration;\n model.element.setAttribute('e-animate', 'true');\n var startAnimation = function (timeStamp) {\n try {\n if (timeStamp) {\n // let step: number = model.timeStamp = timeStamp - startTime;\n /** phantomjs workaround for timestamp fix */\n prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp;\n model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp;\n prevTimeStamp = timeStamp;\n /** phantomjs workaround end */\n // trigger animation begin event\n if (!step && model.begin) {\n model.begin.call(_this, model);\n }\n step = step + 1;\n var avg = model.timeStamp / step;\n if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) {\n // apply animation effect to the current element\n model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction;\n if (model.progress) {\n model.progress.call(_this, model);\n }\n // repeat requestAnimationFrame\n requestAnimationFrame(startAnimation);\n }\n else {\n // clear requestAnimationFrame\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n model.element.removeAttribute('e-animate');\n model.element.style.animation = '';\n if (model.end) {\n model.end.call(_this, model);\n }\n }\n }\n else {\n //startTime = performance.now();\n // set initial requestAnimationFrame\n timerId = requestAnimationFrame(startAnimation);\n model.element.setAttribute('e-animation-id', timerId.toString());\n }\n }\n catch (e) {\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n if (model.fail) {\n model.fail.call(_this, e);\n }\n }\n };\n startAnimation();\n };\n /**\n * Returns Animation Model\n *\n * @param {AnimationModel} options ?\n * @returns {AnimationModel} ?\n */\n Animation.prototype.getModel = function (options) {\n return {\n name: options.name || this.name,\n delay: options.delay || this.delay,\n duration: (options.duration !== undefined ? options.duration : this.duration),\n begin: options.begin || this.begin,\n end: options.end || this.end,\n fail: options.fail || this.fail,\n progress: options.progress || this.progress,\n timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] :\n (options.timingFunction || this.easing[this.timingFunction])\n };\n };\n /**\n * @private\n * @param {AnimationModel} newProp ?\n * @param {AnimationModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Animation.prototype.onPropertyChanged = function (newProp, oldProp) {\n // no code needed\n };\n /**\n * Returns module name as animation\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.getModuleName = function () {\n return 'animation';\n };\n /**\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.destroy = function () {\n //Override base destroy;\n };\n var Animation_1;\n __decorate([\n Property('FadeIn')\n ], Animation.prototype, \"name\", void 0);\n __decorate([\n Property(400)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], Animation.prototype, \"timingFunction\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"fail\", void 0);\n Animation = Animation_1 = __decorate([\n NotifyPropertyChanges\n ], Animation);\n return Animation;\n}(Base));\nexport { Animation };\n/**\n * Ripple provides material theme's wave effect when an element is clicked\n * ```html\n *
\n * \n * ```\n *\n * @private\n * @param {HTMLElement} element - Target element\n * @param {RippleOptions} rippleOptions - Ripple options .\n * @param {Function} done .\n * @returns {void} .\n */\nexport function rippleEffect(element, rippleOptions, done) {\n var rippleModel = getRippleModel(rippleOptions);\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\n return (function () {\n // do nothing.\n });\n }\n element.setAttribute('data-ripple', 'true');\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n if (Browser.isPointer) {\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n }\n return (function () {\n element.removeAttribute('data-ripple');\n EventHandler.remove(element, 'mousedown', rippleHandler);\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\n });\n}\n/**\n * Handler for ripple model\n *\n * @param {RippleOptions} rippleOptions ?\n * @returns {RippleOptions} ?\n */\nfunction getRippleModel(rippleOptions) {\n var rippleModel = {\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\n };\n return rippleModel;\n}\n/**\n * Handler for ripple event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleHandler(e) {\n var target = (e.target);\n var selector = this.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\n return;\n }\n var offset = element.getBoundingClientRect();\n var offsetX = e.pageX - document.body.scrollLeft;\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\n document.documentElement.scrollTop : document.body.scrollTop);\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\n var diameter = radius * 2 + 'px';\n var x = offsetX - offset.left - radius;\n var y = offsetY - offset.top - radius;\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\n x = 0;\n y = 0;\n diameter = '100%';\n }\n element.classList.add('e-ripple');\n var duration = this.rippleOptions.duration.toString();\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\n 'transition-duration: ' + duration + 'ms;';\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\n element.appendChild(rippleElement);\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\n rippleElement.style.transform = 'scale(1)';\n if (element !== this.parent) {\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\n }\n}\n/**\n * Handler for ripple element mouse up event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleUpHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for ripple element mouse move event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleLeaveHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for removing ripple element\n *\n * @param {MouseEvent} e ?\n * @param {RippleArgs} eventArgs ?\n * @returns {void} ?\n * @private\n */\nfunction removeRipple(e, eventArgs) {\n var duration = eventArgs.rippleOptions.duration;\n var target = (e.target);\n var selector = eventArgs.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\n return;\n }\n var rippleElements = selectAll('.e-ripple-element', element);\n var rippleElement = rippleElements[rippleElements.length - 1];\n if (rippleElement) {\n rippleElement.style.opacity = '0.5';\n }\n if (eventArgs.parent !== element) {\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n }\n /* tslint:disable:align */\n setTimeout(function () {\n if (rippleElement && rippleElement.parentNode) {\n rippleElement.parentNode.removeChild(rippleElement);\n }\n if (!element.getElementsByClassName('e-ripple-element').length) {\n element.classList.remove('e-ripple');\n }\n if (eventArgs.done) {\n eventArgs.done(e);\n }\n }, duration);\n}\nexport var isRippleEnabled = false;\n/**\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\n *\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\n * @returns {boolean} ?\n */\nexport function enableRipple(isRipple) {\n isRippleEnabled = isRipple;\n return isRippleEnabled;\n}\n/**\n * Defines the Modes of Global animation.\n *\n * @private\n */\nexport var animationMode = '';\n/**\n * Method for set the Global animation modes for Syncfusion Blazor components.\n *\n * @param {string} value - Specifies the animation mode.\n * @returns {void}\n */\nexport function setGlobalAnimation(value) {\n animationMode = value;\n}\n","/**\n * Module loading operations\n */\nimport { createInstance, setValue, getValue, deleteObject } from './util';\nvar MODULE_SUFFIX = 'Module';\nvar ModuleLoader = /** @class */ (function () {\n function ModuleLoader(parent) {\n this.loadedModules = [];\n this.parent = parent;\n }\n /**\n * Inject required modules in component library\n *\n * @returns {void} ?\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\n */\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\n var reqLength = requiredModules.length;\n if (reqLength === 0) {\n this.clean();\n return;\n }\n if (this.loadedModules.length) {\n this.clearUnusedModule(requiredModules);\n }\n for (var i = 0; i < reqLength; i++) {\n var modl = requiredModules[parseInt(i.toString(), 10)];\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\n var module = moduleList_1[_i];\n var modName = modl.member;\n if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\n var moduleObject = createInstance(module, modl.args);\n var memberName = this.getMemberName(modName);\n if (modl.isProperty) {\n setValue(memberName, module, this.parent);\n }\n else {\n setValue(memberName, moduleObject, this.parent);\n }\n var loadedModule = modl;\n loadedModule.member = memberName;\n this.loadedModules.push(loadedModule);\n }\n }\n }\n };\n /**\n * To remove the created object while destroying the control\n *\n * @returns {void}\n */\n ModuleLoader.prototype.clean = function () {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var modules = _a[_i];\n if (!modules.isProperty) {\n getValue(modules.member, this.parent).destroy();\n }\n }\n this.loadedModules = [];\n };\n /**\n * Removes all unused modules\n *\n * @param {ModuleDeclaration[]} moduleList ?\n * @returns {void} ?\n */\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\n var _this = this;\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\n var removableModule = this.loadedModules.filter(function (module) {\n return usedModules.indexOf(module.member) === -1;\n });\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\n var mod = removableModule_1[_i];\n if (!mod.isProperty) {\n getValue(mod.member, this.parent).destroy();\n }\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\n deleteObject(this.parent, mod.member);\n }\n };\n /**\n * To get the name of the member.\n *\n * @param {string} name ?\n * @returns {string} ?\n */\n ModuleLoader.prototype.getMemberName = function (name) {\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\n };\n /**\n * Returns boolean based on whether the module specified is loaded or not\n *\n * @param {string} modName ?\n * @returns {boolean} ?\n */\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var mod = _a[_i];\n if (mod.member === this.getMemberName(modName)) {\n return true;\n }\n }\n return false;\n };\n return ModuleLoader;\n}());\nexport { ModuleLoader };\n","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];\nvar bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,\n 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,\n 105, 100, 97, 116, 101, 100];\nvar accountURL;\n/**\n * License validation module\n *\n * @private\n */\nvar LicenseValidator = /** @class */ (function () {\n function LicenseValidator(key) {\n this.isValidated = false;\n this.isLicensed = true;\n this.version = '20.4';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats/i;\n this.errors = {\n noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n trailExpired: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n versionMismatched: 'The included Syncfusion license key is invalid.',\n platformMismatched: 'The included Syncfusion license key is invalid.',\n invalidKey: 'The included Syncfusion license key is invalid.'\n };\n /**\n * To manage licensing operation.\n */\n this.manager = (function () {\n var licKey = null;\n /**\n * Sets the license key.\n *\n * @param {string} key - Specifies the license key.\n * @returns {void}\n */\n function set(key) { licKey = key; }\n /**\n * Gets the license key.\n *\n * @returns {string} -Gets the license key.\n */\n function get() { return licKey; }\n return {\n setKey: set,\n getKey: get\n };\n })();\n /**\n * To manage npx licensing operation.\n */\n this.npxManager = (function () {\n var npxLicKey = 'npxKeyReplace';\n /**\n * Gets the license key.\n *\n * @returns {string} - Gets the license key.\n */\n function get() { return npxLicKey; }\n return {\n getKey: get\n };\n })();\n this.manager.setKey(key);\n }\n /**\n * To validate the provided license key.\n */\n LicenseValidator.prototype.validate = function () {\n var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];\n var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];\n if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {\n var validateMsg = void 0;\n var validateURL = void 0;\n if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {\n var result = this.getInfoFromKey();\n if (result && result.length) {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n if (!this.platform.test(res.platform) || res.invalidPlatform) {\n validateMsg = this.errors.platformMismatched;\n }\n else if (res.version.indexOf(this.version) === -1) {\n validateMsg = this.errors.versionMismatched;\n validateMsg = validateMsg.replace('##LicenseVersion', res.version);\n validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');\n }\n else if (res.expiryDate) {\n var expDate = new Date(res.expiryDate);\n var currDate = new Date();\n if (expDate !== currDate && expDate < currDate) {\n validateMsg = this.errors.trailExpired;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n validateMsg = this.errors.invalidKey;\n }\n }\n else {\n var licenseContent = getValue(convertToChar(contentKey), containerObject);\n validateURL = getValue(convertToChar(URLKey), containerObject);\n if (licenseContent && licenseContent !== '') {\n validateMsg = licenseContent;\n }\n else {\n validateMsg = this.errors.noLicense;\n }\n }\n if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n accountURL = (validateURL && validateURL !== '') ? validateURL : \"https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjAuNA==\";\n var errorDiv = createElement('div', {\n innerHTML: \"\" + validateMsg + ' ' + 'Claim your free account'\n });\n errorDiv.setAttribute('style', \"position: fixed;\\n top: 10px;\\n left: 10px;\\n right: 10px;\\n font-size: 14px;\\n background: #EEF2FF;\\n color: #222222;\\n z-index: 999999999;\\n text-align: left;\\n border: 1px solid #EEEEEE;\\n padding: 10px 11px 10px 50px;\\n border-radius: 8px;\\n font-family: Helvetica Neue, Helvetica, Arial;\");\n document.body.appendChild(errorDiv);\n this.isLicensed = false;\n }\n this.isValidated = true;\n setValue(convertToChar(bypassKey), this.isValidated, containerObject);\n }\n return this.isLicensed;\n };\n LicenseValidator.prototype.getDecryptedData = function (key) {\n try {\n return atob(key);\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Get license information from key.\n *\n * @returns {IValidator} - Get license information from key.\n */\n LicenseValidator.prototype.getInfoFromKey = function () {\n try {\n var licKey = '';\n var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,\n 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,\n 6356992, 7602176, 4587520, 7274496, 7471104, 7143424];\n var decryptedStr = [];\n var resultArray = [];\n var invalidPlatform = false;\n var isNpxKey = false;\n if (this.manager.getKey()) {\n licKey = this.manager.getKey();\n }\n else {\n isNpxKey = true;\n licKey = this.npxManager.getKey().split('npxKeyReplace')[1];\n }\n var licKeySplit = licKey.split(';');\n for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {\n var lKey = licKeySplit_1[_i];\n var decodeStr = this.getDecryptedData(lKey);\n if (!decodeStr) {\n continue;\n }\n var k = 0;\n var buffr = '';\n if (!isNpxKey) {\n for (var i = 0; i < decodeStr.length; i++, k++) {\n if (k === pkey.length) {\n k = 0;\n }\n var c = decodeStr.charCodeAt(i);\n buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));\n }\n }\n else {\n var charKey = decodeStr[decodeStr.length - 1];\n var decryptedKey = [];\n for (var i = 0; i < decodeStr.length; i++) {\n decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);\n }\n for (var i = 0; i < decryptedKey.length; i++) {\n buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);\n }\n }\n if (this.platform.test(buffr)) {\n decryptedStr = buffr.split(';');\n invalidPlatform = false;\n // checked the length to verify the key in proper strucutre\n if (decryptedStr.length > 3) {\n resultArray.push({ platform: decryptedStr[0],\n version: decryptedStr[1],\n expiryDate: decryptedStr[2] });\n }\n }\n else if (buffr && buffr.split(';').length > 3) {\n invalidPlatform = true;\n }\n }\n if (invalidPlatform && !resultArray.length) {\n return [{ invalidPlatform: invalidPlatform }];\n }\n else {\n return resultArray.length ? resultArray : null;\n }\n }\n catch (error) {\n return null;\n }\n };\n return LicenseValidator;\n}());\nvar licenseValidator = new LicenseValidator();\n/**\n * Converts the given number to characters.\n *\n * @param {number} cArr - Specifies the license key as number.\n * @returns {string}\n */\nfunction convertToChar(cArr) {\n var ret = '';\n for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {\n var arr = cArr_1[_i];\n ret += String.fromCharCode(arr);\n }\n return ret;\n}\n/**\n * To set license key.\n *\n * @param {string} key - license key\n * @returns {void}\n */\nexport function registerLicense(key) {\n licenseValidator = new LicenseValidator(key);\n}\nexport var validateLicense = function (key) {\n if (key) {\n registerLicense(key);\n }\n return licenseValidator.validate();\n};\nexport var getVersion = function () {\n return licenseValidator.version;\n};\n// Method for create overlay over the sample\nexport var createLicenseOverlay = function () {\n var bannerTemplate = \"\\n
\\n
\\n
\\n \\n
\\n
Claim your FREE account and get a key in less than a minute
\\n
    \\n
  • Access to a 30-day free trial of any of our products.
  • \\n
  • Access to 24x5 support by developers via the support tickets, forum, feature & feedback page and chat.
  • \\n
  • 200+ ebooks on the latest technologies, industry trends, and research topics.\\n
  • \\n
  • Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion Metro Studio.
  • \\n
  • Free and unlimited access to Syncfusion technical blogs and whitepapers.
  • \\n
\\n
Syncfusion is trusted by 29,000+ businesses worldwide
\\n \\n Claim your FREE account\\n
have a Syncfusion account? Sign In
\\n
\\n
\";\n if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n var errorBackground = createElement('div', {\n innerHTML: bannerTemplate\n });\n document.body.appendChild(errorBackground);\n }\n};\n","import { getValue, setValue, merge, isBlazor } from './util';\nimport { Base } from './base';\n/**\n * To detect the changes for inner properties.\n *\n * @private\n */\nvar ChildProperty = /** @class */ (function () {\n function ChildProperty(parent, propName, defaultValue, isArray) {\n this.isComplexArraySetter = false;\n this.properties = {};\n this.changedProperties = {};\n this.childChangedProperties = {};\n this.oldProperties = {};\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.callChildDataBind = getValue('callChildDataBind', Base);\n this.parentObj = parent;\n this.controlParent = this.parentObj.controlParent || this.parentObj;\n this.propName = propName;\n this.isParentArray = isArray;\n this.setProperties(defaultValue, true);\n }\n /**\n * Updates the property changes\n *\n * @param {boolean} val ?\n * @param {string} propName ?\n * @returns {void} ?\n */\n ChildProperty.prototype.updateChange = function (val, propName) {\n if (val === true) {\n this.parentObj.childChangedProperties[\"\" + propName] = val;\n }\n else {\n delete this.parentObj.childChangedProperties[\"\" + propName];\n }\n if (this.parentObj.updateChange) {\n this.parentObj.updateChange(val, this.parentObj.propName);\n }\n };\n /**\n * Updates time out duration\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.updateTimeOut = function () {\n if (this.parentObj.updateTimeOut) {\n this.parentObj.finalUpdate();\n this.parentObj.updateTimeOut();\n }\n else {\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\n var clearUpdate = function () {\n clearTimeout(changeTime_1);\n };\n this.finalUpdate = clearUpdate;\n }\n };\n /**\n * Clears changed properties\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.clearChanges = function () {\n this.finalUpdate();\n this.updateChange(false, this.propName);\n this.oldProperties = {};\n this.changedProperties = {};\n };\n /**\n * Set property changes\n *\n * @param {Object} prop ?\n * @param {boolean} muteOnChange ?\n * @returns {void} ?\n */\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\n if (muteOnChange === true) {\n merge(this, prop);\n this.updateChange(false, this.propName);\n this.clearChanges();\n }\n else {\n merge(this, prop);\n }\n };\n /**\n * Binds data\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.dataBind = function () {\n this.callChildDataBind(this.childChangedProperties, this);\n if (this.isParentArray) {\n var curIndex = this.parentObj[this.propName].indexOf(this);\n if (Object.keys(this.changedProperties).length) {\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\n }\n }\n else {\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\n }\n this.clearChanges();\n };\n /**\n * Saves changes to newer values\n *\n * @param {string} key ?\n * @param {Object} newValue ?\n * @param {Object} oldValue ?\n * @param {boolean} restrictServerDataBind ?\n * @returns {void} ?\n */\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\n if (this.controlParent.isProtectedOnChange) {\n return;\n }\n if (!restrictServerDataBind) {\n this.serverDataBind(key, newValue, true);\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.updateChange(true, this.propName);\n this.finalUpdate();\n this.updateTimeOut();\n };\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\n var parent_1;\n var newChanges = {};\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\n /* istanbul ignore else */\n if (parentKey.indexOf('.') !== -1) {\n var complexKeys = parentKey.split('.');\n parent_1 = newChanges;\n for (var i = 0; i < complexKeys.length; i++) {\n var isFinal = i === complexKeys.length - 1;\n parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];\n }\n }\n else {\n newChanges[\"\" + parentKey] = {};\n parent_1 = newChanges[\"\" + parentKey];\n newChanges[\"\" + parentKey][\"\" + key] = value;\n }\n /* istanbul ignore next */\n if (this.isParentArray) {\n var actionProperty = 'ejsAction';\n parent_1[\"\" + actionProperty] = action ? action : 'none';\n }\n this.controlParent.serverDataBind(newChanges);\n }\n };\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\n // eslint-disable-next-line\n var index = '';\n var propName = this.propName;\n /* istanbul ignore next */\n if (this.isParentArray) {\n index = this.parentObj[this.propName].indexOf(this);\n var valueLength = this.parentObj[this.propName].length;\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\n index = index !== -1 ? '-' + index : '-' + valueLength;\n propName = propName + index;\n }\n if (this.controlParent !== this.parentObj) {\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\n }\n return propName;\n };\n return ChildProperty;\n}());\nexport { ChildProperty };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\nimport { ModuleLoader } from './module-loader';\nimport { Base } from './base';\nimport { Observer } from './observer';\nimport { ChildProperty } from './child-property';\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\nimport { createElement, addClass, removeClass, select } from './dom';\nimport { validateLicense, createLicenseOverlay, componentList } from './validate-lic';\nvar componentCount = 0;\nvar lastPageID;\nvar lastHistoryLen = 0;\n// Decalre the static variable to count the instance\nvar instancecount = 0;\n// Decalre the static variable to find if control limit exceed or not\nvar isvalid = true;\n// We have added styles to inline type so here declare the static variable to detect if banner is added or not\nvar isBannerAdded = false;\nexport var versionBasedStatePersistence = false;\n/**\n * To enable or disable version based statePersistence functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\n * @returns {void}\n */\nexport function enableVersionBasedPersistence(status) {\n versionBasedStatePersistence = status;\n}\n/**\n * Base class for all Essential JavaScript components\n */\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n /**\n * Initialize the constructor for component base\n *\n * @param {Object} options ?\n * @param {string} selector ?\n */\n function Component(options, selector) {\n var _this = _super.call(this, options, selector) || this;\n _this.randomId = uniqueID();\n /**\n * string template option for Blazor template rendering\n *\n * @private\n */\n _this.isStringTemplate = false;\n _this.needsID = false;\n _this.isReactHybrid = false;\n if (isNullOrUndefined(_this.enableRtl)) {\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\n }\n if (isNullOrUndefined(_this.locale)) {\n _this.setProperties({ 'locale': defaultCulture }, true);\n }\n _this.moduleLoader = new ModuleLoader(_this);\n _this.localObserver = new Observer(_this);\n // tslint:disable-next-line:no-function-constructor-with-string-args\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\n // Based on the considered control list we have count the instance\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && !validateLicense()) {\n if (componentList.indexOf(_this.getModuleName()) !== -1) {\n instancecount = instancecount + 1;\n if (instancecount > 5) {\n isvalid = false;\n }\n }\n }\n if (!isUndefined(selector)) {\n _this.appendTo();\n }\n return _this;\n }\n Component.prototype.requiredModules = function () {\n return [];\n };\n /**\n * Destroys the sub modules while destroying the widget\n *\n * @returns {void} ?\n */\n Component.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.enablePersistence) {\n this.setPersistData();\n }\n this.localObserver.destroy();\n if (this.refreshing) {\n return;\n }\n removeClass([this.element], ['e-control']);\n this.trigger('destroyed', { cancel: false });\n _super.prototype.destroy.call(this);\n this.moduleLoader.clean();\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\n };\n /**\n * Applies all the pending property changes and render the component again.\n *\n * @returns {void} ?\n */\n Component.prototype.refresh = function () {\n this.refreshing = true;\n this.moduleLoader.clean();\n this.destroy();\n this.clearChanges();\n this.localObserver = new Observer(this);\n this.preRender();\n this.injectModules();\n this.render();\n this.refreshing = false;\n };\n Component.prototype.accessMount = function () {\n if (this.mount && !this.isReactHybrid) {\n this.mount();\n }\n };\n /**\n * Returns the route element of the component\n *\n * @returns {HTMLElement} ?\n */\n Component.prototype.getRootElement = function () {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n return this.actualElement;\n }\n else {\n return this.element;\n }\n };\n /**\n * Returns the persistence data for component\n *\n * @returns {any} ?\n */\n // eslint-disable-next-line\n Component.prototype.getLocalData = function () {\n var eleId = this.getModuleName() + this.element.id;\n if (versionBasedStatePersistence) {\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\n }\n else {\n return window.localStorage.getItem(eleId);\n }\n };\n /**\n * Appends the control within the given HTML element\n *\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\n * @returns {void} ?\n */\n Component.prototype.appendTo = function (selector) {\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\n this.element = select(selector, document);\n }\n else if (!isNullOrUndefined(selector)) {\n this.element = selector;\n }\n if (!isNullOrUndefined(this.element)) {\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-control', moduleClass]);\n this.isProtectedOnChange = false;\n if (this.needsID && !this.element.id) {\n this.element.id = this.getUniqueID(this.getModuleName());\n }\n if (this.enablePersistence) {\n this.mergePersistData();\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n var inst = getValue('ej2_instances', this.element);\n if (!inst || inst.indexOf(this) === -1) {\n _super.prototype.addInstance.call(this);\n }\n this.preRender();\n this.injectModules();\n // Checked weather cases are valid or not. If control leads to more than five counts \n if (!isvalid && !isBannerAdded) {\n createLicenseOverlay();\n isBannerAdded = true;\n }\n this.render();\n if (!this.mount) {\n this.trigger('created');\n }\n else {\n this.accessMount();\n }\n }\n };\n /**\n * It is used to process the post rendering functionalities to a component.\n *\n * @param {Node} wrapperElement ?\n * @returns {void} ?\n */\n Component.prototype.renderComplete = function (wrapperElement) {\n if (isBlazor()) {\n var sfBlazor = 'sfBlazor';\n // eslint-disable-next-line\n window[sfBlazor].renderComplete(this.element, wrapperElement);\n }\n this.isRendered = true;\n };\n /**\n * When invoked, applies the pending property changes immediately to the component.\n *\n * @returns {void} ?\n */\n Component.prototype.dataBind = function () {\n this.injectModules();\n _super.prototype.dataBind.call(this);\n };\n /**\n * Attach one or more event handler to the current component context.\n * It is used for internal handling event internally within the component only.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.on = function (event, handler, context) {\n if (typeof event === 'string') {\n this.localObserver.on(event, handler, context);\n }\n else {\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\n var arg = event_1[_i];\n this.localObserver.on(arg.event, arg.handler, arg.context);\n }\n }\n };\n /**\n * To remove one or more event handler that has been attached with the on() method.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\n * @returns {void} ?\n * @private\n */\n Component.prototype.off = function (event, handler) {\n if (typeof event === 'string') {\n this.localObserver.off(event, handler);\n }\n else {\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\n var arg = event_2[_i];\n this.localObserver.off(arg.event, arg.handler);\n }\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.notify = function (property, argument) {\n if (this.isDestroyed !== true) {\n this.localObserver.notify(property, argument);\n }\n };\n /**\n * Get injected modules\n *\n * @returns {Function} ?\n * @private\n */\n Component.prototype.getInjectedModules = function () {\n return this.injectedModules;\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @param {Function} moduleList ?\n * @returns {void} ?\n */\n Component.Inject = function () {\n var moduleList = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n moduleList[_i] = arguments[_i];\n }\n if (!this.prototype.injectedModules) {\n this.prototype.injectedModules = [];\n }\n for (var i = 0; i < moduleList.length; i++) {\n if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {\n this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * This is a instance method to create an element.\n *\n * @param {string} tagName ?\n * @param {ElementProperties} prop ?\n * @param {boolean} isVDOM ?\n * @returns {any} ?\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\n return createElement(tagName, prop);\n };\n /**\n *\n * @param {Function} handler - handler to be triggered after state Updated.\n * @param {any} argument - Arguments to be passed to caller.\n * @returns {void} .\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.triggerStateChange = function (handler, argument) {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n this.setState();\n this.currentContext = { calls: handler, args: argument };\n }\n };\n // tslint: enable: no-any\n Component.prototype.injectModules = function () {\n if (this.injectedModules && this.injectedModules.length) {\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\n }\n };\n Component.prototype.detectFunction = function (args) {\n var prop = Object.keys(args);\n if (prop.length) {\n this[prop[0]] = args[prop[0]];\n }\n };\n Component.prototype.mergePersistData = function () {\n var data;\n if (versionBasedStatePersistence) {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\n }\n else {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n }\n if (!(isNullOrUndefined(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n };\n Component.prototype.setPersistData = function () {\n if (!this.isDestroyed) {\n if (versionBasedStatePersistence) {\n window.localStorage.setItem(this.getModuleName() +\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\n }\n else {\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\n }\n }\n };\n // eslint-disable-next-line\n Component.prototype.renderReactTemplates = function (callback) {\n if (!isNullOrUndefined(callback)) {\n callback();\n }\n };\n // eslint-disable-next-line\n Component.prototype.clearTemplate = function (templateName, index) {\n //No Code\n };\n Component.prototype.getUniqueID = function (definedName) {\n if (this.isHistoryChanged()) {\n componentCount = 0;\n }\n lastPageID = this.pageID(location.href);\n lastHistoryLen = history.length;\n return definedName + '_' + lastPageID + '_' + componentCount++;\n };\n Component.prototype.pageID = function (url) {\n var hash = 0;\n if (url.length === 0) {\n return hash;\n }\n for (var i = 0; i < url.length; i++) {\n var char = url.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return Math.abs(hash);\n };\n Component.prototype.isHistoryChanged = function () {\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\n };\n Component.prototype.addOnPersist = function (options) {\n var _this = this;\n var persistObj = {};\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var key = options_1[_i];\n var objValue = void 0;\n // eslint-disable-next-line\n objValue = getValue(key, this);\n if (!isUndefined(objValue)) {\n setValue(key, this.getActualProperties(objValue), persistObj);\n }\n }\n return JSON.stringify(persistObj, function (key, value) {\n return _this.getActualProperties(value);\n });\n };\n Component.prototype.getActualProperties = function (obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n };\n Component.prototype.ignoreOnPersist = function (options) {\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\n };\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\n var newObj = {};\n var _loop_1 = function (key) {\n if (ignoreList.indexOf(key) === -1) {\n // eslint-disable-next-line\n var value = obj[key];\n if (typeof value === 'object' && !(value instanceof Array)) {\n var newList = ignoreList.filter(function (str) {\n return new RegExp(key + '.').test(str);\n }).map(function (str) {\n return str.replace(key + '.', '');\n });\n newObj[\"\" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\n }\n else {\n newObj[\"\" + key] = value;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n _loop_1(key);\n }\n return newObj;\n };\n __decorate([\n Property(false)\n ], Component.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"enableRtl\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"locale\", void 0);\n Component = __decorate([\n NotifyPropertyChanges\n ], Component);\n return Component;\n}(Base));\nexport { Component };\n//Function handling for page navigation detection\n/* istanbul ignore next */\n(function () {\n if (typeof window !== 'undefined') {\n window.addEventListener('popstate', \n /* istanbul ignore next */\n function () {\n componentCount = 0;\n });\n }\n})();\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible } from './dom';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { ChildProperty } from './child-property';\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\nvar positionProp = ['offsetLeft', 'offsetTop'];\nvar axisMapper = ['x', 'y'];\nvar axisValueMapper = ['left', 'top'];\nvar isDraggedObject = { isDragged: false };\n/**\n * Specifies the position coordinates\n */\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Position.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Position.prototype, \"top\", void 0);\n return Position;\n}(ChildProperty));\nexport { Position };\n/**\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\n * ```html\n *
Draggable
\n * \n * ```\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.dragLimit = Draggable_1.getDefaultPosition();\n _this.borderWidth = Draggable_1.getDefaultPosition();\n _this.padding = Draggable_1.getDefaultPosition();\n _this.diffX = 0;\n _this.prevLeft = 0;\n _this.prevTop = 0;\n _this.dragProcessStarted = false;\n _this.eleTop = 0;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n _this.tapHoldTimer = 0;\n _this.externalInitialize = false;\n _this.diffY = 0;\n _this.parentScrollX = 0;\n _this.parentScrollY = 0;\n _this.droppables = {};\n _this.bind();\n return _this;\n }\n Draggable_1 = Draggable;\n Draggable.prototype.bind = function () {\n this.toggleEvents();\n if (Browser.isIE) {\n addClass([this.element], 'e-block-touch');\n }\n this.droppables[this.scope] = {};\n };\n Draggable.getDefaultPosition = function () {\n return extend({}, defaultPosition);\n };\n Draggable.prototype.toggleEvents = function (isUnWire) {\n var ele;\n if (!isUndefined(this.handle)) {\n ele = select(this.handle, this.element);\n }\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\n if (isUnWire) {\n EventHandler.remove(ele || this.element, Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.touchStartEvent, handler, this);\n }\n };\n /* istanbul ignore next */\n Draggable.prototype.mobileInitialize = function (evt) {\n var _this = this;\n var target = evt.currentTarget;\n this.tapHoldTimer = setTimeout(function () {\n _this.externalInitialize = true;\n _this.removeTapholdTimer();\n _this.initialize(evt, target);\n }, this.tapHoldThreshold);\n EventHandler.add(document, Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.touchEndEvent, this.removeTapholdTimer);\n };\n /* istanbul ignore next */\n Draggable.prototype.getScrollableParent = function (element, axis) {\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\n if (isNullOrUndefined(element)) {\n return null;\n }\n if (element[scroll[\"\" + axis]] > element[client[\"\" + axis]]) {\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\n if (axis === 'vertical') {\n this.parentScrollY = this.parentScrollY +\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\n this.tempScrollHeight = element.scrollHeight;\n }\n else {\n this.parentScrollX = this.parentScrollX +\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\n this.tempScrollWidth = element.scrollWidth;\n }\n if (!isNullOrUndefined(element)) {\n return this.getScrollableParent(element.parentNode, axis);\n }\n else {\n return element;\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n };\n Draggable.prototype.getScrollableValues = function () {\n this.parentScrollX = 0;\n this.parentScrollY = 0;\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\n };\n Draggable.prototype.initialize = function (evt, curTarget) {\n this.currentStateTarget = evt.target;\n if (this.isDragStarted()) {\n return;\n }\n else {\n this.isDragStarted(true);\n this.externalInitialize = false;\n }\n this.target = (evt.currentTarget || curTarget);\n this.dragProcessStarted = false;\n if (this.abort) {\n /* tslint:disable no-any */\n var abortSelectors = this.abort;\n if (typeof abortSelectors === 'string') {\n abortSelectors = [abortSelectors];\n }\n for (var i = 0; i < abortSelectors.length; i++) {\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {\n /* istanbul ignore next */\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n return;\n }\n }\n }\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\n evt.preventDefault();\n }\n this.element.setAttribute('aria-grabbed', 'true');\n var intCoord = this.getCoordinates(evt);\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\n if (!this.clone) {\n var pos = this.element.getBoundingClientRect();\n this.getScrollableValues();\n if (evt.clientX === evt.pageX) {\n this.parentScrollX = 0;\n }\n if (evt.clientY === evt.pageY) {\n this.parentScrollY = 0;\n }\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\n }\n if (this.externalInitialize) {\n this.intDragStart(evt);\n }\n else {\n EventHandler.add(document, Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.touchEndEvent, this.intDestroy, this);\n }\n this.toggleEvents(true);\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\n document.body.classList.add('e-prevent-select');\n }\n this.externalInitialize = false;\n EventHandler.trigger(document.documentElement, Browser.touchStartEvent, evt);\n };\n Draggable.prototype.intDragStart = function (evt) {\n this.removeTapholdTimer();\n var isChangeTouch = !isUndefined(evt.changedTouches);\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\n return;\n }\n var intCordinate = this.getCoordinates(evt);\n var pos;\n var styleProp = getComputedStyle(this.element);\n this.margin = {\n left: parseInt(styleProp.marginLeft, 10),\n top: parseInt(styleProp.marginTop, 10),\n right: parseInt(styleProp.marginRight, 10),\n bottom: parseInt(styleProp.marginBottom, 10)\n };\n var element = this.element;\n if (this.clone && this.dragTarget) {\n var intClosest = closest(evt.target, this.dragTarget);\n if (!isNullOrUndefined(intClosest)) {\n element = intClosest;\n }\n }\n /* istanbul ignore next */\n if (this.isReplaceDragEle) {\n element = this.currentStateCheck(evt.target, element);\n }\n this.offset = this.calculateParentPosition(element);\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var x = this.initialPosition.x - intCordinate.pageX;\n var y = this.initialPosition.y - intCordinate.pageY;\n var distance = Math.sqrt((x * x) + (y * y));\n if ((distance >= this.distance || this.externalInitialize)) {\n var ele = this.getHelperElement(evt);\n if (!ele || isNullOrUndefined(ele)) {\n return;\n }\n if (isChangeTouch) {\n evt.preventDefault();\n }\n var dragTargetElement = this.helperElement = ele;\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\n if (this.dragStart) {\n var curTarget = this.getProperTargetElement(evt);\n var args = {\n event: evt,\n element: element,\n target: curTarget,\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\n dragElement: dragTargetElement\n };\n this.trigger('dragStart', args);\n }\n if (this.dragArea) {\n this.setDragArea();\n }\n else {\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\n this.borderWidth = { top: 0, left: 0 };\n }\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\n if (this.clone && !this.enableTailMode) {\n this.diffX = this.position.left - this.offset.left;\n this.diffY = this.position.top - this.offset.top;\n }\n this.getScrollableValues();\n // when drag element has margin-top\n var styles = getComputedStyle(element);\n var marginTop = parseFloat(styles.marginTop);\n /* istanbul ignore next */\n if (this.clone && marginTop !== 0) {\n pos.top += marginTop;\n }\n this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0;\n /* istanbul ignore next */\n // if (this.eleTop > 0) {\n // pos.top += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n pos.top -= this.parentScrollY;\n pos.left -= this.parentScrollX;\n }\n var posValue = this.getProcessedPositionValue({\n top: (pos.top - this.diffY) + 'px',\n left: (pos.left - this.diffX) + 'px'\n });\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n pos.top += this.dragArea.scrollTop;\n }\n this.dragElePosition = { top: pos.top, left: pos.left };\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\n if (!isBlazor()) {\n this.bindDragEvents(dragTargetElement);\n }\n }\n };\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\n if (isVisible(dragTargetElement)) {\n EventHandler.add(document, Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.touchEndEvent, this.intDragStop, this);\n this.setGlobalDroppables(false, this.element, dragTargetElement);\n }\n else {\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n }\n };\n Draggable.prototype.elementInViewport = function (el) {\n this.top = el.offsetTop;\n this.left = el.offsetLeft;\n this.width = el.offsetWidth;\n this.height = el.offsetHeight;\n while (el.offsetParent) {\n el = el.offsetParent;\n this.top += el.offsetTop;\n this.left += el.offsetLeft;\n }\n return (this.top >= window.pageYOffset &&\n this.left >= window.pageXOffset &&\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\n };\n Draggable.prototype.getProcessedPositionValue = function (value) {\n if (this.queryPositionInfo) {\n return this.queryPositionInfo(value);\n }\n return value;\n };\n Draggable.prototype.calculateParentPosition = function (ele) {\n if (isNullOrUndefined(ele)) {\n return { left: 0, top: 0 };\n }\n var rect = ele.getBoundingClientRect();\n var style = getComputedStyle(ele);\n return {\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\n };\n };\n // tslint:disable-next-line:max-func-body-length\n Draggable.prototype.intDrag = function (evt) {\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n if (this.clone && evt.changedTouches && Browser.isDevice && Browser.isTouch) {\n evt.preventDefault();\n }\n var left;\n var top;\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var docHeight = this.getDocumentWidthHeight('Height');\n if (docHeight < this.position.top) {\n this.position.top = docHeight;\n }\n var docWidth = this.getDocumentWidthHeight('Width');\n if (docWidth < this.position.left) {\n this.position.left = docWidth;\n }\n if (this.drag) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n /* tslint:disable no-any */\n var flag = true;\n if (this.hoverObject) {\n if (this.hoverObject.instance !== eleObj.instance) {\n this.triggerOutFunction(evt, eleObj);\n }\n else {\n flag = false;\n }\n }\n if (flag) {\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intOver(evt, eleObj.target);\n this.hoverObject = eleObj;\n }\n }\n else if (this.hoverObject) {\n this.triggerOutFunction(evt, eleObj);\n }\n var helperElement = this.droppables[this.scope].helper;\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\n var tLeft = this.parentClientRect.left;\n var tTop = this.parentClientRect.top;\n var intCoord = this.getCoordinates(evt);\n var pagex = intCoord.pageX;\n var pagey = intCoord.pageY;\n var dLeft = this.position.left - this.diffX;\n var dTop = this.position.top - this.diffY;\n var styles = getComputedStyle(helperElement);\n if (this.dragArea) {\n if (this.pageX !== pagex || this.skipDistanceCheck) {\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\n + parseFloat(styles.marginRight));\n if (this.dragLimit.left > dLeft && dLeft > 0) {\n left = this.dragLimit.left;\n }\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\n }\n else {\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\n }\n }\n if (this.pageY !== pagey || this.skipDistanceCheck) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n if (this.dragLimit.top > dTop && dTop > 0) {\n top = this.dragLimit.top;\n }\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\n }\n else {\n top = dTop < 0 ? this.dragLimit.top : dTop;\n }\n }\n }\n else {\n left = dLeft;\n top = dTop;\n }\n var iTop = tTop + this.borderWidth.top;\n var iLeft = tLeft + this.borderWidth.left;\n if (this.dragProcessStarted) {\n if (isNullOrUndefined(top)) {\n top = this.prevTop;\n }\n if (isNullOrUndefined(left)) {\n left = this.prevLeft;\n }\n }\n var draEleTop;\n var draEleLeft;\n if (this.helperElement.classList.contains('e-treeview')) {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);\n draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);\n }\n else {\n draEleTop = top - this.borderWidth.top;\n draEleLeft = left - this.borderWidth.left;\n }\n }\n else {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\n draEleLeft = (left - iLeft) < 0 ? this.dragElePosition.left : (left - iLeft);\n }\n else {\n draEleTop = top - iTop;\n draEleLeft = left - iLeft;\n }\n }\n var marginTop = parseFloat(getComputedStyle(this.element).marginTop);\n // when drag-element has margin-top\n /* istanbul ignore next */\n if (marginTop > 0) {\n if (this.clone) {\n draEleTop += marginTop;\n if (dTop < 0) {\n if ((marginTop + dTop) >= 0) {\n draEleTop = marginTop + dTop;\n }\n else {\n draEleTop -= marginTop;\n }\n }\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\n }\n if ((top - iTop) < 0) {\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\n if ((tempDraEleTop + marginTop + iTop) < 0) {\n draEleTop -= marginTop + iTop;\n }\n else {\n draEleTop = tempDraEleTop;\n }\n }\n else {\n draEleTop -= marginTop + iTop;\n }\n }\n }\n if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;\n }\n /* istanbul ignore next */\n // if(this.eleTop > 0) {\n // draEleTop += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n draEleTop -= this.parentScrollY;\n draEleLeft -= this.parentScrollX;\n }\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n draEleTop += this.dragArea.scrollTop;\n }\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {\n this.helperElement.scrollIntoView();\n }\n var elements = document.querySelectorAll(':hover');\n if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n /* tslint:disable no-any */\n var scrollParent = this.getScrollParent(elements, false);\n if (this.elementInViewport(this.helperElement)) {\n this.getScrollPosition(scrollParent, draEleTop);\n }\n else if (!this.elementInViewport(this.helperElement)) {\n elements = [].slice.call(document.querySelectorAll(':hover'));\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n scrollParent = this.getScrollParent(elements, true);\n this.getScrollPosition(scrollParent, draEleTop);\n }\n }\n this.dragProcessStarted = true;\n this.prevLeft = left;\n this.prevTop = top;\n this.position.left = left;\n this.position.top = top;\n this.pageX = pagex;\n this.pageY = pagey;\n };\n /* tslint:disable no-any */\n Draggable.prototype.getScrollParent = function (node, reverse) {\n /* tslint:disable no-any */\n var nodeEl = reverse ? node.reverse() : node;\n var hasScroll;\n for (var i = nodeEl.length - 1; i >= 0; i--) {\n hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];\n if ((hasScroll === 'auto' || hasScroll === 'scroll')\n && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {\n return nodeEl[parseInt(i.toString(), 10)];\n }\n }\n hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];\n if (hasScroll === 'visible') {\n document.scrollingElement.style.overflow = 'auto';\n return document.scrollingElement;\n }\n };\n Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {\n if (nodeEle && nodeEle === document.scrollingElement) {\n if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop\n && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n else if (nodeEle && nodeEle !== document.scrollingElement) {\n if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n };\n Draggable.prototype.getPathElements = function (evt) {\n var elementTop = evt.clientX > 0 ? evt.clientX : 0;\n var elementLeft = evt.clientY > 0 ? evt.clientY : 0;\n return document.elementsFromPoint(elementTop, elementLeft);\n };\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\n this.hoverObject.instance.intOut(evt, eleObj.target);\n this.hoverObject.instance.dragData[this.scope] = null;\n this.hoverObject = null;\n };\n Draggable.prototype.getDragPosition = function (dragValue) {\n var temp = extend({}, dragValue);\n if (this.axis) {\n if (this.axis === 'x') {\n delete temp.top;\n }\n else if (this.axis === 'y') {\n delete temp.left;\n }\n }\n return temp;\n };\n Draggable.prototype.getDocumentWidthHeight = function (str) {\n var docBody = document.body;\n var docEle = document.documentElement;\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\n return returnValue;\n };\n Draggable.prototype.intDragStop = function (evt) {\n this.dragProcessStarted = false;\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n var type = ['touchend', 'pointerup', 'mouseup'];\n if (type.indexOf(evt.type) !== -1) {\n if (this.dragStop) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\n }\n this.intDestroy(evt);\n }\n else {\n this.element.setAttribute('aria-grabbed', 'false');\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n eleObj.instance.dragStopCalled = true;\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intDrop(evt, eleObj.target);\n }\n this.setGlobalDroppables(true);\n document.body.classList.remove('e-prevent-select');\n };\n /**\n * @private\n */\n Draggable.prototype.intDestroy = function (evt) {\n this.dragProcessStarted = false;\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n this.element.setAttribute('aria-grabbed', 'false');\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDrag);\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n };\n // triggers when property changed\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Draggable.prototype.getModuleName = function () {\n return 'draggable';\n };\n Draggable.prototype.isDragStarted = function (change) {\n if (change) {\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\n }\n return isDraggedObject.isDragged;\n };\n Draggable.prototype.setDragArea = function () {\n var eleWidthBound;\n var eleHeightBound;\n var top = 0;\n var left = 0;\n var ele;\n var type = typeof this.dragArea;\n if (type === 'string') {\n ele = select(this.dragArea);\n }\n else {\n ele = this.dragArea;\n }\n if (ele) {\n var elementArea = ele.getBoundingClientRect();\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\n eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\n var styles = getComputedStyle(ele);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[parseInt(i.toString(), 10)];\n var tborder = styles['border' + key + 'Width'];\n var tpadding = styles['padding' + key];\n var lowerKey = key.toLowerCase();\n this.borderWidth[\"\" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\n this.padding[\"\" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\n }\n if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {\n top = elementArea.top + document.scrollingElement.scrollTop;\n }\n else {\n top = elementArea.top;\n }\n left = elementArea.left;\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\n }\n };\n Draggable.prototype.getProperTargetElement = function (evt) {\n var intCoord = this.getCoordinates(evt);\n var ele;\n var prevStyle = this.helperElement.style.pointerEvents || '';\n var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version) > 12;\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {\n this.helperElement.style.pointerEvents = 'none';\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\n this.helperElement.style.pointerEvents = prevStyle;\n }\n else {\n ele = evt.target;\n }\n return ele;\n };\n /* istanbul ignore next */\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\n var elem;\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\n elem = this.currentStateTarget;\n }\n else {\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\n }\n return elem;\n };\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\n /* tslint:disable no-any */\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\n var intCoord = this.getCoordinates(evt);\n var pageX;\n var pageY;\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\n /* istanbul ignore next */\n if (isdragscroll) {\n pageX = this.clone ? intCoord.pageX :\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY :\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\n }\n else {\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\n }\n if (this.element && this.element.classList.length > 0 && this.element.classList.value.indexOf(\"e-dialog\") === -1 && document.scrollingElement) {\n var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0;\n var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0;\n pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX;\n pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY;\n }\n return {\n left: pageX - (this.margin.left + this.cursorAt.left),\n top: pageY - (this.margin.top + this.cursorAt.top)\n };\n };\n Draggable.prototype.getCoordinates = function (evt) {\n if (evt.type.indexOf('touch') > -1) {\n return evt.changedTouches[0];\n }\n return evt;\n };\n Draggable.prototype.getHelperElement = function (evt) {\n var element;\n if (this.clone) {\n if (this.helper) {\n element = this.helper({ sender: evt, element: this.target });\n }\n else {\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\n document.body.appendChild(element);\n }\n }\n else {\n element = this.element;\n }\n return element;\n };\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\n this.droppables[this.scope] = reset ? null : {\n draggable: drag,\n helper: helper,\n draggedElement: this.element\n };\n };\n Draggable.prototype.checkTargetElement = function (evt) {\n var target = this.getProperTargetElement(evt);\n var dropIns = this.getDropInstance(target);\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\n if (parent_1) {\n dropIns = this.getDropInstance(parent_1);\n }\n }\n return { target: target, instance: dropIns };\n };\n Draggable.prototype.getDropInstance = function (ele) {\n var name = 'getModuleName';\n var drop;\n var eleInst = ele && ele.ej2_instances;\n if (eleInst) {\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\n var inst = eleInst_1[_i];\n if (inst[\"\" + name]() === 'droppable') {\n drop = inst;\n break;\n }\n }\n }\n return drop;\n };\n Draggable.prototype.destroy = function () {\n this.toggleEvents(true);\n _super.prototype.destroy.call(this);\n };\n var Draggable_1;\n __decorate([\n Complex({}, Position)\n ], Draggable.prototype, \"cursorAt\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"clone\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"dragArea\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isDragScroll\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"isPreventSelect\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStop\", void 0);\n __decorate([\n Property(1)\n ], Draggable.prototype, \"distance\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"handle\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"abort\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"helper\", void 0);\n __decorate([\n Property('default')\n ], Draggable.prototype, \"scope\", void 0);\n __decorate([\n Property('')\n ], Draggable.prototype, \"dragTarget\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"axis\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTailMode\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"preventDefault\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTapHold\", void 0);\n __decorate([\n Property(750)\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\n Draggable = Draggable_1 = __decorate([\n NotifyPropertyChanges\n ], Draggable);\n return Draggable;\n}(Base));\nexport { Draggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible, matches } from './dom';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { compareElementParent } from './util';\n/**\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\n * ```html\n *
Droppable
\n * \n * ```\n */\nvar Droppable = /** @class */ (function (_super) {\n __extends(Droppable, _super);\n function Droppable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseOver = false;\n _this.dragData = {};\n _this.dragStopCalled = false;\n _this.bind();\n return _this;\n }\n Droppable.prototype.bind = function () {\n this.wireEvents();\n };\n Droppable.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchEndEvent, this.intDrop, this);\n };\n // triggers when property changed\n // eslint-disable-next-line\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Droppable.prototype.getModuleName = function () {\n return 'droppable';\n };\n Droppable.prototype.intOver = function (event, element) {\n if (!this.mouseOver) {\n var drag = this.dragData[this.scope];\n this.trigger('over', { event: event, target: element, dragData: drag });\n this.mouseOver = true;\n }\n };\n Droppable.prototype.intOut = function (event, element) {\n if (this.mouseOver) {\n this.trigger('out', { evt: event, target: element });\n this.mouseOver = false;\n }\n };\n Droppable.prototype.intDrop = function (evt, element) {\n if (!this.dragStopCalled) {\n return;\n }\n else {\n this.dragStopCalled = false;\n }\n var accept = true;\n var drag = this.dragData[this.scope];\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\n var area;\n if (isDrag) {\n area = this.isDropArea(evt, drag.helper, element);\n if (this.accept) {\n accept = matches(drag.helper, this.accept);\n }\n }\n if (isDrag && this.drop && area.canDrop && accept) {\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\n }\n this.mouseOver = false;\n };\n Droppable.prototype.isDropArea = function (evt, helper, element) {\n var area = { canDrop: true, target: element || evt.target };\n var isTouch = evt.type === 'touchend';\n if (isTouch || area.target === helper) {\n helper.style.display = 'none';\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\n area.canDrop = false;\n area.canDrop = compareElementParent(ele, this.element);\n if (area.canDrop) {\n area.target = ele;\n }\n helper.style.display = '';\n }\n return area;\n };\n Droppable.prototype.destroy = function () {\n EventHandler.remove(this.element, Browser.touchEndEvent, this.intDrop);\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property()\n ], Droppable.prototype, \"accept\", void 0);\n __decorate([\n Property('default')\n ], Droppable.prototype, \"scope\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"over\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"out\", void 0);\n Droppable = __decorate([\n NotifyPropertyChanges\n ], Droppable);\n return Droppable;\n}(Base));\nexport { Droppable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Base } from './base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n *
;\n * \n * ```\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element ?\n * @param {KeyboardEventsModel} options ?\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e ?\n * @returns {void} ?\n */\n _this.keyPressHandler = function (e) {\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n }\n }\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void} ?\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp ?\n * @param {KeyboardEventsModel} oldProp ?\n * @returns {void} ?\n * @private\n */\n // eslint-disable-next-line\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {string} ?\n * @private\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} ?\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","import { extend, isNullOrUndefined } from './util';\nimport { defaultCulture } from './internationalization';\n/**\n * L10n modules provides localized text for different culture.\n * ```typescript\n * import {setCulture} from '@syncfusion/ts-base-library';\n * //load global locale object common for all components.\n * L10n.load({\n * 'fr-BE': {\n * 'button': {\n * 'check': 'vérifié'\n * }\n * }\n * });\n * //set globale default locale culture.\n * setCulture('fr-BE');\n * let instance: L10n = new L10n('button', {\n * check: 'checked'\n * });\n * //Get locale text for current property.\n * instance.getConstant('check');\n * //Change locale culture in a component.\n * instance.setLocale('en-US');\n * ```\n */\nvar L10n = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {string} controlName ?\n * @param {Object} localeStrings ?\n * @param {string} locale ?\n */\n function L10n(controlName, localeStrings, locale) {\n this.controlName = controlName;\n this.localeStrings = localeStrings;\n this.setLocale(locale || defaultCulture);\n }\n /**\n * Sets the locale text\n *\n * @param {string} locale ?\n * @returns {void} ?\n */\n L10n.prototype.setLocale = function (locale) {\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\n this.currentLocale = intLocale || this.localeStrings;\n };\n /**\n * Sets the global locale for all components.\n *\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\n * @returns {void} ?\n */\n L10n.load = function (localeObject) {\n this.locale = extend(this.locale, localeObject, {}, true);\n };\n /**\n * Returns current locale text for the property based on the culture name and control name.\n *\n * @param {string} prop - specifies the property for which localize text to be returned.\n * @returns {string} ?\n */\n L10n.prototype.getConstant = function (prop) {\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\n if (!isNullOrUndefined(this.currentLocale[\"\" + prop])) {\n return this.currentLocale[\"\" + prop];\n }\n else {\n return this.localeStrings[\"\" + prop] || '';\n }\n };\n /**\n * Returns the control constant object for current object and the locale specified.\n *\n * @param {Object} curObject ?\n * @param {string} locale ?\n * @returns {Object} ?\n */\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\n if ((curObject)[\"\" + locale]) {\n return (curObject)[\"\" + locale][this.controlName];\n }\n return null;\n };\n L10n.locale = {};\n return L10n;\n}());\nexport { L10n };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { extend } from './util';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Browser } from './browser';\nimport { Base } from './base';\nimport { ChildProperty } from './child-property';\nimport { EventHandler } from './event-handler';\n/**\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\n */\nvar SwipeSettings = /** @class */ (function (_super) {\n __extends(SwipeSettings, _super);\n function SwipeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(50)\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\n return SwipeSettings;\n}(ChildProperty));\nexport { SwipeSettings };\nvar swipeRegex = /(Up|Down)/;\n/**\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\n * ```typescript\n * let node: HTMLElement;\n * let touchObj: Touch = new Touch({\n * element: node,\n * tap: function (e) {\n * // tap handler function code\n * }\n * tapHold: function (e) {\n * // tap hold handler function code\n * }\n * scroll: function (e) {\n * // scroll handler function code\n * }\n * swipe: function (e) {\n * // swipe handler function code\n * }\n * });\n * ```\n */\nvar Touch = /** @class */ (function (_super) {\n __extends(Touch, _super);\n /* End-Properties */\n function Touch(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.touchAction = true;\n _this.tapCount = 0;\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.startEvent = function (evt) {\n if (_this.touchAction === true) {\n var point = _this.updateChangeTouches(evt);\n if (evt.changedTouches !== undefined) {\n _this.touchAction = false;\n }\n _this.isTouchMoved = false;\n _this.movedDirection = '';\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n _this.startEventData = point;\n _this.hScrollLocked = _this.vScrollLocked = false;\n _this.tStampStart = Date.now();\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.moveEvent = function (evt) {\n var point = _this.updateChangeTouches(evt);\n _this.movedPoint = point;\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\n var eScrollArgs = {};\n if (_this.isTouchMoved) {\n clearTimeout(_this.timeOutTapHold);\n _this.calcScrollPoints(evt);\n var scrollArg = {\n startEvents: _this.startEventData,\n originalEvent: evt, startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\n velocity: _this.getVelocity(point)\n };\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\n _this.trigger('scroll', eScrollArgs);\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.cancelEvent = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n _this.tapCount = 0;\n _this.swipeFn(evt);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.endEvent = function (evt) {\n _this.swipeFn(evt);\n if (!_this.isTouchMoved) {\n if (typeof _this.tap === 'function') {\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\n _this.timeOutTap = setTimeout(function () {\n _this.tapCount = 0;\n }, _this.tapThreshold);\n }\n }\n _this.modeclear();\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.swipeFn = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n var point = _this.updateChangeTouches(evt);\n var diffX = point.clientX - _this.startPoint.clientX;\n var diffY = point.clientY - _this.startPoint.clientY;\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\n _this.isTouchMoved = diffX > 1 || diffY > 1;\n var isFirefox = (/Firefox/).test(Browser.userAgent);\n if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {\n _this.isTouchMoved = false;\n }\n _this.endPoint = point;\n _this.calcPoints(evt);\n var swipeArgs = {\n originalEvent: evt,\n startEvents: _this.startEventData,\n startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY,\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\n velocity: _this.getVelocity(point)\n };\n if (_this.isTouchMoved) {\n var eSwipeArgs = void 0;\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\n // eslint-disable-next-line\n eSwipeArgs = extend(eSwipeArgs, _this.defaultArgs, swipeArgs);\n var canTrigger = false;\n var ele = _this.element;\n var scrollBool = _this.isScrollable(ele);\n var moved = swipeRegex.test(_this.movedDirection);\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\n if (!scrollBool) {\n canTrigger = true;\n }\n else {\n canTrigger = _this.checkSwipe(ele, moved);\n }\n }\n if (canTrigger) {\n _this.trigger('swipe', eSwipeArgs);\n }\n }\n _this.modeclear();\n };\n _this.modeclear = function () {\n _this.modeClear = setTimeout(function () {\n _this.touchAction = true;\n }, (typeof _this.tap !== 'function' ? 0 : 20));\n _this.lastTapTime = new Date().getTime();\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n _this.bind();\n return _this;\n }\n // triggers when property changed\n /**\n *\n * @private\n * @param {TouchModel} newProp ?\n * @param {TouchModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Touch.prototype.bind = function () {\n this.wireEvents();\n if (Browser.isIE) {\n this.element.classList.add('e-block-touch');\n }\n };\n /**\n * To destroy the touch instance.\n *\n * @returns {void}\n */\n Touch.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n // Need to changes the event binding once we updated the event handler.\n Touch.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\n };\n Touch.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\n };\n /**\n * Returns module name as touch\n *\n * @returns {string} ?\n * @private\n */\n Touch.prototype.getModuleName = function () {\n return 'touch';\n };\n /**\n * Returns if the HTML element is Scrollable.\n *\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\n * @returns {boolean} ?\n */\n Touch.prototype.isScrollable = function (element) {\n var eleStyle = getComputedStyle(element);\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\n if ((/(auto|scroll)/).test(style)) {\n return true;\n }\n return false;\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n Touch.prototype.tapHoldEvent = function (evt) {\n this.tapCount = 0;\n this.touchAction = true;\n var eTapArgs;\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\n // eslint-disable-next-line\n eTapArgs = { originalEvent: evt };\n this.trigger('tapHold', eTapArgs);\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\n };\n Touch.prototype.calcPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\n if (this.distanceX > this.distanceY) {\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\n }\n else {\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\n }\n };\n Touch.prototype.calcScrollPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\n this.hScrollLocked = true;\n }\n else {\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\n this.vScrollLocked = true;\n }\n };\n Touch.prototype.getVelocity = function (pnt) {\n var newX = pnt.clientX;\n var newY = pnt.clientY;\n var newT = Date.now();\n var xDist = newX - this.startPoint.clientX;\n var yDist = newY - this.startPoint.clientX;\n var interval = newT - this.tStampStart;\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\n };\n // eslint-disable-next-line\n Touch.prototype.checkSwipe = function (ele, flag) {\n var keys = ['scroll', 'offset'];\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\n return true;\n }\n return (ele[keys[0] + temp[1]] === 0) ||\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\n };\n Touch.prototype.updateChangeTouches = function (evt) {\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\n return point;\n };\n __decorate([\n Event()\n ], Touch.prototype, \"tap\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"tapHold\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"swipe\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"scroll\", void 0);\n __decorate([\n Property(350)\n ], Touch.prototype, \"tapThreshold\", void 0);\n __decorate([\n Property(750)\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Complex({}, SwipeSettings)\n ], Touch.prototype, \"swipeSettings\", void 0);\n Touch = __decorate([\n NotifyPropertyChanges\n ], Touch);\n return Touch;\n}(Base));\nexport { Touch };\n","/**\n * Template Engine\n */\nvar LINES = new RegExp('\\\\n|\\\\r|\\\\s\\\\s+', 'g');\nvar QUOTES = new RegExp(/'|\"/g);\nvar IF_STMT = new RegExp('if ?\\\\(');\nvar ELSEIF_STMT = new RegExp('else if ?\\\\(');\nvar ELSE_STMT = new RegExp('else');\nvar FOR_STMT = new RegExp('for ?\\\\(');\nvar IF_OR_FOR = new RegExp('(/if|/for)');\nvar CALL_FUNCTION = new RegExp('\\\\((.*)\\\\)', '');\nvar NOT_NUMBER = new RegExp('^[0-9]+$', 'g');\nvar WORD = new RegExp('[\\\\w\"\\'.\\\\s+]+', 'g');\nvar DBL_QUOTED_STR = new RegExp('\"(.*?)\"', 'g');\nvar WORDIF = new RegExp('[\\\\w\"\\'@#$.\\\\s-+]+', 'g');\nvar exp = new RegExp('\\\\${([^}]*)}', 'g');\n// let cachedTemplate: Object = {};\nvar ARR_OBJ = /^\\..*/gm;\nvar SINGLE_SLASH = /\\\\/gi;\nvar DOUBLE_SLASH = /\\\\\\\\/gi;\nvar WORDFUNC = new RegExp('[\\\\w\"\\'@#$.\\\\s+]+', 'g');\nvar WINDOWFUNC = /\\window\\./gm;\n/**\n * The function to set regular expression for template expression string.\n *\n * @param {RegExp} value - Value expression.\n * @returns {RegExp} ?\n * @private\n */\nexport function expression(value) {\n if (value) {\n exp = value;\n }\n return exp;\n}\n// /**\n// * To render the template string from the given data.\n// * @param {string} template - String Template.\n// * @param {Object[]|JSON} data - DataSource for the template.\n// * @param {Object} helper? - custom helper object.\n// */\n// export function template(template: string, data: JSON, helper?: Object): string {\n// let hash: string = hashCode(template);\n// let tmpl: Function;\n// if (!cachedTemplate[hash]) {\n// tmpl = cachedTemplate[hash] = compile(template, helper);\n// } else {\n// tmpl = cachedTemplate[hash];\n// }\n// return tmpl(data);\n// }\n/**\n * Compile the template string into template function.\n *\n * @param {string} template - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n * @private\n */\nexport function compile(template, helper, ignorePrefix) {\n var argName = 'data';\n var evalExpResult = evalExp(template, argName, helper, ignorePrefix);\n // eslint-disable-next-line\n var condtion = \"var valueRegEx = (/value=\\\\'([A-Za-z0-9 _]*)((.)([\\\\w)(!-;?-\\u25A0\\\\s]+)['])/g);\\n var hrefRegex = (/(?:href)([\\\\s='\\\"./]+)([\\\\w-./?=&\\\\\\\\#\\\"]+)((.)([\\\\w)(!-;/?-\\u25A0\\\\s]+)['])/g);\\n if(str.match(valueRegEx)){\\n var check = str.match(valueRegEx);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n str = str.replace(str, str1);\\n }\\n else if (str.match(/(?:href='')/) === null) {\\n if(str.match(hrefRegex)) {\\n var check = str.match(hrefRegex);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\\n if (check1) {\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n }\\n str = str.replace(str, str1);\\n }\\n }\\n \";\n var fnCode = 'var str=\\\"' + evalExpResult + '\\\";' + condtion + ' return str;';\n var fn = new Function(argName, fnCode);\n return fn.bind(helper);\n}\n/** function used to evaluate the function expression\n *\n * @param {string} str ?\n * @param {string} nameSpace ?\n * @param {Object} helper ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction evalExp(str, nameSpace, helper, ignorePrefix) {\n var varCOunt = 0;\n /**\n * Variable containing Local Keys\n */\n var localKeys = [];\n var isClass = str.match(/class=\"([^\"]+|)\\s{2}/g);\n var singleSpace = '';\n if (isClass) {\n isClass.forEach(function (value) {\n singleSpace = value.replace(/\\s\\s+/g, ' ');\n str = str.replace(value, singleSpace);\n });\n }\n return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\\'$1\\'').replace(exp, \n // eslint-disable-next-line\n function (match, cnt, offset, matchStr) {\n var SPECIAL_CHAR = /@|#|\\$/gm;\n var matches = cnt.match(CALL_FUNCTION);\n // matches to detect any function calls\n if (matches) {\n var rlStr = matches[1];\n if (ELSEIF_STMT.test(cnt)) {\n //handling else-if condition\n cnt = '\";} ' + cnt.replace(matches[1], rlStr.replace(WORD, function (str) {\n str = str.trim();\n return addNameSpace(str, !(QUOTES.test(str)) && (localKeys.indexOf(str) === -1), nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (IF_STMT.test(cnt)) {\n //handling if condition\n cnt = '\"; ' + cnt.replace(matches[1], rlStr.replace(WORDIF, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (FOR_STMT.test(cnt)) {\n //handling for condition\n var rlStr_1 = matches[1].split(' of ');\n // replace for each into actual JavaScript\n // eslint-disable-next-line\n cnt = '\"; ' + cnt.replace(matches[1], function (mtc) {\n localKeys.push(rlStr_1[0]);\n localKeys.push(rlStr_1[0] + 'Index');\n varCOunt = varCOunt + 1;\n // tslint:disable-next-line\n return 'var i' + varCOunt + '=0; i' + varCOunt + ' < ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix) + '.length; i' + varCOunt + '++';\n }) + '{ \\n ' + rlStr_1[0] + '= ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix)\n + '[i' + varCOunt + ']; \\n var ' + rlStr_1[0] + 'Index=i' + varCOunt + '; \\n str = str + \"';\n }\n else {\n //helper function handling\n var fnStr = cnt.split('(');\n // eslint-disable-next-line\n var fNameSpace = (helper && helper.hasOwnProperty(fnStr[0]) ? 'this.' : 'global');\n fNameSpace = (/\\./.test(fnStr[0]) ? '' : fNameSpace);\n var ftArray = matches[1].split(',');\n if (matches[1].length !== 0 && !(/data/).test(ftArray[0]) && !(/window./).test(ftArray[0])) {\n matches[1] = (fNameSpace === 'global' ? nameSpace + '.' + matches[1] : matches[1]);\n }\n var splRegexp = /@|\\$|#/gm;\n var arrObj = /\\]\\./gm;\n if (WINDOWFUNC.test(cnt) && arrObj.test(cnt) || splRegexp.test(cnt)) {\n var splArrRegexp = /@|\\$|#|\\]\\./gm;\n if (splArrRegexp.test(cnt)) {\n // tslint:disable-next-line\n cnt = '\"+ ' + (fNameSpace === 'global' ? '' : fNameSpace) + cnt.replace(matches[1], rlStr.replace(WORDFUNC, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '+ \"';\n }\n }\n else {\n cnt = '\" + ' + (fNameSpace === 'global' ? '' : fNameSpace) +\n cnt.replace(rlStr, addNameSpace(matches[1].replace(/,( |)data.|,/gi, ',' + nameSpace + '.').replace(/,( |)data.window/gi, ',window'), (fNameSpace === 'global' ? false : true), nameSpace, localKeys, ignorePrefix)) +\n '+\"';\n }\n }\n }\n else if (ELSE_STMT.test(cnt)) {\n // handling else condition\n cnt = '\"; ' + cnt.replace(ELSE_STMT, '} else { \\n str = str + \"');\n // eslint-disable-next-line\n }\n else if (!!cnt.match(IF_OR_FOR)) {\n // close condition\n cnt = cnt.replace(IF_OR_FOR, '\"; \\n } \\n str = str + \"');\n }\n else if (SPECIAL_CHAR.test(cnt)) {\n // template string with double slash with special character\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n }\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // template string with double slash\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // evaluate normal expression\n cnt = cnt !== '' ? '\"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+\"' : ' ';\n }\n }\n return cnt;\n });\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix) ? nameSpace + '.' + str : str);\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceArrObj(str, addNS, nameSpace, ignoreList) {\n var arrObjReg = /^\\..*/gm;\n return ((addNS && !(NOT_NUMBER.test(str)) &&\n ignoreList.indexOf(str.split('.')[0]) === -1 && !(arrObjReg.test(str))) ? nameSpace + '.' + str : str);\n}\n// // Create hashCode for template string to storeCached function\n// function hashCode(str: string): string {\n// return str.split('').reduce((a: number, b: string) => { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\n// }\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\n}\n// eslint-disable-next-line\nfunction SlashReplace(tempStr) {\n var double = '\\\\\\\\';\n if (tempStr.match(DOUBLE_SLASH)) {\n // eslint-disable-next-line\n tempStr = tempStr;\n }\n else {\n tempStr = tempStr.replace(SINGLE_SLASH, double);\n }\n return tempStr;\n}\n/**\n *\n * @param {string} str ?\n * @param {string} nameSpaceNew ?\n * @param {string[]} keys ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\n str = str.trim();\n var windowFunc = /\\window\\./gm;\n if (!windowFunc.test(str)) {\n var quotes = /'|\"/gm;\n var splRegexp = /@|\\$|#/gm;\n if (splRegexp.test(str)) {\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\n }\n if (ARR_OBJ.test(str)) {\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\n }\n else {\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\n }\n }\n else {\n return str;\n }\n}\n","/**\n * Template Engine Bridge\n */\nimport { compile as render } from './template';\nimport { createElement } from './dom';\nimport { isNullOrUndefined, isBlazor } from './util';\nvar HAS_ROW = /^[\\n\\r.]+ 0) {\n elements.forEach(function (element) {\n detach(element);\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeJsEvents = function () {\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\n if (elements.length > 0) {\n elements.forEach(function (element) {\n jsEvents.forEach(function (attr) {\n if (element.hasAttribute(attr)) {\n element.removeAttribute(attr);\n }\n });\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeXssAttrs = function () {\n var _this = this;\n // eslint-disable-next-line\n this.removeAttrs.forEach(function (item, index) {\n var elements = _this.wrapElement.querySelectorAll(item.selector);\n if (elements.length > 0) {\n elements.forEach(function (element) {\n element.removeAttribute(item.attribute);\n });\n }\n });\n };\n return SanitizeHtmlHelper;\n}());\nexport { SanitizeHtmlHelper };\n","import { detach, getUniqueID, rippleEffect, setValue, attributes } from '@syncfusion/ej2-base';\nimport { getValue, addClass, deleteObject } from '@syncfusion/ej2-base';\n/**\n * Initialize wrapper element for angular.\n *\n * @private\n *\n * @param {CreateElementArgs} createElement - Specifies created element args\n * @param {string} tag - Specifies tag name\n * @param {string} type - Specifies type name\n * @param {HTMLInputElement} element - Specifies input element\n * @param {string} WRAPPER - Specifies wrapper element\n * @param {string} role - Specifies role\n * @returns {HTMLInputElement} - Input Element\n */\nexport function wrapperInitialize(createElement, tag, type, element, WRAPPER, role) {\n var input = element;\n if (element.tagName === tag) {\n var ejInstance = getValue('ej2_instances', element);\n input = createElement('input', { attrs: { 'type': type } });\n var props = ['change', 'cssClass', 'label', 'labelPosition', 'id'];\n for (var index = 0, len = element.attributes.length; index < len; index++) {\n if (props.indexOf(element.attributes[index].nodeName) === -1) {\n input.setAttribute(element.attributes[index].nodeName, element.attributes[index].nodeValue);\n }\n }\n attributes(element, { 'class': WRAPPER });\n element.appendChild(input);\n setValue('ej2_instances', ejInstance, input);\n deleteObject(element, 'ej2_instances');\n }\n return input;\n}\n/**\n * Get the text node.\n *\n * @param {HTMLElement} element - Specifies html element\n * @private\n * @returns {Node} - Text node.\n */\nexport function getTextNode(element) {\n var node;\n var childnode = element.childNodes;\n for (var i = 0; i < childnode.length; i++) {\n node = childnode[i];\n if (node.nodeType === 3) {\n return node;\n }\n }\n return null;\n}\n/**\n * Destroy the button components.\n *\n * @private\n * @param {Switch | CheckBox} ejInst - Specifies eJ2 Instance\n * @param {Element} wrapper - Specifies wrapper element\n * @param {string} tagName - Specifies tag name\n * @returns {void}\n */\nexport function destroy(ejInst, wrapper, tagName) {\n if (tagName === 'INPUT') {\n wrapper.parentNode.insertBefore(ejInst.element, wrapper);\n detach(wrapper);\n ejInst.element.checked = false;\n ['name', 'value', 'disabled'].forEach(function (key) {\n ejInst.element.removeAttribute(key);\n });\n }\n else {\n ['role', 'aria-checked', 'class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n}\n/**\n * Initialize control pre rendering.\n *\n * @private\n * @param {Switch | CheckBox} proxy - Specifies proxy\n * @param {string} control - Specifies control\n * @param {string} wrapper - Specifies wrapper element\n * @param {HTMLInputElement} element - Specifies input element\n * @param {string} moduleName - Specifies module name\n * @returns {void}\n */\nexport function preRender(proxy, control, wrapper, element, moduleName) {\n element = wrapperInitialize(proxy.createElement, control, 'checkbox', element, wrapper, moduleName);\n proxy.element = element;\n if (proxy.element.getAttribute('type') !== 'checkbox') {\n proxy.element.setAttribute('type', 'checkbox');\n }\n if (!proxy.element.id) {\n proxy.element.id = getUniqueID('e-' + moduleName);\n }\n}\n/**\n * Creates CheckBox component UI with theming and ripple support.\n *\n * @private\n * @param {CreateElementArgs} createElement - Specifies Created Element args\n * @param {boolean} enableRipple - Specifies ripple effect\n * @param {CheckBoxUtilModel} options - Specifies Checkbox util Model\n * @returns {Element} - Checkbox Element\n */\nexport function createCheckBox(createElement, enableRipple, options) {\n if (enableRipple === void 0) { enableRipple = false; }\n if (options === void 0) { options = {}; }\n var wrapper = createElement('div', { className: 'e-checkbox-wrapper e-css' });\n if (options.cssClass) {\n addClass([wrapper], options.cssClass.split(' '));\n }\n if (options.enableRtl) {\n wrapper.classList.add('e-rtl');\n }\n if (enableRipple) {\n var rippleSpan = createElement('span', { className: 'e-ripple-container' });\n rippleEffect(rippleSpan, { isCenterRipple: true, duration: 400 });\n wrapper.appendChild(rippleSpan);\n }\n var frameSpan = createElement('span', { className: 'e-frame e-icons' });\n if (options.checked) {\n frameSpan.classList.add('e-check');\n }\n wrapper.appendChild(frameSpan);\n if (options.label) {\n var labelSpan = createElement('span', { className: 'e-label' });\n if (options.disableHtmlEncode) {\n labelSpan.textContent = options.label;\n }\n else {\n labelSpan.innerHTML = options.label;\n }\n wrapper.appendChild(labelSpan);\n }\n return wrapper;\n}\n/**\n * Handles ripple mouse.\n *\n * @private\n * @param {MouseEvent} e - Specifies mouse event\n * @param {Element} rippleSpan - Specifies Ripple span element\n * @returns {void}\n */\nexport function rippleMouseHandler(e, rippleSpan) {\n if (rippleSpan) {\n var event_1 = document.createEvent('MouseEvents');\n event_1.initEvent(e.type, false, true);\n rippleSpan.dispatchEvent(event_1);\n }\n}\n/**\n * Append hidden input to given element\n *\n * @private\n * @param {Switch | CheckBox} proxy - Specifies Proxy\n * @param {Element} wrap - Specifies Wrapper ELement\n * @returns {void}\n */\nexport function setHiddenInput(proxy, wrap) {\n if (proxy.element.getAttribute('ejs-for')) {\n wrap.appendChild(proxy.createElement('input', {\n attrs: { 'name': proxy.name || proxy.element.name, 'value': 'false', 'type': 'hidden' }\n }));\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Component, isBlazor, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, Event, detach, removeClass } from '@syncfusion/ej2-base';\nimport { rippleEffect, EventHandler, Observer, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getTextNode } from '../common/common';\n/**\n * Defines the icon position of button.\n */\nexport var IconPosition;\n(function (IconPosition) {\n /**\n * Positions the Icon at the left of the text content in the Button.\n */\n IconPosition[\"Left\"] = \"Left\";\n /**\n * Positions the Icon at the right of the text content in the Button.\n */\n IconPosition[\"Right\"] = \"Right\";\n /**\n * Positions the Icon at the top of the text content in the Button.\n */\n IconPosition[\"Top\"] = \"Top\";\n /**\n * Positions the Icon at the bottom of the text content in the Button.\n */\n IconPosition[\"Bottom\"] = \"Bottom\";\n})(IconPosition || (IconPosition = {}));\nexport var buttonObserver = new Observer();\nvar cssClassName = {\n RTL: 'e-rtl',\n BUTTON: 'e-btn',\n PRIMARY: 'e-primary',\n ICONBTN: 'e-icon-btn'\n};\n/**\n * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {ButtonModel} options - Specifies the button model\n * @param {string|HTMLButtonElement} element - Specifies the target element\n */\n function Button(options, element) {\n return _super.call(this, options, element) || this;\n }\n Button.prototype.preRender = function () {\n // pre render code snippets\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Button.prototype.render = function () {\n this.initialize();\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + cssClassName.BUTTON });\n this.renderComplete();\n };\n Button.prototype.initialize = function () {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n if (!isBlazor() || (isBlazor() && this.getModuleName() !== 'progress-btn')) {\n if (this.content) {\n var tempContent = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\n this.element.innerHTML = tempContent;\n }\n this.setIconCss();\n }\n if (this.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n if (this.disabled) {\n this.controlStatus(this.disabled);\n }\n else {\n this.wireEvents();\n }\n };\n Button.prototype.controlStatus = function (disabled) {\n this.element.disabled = disabled;\n };\n Button.prototype.setIconCss = function () {\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add(cssClassName.ICONBTN);\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = this.element.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n this.element.insertBefore(span, node);\n }\n else {\n this.element.appendChild(span);\n }\n }\n };\n Button.prototype.wireEvents = function () {\n if (this.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n };\n Button.prototype.unWireEvents = function () {\n if (this.isToggle) {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n }\n };\n Button.prototype.btnClickHandler = function () {\n if (this.element.classList.contains('e-active')) {\n this.element.classList.remove('e-active');\n }\n else {\n this.element.classList.add('e-active');\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n Button.prototype.destroy = function () {\n var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger',\n 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',\n 'e-top-icon-btn', 'e-bottom-icon-btn'];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n _super.prototype.destroy.call(this);\n removeClass([this.element], classList);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n if (this.content) {\n this.element.innerHTML = this.element.innerHTML.replace(this.content, '');\n }\n var span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.unWireEvents();\n if (isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module name\n * @private\n */\n Button.prototype.getModuleName = function () {\n return 'btn';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist Data\n * @private\n */\n Button.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @private\n * @returns {void}\n */\n Button.Inject = function () {\n // Inject code snippets\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ButtonModel} newProp - Specifies new properties\n * @param {ButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Button.prototype.onPropertyChanged = function (newProp, oldProp) {\n var span = this.element.querySelector('span.e-btn-icon');\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'isPrimary':\n if (newProp.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n else {\n this.element.classList.remove(cssClassName.PRIMARY);\n }\n break;\n case 'disabled':\n this.controlStatus(newProp.disabled);\n break;\n case 'iconCss': {\n if (span) {\n if (newProp.iconCss) {\n span.className = 'e-btn-icon ' + newProp.iconCss;\n if (this.element.textContent.trim()) {\n if (this.iconPosition === 'Left') {\n span.classList.add('e-icon-left');\n }\n else {\n span.classList.add('e-icon-right');\n }\n }\n }\n else {\n detach(span);\n }\n }\n else {\n this.setIconCss();\n }\n break;\n }\n case 'iconPosition':\n removeClass([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']);\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.setIconCss();\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n else {\n this.element.classList.remove(cssClassName.RTL);\n }\n break;\n case 'content': {\n var node = getTextNode(this.element);\n if (!node) {\n this.element.classList.remove(cssClassName.ICONBTN);\n }\n if (!isBlazor() || (isBlazor() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) {\n if (this.enableHtmlSanitizer) {\n newProp.content = SanitizeHtmlHelper.sanitize(newProp.content);\n }\n this.element.innerHTML = newProp.content;\n this.setIconCss();\n }\n break;\n }\n case 'isToggle':\n if (newProp.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n else {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n removeClass([this.element], ['e-active']);\n }\n break;\n }\n }\n };\n /**\n * Click the button element\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to Button\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('Left')\n ], Button.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isToggle\", void 0);\n __decorate([\n Property()\n ], Button.prototype, \"locale\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Button.prototype, \"created\", void 0);\n Button = __decorate([\n NotifyPropertyChanges\n ], Button);\n return Button;\n}(Component));\nexport { Button };\n","/**\n * Position library\n */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar elementRect;\nvar popupRect;\nvar element;\nvar parentDocument;\nvar fixedParent = false;\n/**\n *\n * @param {HTMLElement} anchor - specifies the element\n * @param {HTMLElement} element - specifies the element\n * @returns {OffsetPosition} - returns the value\n */\nexport function calculateRelativeBasedPosition(anchor, element) {\n var fixedElement = false;\n var anchorPos = { left: 0, top: 0 };\n var tempAnchor = anchor;\n if (!anchor || !element) {\n return anchorPos;\n }\n if (isNullOrUndefined(element.offsetParent) && element.style.position === 'fixed') {\n fixedElement = true;\n }\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left += anchor.offsetLeft;\n anchorPos.top += anchor.offsetTop;\n anchor = anchor.offsetParent;\n }\n anchor = tempAnchor;\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left -= anchor.scrollLeft;\n anchorPos.top -= anchor.scrollTop;\n anchor = anchor.parentElement;\n }\n return anchorPos;\n}\n/**\n *\n * @param {Element} currentElement - specifies the element\n * @param {string} positionX - specifies the position\n * @param {string} positionY - specifies the position\n * @param {boolean} parentElement - specifies the boolean\n * @param {ClientRect} targetValues - specifies the client\n * @returns {OffsetPosition} - returns the position\n */\nexport function calculatePosition(currentElement, positionX, positionY, parentElement, targetValues) {\n popupRect = undefined;\n popupRect = targetValues;\n fixedParent = parentElement ? true : false;\n if (!currentElement) {\n return { left: 0, top: 0 };\n }\n if (!positionX) {\n positionX = 'left';\n }\n if (!positionY) {\n positionY = 'top';\n }\n parentDocument = currentElement.ownerDocument;\n element = currentElement;\n var pos = { left: 0, top: 0 };\n return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos);\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosx(value, pos) {\n pos.left = value;\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosy(value, pos) {\n pos.top = value;\n}\n/**\n *\n * @param {string} posX - specifies the position\n * @param {string} posY - specifies the position\n * @param {OffsetPosition} pos - specifies the position\n * @returns {OffsetPosition} - returns the postion\n */\nfunction updatePosition(posX, posY, pos) {\n elementRect = element.getBoundingClientRect();\n switch (posY + posX) {\n case 'topcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'topright':\n setPosx(getElementRight(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'centercenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerright':\n setPosx(getElementRight(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'bottomcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomright':\n setPosx(getElementRight(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementBottom(), pos);\n break;\n default:\n case 'topleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementTop(), pos);\n break;\n }\n element = null;\n return pos;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollTop() {\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollLeft() {\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementBottom() {\n return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementVCenter() {\n return getElementTop() + (elementRect.height / 2);\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementTop() {\n return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementLeft() {\n return elementRect.left + getBodyScrollLeft();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementRight() {\n var popupWidth = (element && element.classList.contains('e-date-range-wrapper')) ? (popupRect ? popupRect.width : 0) :\n (popupRect && (elementRect.width >= popupRect.width) ? popupRect.width : 0);\n return elementRect.right + getBodyScrollLeft() - popupWidth;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementHCenter() {\n return getElementLeft() + (elementRect.width / 2);\n}\n","/**\n * Collision module.\n */\nimport { calculatePosition } from './position';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar parentDocument;\nvar targetContainer;\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {HTMLElement} viewPortElement - specifies the element\n * @param {CollisionCoordinates} axis - specifies the collision coordinates\n * @param {OffsetPosition} position - specifies the position\n * @returns {void}\n */\nexport function fit(element, viewPortElement, axis, position) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n if (axis === void 0) { axis = { X: false, Y: false }; }\n if (!axis.Y && !axis.X) {\n return { left: 0, top: 0 };\n }\n var elemData = element.getBoundingClientRect();\n targetContainer = viewPortElement;\n parentDocument = element.ownerDocument;\n if (!position) {\n position = calculatePosition(element, 'left', 'top');\n }\n if (axis.X) {\n var containerWidth = targetContainer ? getTargetContainerWidth() : getViewPortWidth();\n var containerLeft = ContainerLeft();\n var containerRight = ContainerRight();\n var overLeft = containerLeft - position.left;\n var overRight = position.left + elemData.width - containerRight;\n if (elemData.width > containerWidth) {\n if (overLeft > 0 && overRight <= 0) {\n position.left = containerRight - elemData.width;\n }\n else if (overRight > 0 && overLeft <= 0) {\n position.left = containerLeft;\n }\n else {\n position.left = overLeft > overRight ? (containerRight - elemData.width) : containerLeft;\n }\n }\n else if (overLeft > 0) {\n position.left += overLeft;\n }\n else if (overRight > 0) {\n position.left -= overRight;\n }\n }\n if (axis.Y) {\n var containerHeight = targetContainer ? getTargetContainerHeight() : getViewPortHeight();\n var containerTop = ContainerTop();\n var containerBottom = ContainerBottom();\n var overTop = containerTop - position.top;\n var overBottom = position.top + elemData.height - containerBottom;\n if (elemData.height > containerHeight) {\n if (overTop > 0 && overBottom <= 0) {\n position.top = containerBottom - elemData.height;\n }\n else if (overBottom > 0 && overTop <= 0) {\n position.top = containerTop;\n }\n else {\n position.top = overTop > overBottom ? (containerBottom - elemData.height) : containerTop;\n }\n }\n else if (overTop > 0) {\n position.top += overTop;\n }\n else if (overBottom > 0) {\n position.top -= overBottom;\n }\n }\n return position;\n}\n/**\n *\n * @param {HTMLElement} element - specifies the html element\n * @param {HTMLElement} viewPortElement - specifies the html element\n * @param {number} x - specifies the number\n * @param {number} y - specifies the number\n * @returns {string[]} - returns the string value\n */\nexport function isCollide(element, viewPortElement, x, y) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n var elemOffset = calculatePosition(element, 'left', 'top');\n if (x) {\n elemOffset.left = x;\n }\n if (y) {\n elemOffset.top = y;\n }\n var data = [];\n targetContainer = viewPortElement;\n parentDocument = element.ownerDocument;\n var elementRect = element.getBoundingClientRect();\n var top = elemOffset.top;\n var left = elemOffset.left;\n var right = elemOffset.left + elementRect.width;\n var bottom = elemOffset.top + elementRect.height;\n // eslint-disable-next-line\n var topData = '', leftData = '';\n var yAxis = topCollideCheck(top, bottom);\n var xAxis = leftCollideCheck(left, right);\n if (yAxis.topSide) {\n data.push('top');\n }\n if (xAxis.rightSide) {\n data.push('right');\n }\n if (xAxis.leftSide) {\n data.push('left');\n }\n if (yAxis.bottomSide) {\n data.push('bottom');\n }\n return data;\n}\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {HTMLElement} target - specifies the element\n * @param {number} offsetX - specifies the number\n * @param {number} offsetY - specifies the number\n * @param {string} positionX - specifies the string value\n * @param {string} positionY - specifies the string value\n * @param {HTMLElement} viewPortElement - specifies the element\n * @param {CollisionCoordinates} axis - specifies the collision axis\n * @param {boolean} fixedParent - specifies the boolean\n * @returns {void}\n */\nexport function flip(element, target, offsetX, offsetY, positionX, positionY, viewPortElement, \n/* eslint-disable */\naxis, fixedParent) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n if (axis === void 0) { axis = { X: true, Y: true }; }\n if (!target || !element || !positionX || !positionY || (!axis.X && !axis.Y)) {\n return;\n }\n var tEdge = { TL: null,\n TR: null,\n BL: null,\n BR: null\n }, eEdge = {\n TL: null,\n TR: null,\n BL: null,\n BR: null\n /* eslint-enable */\n };\n var elementRect;\n if (window.getComputedStyle(element).display === 'none') {\n var oldVisibility = element.style.visibility;\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n elementRect = element.getBoundingClientRect();\n element.style.removeProperty('display');\n element.style.visibility = oldVisibility;\n }\n else {\n elementRect = element.getBoundingClientRect();\n }\n var pos = {\n posX: positionX, posY: positionY, offsetX: offsetX, offsetY: offsetY, position: { left: 0, top: 0 }\n };\n targetContainer = viewPortElement;\n parentDocument = target.ownerDocument;\n updateElementData(target, tEdge, pos, fixedParent, elementRect);\n setPosition(eEdge, pos, elementRect);\n if (axis.X) {\n leftFlip(target, eEdge, tEdge, pos, elementRect, true);\n }\n if (axis.Y && tEdge.TL.top > -1) {\n topFlip(target, eEdge, tEdge, pos, elementRect, true);\n }\n setPopup(element, pos, elementRect);\n}\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client rect\n * @returns {void}\n */\nfunction setPopup(element, pos, elementRect) {\n //eslint-disable-next-line\n var left = 0, top = 0;\n if (element.offsetParent != null\n && (getComputedStyle(element.offsetParent).position === 'absolute' ||\n getComputedStyle(element.offsetParent).position === 'relative')) {\n var data = calculatePosition(element.offsetParent, 'left', 'top', false, elementRect);\n left = data.left;\n top = data.top;\n }\n element.style.top = (pos.position.top + pos.offsetY - (top)) + 'px';\n element.style.left = (pos.position.left + pos.offsetX - (left)) + 'px';\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifies the offset\n * @param {PositionLocation} pos - specifies theloaction\n * @param {boolean} fixedParent - specifies the boolean\n * @param {ClientRect} elementRect - specifies the client rect\n * @returns {void}\n */\nfunction updateElementData(target, edge, pos, fixedParent, elementRect) {\n pos.position = calculatePosition(target, pos.posX, pos.posY, fixedParent, elementRect);\n edge.TL = calculatePosition(target, 'left', 'top', fixedParent, elementRect);\n edge.TR = calculatePosition(target, 'right', 'top', fixedParent, elementRect);\n edge.BR = calculatePosition(target, 'left', 'bottom', fixedParent, elementRect);\n edge.BL = calculatePosition(target, 'right', 'bottom', fixedParent, elementRect);\n}\n/**\n *\n * @param {EdgeOffset} eStatus - specifies the status\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client\n * @returns {void}\n */\nfunction setPosition(eStatus, pos, elementRect) {\n eStatus.TL = { top: pos.position.top + pos.offsetY, left: pos.position.left + pos.offsetX };\n eStatus.TR = { top: eStatus.TL.top, left: eStatus.TL.left + elementRect.width };\n eStatus.BL = { top: eStatus.TL.top + elementRect.height,\n left: eStatus.TL.left };\n eStatus.BR = { top: eStatus.TL.top + elementRect.height,\n left: eStatus.TL.left + elementRect.width };\n}\n/**\n *\n * @param {number} left - specifies the number\n * @param {number} right - specifies the number\n * @returns {LeftCorners} - returns the value\n */\nfunction leftCollideCheck(left, right) {\n //eslint-disable-next-line\n var leftSide = false, rightSide = false;\n if (((left - getBodyScrollLeft()) < ContainerLeft())) {\n leftSide = true;\n }\n if (right > ContainerRight()) {\n rightSide = true;\n }\n return { leftSide: leftSide, rightSide: rightSide };\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifes the element\n * @param {EdgeOffset} tEdge - specifies the edge offset\n * @param {PositionLocation} pos - specifes the location\n * @param {ClientRect} elementRect - specifies the client\n * @param {boolean} deepCheck - specifies the boolean value\n * @returns {void}\n */\nfunction leftFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\n var collideSide = leftCollideCheck(edge.TL.left, edge.TR.left);\n if ((tEdge.TL.left - getBodyScrollLeft()) <= ContainerLeft()) {\n collideSide.leftSide = false;\n }\n if (tEdge.TR.left > ContainerRight()) {\n collideSide.rightSide = false;\n }\n if ((collideSide.leftSide && !collideSide.rightSide) || (!collideSide.leftSide && collideSide.rightSide)) {\n if (pos.posX === 'right') {\n pos.posX = 'left';\n }\n else {\n pos.posX = 'right';\n }\n pos.offsetX = pos.offsetX + elementRect.width;\n pos.offsetX = -1 * pos.offsetX;\n pos.position = calculatePosition(target, pos.posX, pos.posY, false);\n setPosition(edge, pos, elementRect);\n if (deepCheck) {\n leftFlip(target, edge, tEdge, pos, elementRect, false);\n }\n }\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifies the offset\n * @param {EdgeOffset} tEdge - specifies the offset\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client rect\n * @param {boolean} deepCheck - specifies the boolean\n * @returns {void}\n */\nfunction topFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\n var collideSide = topCollideCheck(edge.TL.top, edge.BL.top);\n if ((tEdge.TL.top - getBodyScrollTop()) <= ContainerTop()) {\n collideSide.topSide = false;\n }\n if (tEdge.BL.top >= ContainerBottom() && target.getBoundingClientRect().bottom < window.innerHeight) {\n collideSide.bottomSide = false;\n }\n if ((collideSide.topSide && !collideSide.bottomSide) || (!collideSide.topSide && collideSide.bottomSide)) {\n if (pos.posY === 'top') {\n pos.posY = 'bottom';\n }\n else {\n pos.posY = 'top';\n }\n pos.offsetY = pos.offsetY + elementRect.height;\n pos.offsetY = -1 * pos.offsetY;\n pos.position = calculatePosition(target, pos.posX, pos.posY, false, elementRect);\n setPosition(edge, pos, elementRect);\n if (deepCheck) {\n topFlip(target, edge, tEdge, pos, elementRect, false);\n }\n }\n}\n/**\n *\n * @param {number} top - specifies the number\n * @param {number} bottom - specifies the number\n * @returns {TopCorners} - retyrns the value\n */\nfunction topCollideCheck(top, bottom) {\n //eslint-disable-next-line\n var topSide = false, bottomSide = false;\n if ((top - getBodyScrollTop()) < ContainerTop()) {\n topSide = true;\n }\n if (bottom > ContainerBottom()) {\n bottomSide = true;\n }\n return { topSide: topSide, bottomSide: bottomSide };\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerWidth() {\n return targetContainer.getBoundingClientRect().width;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerHeight() {\n return targetContainer.getBoundingClientRect().height;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerLeft() {\n return targetContainer.getBoundingClientRect().left;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerTop() {\n return targetContainer.getBoundingClientRect().top;\n}\n//eslint-disable-next-line\nfunction ContainerTop() {\n if (targetContainer) {\n return getTargetContainerTop();\n }\n return 0;\n}\n//eslint-disable-next-line\nfunction ContainerLeft() {\n if (targetContainer) {\n return getTargetContainerLeft();\n }\n return 0;\n}\n//eslint-disable-next-line\nfunction ContainerRight() {\n if (targetContainer) {\n return (getBodyScrollLeft() + getTargetContainerLeft() + getTargetContainerWidth());\n }\n return (getBodyScrollLeft() + getViewPortWidth());\n}\n//eslint-disable-next-line\nfunction ContainerBottom() {\n if (targetContainer) {\n return (getBodyScrollTop() + getTargetContainerTop() + getTargetContainerHeight());\n }\n return (getBodyScrollTop() + getViewPortHeight());\n}\n/**\n * @returns {void}\n */\nfunction getBodyScrollTop() {\n // if(targetContainer)\n // return targetContainer.scrollTop;\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {void}\n */\nfunction getBodyScrollLeft() {\n // if(targetContainer)\n // return targetContainer.scrollLeft;\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {void}\n */\nfunction getViewPortHeight() {\n return window.innerHeight;\n}\n/**\n * @returns {void}\n */\nfunction getViewPortWidth() {\n var windowWidth = window.innerWidth;\n var documentReact = document.documentElement.getBoundingClientRect();\n var offsetWidth = (isNullOrUndefined(document.documentElement)) ? 0 : documentReact.width;\n return windowWidth - (windowWidth - offsetWidth);\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { setStyleAttribute, addClass, removeClass, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit } from '@syncfusion/ej2-base';\nimport { Browser } from '@syncfusion/ej2-base';\nimport { calculatePosition, calculateRelativeBasedPosition } from '../common/position';\nimport { Animation, Property, Event, Component } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { EventHandler } from '@syncfusion/ej2-base';\nimport { flip, fit, isCollide } from '../common/collision';\n/**\n * Specifies the offset position values.\n */\nvar PositionData = /** @class */ (function (_super) {\n __extends(PositionData, _super);\n function PositionData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('left')\n ], PositionData.prototype, \"X\", void 0);\n __decorate([\n Property('top')\n ], PositionData.prototype, \"Y\", void 0);\n return PositionData;\n}(ChildProperty));\nexport { PositionData };\n// don't use space in classNames\nvar CLASSNAMES = {\n ROOT: 'e-popup',\n RTL: 'e-rtl',\n OPEN: 'e-popup-open',\n CLOSE: 'e-popup-close'\n};\n/**\n * Represents the Popup Component\n * ```html\n *
\n *
Popup Content
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(element, options) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Called internally if any of the property value changed.\n *\n * @param {PopupModel} newProp - specifies the new property\n * @param {PopupModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Popup.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'zIndex':\n setStyleAttribute(this.element, { 'zIndex': newProp.zIndex });\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'position':\n case 'relateTo':\n this.refreshPosition();\n break;\n case 'offsetX':\n // eslint-disable-next-line\n var x = newProp.offsetX - oldProp.offsetX;\n this.element.style.left = (parseInt(this.element.style.left, 10) + (x)).toString() + 'px';\n break;\n case 'offsetY':\n // eslint-disable-next-line\n var y = newProp.offsetY - oldProp.offsetY;\n this.element.style.top = (parseInt(this.element.style.top, 10) + (y)).toString() + 'px';\n break;\n case 'content':\n this.setContent();\n break;\n case 'actionOnScroll':\n if (newProp.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n else {\n this.unwireScrollEvents();\n }\n break;\n }\n }\n };\n /**\n * gets the Component module name.\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.getModuleName = function () {\n return 'popup';\n };\n /**\n * To resolve if any collision occurs.\n *\n * @returns {void}\n */\n Popup.prototype.resolveCollision = function () {\n this.checkCollision();\n };\n /**\n * gets the persisted state properties of the Component.\n *\n * @returns {void}\n */\n Popup.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To destroy the control.\n *\n * @returns {void}\n */\n Popup.prototype.destroy = function () {\n if (this.element.classList.contains('e-popup-open')) {\n this.unwireEvents();\n }\n this.element.classList.remove(CLASSNAMES.ROOT, CLASSNAMES.RTL, CLASSNAMES.OPEN, CLASSNAMES.CLOSE);\n _super.prototype.destroy.call(this);\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.render = function () {\n this.element.classList.add(CLASSNAMES.ROOT);\n var styles = {};\n if (this.zIndex !== 1000) {\n styles.zIndex = this.zIndex;\n }\n if (this.width !== 'auto') {\n styles.width = formatUnit(this.width);\n }\n if (this.height !== 'auto') {\n styles.height = formatUnit(this.height);\n }\n setStyleAttribute(this.element, styles);\n this.fixedParent = false;\n this.setEnableRtl();\n this.setContent();\n };\n Popup.prototype.wireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.add(window, 'orientationchange', this.orientationOnChange, this);\n }\n if (this.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n };\n Popup.prototype.wireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollRefresh, this);\n }\n }\n };\n Popup.prototype.unwireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.remove(window, 'orientationchange', this.orientationOnChange);\n }\n if (this.actionOnScroll !== 'none') {\n this.unwireScrollEvents();\n }\n };\n Popup.prototype.unwireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollRefresh);\n }\n }\n };\n Popup.prototype.getRelateToElement = function () {\n var relateToElement = this.relateTo === '' || isNullOrUndefined(this.relateTo) ?\n document.body : this.relateTo;\n this.setProperties({ relateTo: relateToElement }, true);\n return ((typeof this.relateTo) === 'string') ?\n document.querySelector(this.relateTo) : this.relateTo;\n };\n Popup.prototype.scrollRefresh = function (e) {\n if (this.actionOnScroll === 'reposition') {\n if (!isNullOrUndefined(this.element) && !(this.element.offsetParent === e.target ||\n (this.element.offsetParent && this.element.offsetParent.tagName === 'BODY' &&\n e.target.parentElement == null))) {\n this.refreshPosition();\n }\n }\n else if (this.actionOnScroll === 'hide') {\n this.hide();\n }\n if (this.actionOnScroll !== 'none') {\n if (this.getRelateToElement()) {\n var targetVisible = this.isElementOnViewport(this.getRelateToElement(), e.target);\n if (!targetVisible && !this.targetInvisibleStatus) {\n this.trigger('targetExitViewport');\n this.targetInvisibleStatus = true;\n }\n else if (targetVisible) {\n this.targetInvisibleStatus = false;\n }\n }\n }\n };\n /**\n * This method is to get the element visibility on viewport when scroll\n * the page. This method will returns true even though 1 px of element\n * part is in visible.\n *\n * @param {HTMLElement} relateToElement - specifies the element\n * @param {HTMLElement} scrollElement - specifies the scroll element\n * @returns {boolean} - retruns the boolean\n */\n // eslint-disable-next-line\n Popup.prototype.isElementOnViewport = function (relateToElement, scrollElement) {\n var scrollParents = this.getScrollableParent(relateToElement);\n for (var parent_3 = 0; parent_3 < scrollParents.length; parent_3++) {\n if (this.isElementVisible(relateToElement, scrollParents[parent_3])) {\n continue;\n }\n else {\n return false;\n }\n }\n return true;\n };\n Popup.prototype.isElementVisible = function (relateToElement, scrollElement) {\n var rect = this.checkGetBoundingClientRect(relateToElement);\n if (!rect.height || !rect.width) {\n return false;\n }\n if (!isNullOrUndefined(this.checkGetBoundingClientRect(scrollElement))) {\n var parent_4 = scrollElement.getBoundingClientRect();\n return !(rect.bottom < parent_4.top) &&\n (!(rect.bottom > parent_4.bottom) &&\n (!(rect.right > parent_4.right) &&\n !(rect.left < parent_4.left)));\n }\n else {\n var win = window;\n var windowView = {\n top: win.scrollY,\n left: win.scrollX,\n right: win.scrollX + win.outerWidth,\n bottom: win.scrollY + win.outerHeight\n };\n var off = calculatePosition(relateToElement);\n var ele = {\n top: off.top,\n left: off.left,\n right: off.left + rect.width,\n bottom: off.top + rect.height\n };\n var elementView = {\n top: windowView.bottom - ele.top,\n left: windowView.right - ele.left,\n bottom: ele.bottom - windowView.top,\n right: ele.right - windowView.left\n };\n return elementView.top > 0\n && elementView.left > 0\n && elementView.right > 0\n && elementView.bottom > 0;\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.preRender = function () {\n //There is no event handler\n };\n Popup.prototype.setEnableRtl = function () {\n this.reposition();\n // eslint-disable-next-line\n this.enableRtl ? this.element.classList.add(CLASSNAMES.RTL) : this.element.classList.remove(CLASSNAMES.RTL);\n };\n Popup.prototype.setContent = function () {\n if (!isNullOrUndefined(this.content)) {\n this.element.innerHTML = '';\n if (typeof (this.content) === 'string') {\n this.element.textContent = this.content;\n }\n else {\n var relateToElem = this.getRelateToElement();\n // eslint-disable-next-line\n var props = this.content.props;\n if (!relateToElem.classList.contains('e-dropdown-btn') || isNullOrUndefined(props)) {\n this.element.appendChild(this.content);\n }\n }\n }\n };\n Popup.prototype.orientationOnChange = function () {\n var _this = this;\n setTimeout(function () {\n _this.refreshPosition();\n }, 200);\n };\n // eslint-disable-next-line\n /**\n * Based on the `relative` element and `offset` values, `Popup` element position will refreshed.\n *\n * @returns {void}\n */\n Popup.prototype.refreshPosition = function (target, collision) {\n if (!isNullOrUndefined(target)) {\n this.checkFixedParent(target);\n }\n this.reposition();\n if (!collision) {\n this.checkCollision();\n }\n };\n Popup.prototype.reposition = function () {\n var pos;\n var position;\n var relateToElement = this.getRelateToElement();\n if (typeof this.position.X === 'number' && typeof this.position.Y === 'number') {\n pos = { left: this.position.X, top: this.position.Y };\n }\n else if ((typeof this.position.X === 'string' && typeof this.position.Y === 'number') ||\n (typeof this.position.X === 'number' && typeof this.position.Y === 'string')) {\n var parentDisplay = void 0;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n if (this.element.classList.contains('e-dlg-modal')) {\n parentDisplay = this.element.parentElement.style.display;\n this.element.parentElement.style.display = 'block';\n }\n position = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\n if (typeof this.position.X === 'string') {\n pos = { left: position.left, top: this.position.Y };\n }\n else {\n pos = { left: this.position.X, top: position.top };\n }\n this.element.style.display = display;\n if (this.element.classList.contains('e-dlg-modal')) {\n this.element.parentElement.style.display = parentDisplay;\n }\n }\n else if (relateToElement) {\n var display = this.element.style.display;\n this.element.style.display = 'block';\n pos = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\n this.element.style.display = display;\n }\n else {\n pos = { left: 0, top: 0 };\n }\n if (!isNullOrUndefined(pos)) {\n this.element.style.left = pos.left + 'px';\n this.element.style.top = pos.top + 'px';\n }\n };\n Popup.prototype.checkGetBoundingClientRect = function (ele) {\n var eleRect;\n try {\n eleRect = ele.getBoundingClientRect();\n return eleRect;\n }\n catch (error) {\n return null;\n }\n };\n Popup.prototype.getAnchorPosition = function (anchorEle, ele, position, offsetX, offsetY) {\n var eleRect = this.checkGetBoundingClientRect(ele);\n var anchorRect = this.checkGetBoundingClientRect(anchorEle);\n if (isNullOrUndefined(eleRect) || isNullOrUndefined(anchorRect)) {\n return null;\n }\n var anchor = anchorEle;\n var anchorPos = { left: 0, top: 0 };\n if (ele.offsetParent && ele.offsetParent.tagName === 'BODY' && anchorEle.tagName === 'BODY') {\n anchorPos = calculatePosition(anchorEle);\n }\n else {\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName !== 'BODY')) {\n ele = ele.parentElement;\n }\n anchorPos = calculateRelativeBasedPosition(anchor, ele);\n }\n switch (position.X) {\n default:\n case 'left':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth / 2 - eleRect.width / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width / 2 - eleRect.width / 2);\n }\n else {\n anchorPos.left += (anchorRect.width / 2);\n }\n break;\n case 'right':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth - eleRect.width);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width - eleRect.width);\n }\n else {\n anchorPos.left += (anchorRect.width);\n }\n break;\n }\n switch (position.Y) {\n default:\n case 'top':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight / 2 - eleRect.height / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.top += (anchorRect.height / 2 - eleRect.height / 2);\n }\n else {\n anchorPos.top += (anchorRect.height / 2);\n }\n break;\n case 'bottom':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight - eleRect.height);\n }\n else if (this.targetType === 'container') {\n anchorPos.top += (anchorRect.height - eleRect.height);\n }\n else {\n anchorPos.top += (anchorRect.height);\n }\n break;\n }\n anchorPos.left += offsetX;\n anchorPos.top += offsetY;\n return anchorPos;\n };\n Popup.prototype.callFlip = function (param) {\n var relateToElement = this.getRelateToElement();\n flip(this.element, relateToElement, this.offsetX, this.offsetY, this.position.X, this.position.Y, this.viewPortElement, param, this.fixedParent);\n };\n Popup.prototype.callFit = function (param) {\n if (isCollide(this.element, this.viewPortElement).length !== 0) {\n if (isNullOrUndefined(this.viewPortElement)) {\n var data = fit(this.element, this.viewPortElement, param);\n if (param.X) {\n this.element.style.left = data.left + 'px';\n }\n if (param.Y) {\n this.element.style.top = data.top + 'px';\n }\n }\n else {\n var elementRect = this.checkGetBoundingClientRect(this.element);\n var viewPortRect = this.checkGetBoundingClientRect(this.viewPortElement);\n if (isNullOrUndefined(elementRect) || isNullOrUndefined(viewPortRect)) {\n return null;\n }\n if (param && param.Y === true) {\n if (viewPortRect.top > elementRect.top) {\n this.element.style.top = '0px';\n }\n else if (viewPortRect.bottom < elementRect.bottom) {\n this.element.style.top = parseInt(this.element.style.top, 10) - (elementRect.bottom - viewPortRect.bottom) + 'px';\n }\n }\n if (param && param.X === true) {\n if (viewPortRect.right < elementRect.right) {\n this.element.style.left = parseInt(this.element.style.left, 10) - (elementRect.right - viewPortRect.right) + 'px';\n }\n else if (viewPortRect.left > elementRect.left) {\n this.element.style.left = parseInt(this.element.style.left, 10) + (viewPortRect.left - elementRect.left) + 'px';\n }\n }\n }\n }\n };\n Popup.prototype.checkCollision = function () {\n var horz = this.collision.X;\n var vert = this.collision.Y;\n if (horz === 'none' && vert === 'none') {\n return;\n }\n if (horz === 'flip' && vert === 'flip') {\n this.callFlip({ X: true, Y: true });\n }\n else if (horz === 'fit' && vert === 'fit') {\n this.callFit({ X: true, Y: true });\n }\n else {\n if (horz === 'flip') {\n this.callFlip({ X: true, Y: false });\n }\n else if (vert === 'flip') {\n this.callFlip({ Y: true, X: false });\n }\n if (horz === 'fit') {\n this.callFit({ X: true, Y: false });\n }\n else if (vert === 'fit') {\n this.callFit({ X: false, Y: true });\n }\n }\n };\n /**\n * Shows the popup element from screen.\n *\n * @returns {void}\n * @param {AnimationModel} animationOptions - specifies the model\n * @param { HTMLElement } relativeElement - To calculate the zIndex value dynamically.\n */\n Popup.prototype.show = function (animationOptions, relativeElement) {\n var _this = this;\n var relateToElement = this.getRelateToElement();\n if (relateToElement.classList.contains('e-filemanager')) {\n this.fmDialogContainer = this.element.getElementsByClassName('e-file-select-wrap')[0];\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.fmDialogContainer) && Browser.isIos) {\n this.fmDialogContainer.style.display = 'block';\n }\n if (this.zIndex === 1000 || !isNullOrUndefined(relativeElement)) {\n var zIndexElement = (isNullOrUndefined(relativeElement)) ? this.element : relativeElement;\n this.zIndex = getZindexPartial(zIndexElement);\n setStyleAttribute(this.element, { 'zIndex': this.zIndex });\n }\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.showAnimation;\n if (this.collision.X !== 'none' || this.collision.Y !== 'none') {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.checkCollision();\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n }\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.begin = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.CLOSE);\n addClass([_this.element], CLASSNAMES.OPEN);\n }\n };\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n _this.trigger('open');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.trigger('open');\n }\n };\n /**\n * Hides the popup element from screen.\n *\n * @param {AnimationModel} animationOptions - To give the animation options.\n * @returns {void}\n */\n Popup.prototype.hide = function (animationOptions) {\n var _this = this;\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.hideAnimation;\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.OPEN);\n addClass([_this.element], CLASSNAMES.CLOSE);\n _this.trigger('close');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n this.trigger('close');\n }\n this.unwireEvents();\n };\n /**\n * Gets scrollable parent elements for the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n */\n Popup.prototype.getScrollableParent = function (element) {\n this.checkFixedParent(element);\n return getScrollableParent(element, this.fixedParent);\n };\n Popup.prototype.checkFixedParent = function (element) {\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (parentStyle.position === 'fixed' && !isNullOrUndefined(this.element) && this.element.offsetParent &&\n this.element.offsetParent.tagName === 'BODY' && getComputedStyle(this.element.offsetParent).overflow !== 'hidden') {\n this.element.style.top = window.scrollY > parseInt(this.element.style.top, 10) ?\n formatUnit(window.scrollY - parseInt(this.element.style.top, 10))\n : formatUnit(parseInt(this.element.style.top, 10) - window.scrollY);\n this.element.style.position = 'fixed';\n this.fixedParent = true;\n }\n parent = parent.parentElement;\n if (!isNullOrUndefined(this.element) && isNullOrUndefined(this.element.offsetParent) && parentStyle.position === 'fixed'\n && this.element.style.position === 'fixed') {\n this.fixedParent = true;\n }\n }\n };\n __decorate([\n Property('auto')\n ], Popup.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], Popup.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"content\", void 0);\n __decorate([\n Property('container')\n ], Popup.prototype, \"targetType\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"viewPortElement\", void 0);\n __decorate([\n Property({ X: 'none', Y: 'none' })\n ], Popup.prototype, \"collision\", void 0);\n __decorate([\n Property('')\n ], Popup.prototype, \"relateTo\", void 0);\n __decorate([\n Complex({}, PositionData)\n ], Popup.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetY\", void 0);\n __decorate([\n Property(1000)\n ], Popup.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], Popup.prototype, \"enableRtl\", void 0);\n __decorate([\n Property('reposition')\n ], Popup.prototype, \"actionOnScroll\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"showAnimation\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"hideAnimation\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"targetExitViewport\", void 0);\n Popup = __decorate([\n NotifyPropertyChanges\n ], Popup);\n return Popup;\n}(Component));\nexport { Popup };\n/**\n * Gets scrollable parent elements for the given element.\n *\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n * @param {boolean} fixedParent - specifies the parent element\n * @private\n * @returns {void}\n */\nexport function getScrollableParent(element, fixedParent) {\n var eleStyle = getComputedStyle(element);\n var scrollParents = [];\n var overflowRegex = /(auto|scroll)/;\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')\n && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {\n scrollParents.push(parent);\n }\n parent = parent.parentElement;\n }\n if (!fixedParent) {\n scrollParents.push(document);\n }\n return scrollParents;\n}\n/**\n * Gets the maximum z-index of the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the maximum z-index of it.\n * @private\n */\nexport function getZindexPartial(element) {\n // upto body traversal\n var parent = element.parentElement;\n var parentZindex = [];\n while (parent) {\n if (parent.tagName !== 'BODY') {\n var index = document.defaultView.getComputedStyle(parent, null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(parent, null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n parentZindex.push(index);\n }\n parent = parent.parentElement;\n }\n else {\n break;\n }\n }\n var childrenZindex = [];\n for (var i = 0; i < document.body.children.length; i++) {\n if (!element.isEqualNode(document.body.children[i])) {\n var index = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n childrenZindex.push(index);\n }\n }\n }\n childrenZindex.push('999');\n var siblingsZindex = [];\n if (!isNullOrUndefined(element.parentElement) && element.parentElement.tagName !== 'BODY') {\n var childNodes = [].slice.call(element.parentElement.children);\n for (var i = 0; i < childNodes.length; i++) {\n if (!element.isEqualNode(childNodes[i])) {\n var index = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n siblingsZindex.push(index);\n }\n }\n }\n }\n var finalValue = parentZindex.concat(childrenZindex, siblingsZindex);\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, finalValue) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n/**\n * Gets the maximum z-index of the page.\n *\n * @returns {void}\n * @param { HTMLElement } tagName - Specify the tagName to get the maximum z-index of it.\n * @private\n */\nexport function getMaxZindex(tagName) {\n if (tagName === void 0) { tagName = ['*']; }\n var maxZindex = [];\n for (var i = 0; i < tagName.length; i++) {\n var elements = document.getElementsByTagName(tagName[i]);\n for (var i_1 = 0; i_1 < elements.length; i_1++) {\n var index = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n maxZindex.push(index);\n }\n }\n }\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, maxZindex) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n","/**\n * Resize library\n */\nimport { isNullOrUndefined as isNOU, createElement, EventHandler, detach, Browser } from '@syncfusion/ej2-base';\n/* eslint-disable */\nvar elementClass = ['north-west', 'north', 'north-east', 'west', 'east', 'south-west', 'south', 'south-east'];\nvar RESIZE_HANDLER = 'e-resize-handle';\nvar FOCUSED_HANDLER = 'e-focused-handle';\nvar DIALOG_RESIZABLE = 'e-dlg-resizable';\nvar RESTRICT_LEFT = ['e-restrict-left'];\nvar RESIZE_WITHIN_VIEWPORT = 'e-resize-viewport';\nvar dialogBorderResize = ['north', 'west', 'east', 'south'];\nvar targetElement;\nvar selectedHandler;\nvar originalWidth = 0;\nvar originalHeight = 0;\nvar originalX = 0;\nvar originalY = 0;\nvar originalMouseX = 0;\nvar originalMouseY = 0;\nvar minHeight;\nvar maxHeight;\nvar minWidth;\nvar maxWidth;\nvar containerElement;\nvar resizeStart = null;\nvar resize = null;\nvar resizeEnd = null;\n/* eslint-enable */\nvar resizeWestWidth;\nvar setLeft = true;\nvar previousWidth = 0;\nvar setWidth = true;\n// eslint-disable-next-line\nvar proxy;\n/**\n *\n * @param {ResizeArgs} args - specifies the resize args\n * @returns {void}\n */\nexport function createResize(args) {\n resizeStart = args.resizeBegin;\n resize = args.resizing;\n resizeEnd = args.resizeComplete;\n targetElement = getDOMElement(args.element);\n containerElement = getDOMElement(args.boundary);\n var directions = args.direction.split(' ');\n for (var i = 0; i < directions.length; i++) {\n if (dialogBorderResize.indexOf(directions[i]) >= 0 && directions[i]) {\n setBorderResizeElm(directions[i]);\n }\n else if (directions[i].trim() !== '') {\n var resizeHandler = createElement('div', { className: 'e-icons ' + RESIZE_HANDLER + ' ' + 'e-' + directions[i] });\n targetElement.appendChild(resizeHandler);\n }\n }\n minHeight = args.minHeight;\n minWidth = args.minWidth;\n maxWidth = args.maxWidth;\n maxHeight = args.maxHeight;\n if (args.proxy && args.proxy.element && args.proxy.element.classList.contains('e-dialog')) {\n wireEvents(args.proxy);\n }\n else {\n wireEvents();\n }\n}\n/**\n *\n * @param {string} direction - specifies the string\n * @returns {void}\n */\nfunction setBorderResizeElm(direction) {\n calculateValues();\n var borderBottom = createElement('span', {\n attrs: {\n 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n borderBottom.setAttribute('class', 'e-dialog-border-resize e-' + direction);\n if (direction === 'south') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.bottom = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'north') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.top = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'east') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.right = '0px';\n borderBottom.style.top = '0px';\n }\n if (direction === 'west') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.left = '0px';\n borderBottom.style.top = '0px';\n }\n targetElement.appendChild(borderBottom);\n}\n/**\n *\n * @param {string} element - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction getDOMElement(element) {\n var domElement;\n if (!isNOU(element)) {\n if (typeof (element) === 'string') {\n domElement = document.querySelector(element);\n }\n else {\n domElement = element;\n }\n }\n return domElement;\n}\n// eslint-disable-next-line\nfunction wireEvents(args) {\n if (isNOU(args)) {\n args = this;\n }\n var resizers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < resizers.length; i++) {\n selectedHandler = resizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n selectedHandler = borderResizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {string} e - specifies the string\n * @returns {string} - returns the string\n */\nfunction getEventType(e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the mouse event\n * @returns {void}\n */\nfunction onMouseDown(e) {\n e.preventDefault();\n targetElement = e.target.parentElement;\n calculateValues();\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n e.target.classList.add(FOCUSED_HANDLER);\n if (!isNOU(resizeStart)) {\n proxy = this;\n if (resizeStart(e, proxy) === true) {\n return;\n }\n }\n if (this.targetEle && targetElement && targetElement.querySelector('.' + DIALOG_RESIZABLE)) {\n containerElement = this.target === ('body' || 'document.body' || document.body) ? null : this.targetEle;\n maxWidth = this.targetEle.clientWidth;\n maxHeight = this.targetEle.clientHeight;\n }\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, 'mousemove', onMouseMove, this);\n EventHandler.add(document, 'mouseup', onMouseUp, this);\n for (var i = 0; i < RESTRICT_LEFT.length; i++) {\n if (targetElement.classList.contains(RESTRICT_LEFT[i])) {\n setLeft = false;\n }\n else {\n setLeft = true;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseUp(e) {\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.remove(target, 'mousemove', onMouseMove);\n EventHandler.remove(target, touchMoveEvent, onMouseMove);\n EventHandler.remove(target, eventName, onMouseMove);\n if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n document.body.querySelector('.' + FOCUSED_HANDLER).classList.remove(FOCUSED_HANDLER);\n }\n if (!isNOU(resizeEnd)) {\n proxy = this;\n resizeEnd(e, proxy);\n }\n EventHandler.remove(document, 'mouseup', onMouseUp);\n EventHandler.remove(document, touchEndEvent, onMouseUp);\n}\n/* istanbul ignore next */\n/**\n * @returns {void}\n */\nfunction calculateValues() {\n originalWidth = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('width').replace('px', ''));\n originalHeight = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('height').replace('px', ''));\n originalX = targetElement.getBoundingClientRect().left;\n originalY = targetElement.getBoundingClientRect().top;\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onTouchStart(e) {\n targetElement = e.target.parentElement;\n calculateValues();\n var dialogResizeElement = targetElement.classList.contains('e-dialog');\n if ((e.target.classList.contains(RESIZE_HANDLER) || e.target.classList.contains('e-dialog-border-resize')) && dialogResizeElement) {\n e.target.classList.add(FOCUSED_HANDLER);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n originalMouseX = coordinates.pageX;\n originalMouseY = coordinates.pageY;\n if (!isNOU(resizeStart)) {\n proxy = this;\n if (resizeStart(e, proxy) === true) {\n return;\n }\n }\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, touchMoveEvent, onMouseMove, this);\n EventHandler.add(document, touchEndEvent, onMouseUp, this);\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseMove(e) {\n if (e.target.classList.contains(RESIZE_HANDLER) && e.target.classList.contains(FOCUSED_HANDLER)) {\n selectedHandler = e.target;\n }\n else if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n selectedHandler = document.body.querySelector('.' + FOCUSED_HANDLER);\n }\n if (!isNOU(selectedHandler)) {\n var resizeTowards = '';\n for (var i = 0; i < elementClass.length; i++) {\n if (selectedHandler.classList.contains('e-' + elementClass[i])) {\n resizeTowards = elementClass[i];\n }\n }\n if (!isNOU(resize)) {\n proxy = this;\n resize(e, proxy);\n }\n switch (resizeTowards) {\n case 'south':\n resizeSouth(e);\n break;\n case 'north':\n resizeNorth(e);\n break;\n case 'west':\n resizeWest(e);\n break;\n case 'east':\n resizeEast(e);\n break;\n case 'south-east':\n resizeSouth(e);\n resizeEast(e);\n break;\n case 'south-west':\n resizeSouth(e);\n resizeWest(e);\n break;\n case 'north-east':\n resizeNorth(e);\n resizeEast(e);\n break;\n case 'north-west':\n resizeNorth(e);\n resizeWest(e);\n break;\n default: break;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {HTMLElement} element - specifies the eleemnt\n * @returns {ClientRect} - returns the client\n */\nfunction getClientRectValues(element) {\n return element.getBoundingClientRect();\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeSouth(e) {\n var documentHeight = document.documentElement.clientHeight;\n var calculateValue = false;\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var currentpageY = coordinates.pageY;\n var targetRectValues = getClientRectValues(targetElement);\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && ((documentHeight - currentpageY) >= 0 || (targetRectValues.top < 0))) {\n calculateValue = true;\n }\n var calculatedHeight = originalHeight + (currentpageY - originalMouseY);\n calculatedHeight = (calculatedHeight > minHeight) ? calculatedHeight : minHeight;\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = containerRectValues.top;\n }\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\n var topWithoutborder = (targetRectValues.top - containerTop) - (borderValue / 2);\n topWithoutborder = (topWithoutborder < 0) ? 0 : topWithoutborder;\n if (targetRectValues.top > 0 && (topWithoutborder + calculatedHeight) > maxHeight) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.height = (maxHeight - parseInt(topWithoutborder.toString(), 10)) + 'px';\n return;\n }\n var targetTop = 0;\n if (calculateValue) {\n if (targetRectValues.top < 0 && (documentHeight + (targetRectValues.height + targetRectValues.top) > 0)) {\n targetTop = targetRectValues.top;\n if ((calculatedHeight + targetTop) <= 30) {\n calculatedHeight = (targetRectValues.height - (targetRectValues.height + targetRectValues.top)) + 30;\n }\n }\n if (((calculatedHeight + targetRectValues.top) >= maxHeight)) {\n targetElement.style.height = targetRectValues.height +\n (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px';\n }\n var calculatedTop = (isNOU(containerElement)) ? targetTop : topWithoutborder;\n if (calculatedHeight >= minHeight && ((calculatedHeight + calculatedTop) <= maxHeight)) {\n targetElement.style.height = calculatedHeight + 'px';\n }\n }\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeNorth(e) {\n var calculateValue = false;\n var boundaryRectValues;\n var pageY = (getEventType(e.type) === 'mouse') ? e.pageY : e.touches[0].pageY;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement)) {\n boundaryRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement) && (targetRectValues.top - boundaryRectValues.top) > 0) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageY > 0) {\n calculateValue = true;\n }\n var currentHeight = originalHeight - (pageY - originalMouseY);\n if (calculateValue) {\n if (currentHeight >= minHeight && currentHeight <= maxHeight) {\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = boundaryRectValues.top;\n }\n var top_1 = (originalY - containerTop) + (pageY - originalMouseY);\n top_1 = top_1 > 0 ? top_1 : 1;\n targetElement.style.height = currentHeight + 'px';\n targetElement.style.top = top_1 + 'px';\n }\n }\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeWest(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var rectValues;\n if (!isNOU(containerElement)) {\n rectValues = getClientRectValues(containerElement);\n }\n var pageX = (getEventType(e.type) === 'mouse') ? e.pageX : e.touches[0].pageX;\n var targetRectValues = getClientRectValues(targetElement);\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetWidth - containerElement.clientWidth;\n /* eslint-disable */\n var left = isNOU(containerElement) ? 0 : rectValues.left;\n var containerWidth = isNOU(containerElement) ? 0 : rectValues.width;\n /* eslint-enable */\n if (isNOU(resizeWestWidth)) {\n if (!isNOU(containerElement)) {\n resizeWestWidth = (((targetRectValues.left - left) - borderValue / 2)) + targetRectValues.width;\n resizeWestWidth = resizeWestWidth + (containerWidth - borderValue - resizeWestWidth);\n }\n else {\n resizeWestWidth = documentWidth;\n }\n }\n if (!isNOU(containerElement) &&\n (Math.floor((targetRectValues.left - rectValues.left) + targetRectValues.width +\n (rectValues.right - targetRectValues.right)) - borderValue) <= maxWidth) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageX >= 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth - (pageX - originalMouseX);\n if (setLeft) {\n calculatedWidth = (calculatedWidth > resizeWestWidth) ? resizeWestWidth : calculatedWidth;\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = rectValues.left;\n }\n var left_1 = (originalX - containerLeft) + (pageX - originalMouseX);\n left_1 = (left_1 > 0) ? left_1 : 1;\n if (calculatedWidth !== previousWidth && setWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n if (setLeft) {\n targetElement.style.left = left_1 + 'px';\n if (left_1 === 1) {\n setWidth = false;\n }\n else {\n setWidth = true;\n }\n }\n }\n }\n previousWidth = calculatedWidth;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeEast(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var pageX = coordinates.pageX;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement) && (((targetRectValues.left - containerRectValues.left) + targetRectValues.width) <= maxWidth\n || (targetRectValues.right - containerRectValues.left) >= targetRectValues.width)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && (documentWidth - pageX) > 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth + (pageX - originalMouseX);\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = containerRectValues.left;\n }\n if (((targetRectValues.left - containerLeft) + calculatedWidth) > maxWidth) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.width = maxWidth - (targetRectValues.left - containerLeft) + 'px';\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {number} minimumHeight - specifies the number\n * @returns {void}\n */\nexport function setMinHeight(minimumHeight) {\n minHeight = minimumHeight;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxWidth(value) {\n maxWidth = value;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxHeight(value) {\n maxHeight = value;\n}\n/**\n * @returns {void}\n */\nexport function removeResize() {\n var handlers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < handlers.length; i++) {\n detach(handlers[i]);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n detach(borderResizers[i]);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, Collection, L10n, Complex, compile, createElement } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, detach, attributes, prepend, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, isBlazor } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, append, EventHandler, Draggable, extend } from '@syncfusion/ej2-base';\nimport { SanitizeHtmlHelper, Browser } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup, PositionData, getZindexPartial } from '../popup/popup';\nimport { createResize, removeResize, setMinHeight, setMaxWidth, setMaxHeight } from '../common/resize';\nvar ButtonProps = /** @class */ (function (_super) {\n __extends(ButtonProps, _super);\n function ButtonProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ButtonProps.prototype, \"isFlat\", void 0);\n __decorate([\n Property()\n ], ButtonProps.prototype, \"buttonModel\", void 0);\n __decorate([\n Property('Button')\n ], ButtonProps.prototype, \"type\", void 0);\n __decorate([\n Event()\n ], ButtonProps.prototype, \"click\", void 0);\n return ButtonProps;\n}(ChildProperty));\nexport { ButtonProps };\n/**\n * Configures the animation properties for both open and close the dialog.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Fade')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property(0)\n ], AnimationSettings.prototype, \"delay\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\nvar ROOT = 'e-dialog';\nvar RTL = 'e-rtl';\nvar DLG_HEADER_CONTENT = 'e-dlg-header-content';\nvar DLG_HEADER = 'e-dlg-header';\nvar DLG_FOOTER_CONTENT = 'e-footer-content';\nvar MODAL_DLG = 'e-dlg-modal';\nvar DLG_CONTENT = 'e-dlg-content';\nvar DLG_CLOSE_ICON = 'e-icon-dlg-close';\nvar DLG_OVERLAY = 'e-dlg-overlay';\nvar DLG_TARGET = 'e-dlg-target';\nvar DLG_CONTAINER = 'e-dlg-container';\nvar SCROLL_DISABLED = 'e-scroll-disabled';\nvar DLG_PRIMARY_BUTTON = 'e-primary';\nvar ICON = 'e-icons';\nvar POPUP_ROOT = 'e-popup';\nvar DEVICE = 'e-device';\nvar FULLSCREEN = 'e-dlg-fullscreen';\nvar DLG_CLOSE_ICON_BTN = 'e-dlg-closeicon-btn';\nvar DLG_HIDE = 'e-popup-close';\nvar DLG_SHOW = 'e-popup-open';\nvar DLG_UTIL_DEFAULT_TITLE = 'Information';\nvar DLG_UTIL_ROOT = 'e-scroll-disabled';\nvar DLG_UTIL_ALERT = 'e-alert-dialog';\nvar DLG_UTIL_CONFIRM = 'e-confirm-dialog';\nvar DLG_RESIZABLE = 'e-dlg-resizable';\nvar DLG_RESTRICT_LEFT_VALUE = 'e-restrict-left';\nvar DLG_RESTRICT_WIDTH_VALUE = 'e-resize-viewport';\nvar DLG_REF_ELEMENT = 'e-dlg-ref-element';\nvar DLG_USER_ACTION_CLOSED = 'user action';\nvar DLG_CLOSE_ICON_CLOSED = 'close icon';\nvar DLG_ESCAPE_CLOSED = 'escape';\nvar DLG_OVERLAYCLICK_CLOSED = 'overlayClick';\nvar DLG_DRAG = 'e-draggable';\n/**\n * Represents the dialog component that displays the information and get input from the user.\n * Two types of dialog components are `Modal and Modeless (non-modal)` depending on its interaction with parent application.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Dialog = /** @class */ (function (_super) {\n __extends(Dialog, _super);\n /*\n * * Constructor for creating the widget\n *\n * @param\n * @param\n * @hidden\n */\n function Dialog(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n *Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.render = function () {\n this.initialize();\n this.initRender();\n this.wireEvents();\n if (this.width === '100%') {\n this.element.style.width = '';\n }\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n if (this.enableResize) {\n this.setResize();\n if (this.animationSettings.effect === 'None') {\n this.getMinHeight();\n }\n }\n this.renderComplete();\n };\n Dialog.prototype.initializeValue = function () {\n this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n };\n /**\n *Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.preRender = function () {\n var _this = this;\n this.initializeValue();\n this.headerContent = null;\n this.allowMaxHeight = true;\n this.preventVisibility = true;\n this.clonedEle = this.element.cloneNode(true);\n this.closeIconClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_CLOSE_ICON_CLOSED;\n _this.hide(event);\n };\n this.dlgOverlayClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_OVERLAYCLICK_CLOSED;\n event.preventFocus = false;\n _this.trigger('overlayClick', event, function (overlayClickEventArgs) {\n if (!overlayClickEventArgs.preventFocus) {\n _this.focusContent();\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n };\n var localeText = { close: 'Close' };\n this.l10n = new L10n('dialog', localeText, this.locale);\n this.checkPositionData();\n if (isNullOrUndefined(this.target)) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.target = document.body;\n this.isProtectedOnChange = prevOnChange;\n }\n };\n Dialog.prototype.isNumberValue = function (value) {\n var isNumber = /^[-+]?\\d*\\.?\\d+$/.test(value);\n return isNumber;\n };\n Dialog.prototype.checkPositionData = function () {\n if (!isNullOrUndefined(this.position)) {\n if (!isNullOrUndefined(this.position.X) && (typeof (this.position.X) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.X);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.X = parseFloat(this.position.X);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n if (!isNullOrUndefined(this.position.Y) && (typeof (this.position.Y) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.Y);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.Y = parseFloat(this.position.Y);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n }\n };\n Dialog.prototype.getEle = function (list, selector) {\n var element = undefined;\n for (var i = 0; i < list.length; i++) {\n if (list[i].classList.contains(selector)) {\n element = list[i];\n break;\n }\n }\n return element;\n };\n /* istanbul ignore next */\n Dialog.prototype.getMinHeight = function () {\n var computedHeaderHeight = '0px';\n var computedFooterHeight = '0px';\n if (!isNullOrUndefined(this.element.querySelector('.' + DLG_HEADER_CONTENT))) {\n computedHeaderHeight = getComputedStyle(this.headerContent).height;\n }\n var footerEle = this.getEle(this.element.children, DLG_FOOTER_CONTENT);\n if (!isNullOrUndefined(footerEle)) {\n computedFooterHeight = getComputedStyle(footerEle).height;\n }\n var headerHeight = parseInt(computedHeaderHeight.slice(0, computedHeaderHeight.indexOf('p')), 10);\n var footerHeight = parseInt(computedFooterHeight.slice(0, computedFooterHeight.indexOf('p')), 10);\n setMinHeight(headerHeight + 30 + (isNaN(footerHeight) ? 0 : footerHeight));\n return (headerHeight + 30 + footerHeight);\n };\n Dialog.prototype.onResizeStart = function (args, dialogObj) {\n dialogObj.trigger('resizeStart', args);\n return args.cancel;\n };\n Dialog.prototype.onResizing = function (args, dialogObj) {\n dialogObj.trigger('resizing', args);\n };\n Dialog.prototype.onResizeComplete = function (args, dialogObj) {\n dialogObj.trigger('resizeStop', args);\n };\n Dialog.prototype.setResize = function () {\n if (this.enableResize) {\n if (this.isBlazorServerRender() && !isNullOrUndefined(this.element.querySelector('.e-icons.e-resize-handle'))) {\n return;\n }\n this.element.classList.add(DLG_RESIZABLE);\n var computedHeight = getComputedStyle(this.element).minHeight;\n var computedWidth = getComputedStyle(this.element).minWidth;\n var direction = '';\n for (var i = 0; i < this.resizeHandles.length; i++) {\n if (this.resizeHandles[i] === 'All') {\n direction = 'south north east west north-east north-west south-east south-west';\n break;\n }\n else {\n var directionValue = '';\n switch (this.resizeHandles[i].toString()) {\n case 'SouthEast':\n directionValue = 'south-east';\n break;\n case 'SouthWest':\n directionValue = 'south-west';\n break;\n case 'NorthEast':\n directionValue = 'north-east';\n break;\n case 'NorthWest':\n directionValue = 'north-west';\n break;\n default:\n directionValue = this.resizeHandles[i].toString();\n break;\n }\n direction += directionValue.toLocaleLowerCase() + ' ';\n }\n }\n if (this.enableRtl && direction.trim() === 'south-east') {\n direction = 'south-west';\n }\n else if (this.enableRtl && direction.trim() === 'south-west') {\n direction = 'south-east';\n }\n if (this.isModal && this.enableRtl) {\n this.element.classList.add(DLG_RESTRICT_LEFT_VALUE);\n }\n else if (this.isModal && this.target === document.body) {\n this.element.classList.add(DLG_RESTRICT_WIDTH_VALUE);\n }\n createResize({\n element: this.element,\n direction: direction,\n minHeight: parseInt(computedHeight.slice(0, computedWidth.indexOf('p')), 10),\n maxHeight: this.targetEle.clientHeight,\n minWidth: parseInt(computedWidth.slice(0, computedWidth.indexOf('p')), 10),\n maxWidth: this.targetEle.clientWidth,\n boundary: this.target === document.body ? null : this.targetEle,\n resizeBegin: this.onResizeStart.bind(this),\n resizeComplete: this.onResizeComplete.bind(this),\n resizing: this.onResizing.bind(this),\n proxy: this\n });\n this.wireWindowResizeEvent();\n }\n else {\n removeResize();\n this.unWireWindowResizeEvent();\n if (this.isModal) {\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n }\n else {\n this.element.classList.remove(DLG_RESTRICT_WIDTH_VALUE);\n }\n this.element.classList.remove(DLG_RESIZABLE);\n }\n };\n Dialog.prototype.getFocusElement = function (target) {\n var value = 'input,select,textarea,button:enabled,a,[contenteditable=\"true\"],[tabindex]';\n var items = target.querySelectorAll(value);\n return { element: items[items.length - 1] };\n };\n /* istanbul ignore next */\n Dialog.prototype.keyDown = function (event) {\n var _this = this;\n if (event.keyCode === 9) {\n if (this.isModal) {\n var buttonObj = void 0;\n if (!isNullOrUndefined(this.btnObj)) {\n buttonObj = this.btnObj[this.btnObj.length - 1];\n }\n if ((isNullOrUndefined(this.btnObj)) && (!isNullOrUndefined(this.ftrTemplateContent))) {\n buttonObj = this.getFocusElement(this.ftrTemplateContent);\n }\n if (isNullOrUndefined(this.btnObj) && isNullOrUndefined(this.ftrTemplateContent) && !isNullOrUndefined(this.contentEle)) {\n buttonObj = this.getFocusElement(this.contentEle);\n }\n if (!isNullOrUndefined(buttonObj) && document.activeElement === buttonObj.element && !event.shiftKey) {\n event.preventDefault();\n this.focusableElements(this.element).focus();\n }\n if (document.activeElement === this.focusableElements(this.element) && event.shiftKey) {\n event.preventDefault();\n if (!isNullOrUndefined(buttonObj)) {\n buttonObj.element.focus();\n }\n }\n }\n }\n var element = document.activeElement;\n var isTagName = (['input', 'textarea'].indexOf(element.tagName.toLowerCase()) > -1);\n var isContentEdit = false;\n if (!isTagName) {\n isContentEdit = element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') === 'true';\n }\n if (event.keyCode === 27 && this.closeOnEscape) {\n this.dlgClosedBy = DLG_ESCAPE_CLOSED;\n var query = document.querySelector('.e-popup-open:not(.e-dialog)');\n // 'document.querySelector' is used to find the elements rendered based on body\n if (!(!isNullOrUndefined(query) && !query.classList.contains(\"e-toolbar-pop\"))) {\n this.hide(event);\n }\n }\n if ((event.keyCode === 13 && !event.ctrlKey && element.tagName.toLowerCase() !== 'textarea' &&\n isTagName && !isNullOrUndefined(this.primaryButtonEle)) ||\n (event.keyCode === 13 && event.ctrlKey && (element.tagName.toLowerCase() === 'textarea' ||\n isContentEdit)) && !isNullOrUndefined(this.primaryButtonEle)) {\n var buttonIndex_1;\n var firstPrimary = this.buttons.some(function (data, index) {\n buttonIndex_1 = index;\n // eslint-disable-next-line\n var buttonModel = data.buttonModel;\n return !isNullOrUndefined(buttonModel) && buttonModel.isPrimary === true;\n });\n if (firstPrimary && typeof (this.buttons[buttonIndex_1].click) === 'function') {\n setTimeout(function () {\n _this.buttons[buttonIndex_1].click.call(_this, event);\n });\n }\n }\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initialize = function () {\n if (!isNullOrUndefined(this.target)) {\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n }\n if (!this.isBlazorServerRender()) {\n addClass([this.element], ROOT);\n }\n if (Browser.isDevice) {\n addClass([this.element], DEVICE);\n }\n if (!this.isBlazorServerRender()) {\n this.setCSSClass();\n }\n this.setMaxHeight();\n };\n /**\n * Initialize the rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initRender = function () {\n var _this = this;\n this.initialRender = true;\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { role: 'dialog' });\n }\n if (this.zIndex === 1000) {\n this.setzIndex(this.element, false);\n this.calculatezIndex = true;\n }\n else {\n this.calculatezIndex = false;\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.element.getElementsByClassName('e-dlg-header-content')[0];\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.contentEle)) {\n this.contentEle = this.element.querySelector('#' + this.element.id + '_dialog-content');\n }\n if (!this.isBlazorServerRender()) {\n this.setTargetContent();\n if (this.header !== '' && !isNullOrUndefined(this.header)) {\n this.setHeader();\n }\n this.renderCloseIcon();\n this.setContent();\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setFooterTemplate();\n }\n else if (!isNullOrUndefined(this.buttons[0].buttonModel)) {\n this.setButton();\n }\n }\n if (this.isBlazorServerRender()) {\n if (!isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\n this.setButton();\n }\n }\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { 'aria-modal': (this.isModal ? 'true' : 'false') });\n if (this.isModal) {\n this.setIsModal();\n }\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.dlgContainer)) {\n this.dlgContainer = this.element.parentElement;\n for (var i = 0, childNodes = this.dlgContainer.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains('e-dlg-overlay')) {\n this.dlgOverlay = childNodes[i];\n }\n }\n }\n if (this.element.classList.contains(DLG_UTIL_ALERT) !== true && this.element.classList.contains(DLG_UTIL_CONFIRM) !== true\n && !isNullOrUndefined(this.element.parentElement)) {\n var parentEle = this.isModal ? this.dlgContainer.parentElement : this.element.parentElement;\n this.refElement = this.createElement('div', { className: DLG_REF_ELEMENT });\n parentEle.insertBefore(this.refElement, (this.isModal ? this.dlgContainer : this.element));\n }\n if (!isNullOrUndefined(this.targetEle)) {\n // eslint-disable-next-line\n this.isModal ? this.targetEle.appendChild(this.dlgContainer) : this.targetEle.appendChild(this.element);\n }\n this.popupObj = new Popup(this.element, {\n height: this.height,\n width: this.width,\n zIndex: this.zIndex,\n relateTo: this.target,\n actionOnScroll: 'none',\n enableRtl: this.enableRtl,\n // eslint-disable-next-line\n open: function (event) {\n var eventArgs = {\n container: _this.isModal ? _this.dlgContainer : _this.element,\n element: _this.element,\n target: _this.target,\n preventFocus: false\n };\n if (_this.enableResize) {\n _this.resetResizeIcon();\n }\n _this.trigger('open', eventArgs, function (openEventArgs) {\n if (!openEventArgs.preventFocus) {\n _this.focusContent();\n }\n });\n },\n // eslint-disable-next-line\n close: function (event) {\n if (_this.isModal) {\n addClass([_this.dlgOverlay], 'e-fade');\n }\n _this.unBindEvent(_this.element);\n if (_this.isModal) {\n _this.dlgContainer.style.display = 'none';\n }\n _this.trigger('close', _this.closeArgs);\n var activeEle = document.activeElement;\n if (!isNullOrUndefined(activeEle) && !isNullOrUndefined((activeEle).blur)) {\n activeEle.blur();\n }\n if (!isNullOrUndefined(_this.storeActiveElement) && !isNullOrUndefined(_this.storeActiveElement.focus)) {\n _this.storeActiveElement.focus();\n }\n }\n });\n this.positionChange();\n this.setEnableRTL();\n if (!this.isBlazorServerRender()) {\n addClass([this.element], DLG_HIDE);\n if (this.isModal) {\n this.setOverlayZindex();\n }\n }\n if (this.visible) {\n this.show();\n }\n else {\n if (this.isModal) {\n this.dlgOverlay.style.display = 'none';\n }\n }\n this.initialRender = false;\n };\n Dialog.prototype.resetResizeIcon = function () {\n var dialogConHeight = this.getMinHeight();\n if (this.targetEle.offsetHeight < dialogConHeight) {\n var className = this.enableRtl ? 'e-south-west' : 'e-south-east';\n var resizeIcon = this.element.querySelector('.' + className);\n if (!isNullOrUndefined(resizeIcon)) {\n resizeIcon.style.bottom = '-' + dialogConHeight.toString() + 'px';\n }\n }\n };\n Dialog.prototype.setOverlayZindex = function (zIndexValue) {\n var zIndex;\n if (isNullOrUndefined(zIndexValue)) {\n zIndex = parseInt(this.element.style.zIndex, 10) ? parseInt(this.element.style.zIndex, 10) : this.zIndex;\n }\n else {\n zIndex = zIndexValue;\n }\n this.dlgOverlay.style.zIndex = (zIndex - 1).toString();\n this.dlgContainer.style.zIndex = zIndex.toString();\n };\n Dialog.prototype.positionChange = function () {\n if (this.isModal) {\n if (!isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y))) {\n this.setPopupPosition();\n }\n else if ((!isNaN(parseFloat(this.position.X)) && isNaN(parseFloat(this.position.Y)))\n || (isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y)))) {\n this.setPopupPosition();\n }\n else {\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n this.dlgContainer.classList.add('e-dlg-' + this.position.X + '-' + this.position.Y);\n }\n }\n else {\n this.setPopupPosition();\n }\n };\n Dialog.prototype.setPopupPosition = function () {\n this.popupObj.setProperties({\n position: {\n X: this.position.X, Y: this.position.Y\n }\n });\n };\n Dialog.prototype.setAllowDragging = function () {\n var _this = this;\n var handleContent = '.' + DLG_HEADER_CONTENT;\n if (!this.element.classList.contains(DLG_DRAG)) {\n this.dragObj = new Draggable(this.element, {\n clone: false,\n isDragScroll: true,\n abort: '.e-dlg-closeicon-btn',\n handle: handleContent,\n dragStart: function (event) {\n _this.trigger('dragStart', event, function (dragEventArgs) {\n if (isBlazor()) {\n dragEventArgs.bindEvents(event.dragElement);\n }\n });\n },\n dragStop: function (event) {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.position)) {\n _this.dlgContainer.classList.remove('e-dlg-' + _this.position.X + '-' + _this.position.Y);\n }\n // Reset the dialog position after drag completion.\n _this.element.style.position = 'relative';\n }\n _this.trigger('dragStop', event);\n _this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n },\n drag: function (event) {\n _this.trigger('drag', event);\n }\n });\n if (!isNullOrUndefined(this.targetEle)) {\n this.dragObj.dragArea = this.targetEle;\n }\n }\n };\n Dialog.prototype.setButton = function () {\n if (!this.isBlazorServerRender()) {\n this.buttonContent = [];\n this.btnObj = [];\n // eslint-disable-next-line\n var primaryBtnFlag = true;\n for (var i = 0; i < this.buttons.length; i++) {\n var buttonType = !isNullOrUndefined(this.buttons[i].type) ? this.buttons[i].type.toLowerCase() : 'button';\n var btn = this.createElement('button', { className: this.cssClass, attrs: { type: buttonType } });\n this.buttonContent.push(btn.outerHTML);\n }\n this.setFooterTemplate();\n }\n var footerBtn;\n for (var i = 0, childNodes = this.element.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(DLG_FOOTER_CONTENT)) {\n footerBtn = childNodes[i].querySelectorAll('button');\n }\n }\n for (var i = 0; i < this.buttons.length; i++) {\n if (!this.isBlazorServerRender()) {\n this.btnObj[i] = new Button(this.buttons[i].buttonModel);\n }\n if (this.isBlazorServerRender()) {\n this.ftrTemplateContent = this.element.querySelector('.' + DLG_FOOTER_CONTENT);\n }\n if (!isNullOrUndefined(this.ftrTemplateContent) && footerBtn.length > 0) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.add(footerBtn[i], 'click', this.buttons[i].click, this);\n }\n if (typeof (this.buttons[i].click) === 'object') {\n EventHandler.add(footerBtn[i], 'click', this.buttonClickHandler.bind(this, i), this);\n }\n }\n if (!this.isBlazorServerRender() && !isNullOrUndefined(this.ftrTemplateContent)) {\n this.btnObj[i].appendTo(this.ftrTemplateContent.children[i]);\n if (this.buttons[i].isFlat) {\n this.btnObj[i].element.classList.add('e-flat');\n }\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n }\n };\n Dialog.prototype.buttonClickHandler = function (index) {\n this.trigger('buttons[' + index + '].click', {});\n };\n Dialog.prototype.setContent = function () {\n this.contentEle = this.createElement('div', { className: DLG_CONTENT, id: this.element.id + '_dialog-content' });\n if (this.innerContentElement) {\n this.contentEle.appendChild(this.innerContentElement);\n }\n else if (!isNullOrUndefined(this.content) && this.content !== '' || !this.initialRender) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (typeof (this.content) === 'string' && !isBlazor()) {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n else if (this.content instanceof HTMLElement) {\n this.contentEle.appendChild(this.content);\n }\n else {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n }\n if (!isNullOrUndefined(this.headerContent)) {\n this.element.insertBefore(this.contentEle, this.element.children[1]);\n }\n else {\n this.element.insertBefore(this.contentEle, this.element.children[0]);\n }\n if (this.height === 'auto') {\n if (!this.isBlazorServerRender() && Browser.isIE && this.element.style.width === '' && !isNullOrUndefined(this.width)) {\n this.element.style.width = formatUnit(this.width);\n }\n this.setMaxHeight();\n }\n };\n Dialog.prototype.setTemplate = function (template, toElement, prop) {\n var templateFn;\n var templateProps;\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (toElement.classList.contains(DLG_HEADER)) {\n templateProps = this.element.id + 'header';\n }\n else if (toElement.classList.contains(DLG_FOOTER_CONTENT)) {\n templateProps = this.element.id + 'footerTemplate';\n }\n else {\n templateProps = this.element.id + 'content';\n }\n var templateValue;\n if (!isNullOrUndefined(template.outerHTML)) {\n toElement.appendChild(template);\n }\n else if ((typeof template === 'string') || (typeof template !== 'string') || (isBlazor() && !this.isStringTemplate)) {\n if ((typeof template === 'string')) {\n template = this.sanitizeHelper(template);\n }\n if (this.isVue || typeof template !== 'string') {\n templateFn = compile(template);\n templateValue = template;\n }\n else {\n toElement.innerHTML = template;\n }\n }\n var fromElements = [];\n if (!isNullOrUndefined(templateFn)) {\n var isString = (isBlazor() &&\n !this.isStringTemplate && (templateValue).indexOf('
Blazor') === 0) ?\n this.isStringTemplate : true;\n for (var _i = 0, _a = templateFn({}, this, prop, templateProps, isString); _i < _a.length; _i++) {\n var item = _a[_i];\n fromElements.push(item);\n }\n append([].slice.call(fromElements), toElement);\n }\n };\n /*\n * @returns {void}\n * @hidden\n * @value\n */\n Dialog.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var dialogItem = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(dialogItem, dialogItem, beforeEvent);\n this.trigger('beforeSanitizeHtml', dialogItem);\n if (dialogItem.cancel && !isNullOrUndefined(dialogItem.helper)) {\n value = dialogItem.helper(value);\n }\n else if (!dialogItem.cancel) {\n value = SanitizeHtmlHelper.serializeValue(dialogItem, value);\n }\n }\n return value;\n };\n Dialog.prototype.setMaxHeight = function () {\n if (!this.allowMaxHeight) {\n return;\n }\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) && (this.targetEle.offsetHeight < window.innerHeight) ?\n (this.targetEle.offsetHeight - 20) + 'px' : (window.innerHeight - 20) + 'px';\n this.element.style.display = display;\n if (Browser.isIE && this.height === 'auto' && !isNullOrUndefined(this.contentEle)\n && this.element.offsetHeight < this.contentEle.offsetHeight) {\n this.element.style.height = 'inherit';\n }\n };\n Dialog.prototype.setEnableRTL = function () {\n if (!this.isBlazorServerRender()) {\n // eslint-disable-next-line\n this.enableRtl ? addClass([this.element], RTL) : removeClass([this.element], RTL);\n }\n if (!isNullOrUndefined(this.element.querySelector('.e-resize-handle'))) {\n removeResize();\n this.setResize();\n }\n };\n Dialog.prototype.setTargetContent = function () {\n var _this = this;\n if (isNullOrUndefined(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s|<(\\/?|\\/?)(!--!--)>/g, '') !== '';\n if (this.element.children.length > 0 || isContent) {\n this.innerContentElement = document.createDocumentFragment();\n [].slice.call(this.element.childNodes).forEach(function (el) {\n if (el.nodeType !== 8) {\n _this.innerContentElement.appendChild(el);\n }\n });\n }\n }\n };\n Dialog.prototype.setHeader = function () {\n if (this.headerEle) {\n this.headerEle.innerHTML = '';\n }\n else {\n this.headerEle = this.createElement('div', { id: this.element.id + '_title', className: DLG_HEADER });\n }\n this.createHeaderContent();\n this.headerContent.appendChild(this.headerEle);\n this.setTemplate(this.header, this.headerEle, 'header');\n attributes(this.element, { 'aria-labelledby': this.element.id });\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n };\n Dialog.prototype.setFooterTemplate = function () {\n if (this.ftrTemplateContent) {\n this.ftrTemplateContent.innerHTML = '';\n }\n else {\n this.ftrTemplateContent = this.createElement('div', {\n className: DLG_FOOTER_CONTENT\n });\n }\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setTemplate(this.footerTemplate, this.ftrTemplateContent, 'footerTemplate');\n }\n else {\n this.ftrTemplateContent.innerHTML = this.buttonContent.join('');\n }\n this.element.appendChild(this.ftrTemplateContent);\n };\n Dialog.prototype.createHeaderContent = function () {\n if (isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.createElement('div', { id: this.element.id + '_dialog-header', className: DLG_HEADER_CONTENT });\n }\n };\n Dialog.prototype.renderCloseIcon = function () {\n if (this.showCloseIcon) {\n this.closeIcon = this.createElement('button', { className: DLG_CLOSE_ICON_BTN, attrs: { type: 'button' } });\n this.closeIconBtnObj = new Button({ cssClass: 'e-flat', iconCss: DLG_CLOSE_ICON + ' ' + ICON });\n this.closeIconTitle();\n if (!isNullOrUndefined(this.headerContent)) {\n prepend([this.closeIcon], this.headerContent);\n }\n else {\n this.createHeaderContent();\n prepend([this.closeIcon], this.headerContent);\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n }\n this.closeIconBtnObj.appendTo(this.closeIcon);\n }\n };\n Dialog.prototype.closeIconTitle = function () {\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n this.closeIcon.setAttribute('title', closeIconTitle);\n this.closeIcon.setAttribute('aria-label', closeIconTitle);\n };\n Dialog.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n removeClass([this.dlgContainer], oldCSSClass.split(' '));\n }\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n addClass([this.dlgContainer], this.cssClass.split(' '));\n }\n }\n };\n Dialog.prototype.setIsModal = function () {\n this.dlgContainer = this.createElement('div', { className: DLG_CONTAINER });\n this.setCSSClass();\n this.element.classList.remove(DLG_SHOW);\n this.element.parentNode.insertBefore(this.dlgContainer, this.element);\n this.dlgContainer.appendChild(this.element);\n addClass([this.element], MODAL_DLG);\n this.dlgOverlay = this.createElement('div', { className: DLG_OVERLAY });\n this.dlgOverlay.style.zIndex = (this.zIndex - 1).toString();\n this.dlgContainer.appendChild(this.dlgOverlay);\n };\n Dialog.prototype.getValidFocusNode = function (items) {\n var node;\n for (var u = 0; u < items.length; u++) {\n node = items[u];\n if ((node.clientHeight > 0 || (node.tagName.toLowerCase() === 'a' && node.hasAttribute('href'))) && node.tabIndex > -1 &&\n !node.disabled && !this.disableElement(node, '[disabled],[aria-disabled=\"true\"],[type=\"hidden\"]')) {\n return node;\n }\n else {\n node = null;\n }\n }\n return node;\n };\n Dialog.prototype.focusableElements = function (content) {\n if (!isNullOrUndefined(content)) {\n var value = 'input,select,textarea,button,a,[contenteditable=\"true\"],[tabindex]';\n var items = content.querySelectorAll(value);\n return this.getValidFocusNode(items);\n }\n return null;\n };\n Dialog.prototype.getAutoFocusNode = function (container) {\n var node = container.querySelector('.' + DLG_CLOSE_ICON_BTN);\n var value = '[autofocus]';\n var items = container.querySelectorAll(value);\n var validNode = this.getValidFocusNode(items);\n if (isBlazor()) {\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n if (!isNullOrUndefined(validNode)) {\n node = validNode;\n }\n else {\n validNode = this.focusableElements(this.contentEle);\n if (!isNullOrUndefined(validNode)) {\n return node = validNode;\n }\n else if (!isNullOrUndefined(this.primaryButtonEle)) {\n return this.element.querySelector('.' + DLG_PRIMARY_BUTTON);\n }\n }\n return node;\n };\n Dialog.prototype.disableElement = function (element, t) {\n var elementMatch = element ? element.matches || element.webkitMatchesSelector || element.msGetRegionContent : null;\n if (elementMatch) {\n for (; element; element = element.parentNode) {\n if (element instanceof Element && elementMatch.call(element, t)) {\n /* istanbul ignore next */\n return element;\n }\n }\n }\n return null;\n };\n Dialog.prototype.focusContent = function () {\n var element = this.getAutoFocusNode(this.element);\n var node = !isNullOrUndefined(element) ? element : this.element;\n var userAgent = Browser.userAgent;\n if (userAgent.indexOf('MSIE ') > 0 || userAgent.indexOf('Trident/') > 0) {\n this.element.focus();\n }\n node.focus();\n this.unBindEvent(this.element);\n this.bindEvent(this.element);\n };\n Dialog.prototype.bindEvent = function (element) {\n EventHandler.add(element, 'keydown', this.keyDown, this);\n };\n Dialog.prototype.unBindEvent = function (element) {\n EventHandler.remove(element, 'keydown', this.keyDown);\n };\n Dialog.prototype.updateSanitizeContent = function () {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = this.sanitizeHelper(this.content);\n }\n };\n Dialog.prototype.isBlazorServerRender = function () {\n return isBlazor() && this.isServerRendered;\n };\n /**\n * Module required function\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getModuleName = function () {\n return 'dialog';\n };\n /**\n * Called internally if any of the property value changed\n *\n * @param {DialogModel} newProp - specifies the new property\n * @param {DialogModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Dialog.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!isNullOrUndefined(this.content) && this.content !== '') {\n if (this.isBlazorServerRender()) {\n this.contentEle = this.element.querySelector('.e-dlg-content');\n }\n if (!isNullOrUndefined(this.contentEle) && this.contentEle.getAttribute('role') !== 'dialog') {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = '';\n }\n if (typeof (this.content) === 'function') {\n this.clearTemplate(['content']);\n detach(this.contentEle);\n this.contentEle = null;\n this.setContent();\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n typeof (this.content) === 'string' ? (this.isBlazorServerRender() && (this.contentEle.innerText === '')) ?\n this.contentEle.insertAdjacentHTML('beforeend', this.sanitizeHelper(this.content)) :\n this.updateSanitizeContent() : this.contentEle.appendChild(this.content);\n }\n this.setMaxHeight();\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-dlg-content'))) {\n this.setContent();\n }\n }\n }\n else if (!isNullOrUndefined(this.contentEle)) {\n detach(this.contentEle);\n this.contentEle = null;\n }\n break;\n case 'header':\n if (this.header === '' || isNullOrUndefined(this.header)) {\n if (this.headerEle) {\n detach(this.headerEle);\n this.headerEle = null;\n }\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-dlg-header-content'))) {\n this.setHeader();\n }\n }\n break;\n case 'footerTemplate':\n if (this.footerTemplate === '' || isNullOrUndefined(this.footerTemplate)) {\n if (!this.ftrTemplateContent) {\n return;\n }\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n this.buttons = [{}];\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-footer-content'))) {\n this.setFooterTemplate();\n }\n this.buttons = [{}];\n }\n break;\n case 'showCloseIcon':\n if (this.element.getElementsByClassName(DLG_CLOSE_ICON).length > 0) {\n if (!this.showCloseIcon && (this.header === '' || isNullOrUndefined(this.header))) {\n detach(this.headerContent);\n this.headerContent = null;\n }\n else if (!this.showCloseIcon) {\n detach(this.closeIcon);\n }\n else {\n if (this.isBlazorServerRender()) {\n this.wireEvents();\n }\n }\n }\n else {\n if (!this.isBlazorServerRender()) {\n this.renderCloseIcon();\n }\n this.wireEvents();\n }\n break;\n case 'locale':\n if (this.showCloseIcon) {\n this.closeIconTitle();\n }\n break;\n case 'visible':\n // eslint-disable-next-line\n this.visible ? this.show() : this.hide();\n break;\n case 'isModal':\n this.updateIsModal();\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'zIndex':\n this.popupObj.zIndex = this.zIndex;\n if (this.isModal) {\n this.setOverlayZindex(this.zIndex);\n }\n if (this.element.style.zIndex !== this.zIndex.toString()) {\n this.calculatezIndex = false;\n }\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'buttons': {\n var buttonCount = this.buttons.length;\n if (!isNullOrUndefined(this.ftrTemplateContent) && !this.isBlazorServerRender()) {\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n }\n for (var i = 0; i < buttonCount; i++) {\n if (!isNullOrUndefined(this.buttons[i].buttonModel)) {\n this.footerTemplate = '';\n this.setButton();\n }\n }\n break;\n }\n case 'allowDragging':\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n else {\n this.dragObj.destroy();\n }\n break;\n case 'target':\n this.setTarget(newProp.target);\n break;\n case 'position':\n this.checkPositionData();\n if (this.isModal) {\n var positionX = isNullOrUndefined(oldProp.position.X) ? this.position.X : oldProp.position.X;\n var positionY = isNullOrUndefined(oldProp.position.Y) ? this.position.Y : oldProp.position.Y;\n if (this.dlgContainer.classList.contains('e-dlg-' + positionX + '-' + positionY)) {\n this.dlgContainer.classList.remove('e-dlg-' + positionX + '-' + positionY);\n }\n }\n this.positionChange();\n break;\n case 'enableRtl':\n this.setEnableRTL();\n break;\n case 'enableResize':\n this.setResize();\n break;\n case 'minHeight':\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n break;\n }\n }\n };\n Dialog.prototype.setTarget = function (target) {\n this.popupObj.relateTo = target;\n this.target = target;\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n if (this.dragObj) {\n this.dragObj.dragArea = this.targetEle;\n }\n this.setMaxHeight();\n if (this.isModal) {\n this.updateIsModal();\n }\n if (this.enableResize) {\n this.setResize();\n }\n };\n Dialog.prototype.updateIsModal = function () {\n this.element.setAttribute('aria-modal', this.isModal ? 'true' : 'false');\n if (this.isModal) {\n if (isNullOrUndefined(this.dlgOverlay)) {\n this.setIsModal();\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n if (!isNullOrUndefined(this.targetEle)) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n }\n }\n else {\n removeClass([this.element], MODAL_DLG);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n detach(this.dlgOverlay);\n while (this.dlgContainer.firstChild) {\n this.dlgContainer.parentElement.insertBefore(this.dlgContainer.firstChild, this.dlgContainer);\n }\n this.dlgContainer.parentElement.removeChild(this.dlgContainer);\n }\n if (this.visible) {\n this.show();\n }\n this.positionChange();\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n Dialog.prototype.setzIndex = function (zIndexElement, setPopupZindex) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var currentzIndex = getZindexPartial(zIndexElement);\n this.zIndex = currentzIndex > this.zIndex ? currentzIndex : this.zIndex;\n this.isProtectedOnChange = prevOnChange;\n if (setPopupZindex) {\n this.popupObj.zIndex = this.zIndex;\n }\n };\n Dialog.prototype.windowResizeHandler = function () {\n setMaxWidth(this.targetEle.clientWidth);\n setMaxHeight(this.targetEle.clientHeight);\n this.setMaxHeight();\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To destroy the widget\n *\n * @returns {void}\n */\n Dialog.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n var classArray = [RTL, MODAL_DLG, DLG_RESIZABLE, DLG_RESTRICT_LEFT_VALUE, FULLSCREEN, DEVICE];\n var attrs = ['role', 'aria-modal', 'aria-labelledby', 'aria-describedby', 'aria-grabbed', 'tabindex', 'style'];\n removeClass([this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n if (!isNullOrUndefined(this.element) && this.element.classList.contains(FULLSCREEN)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n if (this.isModal) {\n removeClass([(!isNullOrUndefined(this.targetEle) ? this.targetEle : document.body)], SCROLL_DISABLED);\n }\n this.unWireEvents();\n if (!isNullOrUndefined(this.btnObj)) {\n for (var i = 0; i < this.btnObj.length; i++) {\n this.btnObj[i].destroy();\n }\n }\n if (!isNullOrUndefined(this.closeIconBtnObj)) {\n this.closeIconBtnObj.destroy();\n }\n if (!isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n if (!isNullOrUndefined(this.popupObj.element) && this.popupObj.element.classList.contains(POPUP_ROOT)) {\n this.popupObj.destroy();\n }\n removeClass([this.element], classArray);\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n removeClass([this.element], this.cssClass.split(' '));\n }\n if (!isNullOrUndefined(this.refElement) && !isNullOrUndefined(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore((this.isModal ? this.dlgContainer : this.element), this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (this.isModal && !this.isBlazorServerRender()) {\n detach(this.dlgOverlay);\n this.dlgContainer.parentNode.insertBefore(this.element, this.dlgContainer);\n detach(this.dlgContainer);\n }\n if (!this.isBlazorServerRender()) {\n this.element.innerHTML = this.clonedEle.innerHTML;\n }\n if (this.isBlazorServerRender()) {\n if (!isNullOrUndefined(this.element.children)) {\n for (var i = 0; i <= this.element.children.length; i++) {\n i = i - i;\n detach(this.element.children[i]);\n }\n }\n }\n for (var i = 0; i < attrs.length; i++) {\n this.element.removeAttribute(attrs[i]);\n }\n if (!this.isBlazorServerRender()) {\n _super.prototype.destroy.call(this);\n }\n else {\n this.isDestroyed = true;\n }\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n Dialog.prototype.wireWindowResizeEvent = function () {\n window.addEventListener('resize', this.windowResizeHandler.bind(this));\n };\n Dialog.prototype.unWireWindowResizeEvent = function () {\n window.removeEventListener('resize', this.windowResizeHandler.bind(this));\n };\n /**\n * Binding event to the element while widget creation\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.wireEvents = function () {\n if (this.isBlazorServerRender() && this.showCloseIcon) {\n this.closeIcon = this.element.getElementsByClassName('e-dlg-closeicon-btn')[0];\n }\n if (this.showCloseIcon) {\n EventHandler.add(this.closeIcon, 'click', this.closeIconClickEventHandler, this);\n }\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n /**\n * Unbinding event to the element while widget destroy\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.unWireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.remove(this.closeIcon, 'click', this.closeIconClickEventHandler);\n }\n if (this.isModal) {\n EventHandler.remove(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler);\n }\n if (this.buttons.length > 0 && !isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\n for (var i = 0; i < this.buttons.length; i++) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.remove(this.ftrTemplateContent.children[i], 'click', this.buttons[i].click);\n }\n }\n }\n };\n /**\n * Refreshes the dialog's position when the user changes its header and footer height/width dynamically.\n *\n * @returns {void}\n */\n Dialog.prototype.refreshPosition = function () {\n this.popupObj.refreshPosition();\n };\n /**\n * Returns the current width and height of the Dialog\n *\n * @returns {DialogDimension}- returns the dialog element Dimension.\n * @public\n */\n Dialog.prototype.getDimension = function () {\n var dialogWidth = this.element.offsetWidth;\n var dialogHeight = this.element.offsetHeight;\n return { width: dialogWidth, height: dialogHeight };\n };\n /**\n * Opens the dialog if it is in hidden state.\n * To open the dialog with full screen width, set the parameter to true.\n *\n * @param { boolean } isFullScreen - Enable the fullScreen Dialog.\n * @returns {void}\n */\n Dialog.prototype.show = function (isFullScreen) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (!this.element.classList.contains(DLG_SHOW) || (!isNullOrUndefined(isFullScreen))) {\n if (!isNullOrUndefined(isFullScreen)) {\n this.fullScreen(isFullScreen);\n }\n var eventArgs_1 = isBlazor() ? {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n maxHeight: this.element.style.maxHeight\n } : {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n target: this.target,\n maxHeight: this.element.style.maxHeight\n };\n this.trigger('beforeOpen', eventArgs_1, function (beforeOpenArgs) {\n if (!beforeOpenArgs.cancel) {\n if (_this.element.style.maxHeight !== eventArgs_1.maxHeight) {\n _this.allowMaxHeight = false;\n _this.element.style.maxHeight = eventArgs_1.maxHeight;\n }\n _this.storeActiveElement = document.activeElement;\n _this.element.tabIndex = -1;\n if (_this.isModal && (!isNullOrUndefined(_this.dlgOverlay))) {\n _this.dlgOverlay.style.display = 'block';\n _this.dlgContainer.style.display = 'flex';\n removeClass([_this.dlgOverlay], 'e-fade');\n if (!isNullOrUndefined(_this.targetEle)) {\n if (_this.targetEle === document.body) {\n _this.dlgContainer.style.position = 'fixed';\n }\n else {\n _this.dlgContainer.style.position = 'absolute';\n }\n _this.dlgOverlay.style.position = 'absolute';\n _this.element.style.position = 'relative';\n addClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n else {\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n var openAnimation = {\n name: _this.animationSettings.effect + 'In',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n var zIndexElement = (_this.isModal) ? _this.element.parentElement : _this.element;\n if (_this.calculatezIndex) {\n _this.setzIndex(zIndexElement, true);\n setStyleAttribute(_this.element, { 'zIndex': _this.zIndex });\n if (_this.isModal) {\n _this.setOverlayZindex(_this.zIndex);\n }\n }\n // eslint-disable-next-line\n _this.animationSettings.effect === 'None' ? _this.popupObj.show() : _this.popupObj.show(openAnimation);\n _this.dialogOpen = true;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = true;\n _this.preventVisibility = true;\n _this.isProtectedOnChange = prevOnChange;\n }\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Closes the dialog if it is in visible state.\n *\n * @param { Event } event - specifies the event\n * @returns {void}\n */\n Dialog.prototype.hide = function (event) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (this.preventVisibility) {\n var eventArgs = isBlazor() ? {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event\n } : {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n target: this.target,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event,\n closedBy: this.dlgClosedBy\n };\n this.closeArgs = eventArgs;\n this.trigger('beforeClose', eventArgs, function (beforeCloseArgs) {\n if (!beforeCloseArgs.cancel) {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.targetEle)) {\n removeClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n if (document.body.classList.contains(DLG_TARGET) &&\n document.body.classList.contains(SCROLL_DISABLED)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n var closeAnimation = {\n name: _this.animationSettings.effect + 'Out',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n // eslint-disable-next-line\n _this.animationSettings.effect === 'None' ? _this.popupObj.hide() : _this.popupObj.hide(closeAnimation);\n _this.dialogOpen = false;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = false;\n _this.preventVisibility = false;\n _this.isProtectedOnChange = prevOnChange;\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n }\n };\n // eslint-disable-next-line\n /**\n * Specifies to view the Full screen Dialog.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.fullScreen = function (args) {\n /* eslint-disable */\n var top = this.element.offsetTop;\n var left = this.element.offsetLeft;\n /* eslint-enable */\n if (args) {\n this.element.style.top = document.scrollingElement.scrollTop + 'px';\n addClass([this.element], FULLSCREEN);\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) ?\n (this.targetEle.offsetHeight) + 'px' : (window.innerHeight) + 'px';\n this.element.style.display = display;\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && !isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n }\n else {\n removeClass([this.element], FULLSCREEN);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n }\n return args;\n };\n /**\n * Returns the dialog button instances.\n * Based on that, you can dynamically change the button states.\n *\n * @param { number } index - Index of the button.\n * @returns {Button} - returns the button element\n */\n Dialog.prototype.getButtons = function (index) {\n if (!isNullOrUndefined(index)) {\n return this.btnObj[index];\n }\n return this.btnObj;\n };\n __decorate([\n Property('')\n ], Dialog.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"showCloseIcon\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"isModal\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enableResize\", void 0);\n __decorate([\n Property(['South-East'])\n ], Dialog.prototype, \"resizeHandles\", void 0);\n __decorate([\n Property('auto')\n ], Dialog.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"minHeight\", void 0);\n __decorate([\n Property('100%')\n ], Dialog.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"cssClass\", void 0);\n __decorate([\n Property(1000)\n ], Dialog.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], Dialog.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"allowDragging\", void 0);\n __decorate([\n Collection([{}], ButtonProps)\n ], Dialog.prototype, \"buttons\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"closeOnEscape\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], Dialog.prototype, \"animationSettings\", void 0);\n __decorate([\n Complex({ X: 'center', Y: 'center' }, PositionData)\n ], Dialog.prototype, \"position\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"overlayClick\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"destroyed\", void 0);\n Dialog = __decorate([\n NotifyPropertyChanges\n ], Dialog);\n return Dialog;\n}(Component));\nexport { Dialog };\n/**\n * Base for creating Alert and Confirmation Dialog through util method.\n */\n// eslint-disable-next-line\nexport var DialogUtility;\n(function (DialogUtility) {\n /**\n * An alert dialog box is used to display warning like messages to the users.\n * ```\n * Eg : DialogUtility.alert('Alert message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {AlertDialogArgs} args - specifies the string\n * @returns {Dialog} - returns the dialog element.\n */\n function alert(args) {\n // eslint-disable-next-line\n var dialogComponent;\n var dialogElement = createElement('div', { 'className': DLG_UTIL_ALERT });\n document.body.appendChild(dialogElement);\n var alertDialogObj;\n var okButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n alertDialogObj = createDialog({ content: args,\n position: { X: 'center', Y: 'top' },\n isModal: true, header: DLG_UTIL_DEFAULT_TITLE,\n buttons: okButtonModel }, dialogElement);\n }\n else {\n alertDialogObj = createDialog(alertOptions(args), dialogElement);\n }\n alertDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(alertDialogObj);\n }\n alertDialogObj.destroy();\n if (alertDialogObj.element.classList.contains('e-dlg-modal')) {\n alertDialogObj.element.parentElement.remove();\n alertDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n alertDialogObj.element.remove();\n }\n };\n return alertDialogObj;\n }\n DialogUtility.alert = alert;\n /**\n * A confirm dialog displays a specified message along with ‘OK’ and ‘Cancel’ button.\n * ```\n * Eg : DialogUtility.confirm('Confirm dialog message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {ConfirmDialogArgs} args - specifies the args\n * @returns {Dialog} - returns te element\n */\n function confirm(args) {\n // eslint-disable-next-line\n var dialogComponent;\n var dialogElement = createElement('div', { 'className': DLG_UTIL_CONFIRM });\n document.body.appendChild(dialogElement);\n var confirmDialogObj;\n var okCancelButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }, {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n confirmDialogObj = createDialog({ position: { X: 'center', Y: 'top' }, content: args, isModal: true,\n header: DLG_UTIL_DEFAULT_TITLE, buttons: okCancelButtonModel\n }, dialogElement);\n }\n else {\n confirmDialogObj = createDialog(confirmOptions(args), dialogElement);\n }\n confirmDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(confirmDialogObj);\n }\n confirmDialogObj.destroy();\n if (confirmDialogObj.element.classList.contains('e-dlg-modal')) {\n confirmDialogObj.element.parentElement.remove();\n confirmDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n confirmDialogObj.element.remove();\n }\n };\n return confirmDialogObj;\n }\n DialogUtility.confirm = confirm;\n // eslint-disable-next-line\n function createDialog(options, element) {\n var dialogObject = new Dialog(options);\n dialogObject.appendTo(element);\n return dialogObject;\n }\n // eslint-disable-next-line\n function alertOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setAlertButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function confirmOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setConfirmButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function formOptions(options, option) {\n options.header = !isNullOrUndefined(option.title) ? option.title : DLG_UTIL_DEFAULT_TITLE;\n options.content = !isNullOrUndefined(option.content) ? option.content : '';\n options.isModal = !isNullOrUndefined(option.isModal) ? option.isModal : true;\n options.showCloseIcon = !isNullOrUndefined(option.showCloseIcon) ? option.showCloseIcon : false;\n options.allowDragging = !isNullOrUndefined(option.isDraggable) ? option.isDraggable : false;\n options.closeOnEscape = !isNullOrUndefined(option.closeOnEscape) ? option.closeOnEscape : false;\n options.position = !isNullOrUndefined(option.position) ? option.position : { X: 'center', Y: 'top' };\n options.animationSettings = !isNullOrUndefined(option.animationSettings) ? option.animationSettings :\n { effect: 'Fade', duration: 400, delay: 0 };\n options.cssClass = !isNullOrUndefined(option.cssClass) ? option.cssClass : '';\n options.zIndex = !isNullOrUndefined(option.zIndex) ? option.zIndex : 1000;\n // eslint-disable-next-line\n options.open = !isNullOrUndefined(option.open) ? option.open : null;\n options.width = !isNullOrUndefined(option.width) ? option.width : 'auto';\n options.height = !isNullOrUndefined(option.height) ? option.height : 'auto';\n return options;\n }\n // eslint-disable-next-line\n function setAlertButtonModel(options, option) {\n var alertButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, alertButtonModel[0]);\n }\n else {\n options.buttons = alertButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function setConfirmButtonModel(options, option) {\n var okButtonModel = {\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n };\n var cancelButtonModel = {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n };\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, okButtonModel);\n }\n else {\n options.buttons[0] = okButtonModel;\n }\n if (!isNullOrUndefined(option.cancelButton)) {\n options.buttons[1] = formButtonModel(options.buttons[1], option.cancelButton, cancelButtonModel);\n }\n else {\n options.buttons[1] = cancelButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function formButtonModel(buttonModel, option, buttonPropModel) {\n var buttonProps = buttonPropModel;\n if (!isNullOrUndefined(option.text)) {\n buttonProps.buttonModel.content = option.text;\n }\n if (!isNullOrUndefined(option.icon)) {\n buttonProps.buttonModel.iconCss = option.icon;\n }\n if (!isNullOrUndefined(option.cssClass)) {\n buttonProps.buttonModel.cssClass = option.cssClass;\n }\n if (!isNullOrUndefined(option.click)) {\n buttonProps.click = option.click;\n }\n return buttonProps;\n }\n})(DialogUtility || (DialogUtility = {}));\n","import { createElement, isNullOrUndefined, Browser, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\n/**\n * TextLayer module is used to handle the text content on the control.\n *\n * @hidden\n */\nvar TextLayer = /** @class */ (function () {\n /**\n * @param {PdfViewer} pdfViewer - The PdfViewer.\n * @param {PdfViewerBase} pdfViewerBase - The PdfViewerBase.\n * @private\n */\n function TextLayer(pdfViewer, pdfViewerBase) {\n var _this = this;\n // eslint-disable-next-line\n this.textBoundsArray = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.characterBound = [];\n /**\n * @returns {void}\n */\n this.closeNotification = function () {\n _this.notifyDialog.hide();\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param {number} pageNumber - The pageNumber.\n * @param {number} pageWidth - The pageWidth.\n * @param {number} pageHeight - The pageHeight.\n * @param {HTMLElement} pageDiv - The pageDiv.\n * @returns {HTMLElement} - The HTMLElement.\n * @private\n */\n TextLayer.prototype.addTextLayer = function (pageNumber, pageWidth, pageHeight, pageDiv) {\n var textDiv = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n var textLayer;\n if (!textDiv) {\n textLayer = createElement('div', { id: this.pdfViewer.element.id + '_textLayer_' + pageNumber, className: 'e-pv-text-layer' });\n textLayer.style.width = pageWidth + 'px';\n textLayer.style.height = pageHeight + 'px';\n if (pageDiv) {\n pageDiv.appendChild(textLayer);\n }\n }\n this.pdfViewerBase.applyElementStyles(textLayer, pageNumber);\n return textLayer;\n };\n /**\n * @param {number} pageNumber - The pageNumber.\n * @param {any} textContents - The textContents.\n * @param {any} textBounds - The textBounds.\n * @param {any} rotation - The rotation.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n TextLayer.prototype.renderTextContents = function (pageNumber, textContents, textBounds, rotation, rtldoc) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n var canvasElement = createElement(\"canvas\");\n var linebounds = [];\n var lineContent = [];\n var yValue;\n var heightValue;\n if (textBounds.length > 1) {\n if (textBounds[0].Width === 0 && textBounds.length > 2) {\n yValue = textBounds[1].Y;\n heightValue = textBounds[1].Height;\n }\n else {\n yValue = textBounds[0].Y;\n heightValue = textBounds[0].Height;\n }\n }\n var idNumber = 0;\n if (canvasElement && textLayer && textLayer.childNodes.length === 0) {\n for (var i = 0; i < textContents.length; i++) {\n // eslint-disable-next-line\n if ((!(textContents[i].includes(\"\\r\\n\")) && !(textContents[i].includes(\"\\u0002\"))) && i != textBounds.length - 1 && rotation === 0 && !rtldoc) {\n linebounds.push(textBounds[parseInt(i.toString(), 10)]);\n lineContent.push(textContents[parseInt(i.toString(), 10)]);\n if (yValue > textBounds[parseInt(i.toString(), 10)].Y && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n yValue = textBounds[parseInt(i.toString(), 10)].Y;\n }\n if (heightValue < textBounds[parseInt(i.toString(), 10)].Height && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n heightValue = textBounds[parseInt(i.toString(), 10)].Height;\n }\n }\n else {\n linebounds.push(textBounds[parseInt(i.toString(), 10)]);\n lineContent.push(textContents[parseInt(i.toString(), 10)]);\n if (yValue > textBounds[parseInt(i.toString(), 10)].Y && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n yValue = textBounds[parseInt(i.toString(), 10)].Y;\n }\n if (heightValue < textBounds[parseInt(i.toString(), 10)].Height && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n heightValue = textBounds[parseInt(i.toString(), 10)].Height;\n }\n for (var j = 0; j < linebounds.length; j++) {\n var bounds = linebounds[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + '_text_' + pageNumber + '_' + idNumber, className: 'e-pv-text', attrs: { 'tabindex': '-1' } });\n var textContent = lineContent[parseInt(j.toString(), 10)];\n if (textContent === \" \" && j != linebounds.length - 1 && j != 0) {\n bounds.Height = linebounds[j - 1].Height;\n bounds.Y = linebounds[j - 1].Y;\n }\n textDiv.textContent = textContent.replace(/ /g, ' ');\n // eslint-disable-next-line\n var newLine = lineContent[j].replace(/ +/g, ' ');\n if (newLine !== ' ') {\n textDiv.style.whiteSpace = 'pre';\n }\n if (bounds.Width === 0 && j != linebounds.length - 1 && j != 0) {\n if (linebounds[j + 1].X - (linebounds[j - 1].X + linebounds[j - 1].Width) < 30 && (!lineContent[j - 1].includes(\"\\r\\n\") && !(textContents[parseInt(j.toString(), 10)].includes(\"\\u0002\")))) {\n bounds.Width = linebounds[j + 1].X - (linebounds[j - 1].X + linebounds[j - 1].Width);\n bounds.X = linebounds[j - 1].X + linebounds[j - 1].Width;\n if (bounds.Width < 0) {\n bounds.Width = 0;\n }\n else {\n textDiv.style.whiteSpace = 'pre';\n }\n }\n }\n if ((j != 0 || linebounds.length - 1 === 0 || (bounds.Y - yValue) > 20 && bounds.Width != 0) && idNumber != 0 && ((textBounds[idNumber - 1].Y - textBounds[parseInt(idNumber.toString(), 10)].Y) > 11 || ((textBounds[parseInt(idNumber.toString(), 10)].Y - textBounds[idNumber - 1].Y) > 11)) && lineContent[parseInt(j.toString(), 10)] != \" \") {\n yValue = linebounds[parseInt(j.toString(), 10)].Y;\n heightValue = linebounds[parseInt(j.toString(), 10)].Height;\n }\n if (bounds) {\n bounds.Y = yValue;\n bounds.Height = heightValue;\n this.setStyleToTextDiv(textDiv, bounds.X, bounds.Y, bounds.Bottom, bounds.Width, bounds.Height);\n }\n this.setTextElementProperties(textDiv);\n var context = canvasElement.getContext('2d');\n context.font = textDiv.style.fontSize + ' ' + textDiv.style.fontFamily;\n var contextWidth = context.measureText(lineContent[parseInt(j.toString(), 10)].replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n if (bounds) {\n var scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation);\n }\n textLayer.appendChild(textDiv);\n this.resizeExcessDiv(textLayer, textDiv);\n // eslint-disable-next-line max-len\n if (this.pdfViewer.textSelectionModule && this.pdfViewer.enableTextSelection && !this.pdfViewerBase.isTextSelectionDisabled && textDiv.className !== 'e-pdfviewer-formFields'\n && textDiv.className !== 'e-pdfviewer-signatureformfields' && textDiv.className !== 'e-pdfviewer-signatureformfields-signature') {\n textDiv.classList.add('e-pv-cursor');\n }\n idNumber++;\n }\n linebounds = [];\n lineContent = [];\n if (i < textBounds.length - 1) {\n if (textBounds[i + 1].Width === 0 && !isNullOrUndefined(textBounds[i + 2])) {\n yValue = textBounds[i + 2].Y;\n heightValue = textBounds[i + 2].Height;\n }\n else {\n yValue = textBounds[i + 1].Y;\n heightValue = textBounds[i + 1].Height;\n }\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param textContents\n * @param textBounds\n * @param rotation\n * @param isTextSearch\n * @param pageNumber\n * @param textContents\n * @param textBounds\n * @param rotation\n * @param isTextSearch\n * @private\n */\n // eslint-disable-next-line\n TextLayer.prototype.resizeTextContents = function (pageNumber, textContents, textBounds, rotation, isTextSearch) {\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n var canvasElement = createElement(\"canvas\");\n if (canvasElement) {\n for (var i = 0; i < textLayer.childNodes.length; i++) {\n // eslint-disable-next-line\n var bounds = void 0;\n var textDiv = this.pdfViewerBase.getElement('_text_' + pageNumber + '_' + i);\n if (isNullOrUndefined(textDiv)) {\n break;\n }\n if (textBounds) {\n bounds = textBounds[parseInt(i.toString(), 10)];\n if (bounds) {\n this.setStyleToTextDiv(textDiv, bounds.X, bounds.Y, bounds.Bottom, bounds.Width, bounds.Height);\n }\n }\n this.setTextElementProperties(textDiv);\n var context = canvasElement.getContext('2d');\n context.font = textDiv.style.fontSize + ' ' + textDiv.style.fontFamily;\n var contextWidth = void 0;\n if (textContents) {\n var textContent = textContents[parseInt(i.toString(), 10)];\n if (textContent) {\n contextWidth = context.measureText(textContent.replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n }\n }\n else {\n contextWidth = context.measureText(textDiv.textContent.replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n }\n if (bounds) {\n var scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation);\n }\n this.resizeExcessDiv(textLayer, textDiv);\n }\n }\n else {\n textLayer.parentElement.removeChild(textLayer);\n }\n if (this.pdfViewer.textSearch) {\n if (!isTextSearch) {\n this.pdfViewer.textSearch.resizeSearchElements(pageNumber);\n }\n }\n };\n TextLayer.prototype.applyTextRotation = function (scale, textDiv, rotation, textRotation) {\n var scaleString = 'scaleX(' + scale + ')';\n if (rotation === 0) {\n if (textRotation >= 0 && textRotation <= 90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 1) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(90deg) ' + scaleString;\n }\n else if (textRotation === -90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 2) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(180deg) ' + scaleString;\n }\n else if (textRotation === 180) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 3) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(-90deg) ' + scaleString;\n }\n else if (textRotation === 90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n };\n TextLayer.prototype.setTextElementProperties = function (textDiv) {\n textDiv.style.fontFamily = 'serif';\n textDiv.style.transformOrigin = '0%';\n };\n /**\n * @param {number} pageNumber - The pageNumber.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.resizeTextContentsOnZoom = function (pageNumber) {\n // eslint-disable-next-line max-len\n var renderObject = window.sessionStorage.getItem(this.pdfViewerBase.getDocumentId() + '_' + pageNumber + '_' + this.getPreviousZoomFactor());\n // eslint-disable-next-line\n var textBounds = [];\n var textContents = [];\n // eslint-disable-next-line\n var rotation;\n if (renderObject) {\n // eslint-disable-next-line\n var data = JSON.parse(renderObject);\n // eslint-disable-next-line\n textBounds = data['textBounds'];\n // eslint-disable-next-line\n textContents = data['textContent'];\n // eslint-disable-next-line\n rotation = data['rotation'];\n }\n if (textBounds.length !== 0) {\n this.textBoundsArray.push({ pageNumber: pageNumber, textBounds: textBounds });\n this.resizeTextContents(pageNumber, textContents, textBounds, rotation);\n }\n else {\n // eslint-disable-next-line\n var textElements = this.textBoundsArray.filter(function (obj) {\n return obj.pageNumber === pageNumber;\n });\n if (textElements) {\n if (textElements.length !== 0) {\n // eslint-disable-next-line\n textBounds = textElements[0]['textBounds'];\n this.resizeTextContents(pageNumber, null, textBounds, rotation);\n }\n }\n }\n };\n TextLayer.prototype.resizeExcessDiv = function (textLayer, textDiv) {\n var textLayerPosition = textLayer.getBoundingClientRect();\n var textDivPosition = textDiv.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if ((textDivPosition.width + textDivPosition.left) >= (textLayerPosition.width + textLayerPosition.left) || (textDivPosition.width > textLayerPosition.width)) {\n // 'auto' width is set to reset the size of the div to its contents.\n textDiv.style.width = 'auto';\n // Client width gets reset by 'auto' width property which has the width of the content.\n textDiv.style.width = textDiv.clientWidth + 'px';\n }\n };\n /**\n * @private\n * @param {boolean} isPinchZoomed - The isPinchZoomed.\n * @returns {void}\n */\n TextLayer.prototype.clearTextLayers = function (isPinchZoomed) {\n var lowerPageValue = this.pdfViewerBase.currentPageNumber - 3;\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n var higherPageValue = this.pdfViewerBase.currentPageNumber + 1;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n textLayers[parseInt(i.toString(), 10)].style.display = 'block';\n if (this.pdfViewerBase.getMagnified() && (this.getTextSelectionStatus() || this.getTextSearchStatus())) {\n // eslint-disable-next-line radix\n var pageNumber = parseInt(textLayers[parseInt(i.toString(), 10)].id.split('_textLayer_')[1]);\n if (!(((lowerPageValue + 1) <= pageNumber) && (pageNumber <= (higherPageValue - 1)))) {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n }\n else if (this.pdfViewerBase.getPinchZoomed()) {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n else {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n }\n };\n TextLayer.prototype.removeElement = function (element, isPinchZoomed) {\n if (isPinchZoomed) {\n this.removeForeignObjects(element);\n }\n else {\n if (Browser.isIE) {\n if (element.parentElement) {\n element.parentElement.removeChild(element);\n }\n else if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n else {\n element.remove();\n }\n }\n };\n TextLayer.prototype.removeForeignObjects = function (element) {\n // eslint-disable-next-line\n var childElement = element.getElementsByClassName('foreign-object');\n if (childElement) {\n for (var i = 0; i < childElement.length; i++) {\n if (Browser.isDevice) {\n //Remove the outer div element of checkbox and other formfields in pichzoom\n if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-text-layer' && childElement[0].parentElement.className !== 'e-pv-checkbox-outer-div') {\n element.removeChild(childElement[0]);\n }\n else if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-checkbox-outer-div') {\n var outerDivParent = document.getElementById(childElement[0].parentElement.id);\n if (outerDivParent) {\n outerDivParent.parentElement.remove();\n }\n }\n }\n else {\n if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-text-layer') {\n element.removeChild(childElement[0]);\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param divId\n * @param fromOffset\n * @param toOffset\n * @param textString\n * @param className\n * @private\n */\n // eslint-disable-next-line max-len\n TextLayer.prototype.convertToSpan = function (pageNumber, divId, fromOffset, toOffset, textString, className) {\n var textDiv = this.pdfViewerBase.getElement('_text_' + pageNumber + '_' + divId);\n var textContent = textString.substring(fromOffset, toOffset);\n var node = document.createTextNode(textContent);\n if (className) {\n var spanElement = createElement('span');\n spanElement.className = className + ' e-pv-text';\n spanElement.appendChild(node);\n textDiv.appendChild(spanElement);\n }\n else {\n textDiv.appendChild(node);\n }\n };\n /**\n * @param startPage\n * @param endPage\n * @param anchorOffsetDiv\n * @param focusOffsetDiv\n * @param anchorOffset\n * @param focusOffset\n * @private\n */\n // eslint-disable-next-line max-len\n TextLayer.prototype.applySpanForSelection = function (startPage, endPage, anchorOffsetDiv, focusOffsetDiv, anchorOffset, focusOffset) {\n if (this.pdfViewer.textSelectionModule) {\n for (var i = startPage; i <= endPage; i++) {\n var startId = void 0;\n var endId = void 0;\n // eslint-disable-next-line\n var textDivs = this.pdfViewerBase.getElement('_textLayer_' + i).childNodes;\n if (i === startPage) {\n startId = anchorOffsetDiv;\n endId = textDivs.length - 1;\n }\n else if (i === endPage) {\n startId = 0;\n endId = focusOffsetDiv;\n }\n else {\n startId = 0;\n endId = textDivs.length - 1;\n }\n if (startPage === endPage) {\n startId = anchorOffsetDiv;\n endId = focusOffsetDiv;\n }\n for (var j = startId; j <= endId; j++) {\n var textDiv = this.pdfViewerBase.getElement('_text_' + i + '_' + j);\n var initId = void 0;\n var lastId = void 0;\n var length_1 = void 0;\n if (textDiv && textDiv.textContent) {\n length_1 = textDiv.textContent.length;\n var textContent = textDiv.textContent;\n textDiv.textContent = '';\n if (j === startId) {\n if (i === startPage) {\n initId = anchorOffset;\n }\n else {\n initId = 0;\n }\n lastId = length_1;\n this.convertToSpan(i, j, 0, initId, textContent, null);\n }\n else if (j === endId && i === endPage) {\n initId = 0;\n lastId = focusOffset;\n }\n else {\n initId = 0;\n lastId = length_1;\n }\n if (startId === endId && startPage === endPage) {\n initId = anchorOffset;\n lastId = focusOffset;\n }\n this.convertToSpan(i, j, initId, lastId, textContent, 'e-pv-maintaincontent');\n if (j === endId && i === endPage) {\n this.convertToSpan(i, j, lastId, textContent.length, textContent, null);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n TextLayer.prototype.clearDivSelection = function () {\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n var childNodes = textLayers[parseInt(i.toString(), 10)].childNodes;\n for (var j = 0; j < childNodes.length; j++) {\n var textDiv = childNodes[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n if (textDiv.className !== 'e-pdfviewer-formFields' && textDiv.className !== 'e-pdfviewer-signatureformfields' && textDiv.className !== 'e-pdfviewer-signatureformfields-signature') {\n var textContent = textDiv.textContent;\n // eslint-disable-next-line max-len\n if (textDiv.childNodes.length > 1 || textDiv.childNodes.length === 1 && (textDiv.childNodes[0].tagName === 'SPAN')) {\n textDiv.textContent = '';\n textDiv.textContent = textContent;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextLayer.prototype.setStyleToTextDiv = function (textDiv, left, top, bottom, width, height) {\n textDiv.style.left = left * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = top * this.pdfViewerBase.getZoomFactor() + 'px';\n var textHeight = height * this.pdfViewerBase.getZoomFactor();\n textDiv.style.height = textHeight + 'px';\n textDiv.style.fontSize = height * this.pdfViewerBase.getZoomFactor() + 'px';\n };\n TextLayer.prototype.getTextSelectionStatus = function () {\n if (this.pdfViewer.textSelectionModule) {\n return this.pdfViewer.textSelectionModule.isTextSelection;\n }\n else {\n return false;\n }\n };\n /**\n * @param {boolean} isAdd - The isAdd.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.modifyTextCursor = function (isAdd) {\n var textLayerList = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayerList.length; i++) {\n var childNodes = textLayerList[parseInt(i.toString(), 10)].childNodes;\n for (var j = 0; j < childNodes.length; j++) {\n var textElement = childNodes[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n if (isAdd && textElement.className !== 'e-pdfviewer-formFields' && textElement.className !== 'e-pdfviewer-signatureformfields' && textElement.className !== 'e-pdfviewer-signatureformfields-signature') {\n textElement.classList.add('e-pv-cursor');\n }\n else {\n textElement.classList.remove('e-pv-cursor');\n }\n }\n }\n };\n /**\n * @param {Selection} selection - The Selection.\n * @returns {boolean} - Returns true or false.\n * @private\n */\n TextLayer.prototype.isBackWardSelection = function (selection) {\n var position = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n var backward = false;\n if (!position && selection.anchorOffset > selection.focusOffset || position === Node.DOCUMENT_POSITION_PRECEDING) {\n backward = true;\n }\n return backward;\n };\n /**\n * @param {Node} element - The element.\n * @returns {number} - Returns number.\n * @private\n */\n TextLayer.prototype.getPageIndex = function (element) {\n var pageId;\n // eslint-disable-next-line\n var parentElement = element.parentElement;\n if (!parentElement) {\n parentElement = element.parentNode;\n }\n if (parentElement.className === 'e-pv-text-layer') {\n // eslint-disable-next-line radix\n pageId = parseInt(element.id.split('_text_')[1]);\n }\n else {\n // eslint-disable-next-line radix\n pageId = parseInt(parentElement.id.split('_text_')[1]);\n }\n return pageId;\n };\n /**\n * @param {Node} element - The element.\n * @param {number} pageIndex - The pageIndex.\n * @returns {number} - Returns number.\n * @private\n */\n TextLayer.prototype.getTextIndex = function (element, pageIndex) {\n var textIndex;\n // eslint-disable-next-line\n var parentElement = element.parentElement;\n if (!parentElement) {\n parentElement = element.parentNode;\n }\n if (parentElement.className === 'e-pv-text-layer') {\n // eslint-disable-next-line radix\n textIndex = parseInt(element.id.split('_text_' + pageIndex + '_')[1]);\n }\n else {\n // eslint-disable-next-line radix\n textIndex = parseInt(parentElement.id.split('_text_' + pageIndex + '_')[1]);\n }\n return textIndex;\n };\n TextLayer.prototype.getPreviousZoomFactor = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.previousZoomFactor;\n }\n else {\n return 1;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n TextLayer.prototype.getTextSearchStatus = function () {\n if (this.pdfViewer.textSearchModule) {\n return this.pdfViewer.textSearchModule.isTextSearch;\n }\n else {\n return false;\n }\n };\n /**\n * @param {string} text - The text.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.createNotificationPopup = function (text) {\n var _this = this;\n if (!this.isMessageBoxOpen) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n var popupElement_1 = createElement('div', { id: this.pdfViewer.element.id + '_notify', className: 'e-pv-notification-popup' });\n this.pdfViewerBase.viewerContainer.appendChild(popupElement_1);\n this.notifyDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('PdfViewer'),\n buttons: [{\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.closeNotification.bind(this)\n }],\n // eslint-disable-next-line max-len\n content: '
' + text + '
', target: this.pdfViewer.element,\n beforeClose: function () {\n _this.notifyDialog.destroy();\n if (_this.pdfViewer.element) {\n try {\n _this.pdfViewer.element.removeChild(popupElement_1);\n }\n catch (error) {\n popupElement_1.parentElement.removeChild(popupElement_1);\n }\n }\n if (_this.pdfViewer.textSearchModule) {\n _this.pdfViewer.textSearch.isMessagePopupOpened = false;\n }\n _this.isMessageBoxOpen = false;\n }\n });\n if (this.pdfViewer.enableRtl) {\n this.notifyDialog.enableRtl = true;\n }\n this.notifyDialog.appendTo(popupElement_1);\n this.isMessageBoxOpen = true;\n }\n else {\n // eslint-disable-next-line\n var notificationElement = document.getElementById(this.pdfViewer.element.id + '_notification_popup_content');\n if (notificationElement) {\n notificationElement.textContent = text;\n notificationElement.innerHTML = text;\n }\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearch.isMessagePopupOpened = false;\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenNotificationPopup', text);\n }\n }\n };\n return TextLayer;\n}());\nexport { TextLayer };\n","/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/** @private */\nexport function processPathData(data) {\n var collection = [];\n var j;\n var arrayCollection = parsePathData(data);\n if (arrayCollection.length > 0) {\n for (var i = 0; i < arrayCollection.length; i++) {\n var ob = arrayCollection[i];\n var char = '';\n char = ob[0];\n switch (char.toLowerCase()) {\n case 'm':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[j], y: ob[j + 1] });\n j = j + 1;\n if (char === 'm') {\n char = 'l';\n }\n else if (char === 'M') {\n char = 'L';\n }\n }\n break;\n case 'l':\n case 't':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[j], y: ob[j + 1] });\n j = j + 1;\n }\n break;\n case 'h':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[j] });\n }\n break;\n case 'v':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, y: ob[j] });\n }\n break;\n case 'z':\n collection.push({ command: char });\n break;\n case 'c':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, x1: ob[j], y1: ob[j + 1], x2: ob[j + 2], y2: ob[j + 3], x: ob[j + 4], y: ob[j + 5]\n });\n j = j + 5;\n }\n break;\n case 's':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x2: ob[j], y2: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'q':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x1: ob[j], y1: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'a':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, r1: ob[j], r2: ob[j + 1], angle: ob[j + 2], largeArc: ob[j + 3],\n sweep: ob[j + 4], x: ob[j + 5], y: ob[j + 6]\n });\n j = j + 6;\n }\n break;\n }\n }\n }\n return collection;\n}\n/** @private */\nexport function parsePathData(data) {\n var tokenizer = /([a-z]+)|([+-]?(?:\\d+\\.?\\d*|\\.\\d+))/gi;\n var current = [];\n var commands = [];\n var match = {};\n tokenizer.lastIndex = 0;\n var isExponential = false;\n match = tokenizer.exec(data);\n while (match) {\n if (match[1] === 'e') {\n var s1 = '';\n isExponential = true;\n }\n else if (match[1]) {\n if (match[1].toLowerCase() === 'zm') {\n if (current.length) {\n commands.push(current);\n }\n commands.push(['Z']);\n current = [match[1].substring(1, 2)];\n }\n else {\n if (current.length) {\n commands.push(current);\n }\n current = [match[1]];\n }\n isExponential = false;\n }\n else {\n if (!current.length) {\n current = [];\n }\n if (!isExponential) {\n current.push(Number(match[2]));\n }\n isExponential = false;\n }\n match = tokenizer.exec(data);\n }\n if (current.length) {\n commands.push(current);\n }\n return commands;\n}\n/**\n * Used to find the path for rounded rect\n */\nexport function getRectanglePath(cornerRadius, height, width) {\n if (cornerRadius > height / 2) {\n cornerRadius = height / 2;\n }\n if (cornerRadius > width / 2) {\n cornerRadius = width / 2;\n }\n var x = 0;\n var y = 0;\n var path = '';\n var points = [{ x: x + cornerRadius, y: y }, { x: x + width - cornerRadius, y: y },\n { x: x + width, y: y + cornerRadius }, { x: x + width, y: y + height - cornerRadius },\n { x: x + width - cornerRadius, y: y + height }, { x: x + cornerRadius, y: y + height },\n { x: x, y: y + height - cornerRadius }, { x: x, y: y + cornerRadius }\n ];\n var corners = [{ x: x + width, y: y }, { x: x + width, y: y + height }, { x: x, y: y + height }, { x: x, y: y }];\n var corner = 0;\n var point2;\n var next;\n path = 'M' + points[0].x + ' ' + points[0].y;\n var i;\n for (i = 0; i < points.length; i = i + 2) {\n point2 = points[i + 1];\n path += 'L' + point2.x + ' ' + point2.y;\n next = points[i + 2] || points[0];\n path += 'Q' + corners[corner].x + ' ' + corners[corner].y + ' ' + next.x + ' ' + next.y;\n corner++;\n }\n return path;\n}\n/** @private */\nexport function pathSegmentCollection(collection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var initx;\n var inity;\n var segments = [];\n for (x = 0, y = 0, i = 0, length = collection.length; i < length; ++i) {\n var obj = collection[i];\n var seg = obj;\n var char = '';\n char = seg.command;\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n var prev = segments[segments.length - 1];\n switch (char) {\n case 'M':\n segments.push({ command: 'M', x: x, y: y });\n break;\n case 'L':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y });\n break;\n case 'H':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y0 });\n break;\n case 'V':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x0, y: y });\n break;\n case 'C':\n segments.push({ command: 'C', x0: x0, y0: y0, x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y });\n break;\n case 'S':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'C' || prev.command === 'S') {\n ctrl = { x: prev.x2, y: prev.y2 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'C', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x2: x2, y2: y2, x: x, y: y });\n }\n break;\n case 'Q':\n //ctx.quadraticCurveTo(x1, y1, x, y);\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: x1, y1: y1, x: x, y: y });\n break;\n case 'T':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'Q') {\n ctrl = { x: prev.x1, y: prev.y1 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x: x, y: y });\n }\n break;\n case 'A':\n var newSeg = seg;\n newSeg.command = 'A';\n segments.push(newSeg);\n break;\n case 'Z':\n case 'z':\n segments.push({ command: 'Z' });\n x = x0;\n y = y0;\n break;\n }\n if (char === 'M' || char === 'm') {\n initx = x;\n inity = y;\n }\n x0 = x;\n y0 = y;\n }\n return segments;\n}\n/** @private */\nexport function transformPath(arr, sX, sY, s, bX, bY, iX, iY) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var newSeg;\n for (x = 0, y = 0, i = 0, length = arr.length; i < length; ++i) {\n var obj = arr[i];\n var seg = obj;\n var char = seg.command;\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if (s) {\n if (x !== undefined) {\n x = scalePathData(x, sX, bX, iX);\n }\n if (y !== undefined) {\n y = scalePathData(y, sY, bY, iY);\n }\n if (x1 !== undefined) {\n x1 = scalePathData(x1, sX, bX, iX);\n }\n if (y1 !== undefined) {\n y1 = scalePathData(y1, sY, bY, iY);\n }\n if (x2 !== undefined) {\n x2 = scalePathData(x2, sX, bX, iX);\n }\n if (y2 !== undefined) {\n y2 = scalePathData(y2, sY, bY, iY);\n }\n }\n else {\n if (x !== undefined) {\n x = Number((x + sX).toFixed(2));\n }\n if (y !== undefined) {\n y = Number((y + sY).toFixed(2));\n }\n if (x1 !== undefined) {\n x1 = Number((x1 + sX).toFixed(2));\n }\n if (y1 !== undefined) {\n y1 = Number((y1 + sY).toFixed(2));\n }\n if (x2 !== undefined) {\n x2 = Number((x2 + sX).toFixed(2));\n }\n if (y2 !== undefined) {\n y2 = Number((y2 + sY).toFixed(2));\n }\n }\n var scaledPath = { x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2, r1: seg.r1, r2: seg.r2 };\n newSeg = updatedSegment(seg, char, scaledPath, s, sX, sY);\n if (newSeg) {\n arr[i] = newSeg;\n }\n // Record the start of a subpath\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n var pathData = getPathString(arr);\n return pathData;\n}\n/** @private */\nexport function updatedSegment(segment, char, obj, isScale, sX, sY) {\n switch (char) {\n case 'M':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'L':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'H':\n segment.x = obj.x;\n break;\n case 'V':\n segment.y = obj.y;\n break;\n case 'C':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'S':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'Q':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n break;\n case 'T':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'A':\n var r1 = obj.r1;\n var r2 = obj.r2;\n if (isScale) {\n obj.r1 = r1 = (r1 * sX);\n obj.r2 = r2 = (r2 * sY);\n }\n segment.x = obj.x;\n segment.y = obj.y;\n segment.r1 = obj.r1;\n segment.r2 = obj.r2;\n break;\n case 'z':\n case 'Z':\n segment = { command: 'Z' };\n break;\n }\n return segment;\n}\n/** @private */\nexport function scalePathData(val, scaleFactor, oldOffset, newOffset) {\n if (val !== oldOffset) {\n if (newOffset !== oldOffset) {\n val = (((val * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)))\n + (newOffset - Number(oldOffset)));\n }\n else {\n val = ((Number(val) * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)));\n }\n }\n else {\n if (newOffset !== oldOffset) {\n val = newOffset;\n }\n }\n return Number(val.toFixed(2));\n}\n/** @private */\nexport function splitArrayCollection(arrayCollection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n for (x = 0, y = 0, i = 0, length = arrayCollection.length; i < length; ++i) {\n var path = arrayCollection[i];\n var seg = path;\n var char = seg.command;\n if (/[MLHVCSQTA]/.test(char)) {\n if ('x' in seg) {\n seg.x = x = seg.x;\n }\n if ('y' in seg) {\n seg.y = y = seg.y;\n }\n }\n else {\n if ('x1' in seg) {\n seg.x1 = x1 = x + seg.x1;\n }\n if ('x2' in seg) {\n seg.x2 = x2 = x + seg.x2;\n }\n if ('y1' in seg) {\n seg.y1 = y1 = y + seg.y1;\n }\n if ('y2' in seg) {\n seg.y2 = y2 = y + seg.y2;\n }\n if ('x' in seg) {\n seg.x = x += seg.x;\n }\n if ('y' in seg) {\n seg.y = y += seg.y;\n }\n var newSeg = void 0;\n switch (char) {\n case 'm':\n case 'M':\n newSeg = { command: 'M', x: x, y: y };\n break;\n case 'l':\n case 'L':\n newSeg = { command: 'L', x: x, y: y };\n break;\n case 'h':\n case 'H':\n newSeg = { command: 'H', x: x };\n break;\n case 'v':\n case 'V':\n newSeg = { command: 'V', y: y };\n break;\n case 'c':\n case 'C':\n newSeg = { command: 'C', x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2 };\n break;\n case 's':\n case 'S':\n newSeg = { command: 'S', x: x, y: y, x2: x2, y2: y2 };\n break;\n case 'q':\n case 'Q':\n newSeg = { command: 'Q', x: x, y: y, x1: x1, y1: y1 };\n break;\n case 't':\n case 'T':\n newSeg = { command: 'T', x: x, y: y };\n break;\n case 'a':\n case 'A':\n newSeg = { command: 'A', x: x, y: y };\n newSeg.r1 = seg.r1;\n newSeg.r2 = seg.r2;\n newSeg.angle = seg.angle;\n newSeg.largeArc = seg.largeArc;\n newSeg.sweep = seg.sweep;\n break;\n case 'z':\n case 'Z':\n newSeg = { command: 'Z' };\n x = x0;\n y = y0;\n newSeg = arrayCollection[i];\n break;\n }\n if (newSeg) {\n arrayCollection[i] = newSeg;\n }\n }\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n return arrayCollection;\n}\n/** @private */\nexport function getPathString(arrayCollection) {\n var getNewString = '';\n var i;\n for (i = 0; i < arrayCollection.length; i++) {\n if (i === 0) {\n getNewString += getString(arrayCollection[i]);\n }\n else {\n getNewString += ' ' + getString(arrayCollection[i]);\n }\n }\n return getNewString;\n}\n/** @private */\nexport function getString(obj) {\n var string = '';\n switch (obj.command) {\n case 'Z':\n case 'z':\n string = obj.command;\n break;\n case 'M':\n case 'm':\n case 'L':\n case 'l':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'C':\n case 'c':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'Q':\n case 'q':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'A':\n case 'a':\n var cmd = obj.command;\n var ang = obj.angle;\n var l = (obj.largeArc ? '1' : '0');\n var s = (obj.sweep ? '1' : '0');\n string = cmd + ' ' + obj.r1 + ' ' + obj.r2 + ' ' + ang + ' ' + l + ' ' + s + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'H':\n case 'h':\n string = obj.command + ' ' + obj.x;\n break;\n case 'V':\n case 'v':\n string = obj.command + ' ' + obj.y;\n break;\n case 'S':\n case 's':\n string = obj.command + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'T':\n case 't':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n }\n return string;\n}\n","/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\nimport { createElement, attributes, addClass, removeClass, detach, classList } from '@syncfusion/ej2-base';\nimport { closest, formatUnit, isNullOrUndefined, remove } from '@syncfusion/ej2-base';\nvar CLASSNAMES = {\n RTL: 'e-rtl',\n DISABLE: 'e-disabled',\n INPUT: 'e-input',\n TEXTAREA: 'e-multi-line-input',\n INPUTGROUP: 'e-input-group',\n FLOATINPUT: 'e-float-input',\n FLOATLINE: 'e-float-line',\n FLOATTEXT: 'e-float-text',\n FLOATTEXTCONTENT: 'e-float-text-content',\n CLEARICON: 'e-clear-icon',\n CLEARICONHIDE: 'e-clear-icon-hide',\n LABELTOP: 'e-label-top',\n LABELBOTTOM: 'e-label-bottom',\n NOFLOATLABEL: 'e-no-float-label',\n INPUTCUSTOMTAG: 'e-input-custom-tag',\n FLOATCUSTOMTAG: 'e-float-custom-tag'\n};\n/**\n * Base for Input creation through util methods.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var Input;\n(function (Input) {\n var privateInputObj = {\n container: null,\n buttons: [],\n clearButton: null\n };\n var floatType;\n var isBindClearAction = true;\n /**\n * Create a wrapper to input element with multiple span elements and set the basic properties to input based components.\n * ```\n * E.g : Input.createInput({ element: element, floatLabelType : \"Auto\", properties: { placeholder: 'Search' } });\n * ```\n *\n */\n function createInput(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var inputObject = { container: null, buttons: [], clearButton: null };\n floatType = args.floatLabelType;\n isBindClearAction = args.bindClearAction;\n if (isNullOrUndefined(args.floatLabelType) || args.floatLabelType === 'Never') {\n inputObject.container = createInputContainer(args, CLASSNAMES.INPUTGROUP, CLASSNAMES.INPUTCUSTOMTAG, 'span', makeElement);\n args.element.parentNode.insertBefore(inputObject.container, args.element);\n addClass([args.element], CLASSNAMES.INPUT);\n inputObject.container.appendChild(args.element);\n }\n else {\n createFloatingInput(args, inputObject, makeElement);\n }\n bindInitialEvent(args);\n if (!isNullOrUndefined(args.properties) && !isNullOrUndefined(args.properties.showClearButton) &&\n args.properties.showClearButton && args.element.tagName !== 'TEXTAREA') {\n setClearButton(args.properties.showClearButton, args.element, inputObject, true, makeElement);\n inputObject.clearButton.setAttribute('role', 'button');\n if (inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT)) {\n addClass([inputObject.container], CLASSNAMES.INPUTGROUP);\n }\n }\n if (!isNullOrUndefined(args.buttons) && args.element.tagName !== 'TEXTAREA') {\n for (var i = 0; i < args.buttons.length; i++) {\n inputObject.buttons.push(appendSpan(args.buttons[i], inputObject.container, makeElement));\n }\n }\n if (!isNullOrUndefined(args.element) && args.element.tagName === 'TEXTAREA') {\n addClass([inputObject.container], CLASSNAMES.TEXTAREA);\n }\n validateInputType(inputObject.container, args.element);\n inputObject = setPropertyValue(args, inputObject);\n createSpanElement(inputObject.container, makeElement);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n privateInputObj = inputObject;\n return inputObject;\n }\n Input.createInput = createInput;\n function bindInitialEvent(args) {\n checkInputValue(args.floatLabelType, args.element);\n args.element.addEventListener('focus', function () {\n var parent = getParentNode(this);\n if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline')\n || parent.classList.contains('e-filled')) {\n parent.classList.add('e-input-focus');\n }\n setTimeout(function () {\n Input.calculateWidth(args.element, parent);\n }, 80);\n });\n args.element.addEventListener('blur', function () {\n var parent = getParentNode(this);\n if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline')\n || parent.classList.contains('e-filled')) {\n parent.classList.remove('e-input-focus');\n }\n setTimeout(function () {\n Input.calculateWidth(args.element, parent);\n }, 80);\n });\n args.element.addEventListener('input', function () {\n checkInputValue(floatType, args.element);\n });\n }\n Input.bindInitialEvent = bindInitialEvent;\n function checkInputValue(floatLabelType, inputElement) {\n var inputValue = inputElement.value;\n if (inputValue !== '' && !isNullOrUndefined(inputValue) && inputElement.parentElement) {\n inputElement.parentElement.classList.add('e-valid-input');\n }\n else if (floatLabelType !== 'Always' && inputElement.parentElement) {\n inputElement.parentElement.classList.remove('e-valid-input');\n }\n }\n function _focusFn() {\n var label = getParentNode(this).getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(label)) {\n addClass([label], CLASSNAMES.LABELTOP);\n if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) {\n removeClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n }\n function _blurFn() {\n var parent = getParentNode(this);\n if ((parent.getElementsByTagName('textarea')[0]) ? parent.getElementsByTagName('textarea')[0].value === '' :\n parent.getElementsByTagName('input')[0].value === '') {\n var label = parent.getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(label)) {\n if (label.classList.contains(CLASSNAMES.LABELTOP)) {\n removeClass([label], CLASSNAMES.LABELTOP);\n }\n addClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n }\n function wireFloatingEvents(element) {\n element.addEventListener('focus', _focusFn);\n element.addEventListener('blur', _blurFn);\n }\n Input.wireFloatingEvents = wireFloatingEvents;\n function unwireFloatingEvents(element) {\n element.removeEventListener('focus', _focusFn);\n element.removeEventListener('blur', _blurFn);\n }\n function createFloatingInput(args, inputObject, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.floatLabelType === 'Auto') {\n wireFloatingEvents(args.element);\n }\n if (isNullOrUndefined(inputObject.container)) {\n inputObject.container = createInputContainer(args, CLASSNAMES.FLOATINPUT, CLASSNAMES.FLOATCUSTOMTAG, 'div', makeElement);\n if (args.element.parentNode) {\n args.element.parentNode.insertBefore(inputObject.container, args.element);\n }\n }\n else {\n if (!isNullOrUndefined(args.customTag)) {\n inputObject.container.classList.add(CLASSNAMES.FLOATCUSTOMTAG);\n }\n inputObject.container.classList.add(CLASSNAMES.FLOATINPUT);\n }\n var floatLinelement = makeElement('span', { className: CLASSNAMES.FLOATLINE });\n var floatLabelElement = makeElement('label', { className: CLASSNAMES.FLOATTEXT });\n if (!isNullOrUndefined(args.element.id) && args.element.id !== '') {\n floatLabelElement.id = 'label_' + args.element.id.replace(/ /g, '_');\n attributes(args.element, { 'aria-labelledby': floatLabelElement.id });\n }\n if (!isNullOrUndefined(args.element.placeholder) && args.element.placeholder !== '') {\n floatLabelElement.innerText = encodePlaceHolder(args.element.placeholder);\n args.element.removeAttribute('placeholder');\n }\n if (!isNullOrUndefined(args.properties) && !isNullOrUndefined(args.properties.placeholder) &&\n args.properties.placeholder !== '') {\n floatLabelElement.innerText = encodePlaceHolder(args.properties.placeholder);\n }\n if (!floatLabelElement.innerText) {\n inputObject.container.classList.add(CLASSNAMES.NOFLOATLABEL);\n }\n if (inputObject.container.classList.contains('e-float-icon-left')) {\n var inputWrap = inputObject.container.querySelector('.e-input-in-wrap');\n inputWrap.appendChild(args.element);\n inputWrap.appendChild(floatLinelement);\n inputWrap.appendChild(floatLabelElement);\n }\n else {\n inputObject.container.appendChild(args.element);\n inputObject.container.appendChild(floatLinelement);\n inputObject.container.appendChild(floatLabelElement);\n }\n updateLabelState(args.element.value, floatLabelElement);\n if (args.floatLabelType === 'Always') {\n if (floatLabelElement.classList.contains(CLASSNAMES.LABELBOTTOM)) {\n removeClass([floatLabelElement], CLASSNAMES.LABELBOTTOM);\n }\n addClass([floatLabelElement], CLASSNAMES.LABELTOP);\n }\n if (args.floatLabelType === 'Auto') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n args.element.addEventListener('input', function (event) {\n updateLabelState(args.element.value, floatLabelElement, args.element);\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n args.element.addEventListener('blur', function (event) {\n updateLabelState(args.element.value, floatLabelElement);\n });\n }\n if (!isNullOrUndefined(args.element.getAttribute('id'))) {\n floatLabelElement.setAttribute('for', args.element.getAttribute('id'));\n }\n }\n function checkFloatLabelType(type, container) {\n if (type === 'Always' && container.classList.contains('e-outline')) {\n container.classList.add('e-valid-input');\n }\n }\n function setPropertyValue(args, inputObject) {\n if (!isNullOrUndefined(args.properties)) {\n for (var _i = 0, _a = Object.keys(args.properties); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n setCssClass(args.properties.cssClass, [inputObject.container]);\n checkFloatLabelType(args.floatLabelType, inputObject.container);\n break;\n case 'enabled':\n setEnabled(args.properties.enabled, args.element, args.floatLabelType, inputObject.container);\n break;\n case 'enableRtl':\n setEnableRtl(args.properties.enableRtl, [inputObject.container]);\n break;\n case 'placeholder':\n setPlaceholder(args.properties.placeholder, args.element);\n break;\n case 'readonly':\n setReadonly(args.properties.readonly, args.element);\n break;\n }\n }\n }\n return inputObject;\n }\n function updateIconState(value, button, readonly) {\n if (value && !readonly) {\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n else {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n }\n function updateLabelState(value, label, element) {\n if (element === void 0) { element = null; }\n if (value) {\n addClass([label], CLASSNAMES.LABELTOP);\n if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) {\n removeClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n else {\n var isNotFocused = element != null ? element !== document.activeElement : true;\n if (isNotFocused) {\n if (label.classList.contains(CLASSNAMES.LABELTOP)) {\n removeClass([label], CLASSNAMES.LABELTOP);\n }\n addClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n }\n function getParentNode(element) {\n var parentNode = isNullOrUndefined(element.parentNode) ? element\n : element.parentNode;\n if (parentNode && parentNode.classList.contains('e-input-in-wrap')) {\n parentNode = parentNode.parentNode;\n }\n return parentNode;\n }\n /**\n * To create clear button.\n */\n function createClearButton(element, inputObject, initial, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = makeElement('span', { className: CLASSNAMES.CLEARICON });\n var container = inputObject.container;\n if (!isNullOrUndefined(initial)) {\n container.appendChild(button);\n }\n else {\n var baseElement = inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT) ?\n inputObject.container.querySelector('.' + CLASSNAMES.FLOATTEXT) : element;\n baseElement.insertAdjacentElement('afterend', button);\n }\n if (!isNullOrUndefined(container) &&\n container.classList.contains(CLASSNAMES.FLOATINPUT)) {\n addClass([container], CLASSNAMES.INPUTGROUP);\n }\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n wireClearBtnEvents(element, button, container);\n button.setAttribute('aria-label', 'close');\n return button;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function wireClearBtnEvents(element, button, container) {\n if (isBindClearAction == undefined || isBindClearAction) {\n button.addEventListener('click', function (event) {\n if (!(element.classList.contains(CLASSNAMES.DISABLE) || element.readOnly)) {\n event.preventDefault();\n if (element !== document.activeElement) {\n element.focus();\n }\n element.value = '';\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n element.addEventListener('input', function (event) {\n updateIconState(element.value, button);\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n element.addEventListener('focus', function (event) {\n updateIconState(element.value, button, element.readOnly);\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n element.addEventListener('blur', function (event) {\n setTimeout(function () {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }, 200);\n });\n }\n Input.wireClearBtnEvents = wireClearBtnEvents;\n function destroy() {\n privateInputObj = null;\n }\n Input.destroy = destroy;\n function validateLabel(element, floatLabelType) {\n var parent = getParentNode(element);\n if (parent.classList.contains(CLASSNAMES.FLOATINPUT) && floatLabelType === 'Auto') {\n var label = getParentNode(element).getElementsByClassName('e-float-text')[0];\n updateLabelState(element.value, label, element);\n }\n }\n /**\n * To create input box contianer.\n */\n function createInputContainer(args, className, tagClass, tag, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container;\n if (!isNullOrUndefined(args.customTag)) {\n container = makeElement(args.customTag, { className: className });\n container.classList.add(tagClass);\n }\n else {\n container = makeElement(tag, { className: className });\n }\n container.classList.add('e-control-wrapper');\n return container;\n }\n function encodePlaceHolder(placeholder) {\n var result = '';\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n var spanEle = document.createElement('span');\n spanEle.innerHTML = '';\n var hiddenInput = (spanEle.children[0]);\n result = hiddenInput.placeholder;\n }\n return result;\n }\n /**\n * Sets the value to the input element.\n * ```\n * E.g : Input.setValue('content', element, \"Auto\", true );\n * ```\n *\n * @param {string} value - Specify the value of the input element.\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the specified value is updated.\n * @param {string} floatLabelType - Specify the float label type of the input element.\n * @param {boolean} clearButton - Boolean value to specify whether the clear icon is enabled / disabled on the input.\n */\n function setValue(value, element, floatLabelType, clearButton) {\n element.value = value;\n calculateWidth(element, element.parentElement);\n if ((!isNullOrUndefined(floatLabelType)) && floatLabelType === 'Auto') {\n validateLabel(element, floatLabelType);\n }\n if (!isNullOrUndefined(clearButton) && clearButton) {\n var parentElement = getParentNode(element);\n if (!isNullOrUndefined(parentElement)) {\n var button = parentElement.getElementsByClassName(CLASSNAMES.CLEARICON)[0];\n if (!isNullOrUndefined(button)) {\n if (element.value && !isNullOrUndefined(parentElement) && parentElement.classList.contains('e-input-focus')) {\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n else {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n }\n }\n }\n checkInputValue(floatLabelType, element);\n }\n Input.setValue = setValue;\n /**\n * Sets the single or multiple cssClass to wrapper of input element.\n * ```\n * E.g : Input.setCssClass('e-custom-class', [element]);\n * ```\n *\n * @param {string} cssClass - Css class names which are needed to add.\n * @param {Element[] | NodeList} elements - The elements which are needed to add / remove classes.\n * @param {string} oldClass\n * - Css class names which are needed to remove. If old classes are need to remove, can give this optional parameter.\n */\n function setCssClass(cssClass, elements, oldClass) {\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNullOrUndefined(cssClass) && cssClass !== '') {\n addClass(elements, cssClass.split(' '));\n }\n }\n Input.setCssClass = setCssClass;\n /**\n * Set the width to the placeholder when it overflows on the button such as spinbutton, clearbutton, icon etc\n * ```\n * E.g : Input.calculateWidth(element, container);\n * ```\n *\n * @param {any} element - Input element which is need to add.\n * @param {HTMLElement} container - The parent element which is need to get the label span to calculate width\n */\n function calculateWidth(element, container, moduleName) {\n var elementWidth = moduleName === 'multiselect' ? element : element.clientWidth - parseInt(getComputedStyle(element, null).getPropertyValue('padding-left'));\n if (!isNullOrUndefined(container.getElementsByClassName('e-float-text-content')[0])) {\n if (container.getElementsByClassName('e-float-text-content')[0].classList.contains('e-float-text-overflow')) {\n container.getElementsByClassName('e-float-text-content')[0].classList.remove('e-float-text-overflow');\n }\n if (elementWidth < container.getElementsByClassName('e-float-text-content')[0].clientWidth || elementWidth === container.getElementsByClassName('e-float-text-content')[0].clientWidth) {\n container.getElementsByClassName('e-float-text-content')[0].classList.add('e-float-text-overflow');\n }\n }\n }\n Input.calculateWidth = calculateWidth;\n /**\n * Set the width to the wrapper of input element.\n * ```\n * E.g : Input.setWidth('200px', container);\n * ```\n *\n * @param {number | string} width - Width value which is need to add.\n * @param {HTMLElement} container - The element on which the width is need to add.\n */\n function setWidth(width, container) {\n if (typeof width === 'number') {\n container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n calculateWidth(container.firstChild, container);\n }\n Input.setWidth = setWidth;\n /**\n * Set the placeholder attribute to the input element.\n * ```\n * E.g : Input.setPlaceholder('Search here', element);\n * ```\n *\n * @param {string} placeholder - Placeholder value which is need to add.\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the placeholder is need to add.\n */\n function setPlaceholder(placeholder, element) {\n placeholder = encodePlaceHolder(placeholder);\n var parentElement = getParentNode(element);\n if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = placeholder : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;\n parentElement.classList.remove(CLASSNAMES.NOFLOATLABEL);\n element.removeAttribute('placeholder');\n }\n else {\n parentElement.classList.add(CLASSNAMES.NOFLOATLABEL);\n parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = '' : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\n }\n }\n else {\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n attributes(element, { 'placeholder': placeholder });\n }\n else {\n element.removeAttribute('placeholder');\n }\n }\n }\n Input.setPlaceholder = setPlaceholder;\n /**\n * Set the read only attribute to the input element\n * ```\n * E.g : Input.setReadonly(true, element);\n * ```\n *\n * @param {boolean} isReadonly\n * - Boolean value to specify whether to set read only. Setting \"True\" value enables read only.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * - The element which is need to enable read only.\n */\n function setReadonly(isReadonly, element, floatLabelType) {\n if (isReadonly) {\n attributes(element, { readonly: '' });\n }\n else {\n element.removeAttribute('readonly');\n }\n if (!isNullOrUndefined(floatLabelType)) {\n validateLabel(element, floatLabelType);\n }\n }\n Input.setReadonly = setReadonly;\n /**\n * Displays the element direction from right to left when its enabled.\n * ```\n * E.g : Input.setEnableRtl(true, [inputObj.container]);\n * ```\n *\n * @param {boolean} isRtl\n * - Boolean value to specify whether to set RTL. Setting \"True\" value enables the RTL mode.\n * @param {Element[] | NodeList} elements\n * - The elements that are needed to enable/disable RTL.\n */\n function setEnableRtl(isRtl, elements) {\n if (isRtl) {\n addClass(elements, CLASSNAMES.RTL);\n }\n else {\n removeClass(elements, CLASSNAMES.RTL);\n }\n }\n Input.setEnableRtl = setEnableRtl;\n /**\n * Enables or disables the given input element.\n * ```\n * E.g : Input.setEnabled(false, element);\n * ```\n *\n * @param {boolean} isEnable\n * - Boolean value to specify whether to enable or disable.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * - Element to be enabled or disabled.\n */\n function setEnabled(isEnable, element, floatLabelType, inputContainer) {\n var disabledAttrs = { 'disabled': 'disabled', 'aria-disabled': 'true' };\n var considerWrapper = isNullOrUndefined(inputContainer) ? false : true;\n if (isEnable) {\n element.classList.remove(CLASSNAMES.DISABLE);\n removeAttributes(disabledAttrs, element);\n if (considerWrapper) {\n removeClass([inputContainer], CLASSNAMES.DISABLE);\n }\n }\n else {\n element.classList.add(CLASSNAMES.DISABLE);\n addAttributes(disabledAttrs, element);\n if (considerWrapper) {\n addClass([inputContainer], CLASSNAMES.DISABLE);\n }\n }\n if (!isNullOrUndefined(floatLabelType)) {\n validateLabel(element, floatLabelType);\n }\n }\n Input.setEnabled = setEnabled;\n function setClearButton(isClear, element, inputObject, initial, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (isClear) {\n inputObject.clearButton = createClearButton(element, inputObject, initial, makeElement);\n }\n else {\n remove(inputObject.clearButton);\n inputObject.clearButton = null;\n }\n }\n Input.setClearButton = setClearButton;\n /**\n * Removing the multiple attributes from the given element such as \"disabled\",\"id\" , etc.\n * ```\n * E.g : Input.removeAttributes({ 'disabled': 'disabled', 'aria-disabled': 'true' }, element);\n * ```\n *\n * @param {string} attrs\n * - Array of attributes which are need to removed from the element.\n * @param {HTMLInputElement | HTMLElement} element\n * - Element on which the attributes are needed to be removed.\n */\n function removeAttributes(attrs, element) {\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\n var key = _a[_i];\n var parentElement = getParentNode(element);\n if (key === 'disabled') {\n element.classList.remove(CLASSNAMES.DISABLE);\n }\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\n parentElement.classList.remove(CLASSNAMES.DISABLE);\n }\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\n }\n else {\n element.removeAttribute(key);\n }\n }\n }\n Input.removeAttributes = removeAttributes;\n /**\n * Adding the multiple attributes to the given element such as \"disabled\",\"id\" , etc.\n * ```\n * E.g : Input.addAttributes({ 'id': 'inputpopup' }, element);\n * ```\n *\n * @param {string} attrs\n * - Array of attributes which is added to element.\n * @param {HTMLInputElement | HTMLElement} element\n * - Element on which the attributes are needed to be added.\n */\n function addAttributes(attrs, element) {\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\n var key = _a[_i];\n var parentElement = getParentNode(element);\n if (key === 'disabled') {\n element.classList.add(CLASSNAMES.DISABLE);\n }\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\n parentElement.classList.add(CLASSNAMES.DISABLE);\n }\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = attrs[key];\n }\n else {\n element.setAttribute(key, attrs[key]);\n }\n }\n }\n Input.addAttributes = addAttributes;\n function removeFloating(input) {\n var container = input.container;\n if (!isNullOrUndefined(container) && container.classList.contains(CLASSNAMES.FLOATINPUT)) {\n var inputEle = container.querySelector('textarea') ? container.querySelector('textarea') :\n container.querySelector('input');\n var placeholder = container.querySelector('.' + CLASSNAMES.FLOATTEXT).textContent;\n var clearButton = container.querySelector('.e-clear-icon') !== null;\n detach(container.querySelector('.' + CLASSNAMES.FLOATLINE));\n detach(container.querySelector('.' + CLASSNAMES.FLOATTEXT));\n classList(container, [CLASSNAMES.INPUTGROUP], [CLASSNAMES.FLOATINPUT]);\n unwireFloatingEvents(inputEle);\n attributes(inputEle, { 'placeholder': placeholder });\n inputEle.classList.add(CLASSNAMES.INPUT);\n if (!clearButton && inputEle.tagName === 'INPUT') {\n inputEle.removeAttribute('required');\n }\n }\n }\n Input.removeFloating = removeFloating;\n function addFloating(input, type, placeholder, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container = closest(input, '.' + CLASSNAMES.INPUTGROUP);\n floatType = type;\n if (type !== 'Never') {\n var customTag = container.tagName;\n customTag = customTag !== 'DIV' && customTag !== 'SPAN' ? customTag : null;\n var args = { element: input, floatLabelType: type,\n customTag: customTag, properties: { placeholder: placeholder } };\n var iconEle = container.querySelector('.e-clear-icon');\n var inputObj = { container: container };\n input.classList.remove(CLASSNAMES.INPUT);\n createFloatingInput(args, inputObj, makeElement);\n createSpanElement(inputObj.container, makeElement);\n calculateWidth(args.element, inputObj.container);\n var isPrependIcon = container.classList.contains('e-float-icon-left');\n if (isNullOrUndefined(iconEle)) {\n if (isPrependIcon) {\n var inputWrap = container.querySelector('.e-input-in-wrap');\n iconEle = inputWrap.querySelector('.e-input-group-icon');\n }\n else {\n iconEle = container.querySelector('.e-input-group-icon');\n }\n }\n if (isNullOrUndefined(iconEle)) {\n if (isPrependIcon) {\n iconEle = container.querySelector('.e-input-group-icon');\n }\n if (isNullOrUndefined(iconEle)) {\n container.classList.remove(CLASSNAMES.INPUTGROUP);\n }\n }\n else {\n var floatLine = container.querySelector('.' + CLASSNAMES.FLOATLINE);\n var floatText = container.querySelector('.' + CLASSNAMES.FLOATTEXT);\n var wrapper = isPrependIcon ? container.querySelector('.e-input-in-wrap') : container;\n wrapper.insertBefore(input, iconEle);\n wrapper.insertBefore(floatLine, iconEle);\n wrapper.insertBefore(floatText, iconEle);\n }\n }\n checkFloatLabelType(type, input.parentElement);\n }\n Input.addFloating = addFloating;\n /**\n * Create the span inside the label and add the label text into the span textcontent\n * ```\n * E.g : Input.createSpanElement(inputObject, makeElement);\n * ```\n *\n * @param {InputObject} inputObject\n * - Element which is need to get the label\n * @param {createElementParams} makeElement\n * - Element which is need to create the span\n */\n function createSpanElement(inputObject, makeElement) {\n if (inputObject.classList.contains('e-outline') && inputObject.getElementsByClassName('e-float-text')[0]) {\n var labelSpanElement = makeElement('span', { className: CLASSNAMES.FLOATTEXTCONTENT });\n labelSpanElement.innerHTML = inputObject.getElementsByClassName('e-float-text')[0].innerHTML;\n inputObject.getElementsByClassName('e-float-text')[0].innerHTML = '';\n inputObject.getElementsByClassName('e-float-text')[0].appendChild(labelSpanElement);\n }\n }\n Input.createSpanElement = createSpanElement;\n /**\n * Enable or Disable the ripple effect on the icons inside the Input. Ripple effect is only applicable for material theme.\n * ```\n * E.g : Input.setRipple(true, [inputObjects]);\n * ```\n *\n * @param {boolean} isRipple\n * - Boolean value to specify whether to enable the ripple effect.\n * @param {InputObject[]} inputObj\n * - Specify the collection of input objects.\n */\n function setRipple(isRipple, inputObj) {\n for (var i = 0; i < inputObj.length; i++) {\n _internalRipple(isRipple, inputObj[i].container);\n }\n }\n Input.setRipple = setRipple;\n function _internalRipple(isRipple, container, button) {\n var argsButton = [];\n argsButton.push(button);\n var buttons = isNullOrUndefined(button) ?\n container.querySelectorAll('.e-input-group-icon') : argsButton;\n if (isRipple && buttons.length > 0) {\n for (var index = 0; index < buttons.length; index++) {\n buttons[index].addEventListener('mousedown', _onMouseDownRipple, false);\n buttons[index].addEventListener('mouseup', _onMouseUpRipple, false);\n }\n }\n else if (buttons.length > 0) {\n for (var index = 0; index < buttons.length; index++) {\n buttons[index].removeEventListener('mousedown', _onMouseDownRipple, this);\n buttons[index].removeEventListener('mouseup', _onMouseUpRipple, this);\n }\n }\n }\n function _onMouseRipple(container, button) {\n if (!container.classList.contains('e-disabled') && !container.querySelector('input').readOnly) {\n button.classList.add('e-input-btn-ripple');\n }\n }\n function _onMouseDownRipple() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var ele = this;\n var parentEle = this.parentElement;\n while (!parentEle.classList.contains('e-input-group')) {\n parentEle = parentEle.parentElement;\n }\n _onMouseRipple(parentEle, ele);\n }\n function _onMouseUpRipple() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var ele = this;\n setTimeout(function () {\n ele.classList.remove('e-input-btn-ripple');\n }, 500);\n }\n function createIconEle(iconClass, makeElement) {\n var button = makeElement('span', { className: iconClass });\n button.classList.add('e-input-group-icon');\n return button;\n }\n /**\n * Creates a new span element with the given icons added and append it in container element.\n * ```\n * E.g : Input.addIcon('append', 'e-icon-spin', inputObj.container, inputElement);\n * ```\n *\n * @param {string} position - Specify the icon placement on the input.Possible values are append and prepend.\n * @param {string | string[]} icons - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n * @param {HTMLElement} input - The inputElement on which created span element is going to prepend.\n */\n /* eslint-disable @typescript-eslint/indent */\n function addIcon(position, icons, container, input, internalCreate) {\n /* eslint-enable @typescript-eslint/indent */\n var result = typeof (icons) === 'string' ? icons.split(',')\n : icons;\n if (position.toLowerCase() === 'append') {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var icon = result_1[_i];\n appendSpan(icon, container, internalCreate);\n }\n }\n else {\n for (var _a = 0, result_2 = result; _a < result_2.length; _a++) {\n var icon = result_2[_a];\n prependSpan(icon, container, input, internalCreate);\n }\n }\n if (container.getElementsByClassName('e-input-group-icon')[0] && container.getElementsByClassName('e-float-text-overflow')[0]) {\n container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n }\n Input.addIcon = addIcon;\n /**\n * Creates a new span element with the given icons added and prepend it in input element.\n * ```\n * E.g : Input.prependSpan('e-icon-spin', inputObj.container, inputElement);\n * ```\n *\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n * @param {HTMLElement} inputElement - The inputElement on which created span element is going to prepend.\n */\n /* eslint-disable @typescript-eslint/indent */\n function prependSpan(iconClass, container, inputElement, internalCreateElement) {\n /* eslint-enable @typescript-eslint/indent */\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = createIconEle(iconClass, makeElement);\n container.classList.add('e-float-icon-left');\n var innerWrapper = container.querySelector('.e-input-in-wrap');\n if (isNullOrUndefined(innerWrapper)) {\n innerWrapper = makeElement('span', { className: 'e-input-in-wrap' });\n inputElement.parentNode.insertBefore(innerWrapper, inputElement);\n var result = container.querySelectorAll(inputElement.tagName + ' ~ *');\n innerWrapper.appendChild(inputElement);\n for (var i = 0; i < result.length; i++) {\n innerWrapper.appendChild(result[i]);\n }\n }\n innerWrapper.parentNode.insertBefore(button, innerWrapper);\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\n container.classList.add(CLASSNAMES.INPUTGROUP);\n }\n _internalRipple(true, container, button);\n return button;\n }\n Input.prependSpan = prependSpan;\n /**\n * Creates a new span element with the given icons added and append it in container element.\n * ```\n * E.g : Input.appendSpan('e-icon-spin', inputObj.container);\n * ```\n *\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n */\n function appendSpan(iconClass, container, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = createIconEle(iconClass, makeElement);\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\n container.classList.add(CLASSNAMES.INPUTGROUP);\n }\n var wrap = (container.classList.contains('e-float-icon-left')) ? container.querySelector('.e-input-in-wrap') :\n container;\n wrap.appendChild(button);\n _internalRipple(true, container, button);\n return button;\n }\n Input.appendSpan = appendSpan;\n function validateInputType(containerElement, input) {\n if (input.type === 'hidden') {\n containerElement.classList.add('e-hidden');\n }\n else if (containerElement.classList.contains('e-hidden')) {\n containerElement.classList.remove('e-hidden');\n }\n }\n Input.validateInputType = validateInputType;\n})(Input || (Input = {}));\n/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, EventHandler, L10n, setValue, getValue, isNullOrUndefined, Browser } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, detach, Internationalization, getUniqueID, closest } from '@syncfusion/ej2-base';\nimport { addClass, removeClass } from '@syncfusion/ej2-base';\nimport { Input } from '../input/input';\nvar HIDE_CLEAR = 'e-clear-icon-hide';\nvar TEXTBOX_FOCUS = 'e-input-focus';\nvar containerAttr = ['title', 'style', 'class'];\n/**\n * Represents the TextBox component that allows the user to enter the values based on it's type.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar TextBox = /** @class */ (function (_super) {\n __extends(TextBox, _super);\n /**\n *\n * @param {TextBoxModel} options - Specifies the TextBox model.\n * @param {string | HTMLInputElement | HTMLTextAreaElement} element - Specifies the element to render as component.\n * @private\n */\n function TextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.previousValue = null;\n _this.isAngular = false;\n _this.isHiddenInput = false;\n _this.isForm = false;\n _this.inputPreviousValue = null;\n _this.isVue = false;\n _this.textboxOptions = options;\n return _this;\n }\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {TextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {TextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n TextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'floatLabelType':\n Input.removeFloating(this.textboxWrapper);\n Input.addFloating(this.respectiveElement, this.floatLabelType, this.placeholder);\n break;\n case 'enabled':\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n this.bindClearEvent();\n break;\n case 'width':\n Input.setWidth(newProp.width, this.textboxWrapper.container);\n break;\n case 'value':\n {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n if (!this.isBlank(this.value)) {\n this.value = this.value.toString();\n }\n this.isProtectedOnChange = prevOnChange;\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n this.inputPreviousValue = this.respectiveElement.value;\n /* istanbul ignore next */\n if ((this.isAngular || this.isVue) && this.preventChange === true) {\n this.previousValue = this.isAngular ? this.value : this.previousValue;\n this.preventChange = false;\n }\n else if (isNullOrUndefined(this.isAngular) || !this.isAngular\n || (this.isAngular && !this.preventChange) || (this.isAngular && isNullOrUndefined(this.preventChange))) {\n this.raiseChangeEvent();\n }\n }\n break;\n case 'htmlAttributes':\n {\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.checkAttributes(true);\n Input.validateInputType(this.textboxWrapper.container, this.element);\n }\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.respectiveElement);\n break;\n case 'type':\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\n this.respectiveElement.setAttribute('type', this.type);\n Input.validateInputType(this.textboxWrapper.container, this.element);\n this.raiseChangeEvent();\n }\n break;\n case 'showClearButton':\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\n Input.setClearButton(this.showClearButton, this.respectiveElement, this.textboxWrapper);\n this.bindClearEvent();\n }\n break;\n case 'enableRtl':\n Input.setEnableRtl(this.enableRtl, [this.textboxWrapper.container]);\n break;\n case 'placeholder':\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n Input.calculateWidth(this.respectiveElement, this.textboxWrapper.container);\n break;\n case 'autocomplete':\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\n this.respectiveElement.autocomplete = this.autocomplete;\n }\n else {\n this.removeAttributes(['autocomplete']);\n }\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n break;\n }\n }\n };\n /**\n * Gets the component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n TextBox.prototype.getModuleName = function () {\n return 'textbox';\n };\n TextBox.prototype.isBlank = function (str) {\n return (!str || /^\\s*$/.test(str));\n };\n TextBox.prototype.preRender = function () {\n this.cloneElement = this.element.cloneNode(true);\n this.formElement = closest(this.element, 'form');\n if (!isNullOrUndefined(this.formElement)) {\n this.isForm = true;\n }\n /* istanbul ignore next */\n if (this.element.tagName === 'EJS-TEXTBOX') {\n var ejInstance = getValue('ej2_instances', this.element);\n var inputElement = this.multiline ?\n this.createElement('textarea') :\n this.createElement('input');\n var index = 0;\n for (index; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (attributeName !== 'id' && attributeName !== 'class') {\n inputElement.setAttribute(attributeName, this.element.attributes[index].nodeValue);\n inputElement.innerHTML = this.element.innerHTML;\n if (attributeName === 'name') {\n this.element.removeAttribute('name');\n }\n }\n else if (attributeName === 'class') {\n inputElement.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' '));\n }\n }\n this.element.appendChild(inputElement);\n this.element = inputElement;\n setValue('ej2_instances', ejInstance, this.element);\n }\n this.updateHTMLAttrToElement();\n this.checkAttributes(false);\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) && this.element.value !== '') {\n this.setProperties({ value: this.element.value }, true);\n }\n if (this.element.tagName !== 'TEXTAREA') {\n this.element.setAttribute('type', this.type);\n }\n this.element.setAttribute('role', 'textbox');\n this.globalize = new Internationalization(this.locale);\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('textbox', localeText, this.locale);\n if (this.l10n.getConstant('placeholder') !== '') {\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n if (!this.element.hasAttribute('id')) {\n this.element.setAttribute('id', getUniqueID('textbox'));\n }\n if (!this.element.hasAttribute('name')) {\n this.element.setAttribute('name', this.element.getAttribute('id'));\n }\n if (this.element.tagName === 'INPUT' && this.multiline) {\n this.isHiddenInput = true;\n this.textarea = this.createElement('textarea');\n this.element.parentNode.insertBefore(this.textarea, this.element);\n this.element.setAttribute('type', 'hidden');\n this.textarea.setAttribute('name', this.element.getAttribute('name'));\n this.element.removeAttribute('name');\n this.textarea.setAttribute('role', this.element.getAttribute('role'));\n this.element.removeAttribute('role');\n this.textarea.setAttribute('id', getUniqueID('textarea'));\n var apiAttributes = ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\n for (var index = 0; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (this.element.hasAttribute(attributeName) && containerAttr.indexOf(attributeName) < 0 &&\n !(attributeName === 'id' || attributeName === 'type' || attributeName === 'e-mappinguid')) {\n // e-mappinguid attribute is handled for Grid component.\n this.textarea.setAttribute(attributeName, this.element.attributes[index].nodeValue);\n if (apiAttributes.indexOf(attributeName) < 0) {\n this.element.removeAttribute(attributeName);\n index--;\n }\n }\n }\n }\n };\n TextBox.prototype.checkAttributes = function (isDynamic) {\n var attrs = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\n for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) {\n var key = attrs_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(key))) {\n switch (key) {\n case 'disabled':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' ||\n this.element.getAttribute(key) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === ''\n || this.element.getAttribute(key) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'autocomplete':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['autocomplete'] === undefined)) || isDynamic) {\n var autoCompleteTxt = this.element.autocomplete === 'off' ? 'off' : 'on';\n this.setProperties({ autocomplete: autoCompleteTxt }, !isDynamic);\n }\n break;\n case 'value':\n if (((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) || isDynamic) && this.element.value !== '') {\n this.setProperties({ value: this.element.value }, !isDynamic);\n }\n break;\n case 'type':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['type'] === undefined)) || isDynamic) {\n this.setProperties({ type: this.element.type }, !isDynamic);\n }\n break;\n }\n }\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n TextBox.prototype.render = function () {\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = this.getInputValidClassList(this.cssClass);\n }\n this.respectiveElement = (this.isHiddenInput) ? this.textarea : this.element;\n this.textboxWrapper = Input.createInput({\n element: this.respectiveElement,\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n cssClass: updatedCssClassValue,\n readonly: this.readonly,\n placeholder: this.placeholder,\n showClearButton: this.showClearButton\n }\n });\n this.updateHTMLAttrToWrapper();\n if (this.isHiddenInput) {\n this.respectiveElement.parentNode.insertBefore(this.element, this.respectiveElement);\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.value)) {\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n }\n if (!isNullOrUndefined(this.value)) {\n this.initialValue = this.value;\n this.setInitialValue();\n }\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\n this.respectiveElement.autocomplete = this.autocomplete;\n }\n else if (!isNullOrUndefined(this.textboxOptions) && (this.textboxOptions['autocomplete'] !== undefined)) {\n this.removeAttributes(['autocomplete']);\n }\n this.previousValue = this.value;\n this.inputPreviousValue = this.value;\n this.respectiveElement.defaultValue = this.respectiveElement.value;\n Input.setWidth(this.width, this.textboxWrapper.container);\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n };\n TextBox.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValues = this.getInputValidClassList(this.htmlAttributes[\"\" + key]);\n if (updatedClassValues !== '') {\n addClass([this.textboxWrapper.container], updatedClassValues.split(' '));\n }\n }\n else if (key === 'style') {\n var setStyle = this.textboxWrapper.container.getAttribute(key);\n setStyle = !isNullOrUndefined(setStyle) ? (setStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.textboxWrapper.container.setAttribute(key, setStyle);\n }\n else {\n this.textboxWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n TextBox.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) < 0) {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n TextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getInputValidClassList(newClass), [this.textboxWrapper.container], this.getInputValidClassList(oldClass));\n };\n TextBox.prototype.getInputValidClassList = function (inputClassName) {\n var result = inputClassName;\n if (!isNullOrUndefined(inputClassName) && inputClassName !== '') {\n result = (inputClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n TextBox.prototype.setInitialValue = function () {\n if (!this.isAngular) {\n this.respectiveElement.setAttribute('value', this.initialValue);\n }\n };\n TextBox.prototype.wireEvents = function () {\n EventHandler.add(this.respectiveElement, 'focus', this.focusHandler, this);\n EventHandler.add(this.respectiveElement, 'blur', this.focusOutHandler, this);\n EventHandler.add(this.respectiveElement, 'input', this.inputHandler, this);\n EventHandler.add(this.respectiveElement, 'change', this.changeHandler, this);\n if (this.isForm) {\n EventHandler.add(this.formElement, 'reset', this.resetForm, this);\n }\n this.bindClearEvent();\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\n && this.textboxWrapper.container.classList.contains('e-autofill') &&\n this.textboxWrapper.container.classList.contains('e-outline')) {\n EventHandler.add((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler, this);\n }\n };\n TextBox.prototype.animationHandler = function () {\n this.textboxWrapper.container.classList.add('e-valid-input');\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\n if (!isNullOrUndefined(label)) {\n label.classList.add('e-label-top');\n if (label.classList.contains('e-label-bottom')) {\n label.classList.remove('e-label-bottom');\n }\n }\n };\n TextBox.prototype.resetValue = function (value) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = value;\n this.isProtectedOnChange = prevOnChange;\n };\n TextBox.prototype.resetForm = function () {\n if (this.isAngular) {\n this.resetValue('');\n }\n else {\n this.resetValue(this.initialValue);\n }\n if (!isNullOrUndefined(this.textboxWrapper)) {\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\n if (!isNullOrUndefined(label) && this.floatLabelType !== 'Always') {\n if ((isNullOrUndefined(this.initialValue) || this.initialValue === '')) {\n label.classList.add('e-label-bottom');\n label.classList.remove('e-label-top');\n }\n else if (this.initialValue !== '') {\n label.classList.add('e-label-top');\n label.classList.remove('e-label-bottom');\n }\n }\n }\n };\n TextBox.prototype.focusHandler = function (args) {\n var eventArgs = {\n container: this.textboxWrapper.container,\n event: args,\n value: this.value\n };\n this.trigger('focus', eventArgs);\n };\n TextBox.prototype.focusOutHandler = function (args) {\n if (!(this.previousValue === null && this.value === null && this.respectiveElement.value === '') &&\n (this.previousValue !== this.value)) {\n this.raiseChangeEvent(args, true);\n }\n var eventArgs = {\n container: this.textboxWrapper.container,\n event: args,\n value: this.value\n };\n this.trigger('blur', eventArgs);\n };\n TextBox.prototype.inputHandler = function (args) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\n var textboxObj = this;\n var eventArgs = {\n event: args,\n value: this.respectiveElement.value,\n previousValue: this.inputPreviousValue,\n container: this.textboxWrapper.container\n };\n this.inputPreviousValue = this.respectiveElement.value;\n /* istanbul ignore next */\n if (this.isAngular) {\n textboxObj.localChange({ value: this.respectiveElement.value });\n this.preventChange = true;\n }\n if (this.isVue) {\n this.preventChange = true;\n }\n this.trigger('input', eventArgs);\n args.stopPropagation();\n };\n TextBox.prototype.changeHandler = function (args) {\n this.setProperties({ value: this.respectiveElement.value }, true);\n this.raiseChangeEvent(args, true);\n args.stopPropagation();\n };\n TextBox.prototype.raiseChangeEvent = function (event, interaction) {\n var eventArgs = {\n event: event,\n value: this.value,\n previousValue: this.previousValue,\n container: this.textboxWrapper.container,\n isInteraction: interaction ? interaction : false,\n isInteracted: interaction ? interaction : false\n };\n this.preventChange = false;\n this.trigger('change', eventArgs);\n this.previousValue = this.value;\n //EJ2CORE-738:For this task we update the textarea value to the input when input tag with multiline is present\n if (this.element.tagName === 'INPUT' && this.multiline && Browser.info.name === 'mozilla') {\n this.element.value = this.respectiveElement.value;\n }\n };\n TextBox.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.respectiveElement.tagName !== 'TEXTAREA') {\n if (this.enabled) {\n EventHandler.add(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler, this);\n }\n else {\n EventHandler.remove(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler);\n }\n }\n };\n TextBox.prototype.resetInputHandler = function (event) {\n event.preventDefault();\n if (!(this.textboxWrapper.clearButton.classList.contains(HIDE_CLEAR)) || this.textboxWrapper.container.classList.contains('e-static-clear')) {\n Input.setValue('', this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n this.setProperties({ value: this.respectiveElement.value }, true);\n var eventArgs = {\n event: event,\n value: this.respectiveElement.value,\n previousValue: this.inputPreviousValue,\n container: this.textboxWrapper.container\n };\n this.trigger('input', eventArgs);\n this.inputPreviousValue = this.respectiveElement.value;\n this.raiseChangeEvent(event, true);\n if (closest(this.element, 'form')) {\n var element = this.element;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n }\n };\n TextBox.prototype.unWireEvents = function () {\n EventHandler.remove(this.respectiveElement, 'focus', this.focusHandler);\n EventHandler.remove(this.respectiveElement, 'blur', this.focusOutHandler);\n EventHandler.remove(this.respectiveElement, 'input', this.inputHandler);\n EventHandler.remove(this.respectiveElement, 'change', this.changeHandler);\n if (this.isForm) {\n EventHandler.remove(this.formElement, 'reset', this.resetForm);\n }\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\n && this.textboxWrapper.container.classList.contains('e-outline') &&\n this.textboxWrapper.container.classList.contains('e-autofill')) {\n EventHandler.remove((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler);\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also, it maintains the initial TextBox element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n TextBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.element.tagName === 'INPUT' && this.multiline) {\n detach(this.textboxWrapper.container.getElementsByTagName('textarea')[0]);\n this.respectiveElement = this.element;\n this.element.removeAttribute('type');\n }\n this.respectiveElement.value = this.respectiveElement.defaultValue;\n this.respectiveElement.classList.remove('e-input');\n this.removeAttributes(['aria-disabled', 'aria-readonly', 'aria-labelledby']);\n if (!isNullOrUndefined(this.textboxWrapper)) {\n this.textboxWrapper.container.insertAdjacentElement('afterend', this.respectiveElement);\n detach(this.textboxWrapper.container);\n }\n this.textboxWrapper = null;\n Input.destroy();\n _super.prototype.destroy.call(this);\n };\n /**\n * Adding the icons to the TextBox component.\n *\n * @param { string } position - Specify the icon placement on the TextBox. Possible values are append and prepend.\n * @param { string | string[] } icons - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for TextBox.\n * @returns {void}\n */\n TextBox.prototype.addIcon = function (position, icons) {\n Input.addIcon(position, icons, this.textboxWrapper.container, this.respectiveElement, this.createElement);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n */\n TextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\n /**\n * Adding the multiple attributes as key-value pair to the TextBox element.\n *\n * @param {string} attributes - Specifies the attributes to be add to TextBox element.\n * @returns {void}\n */\n TextBox.prototype.addAttributes = function (attributes) {\n for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key === 'disabled') {\n this.setProperties({ enabled: false }, true);\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n }\n else if (key === 'readonly') {\n this.setProperties({ readonly: true }, true);\n Input.setReadonly(this.readonly, this.respectiveElement);\n }\n else if (key === 'class') {\n this.respectiveElement.classList.add(attributes[\"\" + key]);\n }\n else if (key === 'placeholder') {\n this.setProperties({ placeholder: attributes[\"\" + key] }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n }\n else if (key === 'rows' && this.respectiveElement.tagName === 'TEXTAREA') {\n this.respectiveElement.setAttribute(key, attributes[\"\" + key]);\n }\n else {\n this.respectiveElement.setAttribute(key, attributes[\"\" + key]);\n }\n }\n };\n /**\n * Removing the multiple attributes as key-value pair to the TextBox element.\n *\n * @param { string[] } attributes - Specifies the attributes name to be removed from TextBox element.\n * @returns {void}\n */\n TextBox.prototype.removeAttributes = function (attributes) {\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var key = attributes_1[_i];\n if (key === 'disabled') {\n this.setProperties({ enabled: true }, true);\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n }\n else if (key === 'readonly') {\n this.setProperties({ readonly: false }, true);\n Input.setReadonly(this.readonly, this.respectiveElement);\n }\n else if (key === 'placeholder') {\n this.setProperties({ placeholder: null }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n }\n else {\n this.respectiveElement.removeAttribute(key);\n }\n }\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n TextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.respectiveElement && this.enabled) {\n this.respectiveElement.focus();\n if (this.textboxWrapper.container.classList.contains('e-input-group')\n || this.textboxWrapper.container.classList.contains('e-outline')\n || this.textboxWrapper.container.classList.contains('e-filled')) {\n addClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\n }\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n TextBox.prototype.focusOut = function () {\n if (document.activeElement === this.respectiveElement && this.enabled) {\n this.respectiveElement.blur();\n if (this.textboxWrapper.container.classList.contains('e-input-group')\n || this.textboxWrapper.container.classList.contains('e-outline')\n || this.textboxWrapper.container.classList.contains('e-filled')) {\n removeClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\n }\n }\n };\n __decorate([\n Property('text')\n ], TextBox.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"value\", void 0);\n __decorate([\n Property('Never')\n ], TextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property('')\n ], TextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('on')\n ], TextBox.prototype, \"autocomplete\", void 0);\n __decorate([\n Property({})\n ], TextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"multiline\", void 0);\n __decorate([\n Property(true)\n ], TextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"width\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"input\", void 0);\n TextBox = __decorate([\n NotifyPropertyChanges\n ], TextBox);\n return TextBox;\n}(Component));\nexport { TextBox };\n","/**\n * Matrix module is used to transform points based on offsets, angle\n */\n/** @private */\nexport var MatrixTypes;\n(function (MatrixTypes) {\n MatrixTypes[MatrixTypes[\"Identity\"] = 0] = \"Identity\";\n MatrixTypes[MatrixTypes[\"Translation\"] = 1] = \"Translation\";\n MatrixTypes[MatrixTypes[\"Scaling\"] = 2] = \"Scaling\";\n MatrixTypes[MatrixTypes[\"Unknown\"] = 4] = \"Unknown\";\n})(MatrixTypes || (MatrixTypes = {}));\n/** @private */\nvar Matrix = /** @class */ (function () {\n function Matrix(m11, m12, m21, m22, offsetX, offsetY, type) {\n this.m11 = m11;\n this.m12 = m12;\n this.m21 = m21;\n this.m22 = m22;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n // if (type === undefined) {\n // this.type = MatrixTypes.Unknown;\n // } else {\n // this.type = type;\n // }\n this.type = type;\n }\n return Matrix;\n}());\nexport { Matrix };\n/** @private */\nexport function identityMatrix() {\n return new Matrix(1, 0, 0, 1, 0, 0, MatrixTypes.Identity);\n}\n/** @private */\nexport function transformPointByMatrix(matrix, point) {\n var pt = multiplyPoint(matrix, point.x, point.y);\n return { x: Math.round(pt.x * 100) / 100, y: Math.round(pt.y * 100) / 100 };\n}\n/** @private */\nexport function transformPointsByMatrix(matrix, points) {\n var transformedPoints = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n transformedPoints.push(transformPointByMatrix(matrix, point));\n }\n return transformedPoints;\n}\n/** @private */\nexport function rotateMatrix(matrix, angle, centerX, centerY) {\n angle %= 360.0;\n multiplyMatrix(matrix, createRotationRadians(angle * 0.017453292519943295, centerX ? centerX : 0, centerY ? centerY : 0));\n}\n/** @private */\nexport function scaleMatrix(matrix, scaleX, scaleY, centerX, centerY) {\n if (centerX === void 0) { centerX = 0; }\n if (centerY === void 0) { centerY = 0; }\n multiplyMatrix(matrix, createScaling(scaleX, scaleY, centerX, centerY));\n}\n/** @private */\nexport function translateMatrix(matrix, offsetX, offsetY) {\n if (matrix.type & MatrixTypes.Identity) {\n matrix.type = MatrixTypes.Translation;\n setMatrix(matrix, 1.0, 0.0, 0.0, 1.0, offsetX, offsetY);\n return;\n }\n if (matrix.type & MatrixTypes.Unknown) {\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n return;\n }\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n matrix.type |= MatrixTypes.Translation;\n}\n/** @private */\nfunction createScaling(scaleX, scaleY, centerX, centerY) {\n var result = identityMatrix();\n result.type = !(centerX || centerY) ? MatrixTypes.Scaling : MatrixTypes.Scaling | MatrixTypes.Translation;\n setMatrix(result, scaleX, 0.0, 0.0, scaleY, centerX - scaleX * centerX, centerY - scaleY * centerY);\n return result;\n}\n/** @private */\nfunction createRotationRadians(angle, centerX, centerY) {\n var result = identityMatrix();\n var num = Math.sin(angle);\n var num2 = Math.cos(angle);\n var offsetX = centerX * (1.0 - num2) + centerY * num;\n var offsetY = centerY * (1.0 - num2) - centerX * num;\n result.type = MatrixTypes.Unknown;\n setMatrix(result, num2, num, -num, num2, offsetX, offsetY);\n return result;\n}\n/** @private */\nfunction multiplyPoint(matrix, x, y) {\n switch (matrix.type) {\n case MatrixTypes.Identity: break;\n case MatrixTypes.Translation:\n x += matrix.offsetX;\n y += matrix.offsetY;\n break;\n case MatrixTypes.Scaling:\n x *= matrix.m11;\n y *= matrix.m22;\n break;\n case MatrixTypes.Translation | MatrixTypes.Scaling:\n x *= matrix.m11;\n x += matrix.offsetX;\n y *= matrix.m22;\n y += matrix.offsetY;\n break;\n default:\n var num = y * matrix.m21 + matrix.offsetX;\n var num2 = x * matrix.m12 + matrix.offsetY;\n x *= matrix.m11;\n x += num;\n y *= matrix.m22;\n y += num2;\n break;\n }\n return { x: x, y: y };\n}\n/** @private */\nexport function multiplyMatrix(matrix1, matrix2) {\n var type = matrix1.type;\n var type2 = matrix2.type;\n if (type2 === MatrixTypes.Identity) {\n return;\n }\n if (type === MatrixTypes.Identity) {\n assignMatrix(matrix1, matrix2);\n matrix1.type = matrix2.type;\n return;\n }\n if (type2 === MatrixTypes.Translation) {\n matrix1.offsetX += matrix2.offsetX;\n matrix1.offsetY += matrix2.offsetY;\n if (type !== MatrixTypes.Unknown) {\n matrix1.type |= MatrixTypes.Translation;\n }\n return;\n }\n if (type !== MatrixTypes.Translation) {\n var num = type << 4 | type2;\n switch (num) {\n case 34:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n return;\n case 35:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n return;\n case 36: break;\n default:\n {\n switch (num) {\n case 50:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX *= matrix2.m11;\n matrix1.offsetY *= matrix2.m22;\n return;\n case 51:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.m11 * matrix1.offsetX + matrix2.offsetX;\n matrix1.offsetY = matrix2.m22 * matrix1.offsetY + matrix2.offsetY;\n return;\n case 52: break;\n default:\n switch (num) {\n case 66:\n case 67:\n case 68: break;\n default: return;\n }\n break;\n }\n break;\n }\n }\n var result = identityMatrix();\n var m11New = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21;\n var m12New = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22;\n var m21New = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21;\n var m22New = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22;\n var offsetX_1 = matrix1.offsetX * matrix2.m11 + matrix1.offsetY * matrix2.m21 + matrix2.offsetX;\n var offsetY_1 = matrix1.offsetX * matrix2.m12 + matrix1.offsetY * matrix2.m22 + matrix2.offsetY;\n setMatrix(result, m11New, m12New, m21New, m22New, offsetX_1, offsetY_1);\n if (result.m21 || result.m12) {\n result.type = MatrixTypes.Unknown;\n }\n else {\n if (result.m11 && result.m11 !== 1.0 || result.m22 && result.m22 !== 1.0) {\n result.type = MatrixTypes.Scaling;\n }\n if (result.offsetX || result.offsetY) {\n result.type |= MatrixTypes.Translation;\n }\n if ((result.type & (MatrixTypes.Translation | MatrixTypes.Scaling)) === MatrixTypes.Identity) {\n result.type = MatrixTypes.Identity;\n }\n result.type = MatrixTypes.Scaling | MatrixTypes.Translation;\n }\n assignMatrix(matrix1, result);\n matrix1.type = result.type;\n return;\n }\n var offsetX = matrix1.offsetX;\n var offsetY = matrix1.offsetY;\n matrix1.offsetX = offsetX * matrix2.m11 + offsetY * matrix2.m21 + matrix2.offsetX;\n matrix1.offsetY = offsetX * matrix2.m12 + offsetY * matrix2.m22 + matrix2.offsetY;\n if (type2 === MatrixTypes.Unknown) {\n matrix1.type = MatrixTypes.Unknown;\n return;\n }\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n}\n/** @private */\nfunction setMatrix(mat, m11, m12, m21, m22, x, y) {\n mat.m11 = m11;\n mat.m12 = m12;\n mat.m21 = m21;\n mat.m22 = m22;\n mat.offsetX = x;\n mat.offsetY = y;\n}\n/** @private */\nfunction assignMatrix(matrix1, matrix2) {\n matrix1.m11 = matrix2.m11;\n matrix1.m12 = matrix2.m12;\n matrix1.m21 = matrix2.m21;\n matrix1.m22 = matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = matrix2.type;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines and processes coordinates\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** @private */\n Point.equals = function (point1, point2) {\n if (point1 === point2) {\n return true;\n }\n if (!point1 || !point2) {\n return false;\n }\n return !point1 || !point2 || point1.x === point2.x && point1.y === point2.y;\n };\n /**\n * check whether the points are given\n */\n Point.isEmptyPoint = function (point) {\n if (point.x && point.y) {\n return false;\n }\n return true;\n };\n /** @private */\n Point.transform = function (point, angle, length) {\n var pt = { x: 0, y: 0 };\n pt.x = Math.round((point.x + length * Math.cos(angle * Math.PI / 180)) * 100) / 100;\n pt.y = Math.round((point.y + length * Math.sin(angle * Math.PI / 180)) * 100) / 100;\n return pt;\n };\n /** @private */\n Point.findLength = function (s, e) {\n var length = Math.sqrt(Math.pow((s.x - e.x), 2) + Math.pow((s.y - e.y), 2));\n return length;\n };\n /** @private */\n Point.findAngle = function (point1, point2) {\n var angle = Math.atan2(point2.y - point1.y, point2.x - point1.x);\n angle = (180 * angle / Math.PI);\n angle %= 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n };\n /** @private */\n Point.distancePoints = function (pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n /** @private */\n Point.getLengthFromListOfPoints = function (points) {\n var length = 0;\n for (var j = 0; j < points.length - 1; j++) {\n length += this.distancePoints(points[j], points[j + 1]);\n }\n return length;\n };\n /** @private */\n Point.adjustPoint = function (source, target, isStart, length) {\n var pt = isStart ? { x: source.x, y: source.y } : { x: target.x, y: target.y };\n var angle;\n if (source.x === target.x) {\n if (source.y < target.y && isStart || source.y > target.y && !isStart) {\n pt.y += length;\n }\n else {\n pt.y -= length;\n }\n }\n else if (source.y === target.y) {\n if (source.x < target.x && isStart || source.x > target.x && !isStart) {\n pt.x += length;\n }\n else {\n pt.x -= length;\n }\n }\n else {\n if (isStart) {\n angle = this.findAngle(source, target);\n pt = this.transform(source, angle, length);\n }\n else {\n angle = this.findAngle(target, source);\n pt = this.transform(target, angle, length);\n }\n }\n return pt;\n };\n /** @private */\n Point.direction = function (pt1, pt2) {\n if (Math.abs(pt2.x - pt1.x) > Math.abs(pt2.y - pt1.y)) {\n return pt1.x < pt2.x ? 'Right' : 'Left';\n }\n else {\n return pt1.y < pt2.y ? 'Bottom' : 'Top';\n }\n };\n /**\n * @private\n * Returns the name of class Point\n */\n Point.prototype.getClassName = function () {\n return 'Point';\n };\n __decorate([\n Property(0)\n ], Point.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], Point.prototype, \"y\", void 0);\n return Point;\n}(ChildProperty));\nexport { Point };\n","import { Point, rotateMatrix, identityMatrix, transformPointByMatrix } from '@syncfusion/ej2-drawings';\nimport { getValue } from '@syncfusion/ej2-base';\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the shape annotation object.\n * @hidden\n * @returns {void}\n */\nexport function isLineShapes(obj) {\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead'\n || obj.shapeAnnotationType === 'Distance' || obj.shapeAnnotationType === 'Polygon') {\n return true;\n }\n return false;\n}\n/**\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation or form fields object.\n * @param {DrawingElement} element - Specified the annotation drawing element.\n * @returns {void}\n * @hidden\n */\nexport function setElementStype(obj, element) {\n if (obj && element) {\n if (obj.formFieldAnnotationType) {\n if (obj.id.indexOf('diagram_helper') !== -1) {\n element.style.fill = 'transparent';\n element.style.strokeWidth = 1;\n element.style.strokeDashArray = obj.borderDashArray;\n }\n else {\n element.style.fill = 'transparent';\n element.style.strokeWidth = 0;\n }\n }\n else {\n var fillColor = (obj.fillColor === '#ffffff00' ? 'transparent' : obj.fillColor);\n element.style.fill = fillColor ? fillColor : 'white';\n // eslint-disable-next-line max-len\n element.style.strokeColor = obj.strokeColor ? obj.strokeColor : obj.borderColor;\n // eslint-disable-next-line max-len\n element.style.color = obj.strokeColor ? obj.strokeColor : obj.borderColor;\n element.style.strokeWidth = obj.thickness;\n if (obj.shapeAnnotationType === 'Image' || obj.shapeAnnotationType === 'SignatureText' || obj.shapeAnnotationType === 'SignatureImage') {\n element.style.strokeWidth = 0;\n }\n element.style.strokeDashArray = obj.borderDashArray;\n element.style.opacity = obj.opacity;\n }\n }\n}\n/**\n * @param {PointModel[]} points - Specified the annotation points value.\n * @hidden\n * @returns {number} - Returns the points length.\n */\nexport function findPointsLength(points) {\n var length = 0;\n for (var i = 0; i < points.length - 1; i++) {\n length += Point.findLength(points[parseInt(i.toString(), 10)], points[i + 1]);\n }\n return length;\n}\n/**\n * @param {PointModel[]} points - Specified the annotation points value.\n * @hidden\n * @returns {number} - Returns the points length.\n */\nexport function findPerimeterLength(points) {\n var length = Point.getLengthFromListOfPoints(points);\n return length;\n}\n/**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {Transforms} transform - Specified the transform value.\n * @returns {BaseAttributes} - Returns the base attributes value.\n */\nexport function getBaseShapeAttributes(element, transform) {\n var baseShapeAttributes = {\n width: element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5,\n angle: element.rotateAngle + element.parentTransform, fill: element.style.fill, stroke: element.style.strokeColor,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 1,\n opacity: element.style.opacity, dashArray: element.style.strokeDashArray || '',\n visible: element.visible, id: element.id\n };\n if (transform) {\n baseShapeAttributes.x += transform.tx;\n baseShapeAttributes.y += transform.ty;\n }\n return baseShapeAttributes;\n}\n/**\n * Get function\n *\n * @private\n * @param {Function | string} value - Type of the function.\n * @returns {Function} - Returns the function.\n */\nexport function getFunction(value) {\n if (value !== undefined) {\n if (typeof value === 'string') {\n value = getValue(value, window);\n }\n }\n return value;\n}\n/**\n * @private\n * @param {any} obj - Specified the annotation object.\n * @param {Function | string} additionalProp - Specified the annotation additional properties.\n * @param {string} key - Specified the annotation key value.\n * @returns {Object} - Returns the cloned object.\n */\n// eslint-disable-next-line\nexport function cloneObject(obj, additionalProp, key) {\n // eslint-disable-next-line\n var newObject = {};\n var keys = 'properties';\n var prop = 'propName';\n if (obj) {\n key = obj[\"\" + prop];\n var sourceObject = obj[\"\" + keys] || obj;\n var properties = [];\n properties = properties.concat(Object.keys(sourceObject));\n var customProperties = [];\n properties.push('version');\n if (key) {\n var propAdditional = getFunction(additionalProp);\n if (propAdditional) {\n customProperties = propAdditional(key);\n }\n else {\n customProperties = [];\n }\n properties = properties.concat(customProperties);\n }\n var internalProp = getInternalProperties(key);\n properties = properties.concat(internalProp);\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (property !== 'historyManager') {\n if (property !== 'wrapper') {\n // eslint-disable-next-line\n var isEventEmmitter = obj[property] && obj.hasOwnProperty('observers') ? true : false;\n if (!isEventEmmitter) {\n if (obj[\"\" + property] instanceof Array) {\n newObject[\"\" + property] = cloneArray((internalProp.indexOf(property) === -1 && obj[\"\" + key]) ? obj[\"\" + key][\"\" + property] : obj[\"\" + property], additionalProp, property);\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof HTMLElement) {\n newObject[\"\" + property] = obj[\"\" + property].cloneNode(true).innerHtml;\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof Object) {\n newObject[\"\" + property] = cloneObject((internalProp.indexOf(property) === -1 && obj[\"\" + key]) ? obj[\"\" + key][\"\" + property] : obj[\"\" + property]);\n }\n else {\n newObject[\"\" + property] = obj[\"\" + property];\n }\n }\n }\n else {\n if (obj[\"\" + property]) {\n newObject[\"\" + property] = {\n actualSize: {\n width: obj[\"\" + property].actualSize.width, height: obj[\"\" + property].actualSize.height\n }, offsetX: obj[\"\" + property].offsetX, offsetY: obj[\"\" + property].offsetY\n };\n }\n }\n }\n }\n }\n return newObject;\n}\n/**\n * @private\n * @param {Object[]} sourceArray - Specified the annotation source collections.\n * @param {Function | string} additionalProp - Specified the annotation additional properties.\n * @param {string} key - Specified the annotation key value.\n * @returns {Object[]} - Returns the cloned object array.\n */\nexport function cloneArray(sourceArray, additionalProp, key) {\n var clonedArray;\n if (sourceArray) {\n clonedArray = [];\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n clonedArray.push(cloneObject(sourceArray[parseInt(i.toString(), 10)], additionalProp, key));\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n return clonedArray;\n}\n/**\n * @private\n * @param {string} propName - Specified the annotation property name.\n * @returns {string[]} - Returns the internal properties.\n */\nexport function getInternalProperties(propName) {\n switch (propName) {\n case 'nodes':\n case 'children':\n return ['inEdges', 'outEdges', 'parentId', 'processId', 'nodeId', 'umlIndex', 'isPhase', 'isLane'];\n case 'connectors':\n return ['parentId'];\n case 'annotation':\n return ['nodeId'];\n case 'annotations':\n return ['nodeId'];\n case 'shape':\n return ['hasHeader'];\n }\n return [];\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {string} position - Specified the annotation position.\n * @hidden\n * @returns {Leader} - Returns the leader value.\n */\nexport function isLeader(obj, position) {\n var rotatedPoint;\n if (obj.shapeAnnotationType === 'Distance') {\n var leaderCount = 0;\n var newPoint1 = void 0;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var angle = Point.findAngle(obj.sourcePoint, obj.targetPoint);\n // eslint-disable-next-line\n var segment = obj.wrapper.children[i];\n if (segment.id.indexOf('leader') > -1) {\n var center = obj.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: obj.sourcePoint.x, y: obj.sourcePoint.y - obj.leaderHeight };\n center = obj.sourcePoint;\n }\n else {\n newPoint1 = { x: obj.targetPoint.x, y: obj.targetPoint.y - obj.leaderHeight };\n center = obj.targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n if (position === 'Leader' + leaderCount) {\n return { leader: 'leader' + leaderCount, point: rotatedPoint };\n }\n leaderCount++;\n }\n }\n }\n return { leader: '', point: rotatedPoint };\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, isNullOrUndefined, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { addClass, detach, getUniqueID, isRippleEnabled, removeClass, rippleEffect, closest } from '@syncfusion/ej2-base';\nimport { wrapperInitialize, rippleMouseHandler, setHiddenInput } from './../common/common';\nvar CHECK = 'e-check';\nvar DISABLED = 'e-checkbox-disabled';\nvar FRAME = 'e-frame';\nvar INDETERMINATE = 'e-stop';\nvar LABEL = 'e-label';\nvar RIPPLE = 'e-ripple-container';\nvar RIPPLECHECK = 'e-ripple-check';\nvar RIPPLEINDETERMINATE = 'e-ripple-stop';\nvar RTL = 'e-rtl';\nvar WRAPPER = 'e-checkbox-wrapper';\nvar containerAttr = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value'];\n/**\n * The CheckBox is a graphical user interface element that allows you to select one or more options from the choices.\n * It contains checked, unchecked, and indeterminate states.\n * ```html\n * \n * \n * ```\n */\nvar CheckBox = /** @class */ (function (_super) {\n __extends(CheckBox, _super);\n /**\n * Constructor for creating the widget\n *\n * @private\n * @param {CheckBoxModel} options - Specifies checkbox model\n * @param {string | HTMLInputElement} element - Specifies target element\n */\n function CheckBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isFocused = false;\n _this.isMouseClick = false;\n _this.clickTriggered = false;\n _this.validCheck = true;\n return _this;\n }\n CheckBox.prototype.changeState = function (state, isInitialize) {\n var ariaState;\n var rippleSpan;\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n if (isRippleEnabled) {\n rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n }\n if (state === 'check') {\n frameSpan.classList.remove(INDETERMINATE);\n frameSpan.classList.add(CHECK);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLEINDETERMINATE);\n rippleSpan.classList.add(RIPPLECHECK);\n }\n ariaState = 'true';\n this.element.checked = true;\n if (this.element.required && this.validCheck && !isInitialize) {\n this.element.checked = false;\n this.validCheck = false;\n }\n else if (this.element.required) {\n this.validCheck = true;\n }\n }\n else if (state === 'uncheck') {\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\n if (rippleSpan) {\n removeClass([rippleSpan], [RIPPLECHECK, RIPPLEINDETERMINATE]);\n }\n ariaState = 'false';\n this.element.checked = false;\n if (this.element.required && this.validCheck && !isInitialize) {\n this.element.checked = true;\n this.validCheck = false;\n }\n else if (this.element.required) {\n this.validCheck = true;\n }\n }\n else {\n frameSpan.classList.remove(CHECK);\n frameSpan.classList.add(INDETERMINATE);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLECHECK);\n rippleSpan.classList.add(RIPPLEINDETERMINATE);\n }\n ariaState = 'mixed';\n this.element.indeterminate = true;\n }\n };\n CheckBox.prototype.clickHandler = function (event) {\n if (event.target.tagName === 'INPUT' && this.clickTriggered) {\n if (this.isVue) {\n this.changeState(this.checked ? 'check' : 'uncheck');\n }\n this.clickTriggered = false;\n return;\n }\n if (event.target.tagName === 'SPAN' || event.target.tagName === 'LABEL') {\n this.clickTriggered = true;\n }\n if (this.isMouseClick) {\n this.focusOutHandler();\n this.isMouseClick = false;\n }\n if (this.indeterminate) {\n this.changeState(this.checked ? 'check' : 'uncheck');\n this.indeterminate = false;\n this.element.indeterminate = false;\n }\n else if (this.checked) {\n this.changeState('uncheck');\n this.checked = false;\n }\n else {\n this.changeState('check');\n this.checked = true;\n }\n var changeEventArgs = { checked: this.updateVueArrayModel(false), event: event };\n this.trigger('change', changeEventArgs);\n event.stopPropagation();\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n CheckBox.prototype.destroy = function () {\n var _this = this;\n var wrapper = this.getWrapper();\n _super.prototype.destroy.call(this);\n if (this.wrapper) {\n wrapper = this.wrapper;\n if (!this.disabled) {\n this.unWireEvents();\n }\n if (this.tagName === 'INPUT') {\n if (this.getWrapper() && wrapper.parentNode) {\n wrapper.parentNode.insertBefore(this.element, wrapper);\n }\n detach(wrapper);\n this.element.checked = false;\n if (this.indeterminate) {\n this.element.indeterminate = false;\n }\n ['name', 'value', 'disabled'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n }\n else {\n ['class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n }\n };\n CheckBox.prototype.focusHandler = function () {\n this.isFocused = true;\n };\n CheckBox.prototype.focusOutHandler = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n wrapper.classList.remove('e-focus');\n }\n this.isFocused = false;\n };\n /**\n * Gets the module name.\n *\n * @private\n * @returns {string} - Module Name\n */\n CheckBox.prototype.getModuleName = function () {\n return 'checkbox';\n };\n /**\n * Gets the properties to be maintained in the persistence state.\n *\n * @private\n * @returns {string} - Persist Data\n */\n CheckBox.prototype.getPersistData = function () {\n return this.addOnPersist(['checked', 'indeterminate']);\n };\n CheckBox.prototype.getWrapper = function () {\n if (this.element && this.element.parentElement) {\n return this.element.parentElement.parentElement;\n }\n else {\n return null;\n }\n };\n CheckBox.prototype.initialize = function () {\n if (isNullOrUndefined(this.initialCheckedValue)) {\n this.initialCheckedValue = this.checked;\n }\n if (this.name) {\n this.element.setAttribute('name', this.name);\n }\n if (this.value) {\n this.element.setAttribute('value', this.value);\n if (this.isVue && typeof this.value === 'boolean' && this.value === true) {\n this.setProperties({ 'checked': true }, true);\n }\n }\n if (this.checked) {\n this.changeState('check', true);\n }\n if (this.indeterminate) {\n this.changeState();\n }\n if (this.disabled) {\n this.setDisabled();\n }\n };\n CheckBox.prototype.initWrapper = function () {\n var wrapper = this.element.parentElement;\n if (!wrapper.classList.contains(WRAPPER)) {\n wrapper = this.createElement('div', {\n className: WRAPPER\n });\n this.element.parentNode.insertBefore(wrapper, this.element);\n }\n var label = this.createElement('label', { attrs: { for: this.element.id } });\n var frameSpan = this.createElement('span', { className: 'e-icons ' + FRAME });\n wrapper.classList.add('e-wrapper');\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n wrapper.appendChild(label);\n label.appendChild(this.element);\n setHiddenInput(this, label);\n label.appendChild(frameSpan);\n if (isRippleEnabled) {\n var rippleSpan = this.createElement('span', { className: RIPPLE });\n if (this.labelPosition === 'Before') {\n label.appendChild(rippleSpan);\n }\n else {\n label.insertBefore(rippleSpan, frameSpan);\n }\n rippleEffect(rippleSpan, { duration: 400, isCenterRipple: true });\n }\n if (this.label) {\n this.setText(this.label);\n }\n };\n CheckBox.prototype.keyUpHandler = function () {\n if (this.isFocused) {\n this.getWrapper().classList.add('e-focus');\n }\n };\n CheckBox.prototype.labelMouseDownHandler = function (e) {\n this.isMouseClick = true;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n rippleMouseHandler(e, rippleSpan);\n };\n CheckBox.prototype.labelMouseUpHandler = function (e) {\n this.isMouseClick = true;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n if (rippleSpan) {\n var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element');\n for (var i = 0; i < rippleElem.length - 1; i++) {\n rippleSpan.removeChild(rippleSpan.childNodes[i]);\n }\n rippleMouseHandler(e, rippleSpan);\n }\n };\n /**\n * Called internally if any of the property value changes.\n *\n * @private\n * @param {CheckBoxModel} newProp - Specifies new Properties\n * @param {CheckBoxModel} oldProp - Specifies old Properties\n *\n * @returns {void}\n */\n CheckBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'checked':\n this.indeterminate = false;\n this.element.indeterminate = false;\n this.changeState(newProp.checked ? 'check' : 'uncheck');\n break;\n case 'indeterminate':\n if (newProp.indeterminate) {\n this.changeState();\n }\n else {\n this.element.indeterminate = false;\n this.changeState(this.checked ? 'check' : 'uncheck');\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.setDisabled();\n this.wrapper = this.getWrapper();\n this.unWireEvents();\n }\n else {\n this.element.disabled = false;\n wrapper.classList.remove(DISABLED);\n wrapper.setAttribute('aria-disabled', 'false');\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n wrapper.classList.add(RTL);\n }\n else {\n wrapper.classList.remove(RTL);\n }\n break;\n case 'label':\n this.setText(newProp.label);\n break;\n case 'labelPosition': {\n var label = wrapper.getElementsByClassName(LABEL)[0];\n var labelWrap = wrapper.getElementsByTagName('label')[0];\n detach(label);\n if (newProp.labelPosition === 'After') {\n labelWrap.appendChild(label);\n }\n else {\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\n }\n break;\n }\n case 'name':\n this.element.setAttribute('name', newProp.name);\n break;\n case 'value':\n if (this.isVue && typeof newProp.value === 'object') {\n break;\n }\n this.element.setAttribute('value', newProp.value);\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToWrapper();\n break;\n }\n }\n };\n /**\n * Initialize Angular, React and Unique ID support.\n *\n * @private\n * @returns {void}\n */\n CheckBox.prototype.preRender = function () {\n var element = this.element;\n this.tagName = this.element.tagName;\n element = wrapperInitialize(this.createElement, 'EJS-CHECKBOX', 'checkbox', element, WRAPPER, 'checkbox');\n this.element = element;\n if (this.element.getAttribute('type') !== 'checkbox') {\n this.element.setAttribute('type', 'checkbox');\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n CheckBox.prototype.render = function () {\n this.initWrapper();\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.updateHtmlAttributeToWrapper();\n this.updateVueArrayModel(true);\n this.renderComplete();\n this.wrapper = this.getWrapper();\n };\n CheckBox.prototype.setDisabled = function () {\n var wrapper = this.getWrapper();\n this.element.disabled = true;\n wrapper.classList.add(DISABLED);\n wrapper.setAttribute('aria-disabled', 'true');\n };\n CheckBox.prototype.setText = function (text) {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n return;\n }\n var label = wrapper.getElementsByClassName(LABEL)[0];\n if (label) {\n label.textContent = text;\n }\n else {\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\n label = this.createElement('span', { className: LABEL, innerHTML: text });\n var labelWrap = wrapper.getElementsByTagName('label')[0];\n if (this.labelPosition === 'Before') {\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\n }\n else {\n labelWrap.appendChild(label);\n }\n }\n };\n CheckBox.prototype.changeHandler = function (e) {\n e.stopPropagation();\n };\n CheckBox.prototype.formResetHandler = function () {\n this.checked = this.initialCheckedValue;\n this.element.checked = this.initialCheckedValue;\n };\n CheckBox.prototype.unWireEvents = function () {\n var wrapper = this.wrapper;\n EventHandler.remove(wrapper, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.remove(label, 'mousedown', this.labelMouseDownHandler);\n EventHandler.remove(label, 'mouseup', this.labelMouseUpHandler);\n var formElem = closest(this.element, 'form');\n if (formElem) {\n EventHandler.remove(formElem, 'reset', this.formResetHandler);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.remove(this.element, 'change', this.changeHandler);\n }\n };\n CheckBox.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.add(wrapper, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.add(label, 'mousedown', this.labelMouseDownHandler, this);\n EventHandler.add(label, 'mouseup', this.labelMouseUpHandler, this);\n var formElem = closest(this.element, 'form');\n if (formElem) {\n EventHandler.add(formElem, 'reset', this.formResetHandler, this);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n }\n };\n CheckBox.prototype.updateVueArrayModel = function (init) {\n if (this.isVue && typeof this.value === 'object') {\n var value = this.element.value;\n if (value && this.value) {\n if (init) {\n for (var i = 0; i < this.value.length; i++) {\n if (value === this.value[i]) {\n this.changeState('check');\n this.setProperties({ 'checked': true }, true);\n }\n }\n }\n else {\n var index = this.value.indexOf(value);\n if (this.checked) {\n if (index < 0) {\n this.value.push(value);\n }\n }\n else {\n if (index > -1) {\n this.value.splice(index, 1);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.value;\n }\n }\n }\n return this.validCheck ? this.element.checked : !this.element.checked;\n };\n CheckBox.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) > -1) {\n var wrapper = this.getWrapper();\n if (key === 'class') {\n addClass([wrapper], this.htmlAttributes[\"\" + key].split(' '));\n }\n else if (key === 'title') {\n wrapper.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else if (key === 'style') {\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n frameSpan.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else if (key === 'disabled') {\n if (this.htmlAttributes[\"\" + key] === 'true') {\n this.setDisabled();\n }\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n /**\n * Click the CheckBox element\n * its native method\n *\n * @public\n * @returns {void}\n */\n CheckBox.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to CheckBox\n * its native method\n *\n * @public\n * @returns {void}\n */\n CheckBox.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Event()\n ], CheckBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], CheckBox.prototype, \"created\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"checked\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"indeterminate\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"label\", void 0);\n __decorate([\n Property('After')\n ], CheckBox.prototype, \"labelPosition\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property({})\n ], CheckBox.prototype, \"htmlAttributes\", void 0);\n CheckBox = __decorate([\n NotifyPropertyChanges\n ], CheckBox);\n return CheckBox;\n}(Component));\nexport { CheckBox };\n","/**\n * Enum for comment status of the annotation\n */\nexport var CommentStatus;\n(function (CommentStatus) {\n CommentStatus[CommentStatus[\"None\"] = 1] = \"None\";\n CommentStatus[CommentStatus[\"Accepted\"] = 2] = \"Accepted\";\n CommentStatus[CommentStatus[\"Canceled\"] = 3] = \"Canceled\";\n CommentStatus[CommentStatus[\"Completed\"] = 4] = \"Completed\";\n CommentStatus[CommentStatus[\"Rejected\"] = 5] = \"Rejected\";\n})(CommentStatus || (CommentStatus = {}));\n/**\n * Enum for font styles\n */\nexport var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Bold\"] = 1] = \"Bold\";\n FontStyle[FontStyle[\"Italic\"] = 2] = \"Italic\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n FontStyle[FontStyle[\"Strikethrough\"] = 8] = \"Strikethrough\";\n})(FontStyle || (FontStyle = {}));\n/**\n * Enum for context menu items\n */\nexport var ContextMenuItem;\n(function (ContextMenuItem) {\n ContextMenuItem[ContextMenuItem[\"Copy\"] = 0] = \"Copy\";\n ContextMenuItem[ContextMenuItem[\"Highlight\"] = 1] = \"Highlight\";\n ContextMenuItem[ContextMenuItem[\"Cut\"] = 2] = \"Cut\";\n ContextMenuItem[ContextMenuItem[\"Underline\"] = 4] = \"Underline\";\n ContextMenuItem[ContextMenuItem[\"Paste\"] = 8] = \"Paste\";\n ContextMenuItem[ContextMenuItem[\"Delete\"] = 16] = \"Delete\";\n ContextMenuItem[ContextMenuItem[\"ScaleRatio\"] = 32] = \"ScaleRatio\";\n ContextMenuItem[ContextMenuItem[\"Strikethrough\"] = 64] = \"Strikethrough\";\n ContextMenuItem[ContextMenuItem[\"Properties\"] = 128] = \"Properties\";\n ContextMenuItem[ContextMenuItem[\"Comment\"] = 256] = \"Comment\";\n})(ContextMenuItem || (ContextMenuItem = {}));\n/**\n * Enum for signature type\n */\nexport var SignatureType;\n(function (SignatureType) {\n SignatureType[\"Draw\"] = \"Draw\";\n SignatureType[\"Type\"] = \"Type\";\n SignatureType[\"Image\"] = \"Image\";\n})(SignatureType || (SignatureType = {}));\n/**\n * Enum for annotation resizer location\n */\nexport var AnnotationResizerLocation;\n(function (AnnotationResizerLocation) {\n AnnotationResizerLocation[AnnotationResizerLocation[\"Corners\"] = 1] = \"Corners\";\n AnnotationResizerLocation[AnnotationResizerLocation[\"Edges\"] = 2] = \"Edges\";\n})(AnnotationResizerLocation || (AnnotationResizerLocation = {}));\n/**\n * Enum for displaying the signature dialog\n */\nexport var DisplayMode;\n(function (DisplayMode) {\n /** Draw - Display only the draw option in the signature dialog. */\n DisplayMode[DisplayMode[\"Draw\"] = 1] = \"Draw\";\n /** Text - Display only the type option in the signature dialog. */\n DisplayMode[DisplayMode[\"Text\"] = 2] = \"Text\";\n /** Upload - Display only the upload option in the signature dialog. */\n DisplayMode[DisplayMode[\"Upload\"] = 4] = \"Upload\";\n})(DisplayMode || (DisplayMode = {}));\n/**\n * Enum for cursor type\n */\nexport var CursorType;\n(function (CursorType) {\n CursorType[\"auto\"] = \"auto\";\n CursorType[\"crossHair\"] = \"crosshair\";\n // eslint-disable-next-line\n CursorType[\"e_resize\"] = \"e-resize\";\n // eslint-disable-next-line\n CursorType[\"ew_resize\"] = \"ew-resize\";\n CursorType[\"grab\"] = \"grab\";\n CursorType[\"grabbing\"] = \"grabbing\";\n CursorType[\"move\"] = \"move\";\n // eslint-disable-next-line\n CursorType[\"n_resize\"] = \"n-resize\";\n // eslint-disable-next-line\n CursorType[\"ne_resize\"] = \"ne-resize\";\n // eslint-disable-next-line\n CursorType[\"ns_resize\"] = \"ns-resize\";\n // eslint-disable-next-line\n CursorType[\"nw_resize\"] = \"nw-resize\";\n CursorType[\"pointer\"] = \"pointer\";\n // eslint-disable-next-line\n CursorType[\"s_resize\"] = \"s-resize\";\n // eslint-disable-next-line\n CursorType[\"se_resize\"] = \"se-resize\";\n // eslint-disable-next-line\n CursorType[\"sw_resize\"] = \"sw-resize\";\n CursorType[\"text\"] = \"text\";\n // eslint-disable-next-line\n CursorType[\"w_resize\"] = \"w-resize\";\n})(CursorType || (CursorType = {}));\n/**\n * Enum type for Dynamic Stamp Items\n */\nexport var DynamicStampItem;\n(function (DynamicStampItem) {\n DynamicStampItem[\"Revised\"] = \"Revised\";\n DynamicStampItem[\"Reviewed\"] = \"Reviewed\";\n DynamicStampItem[\"Received\"] = \"Received\";\n DynamicStampItem[\"Approved\"] = \"Approved\";\n DynamicStampItem[\"Confidential\"] = \"Confidential\";\n DynamicStampItem[\"NotApproved\"] = \"NotApproved\";\n})(DynamicStampItem || (DynamicStampItem = {}));\n/**\n * Enum type for Sign Stamp Items\n */\nexport var SignStampItem;\n(function (SignStampItem) {\n SignStampItem[\"Witness\"] = \"Witness\";\n SignStampItem[\"InitialHere\"] = \"InitialHere\";\n SignStampItem[\"SignHere\"] = \"SignHere\";\n SignStampItem[\"Accepted\"] = \"Accepted\";\n SignStampItem[\"Rejected\"] = \"Rejected\";\n})(SignStampItem || (SignStampItem = {}));\n/**\n * Enum type for Standard Business Stamp Items\n */\nexport var StandardBusinessStampItem;\n(function (StandardBusinessStampItem) {\n StandardBusinessStampItem[\"Approved\"] = \"Approved\";\n StandardBusinessStampItem[\"NotApproved\"] = \"NotApproved\";\n StandardBusinessStampItem[\"Draft\"] = \"Draft\";\n StandardBusinessStampItem[\"Final\"] = \"Final\";\n StandardBusinessStampItem[\"Completed\"] = \"Completed\";\n StandardBusinessStampItem[\"Confidential\"] = \"Confidential\";\n StandardBusinessStampItem[\"ForPublicRelease\"] = \"ForPublicRelease\";\n StandardBusinessStampItem[\"NotForPublicRelease\"] = \"NotForPublicRelease\";\n StandardBusinessStampItem[\"ForComment\"] = \"ForComment\";\n StandardBusinessStampItem[\"Void\"] = \"Void\";\n StandardBusinessStampItem[\"PreliminaryResults\"] = \"PreliminaryResults\";\n StandardBusinessStampItem[\"InformationOnly\"] = \"InformationOnly\";\n})(StandardBusinessStampItem || (StandardBusinessStampItem = {}));\n/**\n * Enum type for allowed interactions for locked annotations\n */\nexport var AllowedInteraction;\n(function (AllowedInteraction) {\n AllowedInteraction[\"Select\"] = \"Select\";\n AllowedInteraction[\"Move\"] = \"Move\";\n AllowedInteraction[\"Resize\"] = \"Resize\";\n AllowedInteraction[\"Delete\"] = \"Delete\";\n AllowedInteraction[\"None\"] = \"None\";\n AllowedInteraction[\"PropertyChange\"] = \"PropertyChange\";\n})(AllowedInteraction || (AllowedInteraction = {}));\n/**\n * Enum type for export annotation file types\n */\nexport var AnnotationDataFormat;\n(function (AnnotationDataFormat) {\n AnnotationDataFormat[\"Json\"] = \"Json\";\n AnnotationDataFormat[\"Xfdf\"] = \"Xfdf\";\n})(AnnotationDataFormat || (AnnotationDataFormat = {}));\n/**\n * Represents the format type of form data.\n */\nexport var FormFieldDataFormat;\n(function (FormFieldDataFormat) {\n FormFieldDataFormat[\"Xml\"] = \"Xml\";\n FormFieldDataFormat[\"Fdf\"] = \"Fdf\";\n FormFieldDataFormat[\"Xfdf\"] = \"Xfdf\";\n FormFieldDataFormat[\"Json\"] = \"Json\";\n})(FormFieldDataFormat || (FormFieldDataFormat = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-hscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_HSCROLLCON = 'e-hscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVRIGHTARROW = 'e-nav-right-arrow';\nvar CLS_NAVLEFTARROW = 'e-nav-left-arrow';\nvar CLS_HSCROLLNAV = 'e-scroll-nav';\nvar CLS_HSCROLLNAVRIGHT = 'e-scroll-right-nav';\nvar CLS_HSCROLLNAVLEFT = 'e-scroll-left-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_RIGHTOVERLAY = 'e-scroll-right-overlay';\nvar CLS_LEFTOVERLAY = 'e-scroll-left-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * HScroll module is introduces horizontal scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs horizontal scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar HScroll = /** @class */ (function (_super) {\n __extends(HScroll, _super);\n /**\n * Initializes a new instance of the HScroll class.\n *\n * @param {HScrollModel} options - Specifies HScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which horizontal scrolling applies.\n */\n function HScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var element = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (element.id === '') {\n element.id = getUniqueID('hscroll');\n this.uniqueId = true;\n }\n element.style.display = 'block';\n if (this.enableRtl) {\n element.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the horizontal scroll rendering\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlay(this.element);\n }\n this.setScrollState();\n };\n HScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetWidth;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n HScroll.prototype.initialize = function () {\n var scrollEle = this.createElement('div', { className: CLS_HSCROLLCON });\n var scrollDiv = this.createElement('div', { className: CLS_HSCROLLBAR });\n scrollDiv.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollEle.appendChild(ele_1);\n }\n scrollDiv.appendChild(scrollEle);\n ele.appendChild(scrollDiv);\n scrollDiv.style.overflowX = 'hidden';\n this.scrollEle = scrollDiv;\n this.scrollItems = scrollEle;\n };\n HScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n HScroll.prototype.getModuleName = function () {\n return 'hScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n HScroll.prototype.destroy = function () {\n var ele = this.element;\n ele.style.display = '';\n ele.classList.remove(CLS_ROOT);\n ele.classList.remove(CLS_DEVICE);\n var nav = selectAll('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele);\n var overlay = selectAll('.' + CLS_OVERLAY, ele);\n [].slice.call(overlay).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n ele.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (nav.length > 0) {\n detach(nav[0]);\n if (!isNullOrUndefined(nav[1])) {\n detach(nav[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the HScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, HScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n HScroll.prototype.disable = function (value) {\n var navEles = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEles).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n HScroll.prototype.createOverlay = function (element) {\n var id = element.id.concat('_nav');\n var rightOverlayEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_RIGHTOVERLAY });\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightEle = this.createElement('div', { id: id.concat('_right'), className: clsRight });\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n rightEle.appendChild(navItem);\n var leftEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_LEFTOVERLAY });\n if (this.ieCheck) {\n rightEle.classList.add('e-ie-align');\n }\n element.appendChild(rightOverlayEle);\n element.appendChild(rightEle);\n element.insertBefore(leftEle, element.firstChild);\n this.eventBinding([rightEle]);\n };\n HScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightAttributes = { 'role': 'button', 'id': id.concat('_right'), 'aria-label': 'Scroll right' };\n var nav = this.createElement('div', { className: clsRight, attrs: rightAttributes });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsLeft = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVLEFT);\n var leftAttributes = { 'role': 'button', 'id': id.concat('_left'), 'aria-label': 'Scroll left' };\n var navEle = this.createElement('div', { className: clsLeft + ' ' + CLS_DISABLE, attrs: leftAttributes });\n navEle.setAttribute('aria-disabled', 'true');\n var navLeftItem = this.createElement('div', { className: CLS_NAVLEFTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navEle.appendChild(navLeftItem);\n nav.appendChild(navItem);\n element.appendChild(nav);\n element.insertBefore(navEle, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navEle.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navEle]);\n };\n HScroll.prototype.onKeyPress = function (e) {\n var _this = this;\n if (e.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, e.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n HScroll.prototype.onKeyUp = function (e) {\n if (e.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n e.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n HScroll.prototype.eventBinding = function (ele) {\n var _this = this;\n [].slice.call(ele).forEach(function (el) {\n new Touch(el, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n el.addEventListener('keydown', _this.onKeyPress.bind(_this));\n el.addEventListener('keyup', _this.onKeyUp.bind(_this));\n el.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n el.addEventListener('touchend', _this.repeatScroll.bind(_this));\n el.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(el, 'click', _this.clickEventHandler, _this);\n });\n };\n HScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n HScroll.prototype.tabHoldHandler = function (e) {\n var _this = this;\n var trgt = e.originalEvent.target;\n trgt = this.contains(trgt, CLS_HSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDis = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDis, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n HScroll.prototype.contains = function (ele, className) {\n return ele.classList.contains(className);\n };\n HScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var rootEle = this.element;\n var classList = trgt.classList;\n if (classList.contains(CLS_HSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (this.contains(rootEle, CLS_RTL) && this.browserCheck) {\n scrollDis = -scrollDis;\n }\n if ((!this.contains(rootEle, CLS_RTL) || this.browserCheck) || this.ieCheck) {\n if (classList.contains(CLS_NAVRIGHTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n else {\n if (classList.contains(CLS_NAVLEFTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n };\n HScroll.prototype.clickEventHandler = function (e) {\n this.eleScrolling(this.scrollStep, e.target, false);\n };\n HScroll.prototype.swipeHandler = function (e) {\n var swipeEle = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceX / (e.velocity * 10);\n }\n else {\n distance = e.distanceX / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Left') {\n swipeEle.scrollLeft += distance * step;\n }\n else if (e.swipeDirection === 'Right') {\n swipeEle.scrollLeft -= distance * step;\n }\n start -= 0.5;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollLeft += scrollVal;\n }\n else {\n this.scrollEle.scrollLeft -= scrollVal;\n }\n if (this.enableRtl && this.scrollEle.scrollLeft > 0) {\n this.scrollEle.scrollLeft = 0;\n }\n };\n HScroll.prototype.frameScrollRequest = function (scrollVal, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollVal, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollVal -= el.offsetWidth;\n });\n }\n var animate = function () {\n var scrollValue;\n var scrollStep;\n if (_this.contains(_this.element, CLS_RTL) && _this.browserCheck) {\n scrollValue = -scrollVal;\n scrollStep = -step;\n }\n else {\n scrollValue = scrollVal;\n scrollStep = step;\n }\n if (scrollValue < step) {\n window.cancelAnimationFrame(scrollStep);\n }\n else {\n _this.scrollUpdating(scrollStep, action);\n scrollVal -= scrollStep;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.touchHandler = function (e) {\n var ele = this.scrollEle;\n var distance = e.distanceX;\n if ((this.ieCheck) && this.contains(this.element, CLS_RTL)) {\n distance = -distance;\n }\n if (e.scrollDirection === 'Left') {\n ele.scrollLeft = ele.scrollLeft + distance;\n }\n else if (e.scrollDirection === 'Right') {\n ele.scrollLeft = ele.scrollLeft - distance;\n }\n };\n HScroll.prototype.arrowDisabling = function (addDisable, removeDisable) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisable) ? removeDisable : addDisable;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisable)) {\n classList(arrowIcon, [CLS_NAVRIGHTARROW], [CLS_NAVLEFTARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVLEFTARROW], [CLS_NAVRIGHTARROW]);\n }\n }\n else if (addDisable && removeDisable) {\n addDisable.classList.add(CLS_DISABLE);\n addDisable.setAttribute('aria-disabled', 'true');\n addDisable.removeAttribute('tabindex');\n removeDisable.classList.remove(CLS_DISABLE);\n removeDisable.setAttribute('aria-disabled', 'false');\n removeDisable.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n HScroll.prototype.scrollHandler = function (e) {\n var target = e.target;\n var width = target.offsetWidth;\n var rootEle = this.element;\n var navLeftEle = this.element.querySelector('.' + CLS_HSCROLLNAVLEFT);\n var navRightEle = this.element.querySelector('.' + CLS_HSCROLLNAVRIGHT);\n var leftOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n var rightOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n var scrollLeft = target.scrollLeft;\n if (scrollLeft <= 0) {\n scrollLeft = -scrollLeft;\n }\n if (this.isDevice) {\n if (this.enableRtl && !(this.browserCheck || this.ieCheck)) {\n leftOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n rightOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n }\n if (scrollLeft < OVERLAY_MAXWID) {\n leftOverlay.style.width = scrollLeft + 'px';\n }\n else {\n leftOverlay.style.width = '40px';\n }\n if ((target.scrollWidth - Math.ceil(width + scrollLeft)) < OVERLAY_MAXWID) {\n rightOverlay.style.width = (target.scrollWidth - Math.ceil(width + scrollLeft)) + 'px';\n }\n else {\n rightOverlay.style.width = '40px';\n }\n }\n if (scrollLeft === 0) {\n this.arrowDisabling(navLeftEle, navRightEle);\n }\n else if (Math.ceil(width + scrollLeft + .1) >= target.scrollWidth) {\n this.arrowDisabling(navRightEle, navLeftEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_HSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {HScrollModel} newProp - It contains the new value of data.\n * @param {HScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n HScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n newProp.enableRtl ? this.element.classList.add(CLS_RTL) : this.element.classList.remove(CLS_RTL);\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], HScroll.prototype, \"scrollStep\", void 0);\n HScroll = __decorate([\n NotifyPropertyChanges\n ], HScroll);\n return HScroll;\n}(Component));\nexport { HScroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach, createElement as buildTag } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-vscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_VSCROLLBAR = 'e-vscroll-bar';\nvar CLS_VSCROLLCON = 'e-vscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVUPARROW = 'e-nav-up-arrow';\nvar CLS_NAVDOWNARROW = 'e-nav-down-arrow';\nvar CLS_VSCROLLNAV = 'e-scroll-nav';\nvar CLS_VSCROLLNAVUP = 'e-scroll-up-nav';\nvar CLS_VSCROLLNAVDOWN = 'e-scroll-down-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_UPOVERLAY = 'e-scroll-up-overlay';\nvar CLS_DOWNOVERLAY = 'e-scroll-down-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * VScroll module is introduces vertical scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs vertical scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar VScroll = /** @class */ (function (_super) {\n __extends(VScroll, _super);\n /**\n * Initializes a new instance of the VScroll class.\n *\n * @param {VScrollModel} options - Specifies VScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which vertical scrolling applies.\n */\n function VScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var ele = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (ele.id === '') {\n ele.id = getUniqueID('vscroll');\n this.uniqueId = true;\n }\n ele.style.display = 'block';\n if (this.enableRtl) {\n ele.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the vertical scroll rendering\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollEventHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlayElement(this.element);\n }\n this.setScrollState();\n EventHandler.add(this.element, 'wheel', this.wheelEventHandler, this);\n };\n VScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetHeight;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n VScroll.prototype.initialize = function () {\n var scrollCnt = buildTag('div', { className: CLS_VSCROLLCON });\n var scrollBar = buildTag('div', { className: CLS_VSCROLLBAR });\n scrollBar.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollCnt.appendChild(ele_1);\n }\n scrollBar.appendChild(scrollCnt);\n ele.appendChild(scrollBar);\n scrollBar.style.overflow = 'hidden';\n this.scrollEle = scrollBar;\n this.scrollItems = scrollCnt;\n };\n VScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n VScroll.prototype.getModuleName = function () {\n return 'vScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n VScroll.prototype.destroy = function () {\n var el = this.element;\n el.style.display = '';\n removeClass([this.element], [CLS_ROOT, CLS_DEVICE]);\n var navs = selectAll('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el);\n var overlays = selectAll('.' + CLS_OVERLAY, el);\n [].slice.call(overlays).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n el.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (navs.length > 0) {\n detach(navs[0]);\n if (!isNullOrUndefined(navs[1])) {\n detach(navs[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollEventHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the VScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, VScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n VScroll.prototype.disable = function (value) {\n var navEle = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEle).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n VScroll.prototype.createOverlayElement = function (element) {\n var id = element.id.concat('_nav');\n var downOverlayEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_DOWNOVERLAY });\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var downEle = buildTag('div', { id: id.concat('down'), className: clsDown });\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n downEle.appendChild(navItem);\n var upEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_UPOVERLAY });\n if (this.ieCheck) {\n downEle.classList.add('e-ie-align');\n }\n element.appendChild(downOverlayEle);\n element.appendChild(downEle);\n element.insertBefore(upEle, element.firstChild);\n this.eventBinding([downEle]);\n };\n VScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var nav = buildTag('div', { id: id.concat('_down'), className: clsDown });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsUp = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVUP);\n var navElement = buildTag('div', { id: id.concat('_up'), className: clsUp + ' ' + CLS_DISABLE });\n navElement.setAttribute('aria-disabled', 'true');\n var navUpItem = buildTag('div', { className: CLS_NAVUPARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navElement.appendChild(navUpItem);\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n element.appendChild(nav);\n element.insertBefore(navElement, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navElement.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navElement]);\n };\n VScroll.prototype.onKeyPress = function (ev) {\n var _this = this;\n if (ev.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, ev.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n VScroll.prototype.onKeyUp = function (ev) {\n if (ev.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n ev.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n VScroll.prototype.eventBinding = function (element) {\n var _this = this;\n [].slice.call(element).forEach(function (ele) {\n new Touch(ele, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n ele.addEventListener('keydown', _this.onKeyPress.bind(_this));\n ele.addEventListener('keyup', _this.onKeyUp.bind(_this));\n ele.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n ele.addEventListener('touchend', _this.repeatScroll.bind(_this));\n ele.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(ele, 'click', _this.clickEventHandler, _this);\n });\n };\n VScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n VScroll.prototype.tabHoldHandler = function (ev) {\n var _this = this;\n var trgt = ev.originalEvent.target;\n trgt = this.contains(trgt, CLS_VSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDistance = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDistance, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n VScroll.prototype.contains = function (element, className) {\n return element.classList.contains(className);\n };\n VScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var classList = trgt.classList;\n if (classList.contains(CLS_VSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (classList.contains(CLS_NAVDOWNARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else if (classList.contains(CLS_NAVUPARROW)) {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n };\n VScroll.prototype.clickEventHandler = function (event) {\n this.eleScrolling(this.scrollStep, event.target, false);\n };\n VScroll.prototype.wheelEventHandler = function (e) {\n e.preventDefault();\n this.frameScrollRequest(this.scrollStep, (e.deltaY > 0 ? 'add' : ''), false);\n };\n VScroll.prototype.swipeHandler = function (e) {\n var swipeElement = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceY / (e.velocity * 10);\n }\n else {\n distance = e.distanceY / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Up') {\n swipeElement.scrollTop += distance * step;\n }\n else if (e.swipeDirection === 'Down') {\n swipeElement.scrollTop -= distance * step;\n }\n start -= 0.02;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollTop += scrollVal;\n }\n else {\n this.scrollEle.scrollTop -= scrollVal;\n }\n };\n VScroll.prototype.frameScrollRequest = function (scrollValue, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollValue, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollValue -= el.offsetHeight;\n });\n }\n var animate = function () {\n if (scrollValue < step) {\n window.cancelAnimationFrame(step);\n }\n else {\n _this.scrollUpdating(step, action);\n scrollValue -= step;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.touchHandler = function (e) {\n var el = this.scrollEle;\n var distance = e.distanceY;\n if (e.scrollDirection === 'Up') {\n el.scrollTop = el.scrollTop + distance;\n }\n else if (e.scrollDirection === 'Down') {\n el.scrollTop = el.scrollTop - distance;\n }\n };\n VScroll.prototype.arrowDisabling = function (addDisableCls, removeDisableCls) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisableCls) ? removeDisableCls : addDisableCls;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisableCls)) {\n classList(arrowIcon, [CLS_NAVDOWNARROW], [CLS_NAVUPARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVUPARROW], [CLS_NAVDOWNARROW]);\n }\n }\n else {\n addDisableCls.classList.add(CLS_DISABLE);\n addDisableCls.setAttribute('aria-disabled', 'true');\n addDisableCls.removeAttribute('tabindex');\n removeDisableCls.classList.remove(CLS_DISABLE);\n removeDisableCls.setAttribute('aria-disabled', 'false');\n removeDisableCls.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n VScroll.prototype.scrollEventHandler = function (e) {\n var target = e.target;\n var height = target.offsetHeight;\n var navUpEle = this.element.querySelector('.' + CLS_VSCROLLNAVUP);\n var navDownEle = this.element.querySelector('.' + CLS_VSCROLLNAVDOWN);\n var upOverlay = this.element.querySelector('.' + CLS_UPOVERLAY);\n var downOverlay = this.element.querySelector('.' + CLS_DOWNOVERLAY);\n var scrollTop = target.scrollTop;\n if (scrollTop <= 0) {\n scrollTop = -scrollTop;\n }\n if (this.isDevice) {\n if (scrollTop < OVERLAY_MAXWID) {\n upOverlay.style.height = scrollTop + 'px';\n }\n else {\n upOverlay.style.height = '40px';\n }\n if ((target.scrollHeight - Math.ceil(height + scrollTop)) < OVERLAY_MAXWID) {\n downOverlay.style.height = (target.scrollHeight - Math.ceil(height + scrollTop)) + 'px';\n }\n else {\n downOverlay.style.height = '40px';\n }\n }\n if (scrollTop === 0) {\n this.arrowDisabling(navUpEle, navDownEle);\n }\n else if (Math.ceil(height + scrollTop + .1) >= target.scrollHeight) {\n this.arrowDisabling(navDownEle, navUpEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_VSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {VScrollModel} newProp - It contains the new value of data.\n * @param {VScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n VScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(CLS_RTL);\n }\n else {\n this.element.classList.remove(CLS_RTL);\n }\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], VScroll.prototype, \"scrollStep\", void 0);\n VScroll = __decorate([\n NotifyPropertyChanges\n ], VScroll);\n return VScroll;\n}(Component));\nexport { VScroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventHandler, Property, Event } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, isVisible, closest, attributes, detach, classList, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { selectAll, setStyleAttribute as setStyle, select } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, getUniqueID, formatUnit, Collection, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { calculatePosition } from '@syncfusion/ej2-popups';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nvar CLS_VERTICAL = 'e-vertical';\nvar CLS_ITEMS = 'e-toolbar-items';\nvar CLS_ITEM = 'e-toolbar-item';\nvar CLS_RTL = 'e-rtl';\nvar CLS_SEPARATOR = 'e-separator';\nvar CLS_POPUPICON = 'e-popup-up-icon';\nvar CLS_POPUPDOWN = 'e-popup-down-icon';\nvar CLS_POPUPOPEN = 'e-popup-open';\nvar CLS_TEMPLATE = 'e-template';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_POPUPTEXT = 'e-toolbar-text';\nvar CLS_TBARTEXT = 'e-popup-text';\nvar CLS_TBAROVERFLOW = 'e-overflow-show';\nvar CLS_POPOVERFLOW = 'e-overflow-hide';\nvar CLS_TBARBTN = 'e-tbar-btn';\nvar CLS_TBARNAV = 'e-hor-nav';\nvar CLS_TBARSCRLNAV = 'e-scroll-nav';\nvar CLS_TBARRIGHT = 'e-toolbar-right';\nvar CLS_TBARLEFT = 'e-toolbar-left';\nvar CLS_TBARCENTER = 'e-toolbar-center';\nvar CLS_TBARPOS = 'e-tbar-pos';\nvar CLS_HSCROLLCNT = 'e-hscroll-content';\nvar CLS_VSCROLLCNT = 'e-vscroll-content';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_POPUPNAV = 'e-hor-nav';\nvar CLS_POPUPCLASS = 'e-toolbar-pop';\nvar CLS_POPUP = 'e-toolbar-popup';\nvar CLS_TBARBTNTEXT = 'e-tbar-btn-text';\nvar CLS_TBARNAVACT = 'e-nav-active';\nvar CLS_TBARIGNORE = 'e-ignore';\nvar CLS_POPPRI = 'e-popup-alone';\nvar CLS_HIDDEN = 'e-hidden';\nvar CLS_MULTIROW = 'e-toolbar-multirow';\nvar CLS_MULTIROWPOS = 'e-multirow-pos';\nvar CLS_MULTIROW_SEPARATOR = 'e-multirow-separator';\nvar CLS_EXTENDABLE_SEPARATOR = 'e-extended-separator';\nvar CLS_EXTEANDABLE_TOOLBAR = 'e-extended-toolbar';\nvar CLS_EXTENDABLECLASS = 'e-toolbar-extended';\nvar CLS_EXTENDPOPUP = 'e-expended-nav';\nvar CLS_EXTENDEDPOPOPEN = 'e-tbar-extended';\n/**\n * An item object that is used to configure Toolbar commands.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('auto')\n ], Item.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"showAlwaysInPopup\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"prefixIcon\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"suffixIcon\", void 0);\n __decorate([\n Property(true)\n ], Item.prototype, \"visible\", void 0);\n __decorate([\n Property('None')\n ], Item.prototype, \"overflow\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"template\", void 0);\n __decorate([\n Property('Button')\n ], Item.prototype, \"type\", void 0);\n __decorate([\n Property('Both')\n ], Item.prototype, \"showTextOn\", void 0);\n __decorate([\n Property(null)\n ], Item.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"tooltipText\", void 0);\n __decorate([\n Property('Left')\n ], Item.prototype, \"align\", void 0);\n __decorate([\n Event()\n ], Item.prototype, \"click\", void 0);\n __decorate([\n Property(-1)\n ], Item.prototype, \"tabIndex\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n/**\n * The Toolbar control contains a group of commands that are aligned horizontally.\n * ```html\n *
\n * \n * ```\n */\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n /**\n * Initializes a new instance of the Toolbar class.\n *\n * @param {ToolbarModel} options - Specifies Toolbar model properties as options.\n * @param { string | HTMLElement} element - Specifies the element that is rendered as a Toolbar.\n */\n function Toolbar(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.resizeContext = _this.resize.bind(_this);\n /**\n * Contains the keyboard configuration of the Toolbar.\n */\n _this.keyConfigs = {\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n popupOpen: 'enter',\n popupClose: 'escape',\n tab: 'tab',\n home: 'home',\n end: 'end'\n };\n return _this;\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}.\n */\n Toolbar.prototype.destroy = function () {\n var _this = this;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n var btnItems = this.element.querySelectorAll('.e-control.e-btn');\n [].slice.call(btnItems).forEach(function (el) {\n if (!isNOU(el) && !isNOU(el.ej2_instances) && !isNOU(el.ej2_instances[0]) && !(el.ej2_instances[0].isDestroyed)) {\n el.ej2_instances[0].destroy();\n }\n });\n this.unwireEvents();\n this.tempId.forEach(function (ele) {\n if (!isNOU(_this.element.querySelector(ele))) {\n document.body.appendChild(_this.element.querySelector(ele)).style.display = 'none';\n }\n });\n this.destroyItems();\n while (this.element.lastElementChild) {\n this.element.removeChild(this.element.lastElementChild);\n }\n if (this.trgtEle) {\n this.element.appendChild(this.ctrlTem);\n this.trgtEle = null;\n this.ctrlTem = null;\n }\n if (this.popObj) {\n this.popObj.destroy();\n detach(this.popObj.element);\n }\n if (this.activeEle) {\n this.activeEle = null;\n }\n this.popObj = null;\n this.tbarAlign = null;\n this.tbarItemsCol = [];\n this.remove(this.element, 'e-toolpop');\n if (this.cssClass) {\n removeClass([this.element], this.cssClass.split(' '));\n }\n this.element.removeAttribute('style');\n ['aria-disabled', 'aria-orientation', 'role'].forEach(function (attrb) {\n return _this.element.removeAttribute(attrb);\n });\n _super.prototype.destroy.call(this);\n };\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n Toolbar.prototype.preRender = function () {\n var eventArgs = { enableCollision: this.enableCollision, scrollStep: this.scrollStep };\n this.trigger('beforeCreate', eventArgs);\n this.enableCollision = eventArgs.enableCollision;\n this.scrollStep = eventArgs.scrollStep;\n this.scrollModule = null;\n this.popObj = null;\n this.tempId = [];\n this.tbarItemsCol = this.items;\n this.isVertical = this.element.classList.contains(CLS_VERTICAL) ? true : false;\n this.isExtendedOpen = false;\n this.popupPriCount = 0;\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Toolbar.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n window.addEventListener('resize', this.resizeContext);\n if (this.allowKeyboard) {\n this.wireKeyboardEvent();\n }\n };\n Toolbar.prototype.wireKeyboardEvent = function () {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs\n });\n EventHandler.add(this.element, 'keydown', this.docKeyDown, this);\n this.updateTabIndex('0');\n };\n Toolbar.prototype.updateTabIndex = function (tabIndex) {\n var ele = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');\n if (!isNOU(ele) && !isNOU(ele.firstElementChild)) {\n var dataTabIndex = ele.firstElementChild.getAttribute('data-tabindex');\n if (dataTabIndex && dataTabIndex === '-1' && ele.firstElementChild.tagName !== 'INPUT') {\n ele.firstElementChild.setAttribute('tabindex', tabIndex);\n }\n }\n };\n Toolbar.prototype.unwireKeyboardEvent = function () {\n if (this.keyModule) {\n EventHandler.remove(this.element, 'keydown', this.docKeyDown);\n this.keyModule.destroy();\n this.keyModule = null;\n }\n };\n Toolbar.prototype.docKeyDown = function (e) {\n if (e.target.tagName === 'INPUT') {\n return;\n }\n var popCheck = !isNOU(this.popObj) && isVisible(this.popObj.element) && this.overflowMode !== 'Extended';\n if (e.keyCode === 9 && e.target.classList.contains('e-hor-nav') === true && popCheck) {\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n var keyCheck = (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 35 || e.keyCode === 36);\n if (keyCheck) {\n e.preventDefault();\n }\n };\n Toolbar.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n this.destroyScroll();\n this.unwireKeyboardEvent();\n window.removeEventListener('resize', this.resizeContext);\n EventHandler.remove(document, 'scroll', this.docEvent);\n EventHandler.remove(document, 'click', this.docEvent);\n };\n Toolbar.prototype.clearProperty = function () {\n this.tbarEle = [];\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\n };\n Toolbar.prototype.docEvent = function (e) {\n var popEle = closest(e.target, '.e-popup');\n if (this.popObj && isVisible(this.popObj.element) && !popEle && this.overflowMode === 'Popup') {\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n };\n Toolbar.prototype.destroyScroll = function () {\n if (this.scrollModule) {\n if (this.tbarAlign) {\n this.add(this.scrollModule.element, CLS_TBARPOS);\n }\n this.scrollModule.destroy();\n this.scrollModule = null;\n }\n };\n Toolbar.prototype.destroyItems = function () {\n if (this.element) {\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) { detach(el); });\n }\n if (this.tbarAlign) {\n var tbarItems = this.element.querySelector('.' + CLS_ITEMS);\n [].slice.call(tbarItems.children).forEach(function (el) {\n detach(el);\n });\n this.tbarAlign = false;\n this.remove(tbarItems, CLS_TBARPOS);\n }\n this.clearProperty();\n };\n Toolbar.prototype.destroyMode = function () {\n if (this.scrollModule) {\n this.remove(this.scrollModule.element, CLS_RTL);\n this.destroyScroll();\n }\n this.remove(this.element, CLS_EXTENDEDPOPOPEN);\n this.remove(this.element, CLS_EXTEANDABLE_TOOLBAR);\n var tempEle = this.element.querySelector('.e-toolbar-multirow');\n if (tempEle) {\n this.remove(tempEle, CLS_MULTIROW);\n }\n if (this.popObj) {\n this.popupRefresh(this.popObj.element, true);\n }\n };\n Toolbar.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Toolbar.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n Toolbar.prototype.elementFocus = function (ele) {\n var fChild = ele.firstElementChild;\n if (fChild) {\n fChild.focus();\n this.activeEleSwitch(ele);\n }\n else {\n ele.focus();\n }\n };\n Toolbar.prototype.clstElement = function (tbrNavChk, trgt) {\n var clst;\n if (tbrNavChk && this.popObj && isVisible(this.popObj.element)) {\n clst = this.popObj.element.querySelector('.' + CLS_ITEM);\n }\n else if (this.element === trgt || tbrNavChk) {\n clst = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');\n }\n else {\n clst = closest(trgt, '.' + CLS_ITEM);\n }\n return clst;\n };\n Toolbar.prototype.keyHandling = function (clst, e, trgt, navChk, scrollChk) {\n var popObj = this.popObj;\n var rootEle = this.element;\n var popAnimate = { name: 'FadeOut', duration: 100 };\n var value = e.action === 'moveUp' ? 'previous' : 'next';\n var ele;\n var nodes;\n switch (e.action) {\n case 'moveRight':\n if (this.isVertical) {\n return;\n }\n if (rootEle === trgt) {\n this.elementFocus(clst);\n }\n else if (!navChk) {\n this.eleFocus(clst, 'next');\n }\n break;\n case 'moveLeft':\n if (this.isVertical) {\n return;\n }\n if (!navChk) {\n this.eleFocus(clst, 'previous');\n }\n break;\n case 'home':\n case 'end':\n if (clst) {\n var popupCheck = closest(clst, '.e-popup');\n var extendedPopup = this.element.querySelector('.' + CLS_EXTENDABLECLASS);\n if (this.overflowMode === 'Extended' && extendedPopup && extendedPopup.classList.contains('e-popup-open')) {\n popupCheck = e.action === 'end' ? extendedPopup : null;\n }\n if (popupCheck) {\n if (isVisible(this.popObj.element)) {\n nodes = [].slice.call(popupCheck.children);\n if (e.action === 'home') {\n ele = nodes[0];\n }\n else {\n ele = nodes[nodes.length - 1];\n }\n }\n }\n else {\n nodes = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')');\n if (e.action === 'home') {\n ele = nodes[0];\n }\n else {\n ele = nodes[nodes.length - 1];\n }\n }\n if (ele) {\n this.elementFocus(ele);\n }\n }\n break;\n case 'moveUp':\n case 'moveDown':\n if (!this.isVertical) {\n if (popObj && closest(trgt, '.e-popup')) {\n var popEle = popObj.element;\n var popFrstEle = popEle.firstElementChild;\n if ((value === 'previous' && popFrstEle === clst)) {\n popEle.lastElementChild.firstChild.focus();\n }\n else if (value === 'next' && popEle.lastElementChild === clst) {\n popFrstEle.firstChild.focus();\n }\n else {\n this.eleFocus(clst, value);\n }\n }\n else if (e.action === 'moveDown' && popObj && isVisible(popObj.element)) {\n this.elementFocus(clst);\n }\n }\n else {\n if (e.action === 'moveUp') {\n this.eleFocus(clst, 'previous');\n }\n else {\n this.eleFocus(clst, 'next');\n }\n }\n break;\n case 'tab':\n if (!scrollChk && !navChk) {\n var ele_1 = clst.firstElementChild;\n if (rootEle === trgt) {\n if (this.activeEle) {\n this.activeEle.focus();\n }\n else {\n this.activeEleRemove(ele_1);\n ele_1.focus();\n }\n }\n }\n break;\n case 'popupClose':\n if (popObj && this.overflowMode !== 'Extended') {\n popObj.hide(popAnimate);\n }\n break;\n case 'popupOpen':\n if (!navChk) {\n return;\n }\n if (popObj && !isVisible(popObj.element)) {\n popObj.element.style.top = rootEle.offsetHeight + 'px';\n popObj.show({ name: 'FadeIn', duration: 100 });\n }\n else {\n popObj.hide(popAnimate);\n }\n break;\n }\n };\n Toolbar.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n if (trgt.tagName === 'INPUT' || trgt.tagName === 'TEXTAREA' || this.element.classList.contains(CLS_DISABLE)) {\n return;\n }\n e.preventDefault();\n var tbrNavChk = trgt.classList.contains(CLS_TBARNAV);\n var tbarScrollChk = trgt.classList.contains(CLS_TBARSCRLNAV);\n var clst = this.clstElement(tbrNavChk, trgt);\n if (clst || tbarScrollChk) {\n this.keyHandling(clst, e, trgt, tbrNavChk, tbarScrollChk);\n }\n };\n /**\n * Specifies the value to disable/enable the Toolbar component.\n * When set to `true`, the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, Toolbar will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n Toolbar.prototype.disable = function (value) {\n var rootEle = this.element;\n if (value) {\n rootEle.classList.add(CLS_DISABLE);\n }\n else {\n rootEle.classList.remove(CLS_DISABLE);\n }\n if (this.activeEle) {\n this.activeEle.setAttribute('tabindex', this.activeEle.getAttribute('data-tabindex'));\n }\n if (this.scrollModule) {\n this.scrollModule.disable(value);\n }\n if (this.popObj) {\n if (isVisible(this.popObj.element) && this.overflowMode !== 'Extended') {\n this.popObj.hide();\n }\n rootEle.querySelector('#' + rootEle.id + '_nav').setAttribute('tabindex', !value ? '0' : '-1');\n }\n };\n Toolbar.prototype.eleContains = function (el) {\n return el.classList.contains(CLS_SEPARATOR) || el.classList.contains(CLS_DISABLE) || el.getAttribute('disabled') || el.classList.contains(CLS_HIDDEN) || !isVisible(el) || !el.classList.contains(CLS_ITEM);\n };\n Toolbar.prototype.eleFocus = function (closest, pos) {\n var sib = Object(closest)[pos + 'ElementSibling'];\n if (sib) {\n var skipEle = this.eleContains(sib);\n if (skipEle) {\n this.eleFocus(sib, pos);\n return;\n }\n this.elementFocus(sib);\n }\n else if (this.tbarAlign) {\n var elem = Object(closest.parentElement)[pos + 'ElementSibling'];\n if (!isNOU(elem) && elem.children.length === 0) {\n elem = Object(elem)[pos + 'ElementSibling'];\n }\n if (!isNOU(elem) && elem.children.length > 0) {\n if (pos === 'next') {\n var el = elem.querySelector('.' + CLS_ITEM);\n if (this.eleContains(el)) {\n this.eleFocus(el, pos);\n }\n else {\n el.firstElementChild.focus();\n this.activeEleSwitch(el);\n }\n }\n else {\n var el = elem.lastElementChild;\n if (this.eleContains(el)) {\n this.eleFocus(el, pos);\n }\n else {\n this.elementFocus(el);\n }\n }\n }\n }\n else if (!isNOU(closest)) {\n var tbrItems = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')' + ':not(.' + CLS_DISABLE + ')' + ':not(.' + CLS_HIDDEN + ')');\n if (pos === 'next' && tbrItems) {\n this.elementFocus(tbrItems[0]);\n }\n else if (pos === 'previous' && tbrItems) {\n this.elementFocus(tbrItems[tbrItems.length - 1]);\n }\n }\n };\n Toolbar.prototype.clickHandler = function (e) {\n var _this = this;\n var trgt = e.target;\n var ele = this.element;\n var isPopupElement = !isNOU(closest(trgt, '.' + CLS_POPUPCLASS));\n var clsList = trgt.classList;\n var popupNav = closest(trgt, ('.' + CLS_TBARNAV));\n if (!popupNav) {\n popupNav = trgt;\n }\n if (!ele.children[0].classList.contains('e-hscroll') && !ele.children[0].classList.contains('e-vscroll')\n && (clsList.contains(CLS_TBARNAV))) {\n clsList = trgt.querySelector('.e-icons').classList;\n }\n if (clsList.contains(CLS_POPUPICON) || clsList.contains(CLS_POPUPDOWN)) {\n this.popupClickHandler(ele, popupNav, CLS_RTL);\n }\n var itemObj;\n var clst = closest(e.target, '.' + CLS_ITEM);\n if ((isNOU(clst) || clst.classList.contains(CLS_DISABLE)) && !popupNav.classList.contains(CLS_TBARNAV)) {\n return;\n }\n if (clst) {\n var tempItem = this.items[this.tbarEle.indexOf(clst)];\n itemObj = tempItem;\n }\n var eventArgs = { originalEvent: e, item: itemObj };\n if (itemObj && !isNOU(itemObj.click)) {\n this.trigger('items[' + this.tbarEle.indexOf(clst) + '].click', eventArgs);\n }\n if (!eventArgs.cancel) {\n this.trigger('clicked', eventArgs, function (clickedArgs) {\n if (!isNOU(_this.popObj) && isPopupElement && !clickedArgs.cancel && _this.overflowMode === 'Popup' &&\n clickedArgs.item && clickedArgs.item.type !== 'Input') {\n _this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n });\n }\n };\n Toolbar.prototype.popupClickHandler = function (ele, popupNav, CLS_RTL) {\n var popObj = this.popObj;\n if (isVisible(popObj.element)) {\n popupNav.classList.remove(CLS_TBARNAVACT);\n popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n else {\n if (ele.classList.contains(CLS_RTL)) {\n popObj.enableRtl = true;\n popObj.position = { X: 'left', Y: 'top' };\n }\n if (popObj.offsetX === 0 && !ele.classList.contains(CLS_RTL)) {\n popObj.enableRtl = false;\n popObj.position = { X: 'right', Y: 'top' };\n }\n popObj.dataBind();\n popObj.refreshPosition();\n popObj.element.style.top = this.getElementOffsetY() + 'px';\n if (this.overflowMode === 'Extended') {\n popObj.element.style.minHeight = '0px';\n }\n popupNav.classList.add(CLS_TBARNAVACT);\n popObj.show({ name: 'FadeIn', duration: 100 });\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Toolbar.prototype.render = function () {\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Toolbar.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n if (Browser.info.name !== 'msie' || this.height !== 'auto' || this.overflowMode === 'MultiRow') {\n setStyle(this.element, { 'height': height });\n }\n setStyle(this.element, { 'width': width });\n var ariaAttr = {\n 'role': 'toolbar', 'aria-disabled': 'false',\n 'aria-orientation': !this.isVertical ? 'horizontal' : 'vertical'\n };\n attributes(this.element, ariaAttr);\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n Toolbar.prototype.renderControl = function () {\n var ele = this.element;\n this.trgtEle = (ele.children.length > 0) ? ele.querySelector('div') : null;\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\n this.renderItems();\n this.renderLayout();\n };\n Toolbar.prototype.renderLayout = function () {\n this.renderOverflowMode();\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n if (this.popObj && this.popObj.element.childElementCount > 1 && this.checkPopupRefresh(this.element, this.popObj.element)) {\n this.popupRefresh(this.popObj.element, false);\n }\n this.separator();\n };\n Toolbar.prototype.itemsAlign = function (items, itemEleDom) {\n var innerItem;\n var innerPos;\n if (!this.tbarEle) {\n this.tbarEle = [];\n }\n for (var i = 0; i < items.length; i++) {\n innerItem = this.renderSubComponent(items[parseInt(i.toString(), 10)], i);\n if (this.tbarEle.indexOf(innerItem) === -1) {\n this.tbarEle.push(innerItem);\n }\n if (!this.tbarAlign) {\n this.tbarItemAlign(items[parseInt(i.toString(), 10)], itemEleDom, i);\n }\n innerPos = itemEleDom.querySelector('.e-toolbar-' + items[parseInt(i.toString(), 10)].align.toLowerCase());\n if (innerPos) {\n if (!(items[parseInt(i.toString(), 10)].showAlwaysInPopup && items[parseInt(i.toString(), 10)].overflow !== 'Show')) {\n this.tbarAlgEle[(items[parseInt(i.toString(), 10)].align + 's').toLowerCase()].push(innerItem);\n }\n innerPos.appendChild(innerItem);\n }\n else {\n itemEleDom.appendChild(innerItem);\n }\n }\n if (this.isReact) {\n var portals = 'portals';\n this.notify('render-react-toolbar-template', this[\"\" + portals]);\n this.renderReactTemplates();\n }\n };\n /**\n * @hidden\n * @returns {void}\n */\n Toolbar.prototype.changeOrientation = function () {\n var ele = this.element;\n if (this.isVertical) {\n ele.classList.remove(CLS_VERTICAL);\n this.isVertical = false;\n if (this.height === 'auto' || this.height === '100%') {\n ele.style.height = this.height;\n }\n ele.setAttribute('aria-orientation', 'horizontal');\n }\n else {\n ele.classList.add(CLS_VERTICAL);\n this.isVertical = true;\n ele.setAttribute('aria-orientation', 'vertical');\n setStyle(this.element, { 'height': formatUnit(this.height), 'width': formatUnit(this.width) });\n }\n this.destroyMode();\n this.refreshOverflow();\n };\n Toolbar.prototype.initScroll = function (element, innerItems) {\n if (!this.scrollModule && this.checkOverflow(element, innerItems[0])) {\n if (this.tbarAlign) {\n this.element.querySelector('.' + CLS_ITEMS + ' .' + CLS_TBARCENTER).removeAttribute('style');\n }\n if (this.isVertical) {\n this.scrollModule = new VScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\n }\n else {\n this.scrollModule = new HScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\n }\n if (this.cssClass) {\n addClass([innerItems[0]], this.cssClass.split(' '));\n }\n this.remove(this.scrollModule.element, CLS_TBARPOS);\n setStyle(this.element, { overflow: 'hidden' });\n }\n };\n Toolbar.prototype.itemWidthCal = function (items) {\n var _this = this;\n var width = 0;\n var style;\n [].slice.call(selectAll('.' + CLS_ITEM, items)).forEach(function (el) {\n if (isVisible(el)) {\n style = window.getComputedStyle(el);\n width += _this.isVertical ? el.offsetHeight : el.offsetWidth;\n width += parseFloat(_this.isVertical ? style.marginTop : style.marginRight);\n width += parseFloat(_this.isVertical ? style.marginBottom : style.marginLeft);\n }\n });\n return width;\n };\n Toolbar.prototype.getScrollCntEle = function (innerItem) {\n var trgClass = (this.isVertical) ? '.e-vscroll-content' : '.e-hscroll-content';\n return innerItem.querySelector(trgClass);\n };\n Toolbar.prototype.checkOverflow = function (element, innerItem) {\n if (isNOU(element) || isNOU(innerItem) || !isVisible(element)) {\n return false;\n }\n var eleWidth = this.isVertical ? element.offsetHeight : element.offsetWidth;\n var itemWidth = this.isVertical ? innerItem.offsetHeight : innerItem.offsetWidth;\n if (this.tbarAlign || this.scrollModule || (eleWidth === itemWidth)) {\n itemWidth = this.itemWidthCal(this.scrollModule ? this.getScrollCntEle(innerItem) : innerItem);\n }\n var popNav = element.querySelector('.' + CLS_TBARNAV);\n var scrollNav = element.querySelector('.' + CLS_TBARSCRLNAV);\n var navEleWidth = 0;\n if (popNav) {\n navEleWidth = this.isVertical ? popNav.offsetHeight : popNav.offsetWidth;\n }\n else if (scrollNav) {\n navEleWidth = this.isVertical ? (scrollNav.offsetHeight * (2)) : (scrollNav.offsetWidth * 2);\n }\n if (itemWidth > eleWidth - navEleWidth) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Refresh the whole Toolbar component without re-rendering.\n * - It is used to manually refresh the Toolbar overflow modes such as scrollable, popup, multi row, and extended.\n * - It will refresh the Toolbar component after loading items dynamically.\n *\n * @returns {void}.\n */\n Toolbar.prototype.refreshOverflow = function () {\n this.resize();\n };\n Toolbar.prototype.toolbarAlign = function (innerItems) {\n if (this.tbarAlign) {\n this.add(innerItems, CLS_TBARPOS);\n this.itemPositioning();\n }\n };\n Toolbar.prototype.renderOverflowMode = function () {\n var ele = this.element;\n var innerItems = ele.querySelector('.' + CLS_ITEMS);\n var priorityCheck = this.popupPriCount > 0;\n if (ele && ele.children.length > 0) {\n this.offsetWid = ele.offsetWidth;\n this.remove(this.element, 'e-toolpop');\n if (Browser.info.name === 'msie' && this.height === 'auto') {\n ele.style.height = '';\n }\n switch (this.overflowMode) {\n case 'Scrollable':\n if (isNOU(this.scrollModule)) {\n this.initScroll(ele, [].slice.call(ele.getElementsByClassName(CLS_ITEMS)));\n }\n break;\n case 'Popup':\n this.add(this.element, 'e-toolpop');\n if (this.tbarAlign) {\n this.removePositioning();\n }\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\n this.setOverflowAttributes(ele);\n }\n this.toolbarAlign(innerItems);\n break;\n case 'MultiRow':\n this.add(innerItems, CLS_MULTIROW);\n if (this.checkOverflow(ele, innerItems) && this.tbarAlign) {\n this.removePositioning();\n this.add(innerItems, CLS_MULTIROWPOS);\n }\n if (ele.style.overflow === 'hidden') {\n ele.style.overflow = '';\n }\n if (Browser.info.name === 'msie' || ele.style.height !== 'auto') {\n ele.style.height = 'auto';\n }\n break;\n case 'Extended':\n this.add(this.element, CLS_EXTEANDABLE_TOOLBAR);\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\n if (this.tbarAlign) {\n this.removePositioning();\n }\n this.setOverflowAttributes(ele);\n }\n this.toolbarAlign(innerItems);\n }\n }\n };\n Toolbar.prototype.setOverflowAttributes = function (ele) {\n this.createPopupEle(ele, [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, ele)));\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-haspopup': 'true',\n 'aria-label': 'overflow'\n };\n attributes(this.element.querySelector('.' + CLS_TBARNAV), ariaAttr);\n };\n Toolbar.prototype.separator = function () {\n var element = this.element;\n var eleItem = [].slice.call(element.querySelectorAll('.' + CLS_SEPARATOR));\n var multiVar = element.querySelector('.' + CLS_MULTIROW_SEPARATOR);\n var extendVar = element.querySelector('.' + CLS_EXTENDABLE_SEPARATOR);\n var eleInlineItem = this.overflowMode === 'MultiRow' ? multiVar : extendVar;\n if (eleInlineItem !== null) {\n if (this.overflowMode === 'MultiRow') {\n eleInlineItem.classList.remove(CLS_MULTIROW_SEPARATOR);\n }\n else if (this.overflowMode === 'Extended') {\n eleInlineItem.classList.remove(CLS_EXTENDABLE_SEPARATOR);\n }\n }\n for (var i = 0; i <= eleItem.length - 1; i++) {\n if (eleItem[parseInt(i.toString(), 10)].offsetLeft < 30 && eleItem[parseInt(i.toString(), 10)].offsetLeft !== 0) {\n if (this.overflowMode === 'MultiRow') {\n eleItem[parseInt(i.toString(), 10)].classList.add(CLS_MULTIROW_SEPARATOR);\n }\n else if (this.overflowMode === 'Extended') {\n eleItem[parseInt(i.toString(), 10)].classList.add(CLS_EXTENDABLE_SEPARATOR);\n }\n }\n }\n };\n Toolbar.prototype.createPopupEle = function (ele, innerEle) {\n var innerNav = ele.querySelector('.' + CLS_TBARNAV);\n var vertical = this.isVertical;\n if (!innerNav) {\n this.createPopupIcon(ele);\n }\n innerNav = ele.querySelector('.' + CLS_TBARNAV);\n var innerNavDom = (vertical ? innerNav.offsetHeight : innerNav.offsetWidth);\n var eleWidth = ((vertical ? ele.offsetHeight : ele.offsetWidth) - (innerNavDom));\n this.element.classList.remove('e-rtl');\n setStyle(this.element, { direction: 'initial' });\n this.checkPriority(ele, innerEle, eleWidth, true);\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n this.element.style.removeProperty('direction');\n this.createPopup();\n };\n Toolbar.prototype.pushingPoppedEle = function (tbarObj, popupPri, ele, eleHeight, sepHeight) {\n var element = tbarObj.element;\n var poppedEle = [].slice.call(selectAll('.' + CLS_POPUP, element.querySelector('.' + CLS_ITEMS)));\n var nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\n var nodeIndex = 0;\n var nodePri = 0;\n poppedEle.forEach(function (el, index) {\n nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\n if (el.classList.contains(CLS_TBAROVERFLOW) && nodes.length > 0) {\n if (tbarObj.tbResize && nodes.length > index) {\n ele.insertBefore(el, nodes[parseInt(index.toString(), 10)]);\n ++nodePri;\n }\n else {\n ele.insertBefore(el, ele.children[nodes.length]);\n ++nodePri;\n }\n }\n else if (el.classList.contains(CLS_TBAROVERFLOW)) {\n ele.insertBefore(el, ele.firstChild);\n ++nodePri;\n }\n else if (tbarObj.tbResize && el.classList.contains(CLS_POPOVERFLOW) && ele.children.length > 0 && nodes.length === 0) {\n ele.insertBefore(el, ele.firstChild);\n ++nodePri;\n }\n else if (el.classList.contains(CLS_POPOVERFLOW)) {\n popupPri.push(el);\n }\n else if (tbarObj.tbResize) {\n ele.insertBefore(el, ele.childNodes[nodeIndex + nodePri]);\n ++nodeIndex;\n }\n else {\n ele.appendChild(el);\n }\n if (el.classList.contains(CLS_SEPARATOR)) {\n setStyle(el, { display: '', height: sepHeight + 'px' });\n }\n else {\n setStyle(el, { display: '', height: eleHeight + 'px' });\n }\n });\n popupPri.forEach(function (el) {\n ele.appendChild(el);\n });\n var tbarEle = selectAll('.' + CLS_ITEM, element.querySelector('.' + CLS_ITEMS));\n for (var i = tbarEle.length - 1; i >= 0; i--) {\n var tbarElement = tbarEle[parseInt(i.toString(), 10)];\n if (tbarElement.classList.contains(CLS_SEPARATOR) && this.overflowMode !== 'Extended') {\n setStyle(tbarElement, { display: 'none' });\n }\n else {\n break;\n }\n }\n };\n Toolbar.prototype.createPopup = function () {\n var element = this.element;\n var sepHeight;\n var sepItem;\n if (this.overflowMode === 'Extended') {\n sepItem = element.querySelector('.' + CLS_SEPARATOR + ':not(.' + CLS_POPUP + ')');\n sepHeight = (element.style.height === 'auto' || element.style.height === '') ? null : sepItem.offsetHeight;\n }\n var eleItem = element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_POPUP + ')');\n var eleHeight = (element.style.height === 'auto' || element.style.height === '') ? null : (eleItem && eleItem.offsetHeight);\n var ele;\n var popupPri = [];\n if (select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element)) {\n ele = select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element);\n }\n else {\n var extendEle = this.createElement('div', {\n id: element.id + '_popup', className: CLS_POPUPCLASS + ' ' + CLS_EXTENDABLECLASS\n });\n var popupEle = this.createElement('div', { id: element.id + '_popup', className: CLS_POPUPCLASS });\n ele = this.overflowMode === 'Extended' ? extendEle : popupEle;\n }\n this.pushingPoppedEle(this, popupPri, ele, eleHeight, sepHeight);\n this.popupInit(element, ele);\n };\n Toolbar.prototype.getElementOffsetY = function () {\n return (this.overflowMode === 'Extended' && window.getComputedStyle(this.element).getPropertyValue('box-sizing') === 'border-box' ?\n this.element.clientHeight : this.element.offsetHeight);\n };\n Toolbar.prototype.popupInit = function (element, ele) {\n if (!this.popObj) {\n element.appendChild(ele);\n if (this.cssClass) {\n addClass([ele], this.cssClass.split(' '));\n }\n setStyle(this.element, { overflow: '' });\n var eleStyles = window.getComputedStyle(this.element);\n var popup = new Popup(null, {\n relateTo: this.element,\n offsetY: (this.isVertical) ? 0 : this.getElementOffsetY(),\n enableRtl: this.enableRtl,\n open: this.popupOpen.bind(this),\n close: this.popupClose.bind(this),\n collision: { Y: this.enableCollision ? 'flip' : 'none' },\n position: this.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' }\n });\n if (this.overflowMode === 'Extended') {\n popup.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\n popup.offsetX = 0;\n }\n popup.appendTo(ele);\n EventHandler.add(document, 'scroll', this.docEvent.bind(this));\n EventHandler.add(document, 'click ', this.docEvent.bind(this));\n popup.element.style.maxHeight = popup.element.offsetHeight + 'px';\n if (this.isVertical) {\n popup.element.style.visibility = 'hidden';\n }\n if (this.isExtendedOpen) {\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\n popupNav.classList.add(CLS_TBARNAVACT);\n classList(popupNav.firstElementChild, [CLS_POPUPICON], [CLS_POPUPDOWN]);\n this.element.querySelector('.' + CLS_EXTENDABLECLASS).classList.add(CLS_POPUPOPEN);\n }\n else {\n popup.hide();\n }\n this.popObj = popup;\n }\n else {\n var popupEle = this.popObj.element;\n setStyle(popupEle, { maxHeight: '', display: 'block' });\n setStyle(popupEle, { maxHeight: popupEle.offsetHeight + 'px', display: '' });\n }\n };\n Toolbar.prototype.tbarPopupHandler = function (isOpen) {\n if (this.overflowMode === 'Extended') {\n if (isOpen) {\n this.add(this.element, CLS_EXTENDEDPOPOPEN);\n }\n else {\n this.remove(this.element, CLS_EXTENDEDPOPOPEN);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Toolbar.prototype.popupOpen = function (e) {\n var popObj = this.popObj;\n if (!this.isVertical) {\n popObj.offsetY = this.getElementOffsetY();\n popObj.dataBind();\n }\n var popupEle = this.popObj.element;\n var toolEle = this.popObj.element.parentElement;\n var popupNav = toolEle.querySelector('.' + CLS_TBARNAV);\n popupNav.setAttribute('aria-expanded', 'true');\n setStyle(popObj.element, { height: 'auto', maxHeight: '' });\n popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';\n if (this.overflowMode === 'Extended') {\n popObj.element.style.minHeight = '';\n }\n var popupElePos = popupEle.offsetTop + popupEle.offsetHeight + calculatePosition(toolEle).top;\n var popIcon = popupNav.firstElementChild;\n popupNav.classList.add(CLS_TBARNAVACT);\n classList(popIcon, [CLS_POPUPICON], [CLS_POPUPDOWN]);\n this.tbarPopupHandler(true);\n var scrollVal = isNOU(window.scrollY) ? 0 : window.scrollY;\n if (!this.isVertical && ((window.innerHeight + scrollVal) < popupElePos) && (this.element.offsetTop < popupEle.offsetHeight)) {\n var overflowHeight = (popupEle.offsetHeight - ((popupElePos - window.innerHeight - scrollVal) + 5));\n popObj.height = overflowHeight + 'px';\n for (var i = 0; i <= popupEle.childElementCount; i++) {\n var ele = popupEle.children[parseInt(i.toString(), 10)];\n if (ele.offsetTop + ele.offsetHeight > overflowHeight) {\n overflowHeight = ele.offsetTop;\n break;\n }\n }\n setStyle(popObj.element, { maxHeight: overflowHeight + 'px' });\n }\n else if (this.isVertical) {\n var tbEleData = this.element.getBoundingClientRect();\n setStyle(popObj.element, { maxHeight: (tbEleData.top + this.element.offsetHeight) + 'px', bottom: 0, visibility: '' });\n }\n if (popObj) {\n var popupOffset = popupEle.getBoundingClientRect();\n if (popupOffset.right > document.documentElement.clientWidth && popupOffset.width > toolEle.getBoundingClientRect().width) {\n popObj.collision = { Y: 'none' };\n popObj.dataBind();\n }\n popObj.refreshPosition();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Toolbar.prototype.popupClose = function (e) {\n var element = this.element;\n var popupNav = element.querySelector('.' + CLS_TBARNAV);\n popupNav.setAttribute('aria-expanded', 'false');\n var popIcon = popupNav.firstElementChild;\n popupNav.classList.remove(CLS_TBARNAVACT);\n classList(popIcon, [CLS_POPUPDOWN], [CLS_POPUPICON]);\n this.tbarPopupHandler(false);\n };\n Toolbar.prototype.checkPriority = function (ele, inEle, eleWidth, pre) {\n var popPriority = this.popupPriCount > 0;\n var len = inEle.length;\n var eleWid = eleWidth;\n var eleOffset;\n var checkoffset;\n var sepCheck = 0;\n var itemCount = 0;\n var itemPopCount = 0;\n var checkClass = function (ele, val) {\n var rVal = false;\n val.forEach(function (cls) {\n if (ele.classList.contains(cls)) {\n rVal = true;\n }\n });\n return rVal;\n };\n for (var i = len - 1; i >= 0; i--) {\n var mrgn = void 0;\n var compuStyle = window.getComputedStyle(inEle[parseInt(i.toString(), 10)]);\n if (this.isVertical) {\n mrgn = parseFloat((compuStyle).marginTop);\n mrgn += parseFloat((compuStyle).marginBottom);\n }\n else {\n mrgn = parseFloat((compuStyle).marginRight);\n mrgn += parseFloat((compuStyle).marginLeft);\n }\n var fstEleCheck = inEle[parseInt(i.toString(), 10)] === this.tbarEle[0];\n if (fstEleCheck) {\n this.tbarEleMrgn = mrgn;\n }\n eleOffset = this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight : inEle[parseInt(i.toString(), 10)].offsetWidth;\n var eleWid_1 = fstEleCheck ? (eleOffset + mrgn) : eleOffset;\n if (checkClass(inEle[parseInt(i.toString(), 10)], [CLS_POPPRI]) && popPriority) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n if (this.isVertical) {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' });\n }\n else {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' });\n }\n itemPopCount++;\n }\n if (this.isVertical) {\n checkoffset =\n (inEle[parseInt(i.toString(), 10)].offsetTop + inEle[parseInt(i.toString(), 10)].offsetHeight + mrgn) > eleWidth;\n }\n else {\n checkoffset =\n (inEle[parseInt(i.toString(), 10)].offsetLeft + inEle[parseInt(i.toString(), 10)].offsetWidth + mrgn) > eleWidth;\n }\n if (checkoffset) {\n if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_SEPARATOR)) {\n if (this.overflowMode === 'Extended') {\n if (itemCount === itemPopCount) {\n var sepEle = inEle[parseInt(i.toString(), 10)];\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n itemPopCount++;\n }\n }\n itemCount++;\n }\n else if (this.overflowMode === 'Popup') {\n if (sepCheck > 0 && itemCount === itemPopCount) {\n var sepEle = inEle[i + itemCount + (sepCheck - 1)];\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n setStyle(sepEle, { display: 'none' });\n }\n }\n sepCheck++;\n itemCount = 0;\n itemPopCount = 0;\n }\n }\n else {\n itemCount++;\n }\n if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_TBAROVERFLOW) && pre) {\n eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight :\n inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn));\n }\n else if (!checkClass(inEle[parseInt(i.toString(), 10)], [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n if (this.isVertical) {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' });\n }\n else {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' });\n }\n itemPopCount++;\n }\n else {\n eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight :\n inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn));\n }\n }\n }\n if (pre) {\n var popedEle = selectAll('.' + CLS_ITEM + ':not(.' + CLS_POPUP + ')', this.element);\n this.checkPriority(ele, popedEle, eleWid, false);\n }\n };\n Toolbar.prototype.createPopupIcon = function (element) {\n var id = element.id.concat('_nav');\n var className = 'e-' + element.id.concat('_nav ' + CLS_POPUPNAV);\n className = this.overflowMode === 'Extended' ? className + ' ' + CLS_EXTENDPOPUP : className;\n var nav = this.createElement('div', { id: id, className: className });\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n nav.classList.add('e-ie-align');\n }\n var navItem = this.createElement('div', { className: CLS_POPUPDOWN + ' e-icons' });\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n nav.setAttribute('role', 'button');\n element.appendChild(nav);\n };\n Toolbar.prototype.tbarPriRef = function (inEle, indx, sepPri, el, des, elWid, wid, ig) {\n var ignoreCount = ig;\n var popEle = this.popObj.element;\n var query = '.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_TBAROVERFLOW + ')';\n var priEleCnt = selectAll('.' + CLS_POPUP + ':not(.' + CLS_TBAROVERFLOW + ')', popEle).length;\n var checkClass = function (ele, val) {\n return ele.classList.contains(val);\n };\n if (selectAll(query, inEle).length === 0) {\n var eleSep = inEle.children[indx - (indx - sepPri) - 1];\n var ignoreCheck = (!isNOU(eleSep) && checkClass(eleSep, CLS_TBARIGNORE));\n if ((!isNOU(eleSep) && checkClass(eleSep, CLS_SEPARATOR) && !isVisible(eleSep)) || ignoreCheck) {\n var sepDisplay = 'none';\n eleSep.style.display = 'inherit';\n var eleSepWidth = eleSep.offsetWidth + (parseFloat(window.getComputedStyle(eleSep).marginRight) * 2);\n var prevSep = eleSep.previousElementSibling;\n if ((elWid + eleSepWidth) < wid || des) {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\n if (!isNOU(prevSep)) {\n prevSep.style.display = '';\n }\n }\n else {\n if (prevSep.classList.contains(CLS_SEPARATOR)) {\n prevSep.style.display = sepDisplay;\n }\n }\n eleSep.style.display = '';\n }\n else {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\n }\n }\n else {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - priEleCnt]);\n }\n };\n Toolbar.prototype.popupRefresh = function (popupEle, destroy) {\n var _this = this;\n var ele = this.element;\n var isVer = this.isVertical;\n var innerEle = ele.querySelector('.' + CLS_ITEMS);\n var popNav = ele.querySelector('.' + CLS_TBARNAV);\n if (isNOU(popNav)) {\n return;\n }\n innerEle.removeAttribute('style');\n popupEle.style.display = 'block';\n var dimension;\n if (isVer) {\n dimension = ele.offsetHeight - (popNav.offsetHeight + innerEle.offsetHeight);\n }\n else {\n dimension = ele.offsetWidth - (popNav.offsetWidth + innerEle.offsetWidth);\n }\n var popupEleWidth = 0;\n [].slice.call(popupEle.children).forEach(function (el) {\n popupEleWidth += _this.popupEleWidth(el);\n setStyle(el, { 'position': '' });\n });\n if ((dimension + (isVer ? popNav.offsetHeight : popNav.offsetWidth)) > (popupEleWidth) && this.popupPriCount === 0) {\n destroy = true;\n }\n this.popupEleRefresh(dimension, popupEle, destroy);\n popupEle.style.display = '';\n if (popupEle.children.length === 0 && popNav && this.popObj) {\n detach(popNav);\n popNav = null;\n this.popObj.destroy();\n detach(this.popObj.element);\n this.popObj = null;\n }\n };\n Toolbar.prototype.ignoreEleFetch = function (index, innerEle) {\n var ignoreEle = [].slice.call(innerEle.querySelectorAll('.' + CLS_TBARIGNORE));\n var ignoreInx = [];\n var count = 0;\n if (ignoreEle.length > 0) {\n ignoreEle.forEach(function (ele) {\n ignoreInx.push([].slice.call(innerEle.children).indexOf(ele));\n });\n }\n else {\n return 0;\n }\n ignoreInx.forEach(function (val) {\n if (val <= index) {\n count++;\n }\n });\n return count;\n };\n Toolbar.prototype.checkPopupRefresh = function (root, popEle) {\n popEle.style.display = 'block';\n var elWid = this.popupEleWidth(popEle.firstElementChild);\n popEle.firstElementChild.style.removeProperty('Position');\n var tbarWidth = root.offsetWidth - root.querySelector('.' + CLS_TBARNAV).offsetWidth;\n var tbarItemsWid = root.querySelector('.' + CLS_ITEMS).offsetWidth;\n popEle.style.removeProperty('display');\n if (tbarWidth > (elWid + tbarItemsWid)) {\n return true;\n }\n return false;\n };\n Toolbar.prototype.popupEleWidth = function (el) {\n el.style.position = 'absolute';\n var elWidth = this.isVertical ? el.offsetHeight : el.offsetWidth;\n var btnText = el.querySelector('.' + CLS_TBARBTNTEXT);\n if (el.classList.contains('e-tbtn-align') || el.classList.contains(CLS_TBARTEXT)) {\n var btn = el.children[0];\n if (!isNOU(btnText) && el.classList.contains(CLS_TBARTEXT)) {\n btnText.style.display = 'none';\n }\n else if (!isNOU(btnText) && el.classList.contains(CLS_POPUPTEXT)) {\n btnText.style.display = 'block';\n }\n btn.style.minWidth = '0%';\n elWidth = parseFloat(!this.isVertical ? el.style.minWidth : el.style.minHeight);\n btn.style.minWidth = '';\n btn.style.minHeight = '';\n if (!isNOU(btnText)) {\n btnText.style.display = '';\n }\n }\n return elWidth;\n };\n Toolbar.prototype.popupEleRefresh = function (width, popupEle, destroy) {\n var popPriority = this.popupPriCount > 0;\n var eleSplice = this.tbarEle;\n var priEleCnt;\n var index;\n var innerEle = this.element.querySelector('.' + CLS_ITEMS);\n var ignoreCount = 0;\n var _loop_1 = function (el) {\n if (el.classList.contains(CLS_POPPRI) && popPriority && !destroy) {\n return \"continue\";\n }\n var elWidth = this_1.popupEleWidth(el);\n if (el === this_1.tbarEle[0]) {\n elWidth += this_1.tbarEleMrgn;\n }\n el.style.position = '';\n if (elWidth < width || destroy) {\n setStyle(el, { minWidth: '', height: '', minHeight: '' });\n if (!el.classList.contains(CLS_POPOVERFLOW)) {\n el.classList.remove(CLS_POPUP);\n }\n index = this_1.tbarEle.indexOf(el);\n if (this_1.tbarAlign) {\n var pos = this_1.items[parseInt(index.toString(), 10)].align;\n index = this_1.tbarAlgEle[(pos + 's').toLowerCase()].indexOf(el);\n eleSplice = this_1.tbarAlgEle[(pos + 's').toLowerCase()];\n innerEle = this_1.element.querySelector('.' + CLS_ITEMS + ' .' + 'e-toolbar-' + pos.toLowerCase());\n }\n var sepBeforePri_1 = 0;\n if (this_1.overflowMode !== 'Extended') {\n eleSplice.slice(0, index).forEach(function (el) {\n if (el.classList.contains(CLS_TBAROVERFLOW) || el.classList.contains(CLS_SEPARATOR)) {\n if (el.classList.contains(CLS_SEPARATOR)) {\n el.style.display = '';\n width -= el.offsetWidth;\n }\n sepBeforePri_1++;\n }\n });\n }\n ignoreCount = this_1.ignoreEleFetch(index, innerEle);\n if (el.classList.contains(CLS_TBAROVERFLOW)) {\n this_1.tbarPriRef(innerEle, index, sepBeforePri_1, el, destroy, elWidth, width, ignoreCount);\n width -= el.offsetWidth;\n }\n else if (index === 0) {\n innerEle.insertBefore(el, innerEle.firstChild);\n width -= el.offsetWidth;\n }\n else {\n priEleCnt = selectAll('.' + CLS_TBAROVERFLOW, this_1.popObj.element).length;\n innerEle.insertBefore(el, innerEle.children[(index + ignoreCount) - priEleCnt]);\n width -= el.offsetWidth;\n }\n el.style.height = '';\n }\n else {\n return \"break\";\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = [].slice.call(popupEle.children); _i < _a.length; _i++) {\n var el = _a[_i];\n var state_1 = _loop_1(el);\n if (state_1 === \"break\")\n break;\n }\n var checkOverflow = this.checkOverflow(this.element, this.element.getElementsByClassName(CLS_ITEMS)[0]);\n if (checkOverflow && !destroy) {\n this.renderOverflowMode();\n }\n };\n Toolbar.prototype.removePositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\n return;\n }\n this.remove(item, CLS_TBARPOS);\n var innerItem = [].slice.call(item.childNodes);\n innerItem[1].removeAttribute('style');\n innerItem[2].removeAttribute('style');\n };\n Toolbar.prototype.refreshPositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n this.add(item, CLS_TBARPOS);\n this.itemPositioning();\n };\n Toolbar.prototype.itemPositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n var margin;\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\n return;\n }\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\n var innerItem;\n if (this.scrollModule) {\n var trgClass = (this.isVertical) ? CLS_VSCROLLCNT : CLS_HSCROLLCNT;\n innerItem = [].slice.call(item.querySelector('.' + trgClass).children);\n }\n else {\n innerItem = [].slice.call(item.childNodes);\n }\n if (this.isVertical) {\n margin = innerItem[0].offsetHeight + innerItem[2].offsetHeight;\n }\n else {\n margin = innerItem[0].offsetWidth + innerItem[2].offsetWidth;\n }\n var tbarWid = this.isVertical ? this.element.offsetHeight : this.element.offsetWidth;\n if (popupNav) {\n tbarWid -= (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth);\n var popWid = (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth) + 'px';\n innerItem[2].removeAttribute('style');\n if (this.isVertical) {\n if (this.enableRtl) {\n innerItem[2].style.top = popWid;\n }\n else {\n innerItem[2].style.bottom = popWid;\n }\n }\n else {\n if (this.enableRtl) {\n innerItem[2].style.left = popWid;\n }\n else {\n innerItem[2].style.right = popWid;\n }\n }\n }\n if (tbarWid <= margin) {\n return;\n }\n var value = (((tbarWid - margin)) - (!this.isVertical ? innerItem[1].offsetWidth : innerItem[1].offsetHeight)) / 2;\n innerItem[1].removeAttribute('style');\n var mrgn = ((!this.isVertical ? innerItem[0].offsetWidth : innerItem[0].offsetHeight) + value) + 'px';\n if (this.isVertical) {\n if (this.enableRtl) {\n innerItem[1].style.marginBottom = mrgn;\n }\n else {\n innerItem[1].style.marginTop = mrgn;\n }\n }\n else {\n if (this.enableRtl) {\n innerItem[1].style.marginRight = mrgn;\n }\n else {\n innerItem[1].style.marginLeft = mrgn;\n }\n }\n };\n Toolbar.prototype.tbarItemAlign = function (item, itemEle, pos) {\n var _this = this;\n if (item.showAlwaysInPopup && item.overflow !== 'Show') {\n return;\n }\n var alignDiv = [];\n alignDiv.push(this.createElement('div', { className: CLS_TBARLEFT }));\n alignDiv.push(this.createElement('div', { className: CLS_TBARCENTER }));\n alignDiv.push(this.createElement('div', { className: CLS_TBARRIGHT }));\n if (pos === 0 && item.align !== 'Left') {\n alignDiv.forEach(function (ele) {\n itemEle.appendChild(ele);\n });\n this.tbarAlign = true;\n this.add(itemEle, CLS_TBARPOS);\n }\n else if (item.align !== 'Left') {\n var alignEle = itemEle.childNodes;\n var leftAlign_1 = alignDiv[0];\n [].slice.call(alignEle).forEach(function (el) {\n _this.tbarAlgEle.lefts.push(el);\n leftAlign_1.appendChild(el);\n });\n itemEle.appendChild(leftAlign_1);\n itemEle.appendChild(alignDiv[1]);\n itemEle.appendChild(alignDiv[2]);\n this.tbarAlign = true;\n this.add(itemEle, CLS_TBARPOS);\n }\n };\n Toolbar.prototype.ctrlTemplate = function () {\n var _this = this;\n this.ctrlTem = this.trgtEle.cloneNode(true);\n this.add(this.trgtEle, CLS_ITEMS);\n this.tbarEle = [];\n var innerEle = [].slice.call(this.trgtEle.children);\n innerEle.forEach(function (ele) {\n if (ele.tagName === 'DIV') {\n _this.tbarEle.push(ele);\n ele.setAttribute('aria-disabled', 'false');\n _this.add(ele, CLS_ITEM);\n }\n });\n };\n Toolbar.prototype.renderItems = function () {\n var ele = this.element;\n var items = this.items;\n if (this.trgtEle != null) {\n this.ctrlTemplate();\n }\n else if (ele && items.length > 0) {\n var itemEleDom = void 0;\n if (ele && ele.children.length > 0) {\n itemEleDom = ele.querySelector('.' + CLS_ITEMS);\n }\n if (!itemEleDom) {\n itemEleDom = this.createElement('div', { className: CLS_ITEMS });\n }\n this.itemsAlign(items, itemEleDom);\n ele.appendChild(itemEleDom);\n }\n };\n Toolbar.prototype.setAttr = function (attr, element) {\n var key = Object.keys(attr);\n var keyVal;\n for (var i = 0; i < key.length; i++) {\n keyVal = key[parseInt(i.toString(), 10)];\n if (keyVal === 'class') {\n this.add(element, attr[\"\" + keyVal]);\n }\n else {\n element.setAttribute(keyVal, attr[\"\" + keyVal]);\n }\n }\n };\n /**\n * Enables or disables the specified Toolbar item.\n *\n * @param {number|HTMLElement|NodeList} items - DOM element or an array of items to be enabled or disabled.\n * @param {boolean} isEnable - Boolean value that determines whether the command should be enabled or disabled.\n * By default, `isEnable` is set to true.\n * @returns {void}.\n */\n Toolbar.prototype.enableItems = function (items, isEnable) {\n var elements = items;\n var len = elements.length;\n var ele;\n if (isNOU(isEnable)) {\n isEnable = true;\n }\n var enable = function (isEnable, ele) {\n if (isEnable) {\n ele.classList.remove(CLS_DISABLE);\n ele.setAttribute('aria-disabled', 'false');\n }\n else {\n ele.classList.add(CLS_DISABLE);\n ele.setAttribute('aria-disabled', 'true');\n }\n };\n if (!isNOU(len) && len >= 1) {\n for (var a = 0, element = [].slice.call(elements); a < len; a++) {\n var itemElement = element[parseInt(a.toString(), 10)];\n if (typeof (itemElement) === 'number') {\n ele = this.getElementByIndex(itemElement);\n if (isNOU(ele)) {\n return;\n }\n else {\n elements[parseInt(a.toString(), 10)] = ele;\n }\n }\n else {\n ele = itemElement;\n }\n enable(isEnable, ele);\n }\n if (isEnable) {\n removeClass(elements, CLS_DISABLE);\n }\n else {\n addClass(elements, CLS_DISABLE);\n }\n }\n else {\n if (typeof (elements) === 'number') {\n ele = this.getElementByIndex(elements);\n if (isNOU(ele)) {\n return;\n }\n }\n else {\n ele = items;\n }\n enable(isEnable, ele);\n }\n };\n Toolbar.prototype.getElementByIndex = function (index) {\n if (this.tbarEle[parseInt(index.toString(), 10)]) {\n return this.tbarEle[parseInt(index.toString(), 10)];\n }\n return null;\n };\n /**\n * Adds new items to the Toolbar that accepts an array as Toolbar items.\n *\n * @param {ItemModel[]} items - DOM element or an array of items to be added to the Toolbar.\n * @param {number} index - Number value that determines where the command is to be added. By default, index is 0.\n * @returns {void}.\n */\n Toolbar.prototype.addItems = function (items, index) {\n var innerItems;\n this.extendedOpen();\n var itemsDiv = this.element.querySelector('.' + CLS_ITEMS);\n if (isNOU(itemsDiv)) {\n this.itemsRerender(items);\n return;\n }\n var innerEle;\n var itemAgn = 'Left';\n if (isNOU(index)) {\n index = 0;\n }\n items.forEach(function (e) {\n if (!isNOU(e.align) && e.align !== 'Left' && itemAgn === 'Left') {\n itemAgn = e.align;\n }\n });\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n if (isNOU(item.type)) {\n item.type = 'Button';\n }\n innerItems = selectAll('.' + CLS_ITEM, this.element);\n item.align = itemAgn;\n innerEle = this.renderSubComponent(item, index);\n if (this.tbarEle.length >= index && innerItems.length >= 0) {\n if (isNOU(this.scrollModule)) {\n this.destroyMode();\n }\n var algIndex = item.align[0] === 'L' ? 0 : item.align[0] === 'C' ? 1 : 2;\n var ele = void 0;\n if (!this.tbarAlign && itemAgn !== 'Left') {\n this.tbarItemAlign(item, itemsDiv, 1);\n this.tbarAlign = true;\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)];\n ele.appendChild(innerEle);\n this.tbarAlgEle[(item.align + 's').toLowerCase()].push(innerEle);\n this.refreshPositioning();\n }\n else if (this.tbarAlign) {\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)];\n ele.insertBefore(innerEle, ele.children[parseInt(index.toString(), 10)]);\n this.tbarAlgEle[(item.align + 's').toLowerCase()].splice(index, 0, innerEle);\n this.refreshPositioning();\n }\n else if (innerItems.length === 0) {\n innerItems = selectAll('.' + CLS_ITEMS, this.element);\n innerItems[0].appendChild(innerEle);\n }\n else {\n innerItems[0].parentNode.insertBefore(innerEle, innerItems[parseInt(index.toString(), 10)]);\n }\n this.items.splice(index, 0, item);\n if (item.template) {\n this.tbarEle.splice(this.tbarEle.length - 1, 1);\n }\n this.tbarEle.splice(index, 0, innerEle);\n index++;\n this.offsetWid = itemsDiv.offsetWidth;\n }\n }\n itemsDiv.style.width = '';\n this.renderOverflowMode();\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Removes the items from the Toolbar. Acceptable arguments are index of item/HTMLElement/node list.\n *\n * @param {number|HTMLElement|NodeList|HTMLElement[]} args\n * Index or DOM element or an Array of item which is to be removed from the Toolbar.\n * @returns {void}.\n */\n Toolbar.prototype.removeItems = function (args) {\n var elements = args;\n var index;\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n if (typeof (elements) === 'number') {\n index = parseInt(args.toString(), 10);\n this.removeItemByIndex(index, innerItems);\n }\n else {\n if (elements && elements.length > 1) {\n for (var _i = 0, _a = [].slice.call(elements); _i < _a.length; _i++) {\n var ele = _a[_i];\n index = this.tbarEle.indexOf(ele);\n this.removeItemByIndex(index, innerItems);\n innerItems = selectAll('.' + CLS_ITEM, this.element);\n }\n }\n else {\n var ele = (elements && elements.length && elements.length === 1) ? elements[0] : args;\n index = innerItems.indexOf(ele);\n this.removeItemByIndex(index, innerItems);\n }\n }\n this.resize();\n };\n Toolbar.prototype.removeItemByIndex = function (index, innerItems) {\n if (this.tbarEle[parseInt(index.toString(), 10)] && innerItems[parseInt(index.toString(), 10)]) {\n var eleIdx = this.tbarEle.indexOf(innerItems[parseInt(index.toString(), 10)]);\n if (this.tbarAlign) {\n var indexAgn = this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].indexOf(this.tbarEle[parseInt(eleIdx.toString(), 10)]);\n this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].splice(parseInt(indexAgn.toString(), 10), 1);\n }\n if (this.isReact) {\n this.clearTemplate();\n }\n var btnItem = innerItems[parseInt(index.toString(), 10)].querySelector('.e-control.e-btn');\n if (!isNOU(btnItem) && !isNOU(btnItem.ej2_instances[0]) && !(btnItem.ej2_instances[0].isDestroyed)) {\n btnItem.ej2_instances[0].destroy();\n }\n detach(innerItems[parseInt(index.toString(), 10)]);\n this.items.splice(eleIdx, 1);\n this.tbarEle.splice(eleIdx, 1);\n }\n };\n Toolbar.prototype.templateRender = function (templateProp, innerEle, item, index) {\n var itemType = item.type;\n var eleObj = templateProp;\n var isComponent;\n if (typeof (templateProp) === 'object') {\n isComponent = typeof (eleObj.appendTo) === 'function';\n }\n if (typeof (templateProp) === 'string' || !isComponent) {\n var templateFn = void 0;\n var val = templateProp;\n var regEx = new RegExp(/<(?=.*? .*?\\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\\/\\1>/i);\n val = (typeof (templateProp) === 'string') ? templateProp.trim() : templateProp;\n try {\n if (typeof (templateProp) === 'object' && !isNOU(templateProp.tagName)) {\n innerEle.appendChild(templateProp);\n }\n else if (typeof (templateProp) === 'string' && regEx.test(val)) {\n innerEle.innerHTML = val;\n }\n else if (document.querySelectorAll(val).length) {\n var ele = document.querySelector(val);\n var tempStr = ele.outerHTML.trim();\n innerEle.appendChild(ele);\n ele.style.display = '';\n if (!isNOU(tempStr)) {\n this.tempId.push(val);\n }\n }\n else {\n templateFn = templateCompiler(val);\n }\n }\n catch (e) {\n templateFn = templateCompiler(val);\n }\n var tempArray = void 0;\n if (!isNOU(templateFn)) {\n var toolbarTemplateID = this.element.id + index + '_template';\n tempArray = templateFn({}, this, 'template', toolbarTemplateID, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0) {\n [].slice.call(tempArray).forEach(function (ele) {\n if (!isNOU(ele.tagName)) {\n ele.style.display = '';\n }\n innerEle.appendChild(ele);\n });\n }\n }\n else if (itemType === 'Input') {\n var ele = this.createElement('input');\n if (item.id) {\n ele.id = item.id;\n }\n else {\n ele.id = getUniqueID('tbr-ipt');\n }\n innerEle.appendChild(ele);\n eleObj.appendTo(ele);\n }\n this.add(innerEle, CLS_TEMPLATE);\n this.tbarEle.push(innerEle);\n };\n Toolbar.prototype.buttonRendering = function (item, innerEle) {\n var dom = this.createElement('button', { className: CLS_TBARBTN });\n dom.setAttribute('type', 'button');\n var textStr = item.text;\n var iconCss;\n var iconPos;\n if (item.id) {\n dom.id = item.id;\n }\n else {\n dom.id = getUniqueID('e-tbr-btn');\n }\n var btnTxt = this.createElement('span', { className: 'e-tbar-btn-text' });\n if (textStr) {\n btnTxt.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(textStr) : textStr;\n dom.appendChild(btnTxt);\n dom.classList.add('e-tbtn-txt');\n }\n else {\n this.add(innerEle, 'e-tbtn-align');\n }\n if (item.prefixIcon || item.suffixIcon) {\n if ((item.prefixIcon && item.suffixIcon) || item.prefixIcon) {\n iconCss = item.prefixIcon + ' e-icons';\n iconPos = 'Left';\n }\n else {\n iconCss = item.suffixIcon + ' e-icons';\n iconPos = 'Right';\n }\n }\n var btnObj = new Button({ iconCss: iconCss, iconPosition: iconPos });\n btnObj.createElement = this.createElement;\n btnObj.appendTo(dom);\n if (item.width) {\n setStyle(dom, { 'width': formatUnit(item.width) });\n }\n return dom;\n };\n Toolbar.prototype.renderSubComponent = function (item, index) {\n var dom;\n var innerEle = this.createElement('div', { className: CLS_ITEM });\n innerEle.setAttribute('aria-disabled', 'false');\n var tempDom = this.createElement('div', {\n innerHTML: this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(item.tooltipText) : item.tooltipText\n });\n if (!this.tbarEle) {\n this.tbarEle = [];\n }\n if (item.htmlAttributes) {\n this.setAttr(item.htmlAttributes, innerEle);\n }\n if (item.tooltipText) {\n innerEle.setAttribute('title', tempDom.textContent);\n }\n if (item.cssClass) {\n innerEle.className = innerEle.className + ' ' + item.cssClass;\n }\n if (item.template) {\n this.templateRender(item.template, innerEle, item, index);\n }\n else {\n switch (item.type) {\n case 'Button':\n dom = this.buttonRendering(item, innerEle);\n dom.setAttribute('tabindex', isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString());\n dom.setAttribute('data-tabindex', isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString());\n dom.setAttribute('aria-label', (item.text || item.tooltipText));\n innerEle.appendChild(dom);\n innerEle.addEventListener('click', this.itemClick.bind(this));\n break;\n case 'Separator':\n this.add(innerEle, CLS_SEPARATOR);\n break;\n }\n }\n if (item.showTextOn) {\n var sTxt = item.showTextOn;\n if (sTxt === 'Toolbar') {\n this.add(innerEle, CLS_POPUPTEXT);\n this.add(innerEle, 'e-tbtn-align');\n }\n else if (sTxt === 'Overflow') {\n this.add(innerEle, CLS_TBARTEXT);\n }\n }\n if (item.overflow) {\n var overflow = item.overflow;\n if (overflow === 'Show') {\n this.add(innerEle, CLS_TBAROVERFLOW);\n }\n else if (overflow === 'Hide') {\n if (!innerEle.classList.contains(CLS_SEPARATOR)) {\n this.add(innerEle, CLS_POPOVERFLOW);\n }\n }\n }\n if (item.overflow !== 'Show' && item.showAlwaysInPopup && !innerEle.classList.contains(CLS_SEPARATOR)) {\n this.add(innerEle, CLS_POPPRI);\n this.popupPriCount++;\n }\n if (item.disabled) {\n this.add(innerEle, CLS_DISABLE);\n }\n if (item.visible === false) {\n this.add(innerEle, CLS_HIDDEN);\n }\n return innerEle;\n };\n Toolbar.prototype.getDataTabindex = function (ele) {\n return isNOU(ele.getAttribute('data-tabindex')) ? '-1' : ele.getAttribute('data-tabindex');\n };\n Toolbar.prototype.itemClick = function (e) {\n this.activeEleSwitch(e.currentTarget);\n };\n Toolbar.prototype.activeEleSwitch = function (ele) {\n this.activeEleRemove(ele.firstElementChild);\n this.activeEle.focus();\n };\n Toolbar.prototype.activeEleRemove = function (curEle) {\n if (!isNOU(this.activeEle)) {\n this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));\n }\n this.activeEle = curEle;\n if (this.getDataTabindex(this.activeEle) === '-1') {\n if (isNOU(this.trgtEle) && !curEle.parentElement.classList.contains(CLS_TEMPLATE)) {\n this.updateTabIndex('-1');\n curEle.removeAttribute('tabindex');\n }\n else {\n this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));\n }\n }\n };\n Toolbar.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - Returns the module name as string.\n * @private\n */\n Toolbar.prototype.getModuleName = function () {\n return 'toolbar';\n };\n Toolbar.prototype.itemsRerender = function (newProp) {\n this.items = this.tbarItemsCol;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.destroyMode();\n this.destroyItems();\n this.items = newProp;\n this.tbarItemsCol = this.items;\n this.renderItems();\n this.renderOverflowMode();\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Toolbar.prototype.resize = function () {\n var ele = this.element;\n this.tbResize = true;\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n if (this.popObj && this.overflowMode === 'Popup') {\n this.popObj.hide();\n }\n var checkOverflow = this.checkOverflow(ele, ele.getElementsByClassName(CLS_ITEMS)[0]);\n if (!checkOverflow) {\n this.destroyScroll();\n var multirowele = ele.querySelector('.' + CLS_ITEMS);\n if (!isNOU(multirowele)) {\n this.remove(multirowele, CLS_MULTIROWPOS);\n if (this.tbarAlign) {\n this.add(multirowele, CLS_TBARPOS);\n }\n }\n }\n if (checkOverflow && this.scrollModule && (this.offsetWid === ele.offsetWidth)) {\n return;\n }\n if (this.offsetWid > ele.offsetWidth || checkOverflow) {\n this.renderOverflowMode();\n }\n if (this.popObj) {\n if (this.overflowMode === 'Extended') {\n var eleStyles = window.getComputedStyle(this.element);\n this.popObj.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\n }\n if (this.tbarAlign) {\n this.removePositioning();\n }\n this.popupRefresh(this.popObj.element, false);\n if (this.tbarAlign) {\n this.refreshPositioning();\n }\n }\n if (this.element.querySelector('.' + CLS_HSCROLLBAR)) {\n this.scrollStep = this.element.querySelector('.' + CLS_HSCROLLBAR).offsetWidth;\n }\n this.offsetWid = ele.offsetWidth;\n this.tbResize = false;\n this.separator();\n };\n Toolbar.prototype.extendedOpen = function () {\n var sib = this.element.querySelector('.' + CLS_EXTENDABLECLASS);\n if (this.overflowMode === 'Extended' && sib) {\n this.isExtendedOpen = sib.classList.contains(CLS_POPUPOPEN);\n }\n };\n Toolbar.prototype.updateHideEleTabIndex = function (ele, isHidden, isElement, eleIndex, innerItems) {\n if (isElement) {\n eleIndex = innerItems.indexOf(ele);\n }\n var nextEle = innerItems[++eleIndex];\n while (nextEle) {\n var skipEle = this.eleContains(nextEle);\n if (!skipEle) {\n var dataTabIndex = nextEle.firstElementChild.getAttribute('data-tabindex');\n if (isHidden && dataTabIndex === '-1') {\n nextEle.firstElementChild.setAttribute('tabindex', '0');\n }\n else if (dataTabIndex !== nextEle.firstElementChild.getAttribute('tabindex')) {\n nextEle.firstElementChild.setAttribute('tabindex', dataTabIndex);\n }\n break;\n }\n nextEle = innerItems[++eleIndex];\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {ToolbarModel} newProp - It contains new value of the data.\n * @param {ToolbarModel} oldProp - It contains old value of the data.\n * @returns {void}\n * @private\n */\n Toolbar.prototype.onPropertyChanged = function (newProp, oldProp) {\n var tEle = this.element;\n var wid = tEle.offsetWidth;\n this.extendedOpen();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProb = Object.keys(newProp.items);\n for (var i = 0; i < changedProb.length; i++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(i.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)])[0];\n var newProperty = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property];\n if (typeof newProperty !== 'function') {\n if (this.tbarAlign || property === 'align') {\n this.refresh();\n this.trigger('created');\n break;\n }\n var popupPriCheck = property === 'showAlwaysInPopup' && !newProperty;\n var booleanCheck = property === 'overflow' && this.popupPriCount !== 0;\n if ((popupPriCheck) || (this.items[parseInt(index.toString(), 10)].showAlwaysInPopup) && booleanCheck) {\n --this.popupPriCount;\n }\n if (isNOU(this.scrollModule)) {\n this.destroyMode();\n }\n var itemCol = [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, tEle));\n if (this.isReact && this.items[parseInt(index.toString(), 10)].template) {\n this.clearTemplate();\n }\n detach(itemCol[parseInt(index.toString(), 10)]);\n this.tbarEle.splice(index, 1);\n this.addItems([this.items[parseInt(index.toString(), 10)]], index);\n this.items.splice(index, 1);\n if (this.items[parseInt(index.toString(), 10)].template) {\n this.tbarEle.splice(this.items.length, 1);\n }\n }\n }\n }\n else {\n this.itemsRerender(newProp.items);\n }\n break;\n case 'width':\n setStyle(tEle, { 'width': formatUnit(newProp.width) });\n this.renderOverflowMode();\n if (this.popObj && wid < tEle.offsetWidth) {\n this.popupRefresh(this.popObj.element, false);\n }\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'overflowMode':\n this.destroyMode();\n this.renderOverflowMode();\n if (this.enableRtl) {\n this.add(tEle, CLS_RTL);\n }\n this.refreshOverflow();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(tEle, CLS_RTL);\n }\n else {\n this.remove(tEle, CLS_RTL);\n }\n if (!isNOU(this.scrollModule)) {\n if (newProp.enableRtl) {\n this.add(this.scrollModule.element, CLS_RTL);\n }\n else {\n this.remove(this.scrollModule.element, CLS_RTL);\n }\n }\n if (!isNOU(this.popObj)) {\n if (newProp.enableRtl) {\n this.add(this.popObj.element, CLS_RTL);\n }\n else {\n this.remove(this.popObj.element, CLS_RTL);\n }\n }\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n break;\n case 'scrollStep':\n if (this.scrollModule) {\n this.scrollModule.scrollStep = this.scrollStep;\n }\n break;\n case 'enableCollision':\n if (this.popObj) {\n this.popObj.collision = { Y: this.enableCollision ? 'flip' : 'none' };\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.split(' '));\n }\n break;\n case 'allowKeyboard':\n this.unwireKeyboardEvent();\n if (newProp.allowKeyboard) {\n this.wireKeyboardEvent();\n }\n break;\n }\n }\n };\n /**\n * Shows or hides the Toolbar item that is in the specified index.\n *\n * @param {number | HTMLElement} index - Index value of target item or DOM element of items to be hidden or shown.\n * @param {boolean} value - Based on this Boolean value, item will be hide (true) or show (false). By default, value is false.\n * @returns {void}.\n */\n Toolbar.prototype.hideItem = function (index, value) {\n var isElement = (typeof (index) === 'object') ? true : false;\n var eleIndex = index;\n var ele;\n if (!isElement && isNOU(eleIndex)) {\n return;\n }\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n if (isElement) {\n ele = index;\n }\n else if (this.tbarEle[parseInt(eleIndex.toString(), 10)]) {\n var innerItems_1 = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n ele = innerItems_1[parseInt(eleIndex.toString(), 10)];\n }\n if (ele) {\n if (value) {\n ele.classList.add(CLS_HIDDEN);\n if (!ele.classList.contains(CLS_SEPARATOR)) {\n if (isNOU(ele.firstElementChild.getAttribute('tabindex')) ||\n ele.firstElementChild.getAttribute('tabindex') !== '-1') {\n this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems);\n }\n }\n }\n else {\n ele.classList.remove(CLS_HIDDEN);\n if (!ele.classList.contains(CLS_SEPARATOR)) {\n this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems);\n }\n }\n this.refreshOverflow();\n }\n };\n __decorate([\n Collection([], Item)\n ], Toolbar.prototype, \"items\", void 0);\n __decorate([\n Property('auto')\n ], Toolbar.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Toolbar.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Toolbar.prototype, \"cssClass\", void 0);\n __decorate([\n Property('Scrollable')\n ], Toolbar.prototype, \"overflowMode\", void 0);\n __decorate([\n Property()\n ], Toolbar.prototype, \"scrollStep\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"enableCollision\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"allowKeyboard\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"beforeCreate\", void 0);\n Toolbar = __decorate([\n NotifyPropertyChanges\n ], Toolbar);\n return Toolbar;\n}(Component));\nexport { Toolbar };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, closest, Collection, Complex, attributes, detach, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, select, isVisible } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Browser, formatUnit, L10n } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, isNullOrUndefined as isNOU, selectAll, addClass, removeClass, remove } from '@syncfusion/ej2-base';\nimport { EventHandler, rippleEffect, Touch, compile, Animation } from '@syncfusion/ej2-base';\nimport { getRandomId, SanitizeHtmlHelper, Draggable } from '@syncfusion/ej2-base';\nimport { Toolbar } from '../toolbar/toolbar';\nvar CLS_TAB = 'e-tab';\nvar CLS_HEADER = 'e-tab-header';\nvar CLS_BLA_TEM = 'blazor-template';\nvar CLS_CONTENT = 'e-content';\nvar CLS_NEST = 'e-nested';\nvar CLS_ITEMS = 'e-items';\nvar CLS_ITEM = 'e-item';\nvar CLS_TEMPLATE = 'e-template';\nvar CLS_RTL = 'e-rtl';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_DISABLE = 'e-disable';\nvar CLS_HIDDEN = 'e-hidden';\nvar CLS_FOCUS = 'e-focused';\nvar CLS_ICONS = 'e-icons';\nvar CLS_ICON = 'e-icon';\nvar CLS_ICON_TAB = 'e-icon-tab';\nvar CLS_ICON_CLOSE = 'e-close-icon';\nvar CLS_CLOSE_SHOW = 'e-close-show';\nvar CLS_TEXT = 'e-tab-text';\nvar CLS_INDICATOR = 'e-indicator';\nvar CLS_WRAP = 'e-tab-wrap';\nvar CLS_TEXT_WRAP = 'e-text-wrap';\nvar CLS_TAB_ICON = 'e-tab-icon';\nvar CLS_TB_ITEMS = 'e-toolbar-items';\nvar CLS_TB_ITEM = 'e-toolbar-item';\nvar CLS_TB_POP = 'e-toolbar-pop';\nvar CLS_TB_POPUP = 'e-toolbar-popup';\nvar CLS_HOR_NAV = 'e-hor-nav';\nvar CLS_POPUP_OPEN = 'e-popup-open';\nvar CLS_POPUP_CLOSE = 'e-popup-close';\nvar CLS_PROGRESS = 'e-progress';\nvar CLS_IGNORE = 'e-ignore';\nvar CLS_OVERLAY = 'e-overlay';\nvar CLS_HSCRCNT = 'e-hscroll-content';\nvar CLS_VSCRCNT = 'e-vscroll-content';\nvar CLS_VTAB = 'e-vertical-tab';\nvar CLS_VERTICAL = 'e-vertical';\nvar CLS_VLEFT = 'e-vertical-left';\nvar CLS_VRIGHT = 'e-vertical-right';\nvar CLS_HBOTTOM = 'e-horizontal-bottom';\nvar CLS_FILL = 'e-fill-mode';\nvar TABITEMPREFIX = 'tabitem_';\nvar CLS_REORDER_ACTIVE_ITEM = 'e-reorder-active-item';\n/**\n * Objects used for configuring the Tab selecting item action properties.\n */\nvar TabActionSettings = /** @class */ (function (_super) {\n __extends(TabActionSettings, _super);\n function TabActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideLeftIn')\n ], TabActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(600)\n ], TabActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], TabActionSettings.prototype, \"easing\", void 0);\n return TabActionSettings;\n}(ChildProperty));\nexport { TabActionSettings };\n/**\n * Objects used for configuring the Tab animation properties.\n */\nvar TabAnimationSettings = /** @class */ (function (_super) {\n __extends(TabAnimationSettings, _super);\n function TabAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideLeftIn', duration: 600, easing: 'ease' }, TabActionSettings)\n ], TabAnimationSettings.prototype, \"previous\", void 0);\n __decorate([\n Complex({ effect: 'SlideRightIn', duration: 600, easing: 'ease' }, TabActionSettings)\n ], TabAnimationSettings.prototype, \"next\", void 0);\n return TabAnimationSettings;\n}(ChildProperty));\nexport { TabAnimationSettings };\n/**\n * Objects used for configuring the Tab item header properties.\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Header.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Header.prototype, \"iconCss\", void 0);\n __decorate([\n Property('left')\n ], Header.prototype, \"iconPosition\", void 0);\n return Header;\n}(ChildProperty));\nexport { Header };\n/**\n * An array of object that is used to configure the Tab.\n */\nvar TabItem = /** @class */ (function (_super) {\n __extends(TabItem, _super);\n function TabItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({}, Header)\n ], TabItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], TabItem.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('')\n ], TabItem.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], TabItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TabItem.prototype, \"disabled\", void 0);\n __decorate([\n Property(true)\n ], TabItem.prototype, \"visible\", void 0);\n __decorate([\n Property()\n ], TabItem.prototype, \"id\", void 0);\n __decorate([\n Property(-1)\n ], TabItem.prototype, \"tabIndex\", void 0);\n return TabItem;\n}(ChildProperty));\nexport { TabItem };\n/**\n * Tab is a content panel to show multiple contents in a single space, one at a time.\n * Each Tab item has an associated content, that will be displayed based on the active Tab header item.\n * ```html\n *
\n * \n * ```\n */\nvar Tab = /** @class */ (function (_super) {\n __extends(Tab, _super);\n /**\n * Initializes a new instance of the Tab class.\n *\n * @param {TabModel} options - Specifies Tab model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as a Tab.\n */\n function Tab(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.show = {};\n _this.hide = {};\n _this.maxHeight = 0;\n _this.title = 'Close';\n _this.isInteracted = false;\n _this.lastIndex = 0;\n _this.isAdd = false;\n _this.isIconAlone = false;\n _this.draggableItems = [];\n _this.resizeContext = _this.refreshActiveTabBorder.bind(_this);\n /**\n * Contains the keyboard configuration of the Tab.\n */\n _this.keyConfigs = {\n tab: 'tab',\n home: 'home',\n end: 'end',\n enter: 'enter',\n space: 'space',\n delete: 'delete',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n moveDown: 'downarrow'\n };\n return _this;\n }\n /**\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\n *\n * @returns {void}\n */\n Tab.prototype.destroy = function () {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n if (!isNOU(this.tbObj)) {\n this.tbObj.destroy();\n this.tbObj = null;\n }\n this.unWireEvents();\n this.element.removeAttribute('aria-disabled');\n this.expTemplateContent();\n if (!this.isTemplate) {\n while (this.element.firstElementChild) {\n remove(this.element.firstElementChild);\n }\n }\n else {\n var cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n this.element.classList.remove(CLS_TEMPLATE);\n if (!isNOU(cntEle)) {\n cntEle.innerHTML = this.cnt;\n }\n }\n if (this.btnCls) {\n this.btnCls = null;\n }\n this.hdrEle = null;\n this.cntEle = null;\n this.tbItems = null;\n this.tbItem = null;\n this.tbPop = null;\n this.prevItem = null;\n this.popEle = null;\n this.bdrLine = null;\n this.content = null;\n this.dragItem = null;\n this.cloneElement = null;\n this.draggingItems = [];\n if (this.draggableItems && this.draggableItems.length > 0) {\n for (var i = 0; i < this.draggableItems.length; i++) {\n this.draggableItems[i].destroy();\n this.draggableItems[i] = null;\n }\n this.draggableItems = [];\n }\n _super.prototype.destroy.call(this);\n this.trigger('destroyed');\n };\n /**\n * Refresh the tab component\n *\n * @returns {void}\n */\n Tab.prototype.refresh = function () {\n if (this.isReact) {\n this.clearTemplate();\n }\n _super.prototype.refresh.call(this);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Initialize component\n *\n * @private\n * @returns {void}\n */\n Tab.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.prevIndex = 0;\n this.isNested = false;\n this.isPopup = false;\n this.initRender = true;\n this.isSwipeed = false;\n this.itemIndexArray = [];\n this.templateEle = [];\n if (this.allowDragAndDrop) {\n this.dragArea = !isNOU(this.dragArea) ? this.dragArea : '#' + this.element.id + ' ' + ('.' + CLS_HEADER);\n }\n if (!isNOU(nested)) {\n nested.parentElement.classList.add(CLS_NEST);\n this.isNested = true;\n }\n var name = Browser.info.name;\n var css = (name === 'msie') ? 'e-ie' : (name === 'edge') ? 'e-edge' : (name === 'safari') ? 'e-safari' : '';\n setStyle(this.element, { 'width': formatUnit(this.width), 'height': formatUnit(this.height) });\n this.setCssClass(this.element, this.cssClass, true);\n attributes(this.element, { 'aria-disabled': 'false' });\n this.setCssClass(this.element, css, true);\n this.updatePopAnimationConfig();\n };\n /**\n * Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n Tab.prototype.render = function () {\n this.btnCls = this.createElement('span', { className: CLS_ICONS + ' ' + CLS_ICON_CLOSE, attrs: { title: this.title } });\n this.tabId = this.element.id.length > 0 ? ('-' + this.element.id) : getRandomId();\n this.renderContainer();\n this.wireEvents();\n this.initRender = false;\n };\n Tab.prototype.renderContainer = function () {\n var ele = this.element;\n this.items.forEach(function (item, index) {\n if (isNOU(item.id) && !isNOU(item.setProperties)) {\n item.setProperties({ id: TABITEMPREFIX + index.toString() }, true);\n }\n });\n if (this.items.length > 0 && ele.children.length === 0) {\n ele.appendChild(this.createElement('div', { className: CLS_CONTENT }));\n this.setOrientation(this.headerPlacement, this.createElement('div', { className: CLS_HEADER }));\n this.isTemplate = false;\n }\n else if (this.element.children.length > 0) {\n this.isTemplate = true;\n ele.classList.add(CLS_TEMPLATE);\n var header = ele.querySelector('.' + CLS_HEADER);\n if (header && this.headerPlacement === 'Bottom') {\n this.setOrientation(this.headerPlacement, header);\n }\n }\n if (!isNOU(select('.' + CLS_HEADER, this.element)) && !isNOU(select('.' + CLS_CONTENT, this.element))) {\n this.renderHeader();\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\n if (!isNOU(this.tbItems)) {\n rippleEffect(this.tbItems, { selector: '.e-tab-wrap' });\n }\n this.renderContent();\n if (selectAll('.' + CLS_TB_ITEM, this.element).length > 0) {\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\n this.bdrLine = this.createElement('div', { className: CLS_INDICATOR + ' ' + CLS_HIDDEN + ' ' + CLS_IGNORE });\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\n if (!isNOU(scrCnt)) {\n scrCnt.insertBefore(this.bdrLine, scrCnt.firstChild);\n }\n else {\n this.tbItems.insertBefore(this.bdrLine, this.tbItems.firstChild);\n }\n this.setContentHeight(true);\n this.select(this.selectedItem);\n }\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.hdrEle);\n if (!isNOU(this.tbItem)) {\n for (var i = 0; i < this.items.length; i++) {\n if (this.tbItem[i]) {\n var tabID = this.items[i].id;\n this.tbItem[i].setAttribute('data-id', tabID);\n }\n }\n }\n this.setRTL(this.enableRtl);\n }\n };\n Tab.prototype.renderHeader = function () {\n var _this = this;\n var hdrPlace = this.headerPlacement;\n var tabItems = [];\n this.hdrEle = this.getTabHeader();\n this.addVerticalClass();\n if (!this.isTemplate) {\n tabItems = this.parseObject(this.items, 0);\n }\n else {\n if (this.element.children.length > 1 && this.element.children[1].classList.contains(CLS_HEADER)) {\n this.setProperties({ headerPlacement: 'Bottom' }, true);\n }\n var count = this.hdrEle.children.length;\n var hdrItems = [];\n for (var i = 0; i < count; i++) {\n hdrItems.push(this.hdrEle.children.item(i).innerHTML);\n }\n if (count > 0) {\n while (this.hdrEle.firstElementChild) {\n detach(this.hdrEle.firstElementChild);\n }\n var tabItems_1 = this.createElement('div', { className: CLS_ITEMS });\n this.hdrEle.appendChild(tabItems_1);\n hdrItems.forEach(function (item, index) {\n _this.lastIndex = index;\n var attr = {\n className: CLS_ITEM, id: CLS_ITEM + _this.tabId + '_' + index\n };\n var txt = _this.createElement('span', {\n className: CLS_TEXT, innerHTML: item, attrs: { 'role': 'presentation' }\n }).outerHTML;\n var cont = _this.createElement('div', {\n className: CLS_TEXT_WRAP, innerHTML: txt + _this.btnCls.outerHTML\n }).outerHTML;\n var wrap = _this.createElement('div', {\n className: CLS_WRAP, innerHTML: cont,\n attrs: { role: 'tab', tabIndex: '-1', 'aria-selected': 'false', 'aria-controls': CLS_CONTENT + _this.tabId + '_' + index }\n });\n tabItems_1.appendChild(_this.createElement('div', attr));\n selectAll('.' + CLS_ITEM, tabItems_1)[index].appendChild(wrap);\n });\n }\n }\n this.tbObj = new Toolbar({\n width: (hdrPlace === 'Left' || hdrPlace === 'Right') ? 'auto' : '100%',\n height: (hdrPlace === 'Left' || hdrPlace === 'Right') ? '100%' : 'auto',\n overflowMode: this.overflowMode,\n items: (tabItems.length !== 0) ? tabItems : [],\n clicked: this.clickHandler.bind(this),\n scrollStep: this.scrollStep,\n enableHtmlSanitizer: this.enableHtmlSanitizer,\n cssClass: this.cssClass\n });\n this.tbObj.isStringTemplate = true;\n this.tbObj.createElement = this.createElement;\n this.tbObj.appendTo(this.hdrEle);\n attributes(this.hdrEle, { role: 'tablist' });\n if (!isNOU(this.element.getAttribute('aria-label'))) {\n this.hdrEle.setAttribute('aria-label', this.element.getAttribute('aria-label'));\n this.element.removeAttribute('aria-label');\n }\n else if (!isNOU(this.element.getAttribute('aria-labelledby'))) {\n this.hdrEle.setAttribute('aria-labelledby', this.element.getAttribute('aria-labelledby'));\n this.element.removeAttribute('aria-labelledby');\n }\n this.setCloseButton(this.showCloseButton);\n var toolbarHeader = this.tbObj.element.querySelector('.' + CLS_TB_ITEMS);\n if (!isNOU(toolbarHeader)) {\n if (isNOU(toolbarHeader.id) || toolbarHeader.id === '') {\n toolbarHeader.id = this.element.id + '_' + 'tab_header_items';\n }\n }\n };\n Tab.prototype.renderContent = function () {\n this.cntEle = select('.' + CLS_CONTENT, this.element);\n var hdrItem = selectAll('.' + CLS_TB_ITEM, this.element);\n if (this.isTemplate) {\n this.cnt = (this.cntEle.children.length > 0) ? this.cntEle.innerHTML : '';\n var contents = this.cntEle.children;\n for (var i = 0; i < hdrItem.length; i++) {\n if (contents.length - 1 >= i) {\n addClass([contents.item(i)], CLS_ITEM);\n attributes(contents.item(i), { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + i });\n contents.item(i).id = CLS_CONTENT + this.tabId + '_' + i;\n }\n }\n }\n };\n Tab.prototype.reRenderItems = function () {\n this.renderContainer();\n if (!isNOU(this.cntEle)) {\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\n }\n };\n Tab.prototype.parseObject = function (items, index) {\n var _this = this;\n var tbItems = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element);\n var maxId = this.lastIndex;\n if (!this.isReplace && tbItems.length > 0) {\n var idList_1 = [];\n tbItems.forEach(function (item) {\n idList_1.push(_this.getIndexFromEle(item.id));\n });\n maxId = Math.max.apply(Math, idList_1);\n }\n var tItems = [];\n var txtWrapEle;\n var spliceArray = [];\n var i = 0;\n items.forEach(function (item, i) {\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\n if ((isNOU(item.headerTemplate)) && (isNOU(item.header) || isNOU(item.header.text) ||\n ((item.header.text.length === 0)) && (css === ''))) {\n spliceArray.push(i);\n return;\n }\n var txt = item.headerTemplate || item.header.text;\n if (typeof txt === 'string' && _this.enableHtmlSanitizer) {\n txt = SanitizeHtmlHelper.sanitize(txt);\n }\n var itemIndex;\n if (_this.isReplace && !isNOU(_this.tbId) && _this.tbId !== '') {\n itemIndex = parseInt(_this.tbId.substring(_this.tbId.lastIndexOf('_') + 1), 10);\n _this.tbId = '';\n }\n else {\n itemIndex = index + i;\n }\n _this.lastIndex = ((tbItems.length === 0) ? i : ((_this.isReplace) ? (itemIndex) : (maxId + 1 + i)));\n var disabled = (item.disabled) ? ' ' + CLS_DISABLE + ' ' + CLS_OVERLAY : '';\n var hidden = (item.visible === false) ? ' ' + CLS_HIDDEN : '';\n txtWrapEle = _this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\n var tHtml = ((txt instanceof Object) ? txt.outerHTML : txt);\n var txtEmpty = (!isNOU(tHtml) && tHtml !== '');\n if (!isNOU(txt.tagName)) {\n txtWrapEle.appendChild(txt);\n }\n else {\n _this.headerTextCompile(txtWrapEle, txt, i);\n }\n var tEle;\n var icon = _this.createElement('span', {\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\n });\n var tCont = _this.createElement('div', { className: CLS_TEXT_WRAP });\n tCont.appendChild(txtWrapEle);\n if ((txt !== '' && txt !== undefined) && css !== '') {\n if ((pos === 'left' || pos === 'top')) {\n tCont.insertBefore(icon, tCont.firstElementChild);\n }\n else {\n tCont.appendChild(icon);\n }\n tEle = txtWrapEle;\n _this.isIconAlone = false;\n }\n else {\n tEle = ((css === '') ? txtWrapEle : icon);\n if (tEle === icon) {\n detach(txtWrapEle);\n tCont.appendChild(icon);\n _this.isIconAlone = true;\n }\n }\n var tabIndex = isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString();\n var wrapAttrs = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'false' };\n tCont.appendChild(_this.btnCls.cloneNode(true));\n var wrap = _this.createElement('div', { className: CLS_WRAP, attrs: wrapAttrs });\n wrap.appendChild(tCont);\n if (_this.itemIndexArray === []) {\n _this.itemIndexArray.push(CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\n }\n else {\n _this.itemIndexArray.splice((index + i), 0, CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\n }\n var attrObj = {\n id: CLS_ITEM + _this.tabId + '_' + _this.lastIndex\n };\n var tItem = { htmlAttributes: attrObj, template: wrap };\n tItem.cssClass = ((item.cssClass !== undefined) ? item.cssClass : ' ') + ' ' + disabled + ' ' + hidden + ' '\n + ((css !== '') ? 'e-i' + pos : '') + ' ' + ((!txtEmpty) ? CLS_ICON : '');\n if (pos === 'top' || pos === 'bottom') {\n _this.element.classList.add('e-vertical-icon');\n }\n tItems.push(tItem);\n i++;\n });\n if (!this.isAdd) {\n spliceArray.forEach(function (spliceItemIndex) {\n _this.items.splice(spliceItemIndex, 1);\n });\n }\n if (this.isIconAlone) {\n this.element.classList.add(CLS_ICON_TAB);\n }\n else {\n this.element.classList.remove(CLS_ICON_TAB);\n }\n return tItems;\n };\n Tab.prototype.removeActiveClass = function () {\n var tabHeader = this.getTabHeader();\n if (tabHeader) {\n var tabItems = selectAll('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, tabHeader);\n [].slice.call(tabItems).forEach(function (node) { return node.classList.remove(CLS_ACTIVE); });\n [].slice.call(tabItems).forEach(function (node) { return node.firstElementChild.setAttribute('aria-selected', 'false'); });\n }\n };\n Tab.prototype.checkPopupOverflow = function (ele) {\n this.tbPop = select('.' + CLS_TB_POP, this.element);\n var popIcon = select('.e-hor-nav', this.element);\n var tbrItems = select('.' + CLS_TB_ITEMS, this.element);\n var lastChild = tbrItems.lastChild;\n var isOverflow = false;\n if (!this.isVertical() && ((this.enableRtl && ((popIcon.offsetLeft + popIcon.offsetWidth) > tbrItems.offsetLeft))\n || (!this.enableRtl && popIcon.offsetLeft < tbrItems.offsetWidth))) {\n isOverflow = true;\n }\n else if (this.isVertical() && (popIcon.offsetTop < lastChild.offsetTop + lastChild.offsetHeight)) {\n isOverflow = true;\n }\n if (isOverflow) {\n ele.classList.add(CLS_TB_POPUP);\n this.tbPop.insertBefore(ele, selectAll('.' + CLS_TB_POPUP, this.tbPop)[0]);\n }\n return true;\n };\n Tab.prototype.popupHandler = function (target) {\n var ripEle = target.querySelector('.e-ripple-element');\n if (!isNOU(ripEle)) {\n ripEle.outerHTML = '';\n target.querySelector('.' + CLS_WRAP).classList.remove('e-ripple');\n }\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\n var lastChild = this.tbItem[this.tbItem.length - 1];\n if (this.tbItem.length !== 0) {\n target.classList.remove(CLS_TB_POPUP);\n target.removeAttribute('style');\n this.tbItems.appendChild(target);\n this.actEleId = target.id;\n if (this.checkPopupOverflow(lastChild)) {\n var prevEle = this.tbItems.lastChild.previousElementSibling;\n this.checkPopupOverflow(prevEle);\n }\n this.isPopup = true;\n }\n return selectAll('.' + CLS_TB_ITEM, this.tbItems).length - 1;\n };\n Tab.prototype.setCloseButton = function (val) {\n var trg = select('.' + CLS_HEADER, this.element);\n if (val === true) {\n trg.classList.add(CLS_CLOSE_SHOW);\n }\n else {\n trg.classList.remove(CLS_CLOSE_SHOW);\n }\n this.tbObj.refreshOverflow();\n this.refreshActiveTabBorder();\n };\n Tab.prototype.prevCtnAnimation = function (prev, current) {\n var animation;\n var checkRTL = this.enableRtl || this.element.classList.contains(CLS_RTL);\n if (this.isPopup || prev <= current) {\n if (this.animation.previous.effect === 'SlideLeftIn') {\n animation = {\n name: 'SlideLeftOut',\n duration: this.animation.previous.duration, timingFunction: this.animation.previous.easing\n };\n }\n else {\n animation = null;\n }\n }\n else {\n if (this.animation.next.effect === 'SlideRightIn') {\n animation = {\n name: 'SlideRightOut',\n duration: this.animation.next.duration, timingFunction: this.animation.next.easing\n };\n }\n else {\n animation = null;\n }\n }\n return animation;\n };\n Tab.prototype.triggerPrevAnimation = function (oldCnt, prevIndex) {\n var _this = this;\n var animateObj = this.prevCtnAnimation(prevIndex, this.selectedItem);\n if (!isNOU(animateObj)) {\n animateObj.begin = function () {\n setStyle(oldCnt, { 'position': 'absolute' });\n oldCnt.classList.add(CLS_PROGRESS);\n oldCnt.classList.add('e-view');\n };\n animateObj.end = function () {\n oldCnt.style.display = 'none';\n oldCnt.classList.remove(CLS_ACTIVE);\n oldCnt.classList.remove(CLS_PROGRESS);\n oldCnt.classList.remove('e-view');\n setStyle(oldCnt, { 'display': '', 'position': '' });\n if (oldCnt.childNodes.length === 0 && !_this.isTemplate) {\n detach(oldCnt);\n }\n };\n new Animation(animateObj).animate(oldCnt);\n }\n else {\n oldCnt.classList.remove(CLS_ACTIVE);\n }\n };\n Tab.prototype.triggerAnimation = function (id, value) {\n var _this = this;\n var prevIndex = this.prevIndex;\n var oldCnt;\n var itemCollection = [].slice.call(this.element.querySelector('.' + CLS_CONTENT).children);\n itemCollection.forEach(function (item) {\n if (item.id === _this.prevActiveEle) {\n oldCnt = item;\n }\n });\n var prevEle = this.tbItem[prevIndex];\n var newCnt = this.getTrgContent(this.cntEle, this.extIndex(id));\n if (isNOU(oldCnt) && !isNOU(prevEle)) {\n var idNo = this.extIndex(prevEle.id);\n oldCnt = this.getTrgContent(this.cntEle, idNo);\n }\n if (!isNOU(newCnt)) {\n this.prevActiveEle = newCnt.id;\n }\n var isPrevent = isNOU(this.animation) || this.animation.next === {} || this.animation.previous === {}\n || isNOU(this.animation.next.effect) || isNOU(this.animation.previous.effect)\n || this.animation.previous.effect == 'None' || this.animation.next.effect == 'None';\n if (this.initRender || value === false || this.animation === {} || isPrevent) {\n if (oldCnt && oldCnt !== newCnt) {\n oldCnt.classList.remove(CLS_ACTIVE);\n }\n return;\n }\n var cnt = select('.' + CLS_CONTENT, this.element);\n var animateObj;\n if (this.prevIndex > this.selectedItem && !this.isPopup) {\n var openEff = this.animation.previous.effect;\n animateObj = {\n name: ((openEff === 'None') ? '' : ((openEff !== 'SlideLeftIn') ? openEff : 'SlideLeftIn')),\n duration: this.animation.previous.duration,\n timingFunction: this.animation.previous.easing\n };\n }\n else if (this.isPopup || this.prevIndex < this.selectedItem || this.prevIndex === this.selectedItem) {\n var clsEff = this.animation.next.effect;\n animateObj = {\n name: ((clsEff === 'None') ? '' : ((clsEff !== 'SlideRightIn') ? clsEff : 'SlideRightIn')),\n duration: this.animation.next.duration,\n timingFunction: this.animation.next.easing\n };\n }\n animateObj.progress = function () {\n cnt.classList.add(CLS_PROGRESS);\n _this.setActiveBorder();\n };\n animateObj.end = function () {\n cnt.classList.remove(CLS_PROGRESS);\n newCnt.classList.add(CLS_ACTIVE);\n };\n if (!this.initRender && !isNOU(oldCnt)) {\n this.triggerPrevAnimation(oldCnt, prevIndex);\n }\n this.isPopup = false;\n if (animateObj.name === '') {\n newCnt.classList.add(CLS_ACTIVE);\n }\n else {\n new Animation(animateObj).animate(newCnt);\n }\n };\n Tab.prototype.keyPressed = function (trg) {\n var trgParent = closest(trg, '.' + CLS_HEADER + ' .' + CLS_TB_ITEM);\n var trgIndex = this.getEleIndex(trgParent);\n if (!isNOU(this.popEle) && trg.classList.contains('e-hor-nav')) {\n (this.popEle.classList.contains(CLS_POPUP_OPEN)) ? this.popObj.hide(this.hide) : this.popObj.show(this.show);\n }\n else if (trg.classList.contains('e-scroll-nav')) {\n trg.click();\n }\n else {\n if (!isNOU(trgParent) && trgParent.classList.contains(CLS_ACTIVE) === false) {\n this.selectTab(trgIndex, null, true);\n if (!isNOU(this.popEle)) {\n this.popObj.hide(this.hide);\n }\n }\n }\n };\n Tab.prototype.getTabHeader = function () {\n if (isNOU(this.element)) {\n return undefined;\n }\n var headers = [].slice.call(this.element.children).filter(function (e) { return e.classList.contains(CLS_HEADER); });\n if (headers.length > 0) {\n return headers[0];\n }\n else {\n var wrap = [].slice.call(this.element.children).filter(function (e) { return !e.classList.contains(CLS_BLA_TEM); })[0];\n if (!wrap) {\n return undefined;\n }\n return [].slice.call(wrap.children).filter(function (e) { return e.classList.contains(CLS_HEADER); })[0];\n }\n };\n Tab.prototype.getEleIndex = function (item) {\n return Array.prototype.indexOf.call(selectAll('.' + CLS_TB_ITEM, this.getTabHeader()), item);\n };\n Tab.prototype.extIndex = function (id) {\n return id.replace(CLS_ITEM + this.tabId + '_', '');\n };\n Tab.prototype.expTemplateContent = function () {\n var _this = this;\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(_this.element.querySelector(eleStr))) {\n document.body.appendChild(_this.element.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Tab.prototype.templateCompile = function (ele, cnt, index) {\n var tempEle = this.createElement('div');\n this.compileElement(tempEle, cnt, 'content', index);\n if (tempEle.childNodes.length !== 0) {\n ele.appendChild(tempEle);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Tab.prototype.compileElement = function (ele, val, prop, index) {\n var templateFn;\n if (typeof val === 'string') {\n val = val.trim();\n if (this.isVue) {\n templateFn = compile(SanitizeHtmlHelper.sanitize(val));\n }\n else {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(val);\n }\n }\n else {\n templateFn = compile(val);\n }\n var templateFUN;\n if (!isNOU(templateFn)) {\n templateFUN = templateFn({}, this, prop);\n }\n if (!isNOU(templateFn) && templateFUN.length > 0) {\n [].slice.call(templateFUN).forEach(function (el) {\n ele.appendChild(el);\n });\n }\n };\n Tab.prototype.headerTextCompile = function (element, text, index) {\n this.compileElement(element, text, 'headerTemplate', index);\n };\n Tab.prototype.getContent = function (ele, cnt, callType, index) {\n var eleStr;\n cnt = isNOU(cnt) ? \"\" : cnt;\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\n cnt = SanitizeHtmlHelper.sanitize(cnt);\n }\n if (cnt[0] === '.' || cnt[0] === '#') {\n if (document.querySelectorAll(cnt).length) {\n var eleVal = document.querySelector(cnt);\n eleStr = eleVal.outerHTML.trim();\n if (callType === 'clone') {\n ele.appendChild(eleVal.cloneNode(true));\n }\n else {\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n }\n else {\n this.templateCompile(ele, cnt, index);\n }\n }\n else {\n this.templateCompile(ele, cnt, index);\n }\n }\n else {\n ele.appendChild(cnt);\n }\n if (!isNOU(eleStr)) {\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\n this.templateEle.push(cnt.toString());\n }\n }\n };\n Tab.prototype.getTrgContent = function (cntEle, no) {\n var ele;\n if (this.element.classList.contains(CLS_NEST)) {\n ele = select('.' + CLS_NEST + '> .' + CLS_CONTENT + ' > #' + CLS_CONTENT + this.tabId + '_' + no, this.element);\n }\n else {\n ele = this.findEle(cntEle.children, CLS_CONTENT + this.tabId + '_' + no);\n }\n return ele;\n };\n Tab.prototype.findEle = function (items, key) {\n var ele;\n for (var i = 0; i < items.length; i++) {\n if (items[i].id === key) {\n ele = items[i];\n break;\n }\n }\n return ele;\n };\n Tab.prototype.isVertical = function () {\n var isVertical = (this.headerPlacement === 'Left' || this.headerPlacement === 'Right') ? true : false;\n this.scrCntClass = (isVertical) ? CLS_VSCRCNT : CLS_HSCRCNT;\n return isVertical;\n };\n Tab.prototype.addVerticalClass = function () {\n if (this.isVertical()) {\n var tbPos = (this.headerPlacement === 'Left') ? CLS_VLEFT : CLS_VRIGHT;\n addClass([this.hdrEle], [CLS_VERTICAL, tbPos]);\n if (!this.element.classList.contains(CLS_NEST)) {\n addClass([this.element], [CLS_VTAB, tbPos]);\n }\n else {\n addClass([this.hdrEle], [CLS_VTAB, tbPos]);\n }\n }\n if (this.headerPlacement === 'Bottom') {\n addClass([this.hdrEle], [CLS_HBOTTOM]);\n }\n };\n Tab.prototype.updatePopAnimationConfig = function () {\n this.show = { name: (this.isVertical() ? 'FadeIn' : 'SlideDown'), duration: 100 };\n this.hide = { name: (this.isVertical() ? 'FadeOut' : 'SlideUp'), duration: 100 };\n };\n Tab.prototype.changeOrientation = function (place) {\n this.setOrientation(place, this.hdrEle);\n var activeTab = this.hdrEle.querySelector('.' + CLS_ACTIVE);\n var isVertical = this.hdrEle.classList.contains(CLS_VERTICAL) ? true : false;\n removeClass([this.element], [CLS_VTAB]);\n removeClass([this.hdrEle], [CLS_VERTICAL, CLS_VLEFT, CLS_VRIGHT]);\n if (isVertical !== this.isVertical()) {\n this.changeToolbarOrientation();\n if (!isNOU(activeTab) && activeTab.classList.contains(CLS_TB_POPUP)) {\n this.popupHandler(activeTab);\n }\n }\n this.addVerticalClass();\n this.setActiveBorder();\n this.focusItem();\n };\n Tab.prototype.focusItem = function () {\n var curActItem = select(' #' + CLS_ITEM + this.tabId + '_' + this.selectedItem, this.hdrEle);\n if (!isNOU(curActItem)) {\n curActItem.firstElementChild.focus();\n }\n };\n Tab.prototype.changeToolbarOrientation = function () {\n this.tbObj.setProperties({ height: (this.isVertical() ? '100%' : 'auto'), width: (this.isVertical() ? 'auto' : '100%') }, true);\n this.tbObj.changeOrientation();\n this.updatePopAnimationConfig();\n };\n Tab.prototype.setOrientation = function (place, ele) {\n var headerPos = Array.prototype.indexOf.call(this.element.children, ele);\n var contentPos = Array.prototype.indexOf.call(this.element.children, this.element.querySelector('.' + CLS_CONTENT));\n if (place === 'Bottom' && (contentPos > headerPos)) {\n this.element.appendChild(ele);\n }\n else {\n removeClass([ele], [CLS_HBOTTOM]);\n this.element.insertBefore(ele, select('.' + CLS_CONTENT, this.element));\n }\n };\n Tab.prototype.setCssClass = function (ele, cls, val) {\n if (cls === '') {\n return;\n }\n var list = cls.split(' ');\n for (var i = 0; i < list.length; i++) {\n if (val) {\n ele.classList.add(list[i]);\n }\n else {\n ele.classList.remove(list[i]);\n }\n }\n };\n Tab.prototype.setContentHeight = function (val) {\n if (this.element.classList.contains(CLS_FILL)) {\n removeClass([this.element], [CLS_FILL]);\n }\n if (isNOU(this.cntEle)) {\n return;\n }\n var hdrEle = this.getTabHeader();\n if (this.heightAdjustMode === 'None') {\n if (this.height === 'auto') {\n return;\n }\n else {\n if (!this.isVertical()) {\n setStyle(this.cntEle, { 'height': (this.element.clientHeight - hdrEle.offsetHeight) + 'px' });\n }\n }\n }\n else if (this.heightAdjustMode === 'Fill') {\n addClass([this.element], [CLS_FILL]);\n setStyle(this.element, { 'height': '100%' });\n this.cntEle.style.height = 'calc(100% - ' + this.hdrEle.offsetHeight + 'px)';\n }\n else if (this.heightAdjustMode === 'Auto') {\n if (this.isTemplate === true) {\n var cnt = selectAll('.' + CLS_CONTENT + ' > .' + CLS_ITEM, this.element);\n for (var i = 0; i < cnt.length; i++) {\n cnt[i].setAttribute('style', 'display:block; visibility: visible');\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(cnt[i]));\n cnt[i].style.removeProperty('display');\n cnt[i].style.removeProperty('visibility');\n }\n }\n else {\n this.cntEle = select('.' + CLS_CONTENT, this.element);\n if (val === true) {\n this.cntEle.appendChild(this.createElement('div', {\n id: (CLS_CONTENT + this.tabId + '_' + 0), className: CLS_ITEM + ' ' + CLS_ACTIVE,\n attrs: { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + 0 }\n }));\n }\n var ele = this.cntEle.children.item(0);\n for (var i = 0; i < this.items.length; i++) {\n this.getContent(ele, this.items[i].content, 'clone', i);\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(ele));\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild);\n }\n }\n if (this.isReact) {\n this.clearTemplate(['content']);\n }\n this.templateEle = [];\n this.getContent(ele, this.items[0].content, 'render', 0);\n if (this.prevIndex !== this.selectedItem) {\n ele.classList.remove(CLS_ACTIVE);\n }\n }\n setStyle(this.cntEle, { 'height': this.maxHeight + 'px' });\n }\n else {\n setStyle(this.cntEle, { 'height': 'auto' });\n }\n };\n Tab.prototype.getHeight = function (ele) {\n var cs = window.getComputedStyle(ele);\n return ele.offsetHeight + parseFloat(cs.getPropertyValue('padding-top')) + parseFloat(cs.getPropertyValue('padding-bottom')) +\n parseFloat(cs.getPropertyValue('margin-top')) + parseFloat(cs.getPropertyValue('margin-bottom'));\n };\n Tab.prototype.setActiveBorder = function () {\n var trgHdrEle = this.getTabHeader();\n var trg = select('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, trgHdrEle);\n if (isNOU(trg)) {\n return;\n }\n if (!this.reorderActiveTab) {\n if (trg.classList.contains(CLS_TB_POPUP) && !this.bdrLine.classList.contains(CLS_HIDDEN)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n if (trgHdrEle && !trgHdrEle.classList.contains(CLS_REORDER_ACTIVE_ITEM)) {\n trgHdrEle.classList.add(CLS_REORDER_ACTIVE_ITEM);\n }\n }\n else if (trgHdrEle) {\n trgHdrEle.classList.remove(CLS_REORDER_ACTIVE_ITEM);\n }\n var root = closest(trg, '.' + CLS_TAB);\n if (this.element !== root) {\n return;\n }\n this.tbItems = select('.' + CLS_TB_ITEMS, trgHdrEle);\n var bar = select('.' + CLS_INDICATOR, trgHdrEle);\n var scrollCnt = select('.' + CLS_TB_ITEMS + ' .' + this.scrCntClass, trgHdrEle);\n if (this.isVertical()) {\n setStyle(bar, { 'left': '', 'right': '' });\n var tbHeight = (isNOU(scrollCnt)) ? this.tbItems.offsetHeight : scrollCnt.offsetHeight;\n if (tbHeight !== 0) {\n setStyle(bar, { 'top': trg.offsetTop + 'px', 'height': trg.offsetHeight + 'px' });\n }\n else {\n setStyle(bar, { 'top': 0, 'height': 0 });\n }\n }\n else {\n if (this.overflowMode === 'MultiRow') {\n var top_1 = this.headerPlacement === 'Bottom' ? trg.offsetTop : trg.offsetHeight + trg.offsetTop;\n setStyle(bar, { 'top': top_1 + 'px', 'height': '' });\n }\n else {\n setStyle(bar, { 'top': '', 'height': '' });\n }\n var tbWidth = (isNOU(scrollCnt)) ? this.tbItems.offsetWidth : scrollCnt.offsetWidth;\n if (tbWidth !== 0) {\n setStyle(bar, { 'left': trg.offsetLeft + 'px', 'right': tbWidth - (trg.offsetLeft + trg.offsetWidth) + 'px' });\n }\n else {\n setStyle(bar, { 'left': 'auto', 'right': 'auto' });\n }\n }\n if (!isNOU(this.bdrLine) && !trg.classList.contains(CLS_TB_POPUP)) {\n this.bdrLine.classList.remove(CLS_HIDDEN);\n }\n };\n Tab.prototype.setActive = function (value, skipDataBind, isInteracted) {\n if (skipDataBind === void 0) { skipDataBind = false; }\n if (isInteracted === void 0) { isInteracted = false; }\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());\n var trg = this.tbItem[value];\n if (value < 0 || isNaN(value) || this.tbItem.length === 0) {\n return;\n }\n if (value >= 0 && !skipDataBind) {\n this.allowServerDataBinding = false;\n this.setProperties({ selectedItem: value }, true);\n this.allowServerDataBinding = true;\n if (!this.initRender) {\n this.serverDataBind();\n }\n }\n if (trg.classList.contains(CLS_ACTIVE)) {\n this.setActiveBorder();\n return;\n }\n if (!this.isTemplate) {\n attributes(trg.firstElementChild, { 'aria-controls': CLS_CONTENT + this.tabId + '_' + value });\n }\n var id = trg.id;\n this.removeActiveClass();\n trg.classList.add(CLS_ACTIVE);\n trg.firstElementChild.setAttribute('aria-selected', 'true');\n var no = Number(this.extIndex(id));\n if (isNOU(this.prevActiveEle)) {\n this.prevActiveEle = CLS_CONTENT + this.tabId + '_' + no;\n }\n if (this.isTemplate) {\n if (select('.' + CLS_CONTENT, this.element).children.length > 0) {\n var trg_1 = this.findEle(select('.' + CLS_CONTENT, this.element).children, CLS_CONTENT + this.tabId + '_' + no);\n if (!isNOU(trg_1)) {\n trg_1.classList.add(CLS_ACTIVE);\n }\n this.triggerAnimation(id, this.enableAnimation);\n }\n }\n else {\n this.cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n var item = this.getTrgContent(this.cntEle, this.extIndex(id));\n if (isNOU(item)) {\n this.cntEle.appendChild(this.createElement('div', {\n id: CLS_CONTENT + this.tabId + '_' + this.extIndex(id), className: CLS_ITEM + ' ' + CLS_ACTIVE,\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + this.extIndex(id) }\n }));\n var eleTrg = this.getTrgContent(this.cntEle, this.extIndex(id));\n var itemIndex = Array.prototype.indexOf.call(this.itemIndexArray, id);\n this.getContent(eleTrg, this.items[itemIndex].content, 'render', itemIndex);\n }\n else {\n item.classList.add(CLS_ACTIVE);\n }\n this.triggerAnimation(id, this.enableAnimation);\n }\n this.setActiveBorder();\n this.refreshItemVisibility(trg);\n if (!this.initRender && !skipDataBind) {\n trg.firstElementChild.focus();\n var eventArg = {\n previousItem: this.prevItem,\n previousIndex: this.prevIndex,\n selectedItem: trg,\n selectedIndex: value,\n selectedContent: select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content),\n isSwiped: this.isSwipeed,\n isInteracted: isInteracted\n };\n this.trigger('selected', eventArg);\n }\n };\n Tab.prototype.setItems = function (items) {\n this.isReplace = true;\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\n this.tbObj.items = this.parseObject(items, 0);\n this.tbObj.dataBind();\n this.isReplace = false;\n };\n Tab.prototype.setRTL = function (value) {\n this.tbObj.enableRtl = value;\n this.tbObj.dataBind();\n this.setCssClass(this.element, CLS_RTL, value);\n this.refreshActiveBorder();\n };\n Tab.prototype.refreshActiveBorder = function () {\n if (!isNOU(this.bdrLine)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n this.setActiveBorder();\n };\n Tab.prototype.showPopup = function (config) {\n var tbPop = select('.e-popup.e-toolbar-pop', this.hdrEle);\n if (tbPop.classList.contains('e-popup-close')) {\n var tbPopObj = (tbPop && tbPop.ej2_instances[0]);\n tbPopObj.position.X = (this.headerPlacement === 'Left') ? 'left' : 'right';\n tbPopObj.dataBind();\n tbPopObj.show(config);\n }\n };\n Tab.prototype.bindDraggable = function () {\n var _this = this;\n if (this.allowDragAndDrop) {\n var tabHeader = this.element.querySelector('.' + CLS_HEADER);\n if (tabHeader) {\n var items = tabHeader.querySelectorAll('.' + CLS_TB_ITEM);\n items.forEach(function (element) {\n _this.initializeDrag(element);\n });\n }\n }\n };\n Tab.prototype.wireEvents = function () {\n this.bindDraggable();\n window.addEventListener('resize', this.resizeContext);\n EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);\n EventHandler.add(this.element, 'keydown', this.spaceKeyDown, this);\n if (!isNOU(this.cntEle)) {\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\n }\n this.keyModule = new KeyboardEvents(this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs });\n this.tabKeyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyHandler.bind(this),\n keyConfigs: { openPopup: 'shift+f10', tab: 'tab', shiftTab: 'shift+tab' },\n eventName: 'keydown'\n });\n };\n Tab.prototype.unWireEvents = function () {\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n if (!isNOU(this.tabKeyModule)) {\n this.tabKeyModule.destroy();\n }\n if (!isNOU(this.cntEle) && !isNOU(this.touchModule)) {\n this.touchModule.destroy();\n this.touchModule = null;\n }\n window.removeEventListener('resize', this.resizeContext);\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.element, 'keydown', this.spaceKeyDown);\n this.element.classList.remove(CLS_RTL);\n this.element.classList.remove(CLS_FOCUS);\n };\n Tab.prototype.clickHandler = function (args) {\n this.element.classList.remove(CLS_FOCUS);\n var trg = args.originalEvent.target;\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\n var trgIndex = this.getEleIndex(trgParent);\n if (trg.classList.contains(CLS_ICON_CLOSE)) {\n this.removeTab(trgIndex);\n }\n else if (this.isVertical() && closest(trg, '.' + CLS_HOR_NAV)) {\n this.showPopup(this.show);\n }\n else {\n this.isPopup = false;\n if (!isNOU(trgParent) && (trgIndex !== this.selectedItem || trgIndex !== this.prevIndex)) {\n this.selectTab(trgIndex, args.originalEvent, true);\n }\n }\n };\n Tab.prototype.swipeHandler = function (e) {\n if (e.velocity < 3 && isNOU(e.originalEvent.changedTouches)) {\n return;\n }\n if (this.isNested) {\n this.element.setAttribute('data-swipe', 'true');\n }\n var nestedTab = this.element.querySelector('[data-swipe=\"true\"]');\n if (nestedTab) {\n nestedTab.removeAttribute('data-swipe');\n return;\n }\n this.isSwipeed = true;\n if (e.swipeDirection === 'Right' && this.selectedItem !== 0) {\n for (var k = this.selectedItem - 1; k >= 0; k--) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.selectTab(k, null, true);\n break;\n }\n }\n }\n else if (e.swipeDirection === 'Left' && (this.selectedItem !== selectAll('.' + CLS_TB_ITEM, this.element).length - 1)) {\n for (var i = this.selectedItem + 1; i < this.tbItem.length; i++) {\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\n this.selectTab(i, null, true);\n break;\n }\n }\n }\n this.isSwipeed = false;\n };\n Tab.prototype.spaceKeyDown = function (e) {\n if ((e.keyCode === 32 && e.which === 32) || (e.keyCode === 35 && e.which === 35)) {\n var clstHead = closest(e.target, '.' + CLS_HEADER);\n if (!isNOU(clstHead)) {\n e.preventDefault();\n }\n }\n };\n Tab.prototype.keyHandler = function (e) {\n if (this.element.classList.contains(CLS_DISABLE)) {\n return;\n }\n this.element.classList.add(CLS_FOCUS);\n var trg = e.target;\n var tabHeader = this.getTabHeader();\n var actEle = select('.' + CLS_ACTIVE, tabHeader);\n this.popEle = select('.' + CLS_TB_POP, tabHeader);\n if (!isNOU(this.popEle)) {\n this.popObj = this.popEle.ej2_instances[0];\n }\n var item = closest(document.activeElement, '.' + CLS_TB_ITEM);\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\n switch (e.action) {\n case 'space':\n case 'enter':\n if (trg.parentElement.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (e.action === 'enter' && trg.classList.contains('e-hor-nav')) {\n this.showPopup(this.show);\n break;\n }\n this.keyPressed(trg);\n break;\n case 'tab':\n case 'shiftTab':\n if (trg.classList.contains(CLS_WRAP)\n && closest(trg, '.' + CLS_TB_ITEM).classList.contains(CLS_ACTIVE) === false) {\n trg.setAttribute('tabindex', trg.getAttribute('data-tabindex'));\n }\n if (this.popObj && isVisible(this.popObj.element)) {\n this.popObj.hide(this.hide);\n }\n if (!isNOU(actEle) && actEle.children.item(0).getAttribute('tabindex') === '-1') {\n actEle.children.item(0).setAttribute('tabindex', '0');\n }\n break;\n case 'moveLeft':\n case 'moveRight':\n if (!isNOU(item)) {\n this.refreshItemVisibility(item);\n }\n break;\n case 'openPopup':\n e.preventDefault();\n if (!isNOU(this.popEle) && this.popEle.classList.contains(CLS_POPUP_CLOSE)) {\n this.popObj.show(this.show);\n }\n break;\n case 'delete':\n if (this.showCloseButton === true && !isNOU(trgParent)) {\n var nxtSib = trgParent.nextSibling;\n if (!isNOU(nxtSib) && nxtSib.classList.contains(CLS_TB_ITEM)) {\n nxtSib.firstElementChild.focus();\n }\n this.removeTab(this.getEleIndex(trgParent));\n }\n this.setActiveBorder();\n break;\n }\n };\n Tab.prototype.refreshItemVisibility = function (target) {\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\n if (!this.isVertical() && !isNOU(scrCnt)) {\n var scrBar = select('.e-hscroll-bar', this.tbItems);\n var scrStart = scrBar.scrollLeft;\n var scrEnd = scrStart + scrBar.offsetWidth;\n var eleStart = target.offsetLeft;\n var eleWidth = target.offsetWidth;\n var eleEnd = target.offsetLeft + target.offsetWidth;\n if ((scrStart < eleStart) && (scrEnd < eleEnd)) {\n var eleViewRange = scrEnd - eleStart;\n scrBar.scrollLeft = scrStart + (eleWidth - eleViewRange);\n }\n else {\n if ((scrStart > eleStart) && (scrEnd > eleEnd)) {\n var eleViewRange = eleEnd - scrStart;\n scrBar.scrollLeft = scrStart - (eleWidth - eleViewRange);\n }\n }\n }\n else {\n return;\n }\n };\n Tab.prototype.getIndexFromEle = function (id) {\n return parseInt(id.substring(id.lastIndexOf('_') + 1), 10);\n };\n Tab.prototype.hoverHandler = function (e) {\n var trg = e.target;\n if (!isNOU(trg.classList) && trg.classList.contains(CLS_ICON_CLOSE)) {\n trg.setAttribute('title', new L10n('tab', { closeButtonTitle: this.title }, this.locale).getConstant('closeButtonTitle'));\n }\n };\n Tab.prototype.evalOnPropertyChangeItems = function (newProp, oldProp) {\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProp = Object.keys(newProp.items);\n for (var i = 0; i < changedProp.length; i++) {\n var index = parseInt(Object.keys(newProp.items)[i], 10);\n var properties = Object.keys(newProp.items[index]);\n for (var j = 0; j < properties.length; j++) {\n var oldVal = Object(oldProp.items[index])[properties[j]];\n var newVal = Object(newProp.items[index])[properties[j]];\n var hdr = this.element.querySelectorAll('.' + CLS_TB_ITEM)[index];\n var itemIndex = void 0;\n if (hdr && !isNOU(hdr.id) && hdr.id !== '') {\n itemIndex = this.getIndexFromEle(hdr.id);\n }\n else {\n itemIndex = index;\n }\n var hdrItem = select('.' + CLS_TB_ITEMS + ' #' + CLS_ITEM + this.tabId + '_' + itemIndex, this.element);\n var cntItem = select('.' + CLS_CONTENT + ' #' + CLS_CONTENT + this.tabId + '_' + itemIndex, this.element);\n if (properties[j] === 'header' || properties[j] === 'headerTemplate') {\n var icon = (isNOU(this.items[index].header) ||\n isNOU(this.items[index].header.iconCss)) ? '' : this.items[index].header.iconCss;\n var textVal = this.items[index].headerTemplate || this.items[index].header.text;\n if ((textVal === '') && (icon === '')) {\n this.removeTab(index);\n }\n else {\n this.tbId = hdr.id;\n var arr = [];\n arr.push(this.items[index]);\n this.items.splice(index, 1);\n this.itemIndexArray.splice(index, 1);\n this.tbObj.items.splice(index, 1);\n var isHiddenEle = hdrItem.classList.contains(CLS_HIDDEN);\n detach(hdrItem);\n this.isReplace = true;\n this.addTab(arr, index);\n if (isHiddenEle) {\n this.hideTab(index);\n }\n this.isReplace = false;\n }\n }\n if (properties[j] === 'content' && !isNOU(cntItem)) {\n var strVal = typeof newVal === 'string' || isNOU(newVal.innerHTML);\n if (strVal && (newVal[0] === '.' || newVal[0] === '#') && newVal.length) {\n var eleVal = document.querySelector(newVal);\n cntItem.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else if (newVal === '' && oldVal[0] === '#') {\n document.body.appendChild(this.element.querySelector(oldVal)).style.display = 'none';\n cntItem.innerHTML = newVal;\n }\n else if (this.isReact) {\n cntItem.innerHTML = '';\n this.templateCompile(cntItem, newVal, index);\n }\n else if (typeof newVal !== 'function') {\n cntItem.innerHTML = newVal;\n }\n }\n if (properties[j] === 'cssClass') {\n if (!isNOU(hdrItem)) {\n hdrItem.classList.remove(oldVal);\n hdrItem.classList.add(newVal);\n }\n if (!isNOU(cntItem)) {\n cntItem.classList.remove(oldVal);\n cntItem.classList.add(newVal);\n }\n }\n if (properties[j] === 'disabled') {\n this.enableTab(index, ((newVal === true) ? false : true));\n }\n if (properties[j] === 'visible') {\n this.hideTab(index, ((newVal === true) ? false : true));\n }\n }\n }\n }\n else {\n this.lastIndex = 0;\n if (isNOU(this.tbObj)) {\n this.reRenderItems();\n }\n else {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.setItems(newProp.items);\n if (this.templateEle.length > 0) {\n this.expTemplateContent();\n }\n this.templateEle = [];\n var selectElement = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n while (selectElement.firstElementChild) {\n detach(selectElement.firstElementChild);\n }\n this.select(this.selectedItem);\n this.draggableItems = [];\n this.bindDraggable();\n }\n }\n };\n Tab.prototype.initializeDrag = function (target) {\n var _this = this;\n var dragObj = new Draggable(target, {\n dragArea: this.dragArea,\n dragTarget: '.' + CLS_TB_ITEM,\n clone: true,\n helper: this.helper.bind(this),\n dragStart: this.itemDragStart.bind(this),\n drag: function (e) {\n var dragIndex = _this.getEleIndex(_this.dragItem);\n var dropIndex;\n var dropItem;\n var dragArgs = {\n draggedItem: _this.dragItem,\n event: e.event,\n target: e.target,\n droppedItem: e.target.closest('.' + CLS_TB_ITEM),\n clonedElement: _this.cloneElement,\n index: dragIndex\n };\n if (!isNOU(e.target.closest('.' + CLS_TAB)) && !e.target.closest('.' + CLS_TAB).isEqualNode(_this.element) &&\n _this.dragArea !== '.' + CLS_HEADER) {\n _this.trigger('dragging', dragArgs);\n }\n else {\n if (!(e.target.closest(_this.dragArea)) && _this.overflowMode !== 'Popup') {\n document.body.style.cursor = 'not-allowed';\n addClass([_this.cloneElement], CLS_HIDDEN);\n if (_this.dragItem.classList.contains(CLS_HIDDEN)) {\n removeClass([_this.dragItem], CLS_HIDDEN);\n }\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\n }\n else {\n document.body.style.cursor = '';\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\n if (_this.cloneElement.classList.contains(CLS_HIDDEN)) {\n removeClass([_this.cloneElement], CLS_HIDDEN);\n }\n }\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\n var scrollRightNavEle = _this.element.querySelector('.e-scroll-right-nav');\n var scrollLeftNavEle = _this.element.querySelector('.e-scroll-left-nav');\n var hscrollBar = _this.element.querySelector('.e-hscroll-bar');\n if (!isNOU(scrollRightNavEle) && Math.abs((scrollRightNavEle.offsetWidth / 2) +\n scrollRightNavEle.offsetLeft) > _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\n hscrollBar.scrollLeft -= 10;\n }\n if (!isNOU(scrollLeftNavEle) && Math.abs((scrollLeftNavEle.offsetLeft + scrollLeftNavEle.offsetWidth) -\n _this.cloneElement.offsetLeft) > (scrollLeftNavEle.offsetWidth / 2)) {\n hscrollBar.scrollLeft += 10;\n }\n }\n _this.cloneElement.style.pointerEvents = 'none';\n dropItem = closest(e.target, '.' + CLS_TB_ITEM + '.e-draggable');\n var scrollContentWidth = 0;\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\n scrollContentWidth = _this.element.querySelector('.e-hscroll-content').offsetWidth;\n }\n if (dropItem != null && !dropItem.isSameNode(_this.dragItem) &&\n dropItem.closest('.' + CLS_TAB).isSameNode(_this.dragItem.closest('.' + CLS_TAB))) {\n dropIndex = _this.getEleIndex(dropItem);\n if (dropIndex < dragIndex &&\n (Math.abs((dropItem.offsetLeft + dropItem.offsetWidth) -\n _this.cloneElement.offsetLeft) > (dropItem.offsetWidth / 2))) {\n _this.dragAction(dropItem, dragIndex, dropIndex);\n }\n if (dropIndex > dragIndex &&\n (Math.abs(dropItem.offsetWidth / 2) + dropItem.offsetLeft -\n scrollContentWidth) < _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\n _this.dragAction(dropItem, dragIndex, dropIndex);\n }\n }\n _this.droppedIndex = _this.getEleIndex(_this.dragItem);\n _this.trigger('dragging', dragArgs);\n }\n },\n dragStop: this.itemDragStop.bind(this)\n });\n this.draggableItems.push(dragObj);\n };\n Tab.prototype.helper = function (e) {\n this.cloneElement = this.createElement('div');\n if (e.element) {\n this.cloneElement = (e.element.cloneNode(true));\n addClass([this.cloneElement], 'e-tab-clone-element');\n if (this.element.querySelector('.' + CLS_HEADER).classList.contains(CLS_CLOSE_SHOW)) {\n addClass([this.cloneElement], CLS_CLOSE_SHOW);\n }\n removeClass([this.cloneElement.querySelector('.' + CLS_WRAP)], 'e-ripple');\n if (!isNOU(this.cloneElement.querySelector('.e-ripple-element'))) {\n remove(this.cloneElement.querySelector('.e-ripple-element'));\n }\n document.body.appendChild(this.cloneElement);\n }\n return this.cloneElement;\n };\n Tab.prototype.itemDragStart = function (e) {\n var _this = this;\n this.draggingItems = this.items.map(function (x) { return x; });\n this.dragItem = e.element;\n var dragArgs = {\n draggedItem: e.element,\n event: e.event,\n target: e.target,\n droppedItem: null,\n index: this.getEleIndex(this.dragItem),\n clonedElement: this.cloneElement,\n cancel: false\n };\n this.trigger('onDragStart', dragArgs, function (tabitemDragArgs) {\n if (tabitemDragArgs.cancel) {\n detach(_this.cloneElement);\n }\n else {\n _this.removeActiveClass();\n addClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\n }\n });\n };\n Tab.prototype.dragAction = function (dropItem, dragsIndex, dropIndex) {\n if (this.items.length > 0) {\n var item = this.draggingItems[dragsIndex];\n this.draggingItems.splice(dragsIndex, 1);\n this.draggingItems.splice(dropIndex, 0, item);\n }\n if (this.overflowMode === 'MultiRow') {\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling);\n }\n if (dragsIndex > dropIndex) {\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\n if (this.overflowMode === 'Extended') {\n if (dropItem.isSameNode(dropItem.parentElement.lastChild)) {\n var popupContainer = this.dragItem.parentNode;\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n popupContainer.insertBefore(dropItem.parentElement.lastChild, popupContainer.childNodes[0]);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement.lastChild), this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n else {\n var lastEle = (dropItem.parentElement).lastChild;\n if (dropItem.isSameNode(lastEle)) {\n var popupContainer = this.dragItem.parentNode;\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n popupContainer.insertBefore(lastEle, popupContainer.childNodes[0]);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n }\n else {\n this.dragItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n if (dragsIndex < dropIndex) {\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\n if (this.overflowMode === 'Extended') {\n this.dragItem.parentElement.appendChild(dropItem.parentElement.firstElementChild);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextSibling);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n else {\n this.dragItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling);\n }\n }\n };\n Tab.prototype.itemDragStop = function (e) {\n var _this = this;\n detach(this.cloneElement);\n this.cloneElement = null;\n this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\n document.body.style.cursor = '';\n var dragStopArgs = {\n draggedItem: this.dragItem,\n event: e.event,\n target: e.target,\n droppedItem: this.tbItem[this.droppedIndex],\n clonedElement: null,\n index: this.droppedIndex,\n cancel: false\n };\n this.trigger('dragged', dragStopArgs, function (tabItemDropArgs) {\n if (tabItemDropArgs.cancel) {\n _this.refresh();\n }\n else {\n if (_this.items.length > 0 && _this.draggingItems.length > 0) {\n _this.items = _this.draggingItems;\n _this.selectedItem = _this.droppedIndex;\n _this.refresh();\n }\n else {\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = '';\n removeClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\n _this.selectTab(_this.droppedIndex, null, true);\n }\n }\n });\n this.dragItem = null;\n };\n /**\n * Enables or disables the specified Tab item. On passing value as `false`, the item will be disabled.\n *\n * @param {number} index - Index value of target Tab item.\n * @param {boolean} value - Boolean value that determines whether the command should be enabled or disabled.\n * By default, isEnable is true.\n * @returns {void}.\n */\n Tab.prototype.enableTab = function (index, value) {\n var tbItems = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(tbItems)) {\n return;\n }\n if (value === true) {\n tbItems.classList.remove(CLS_DISABLE, CLS_OVERLAY);\n tbItems.firstElementChild.setAttribute('tabindex', tbItems.firstElementChild.getAttribute('data-tabindex'));\n }\n else {\n tbItems.classList.add(CLS_DISABLE, CLS_OVERLAY);\n tbItems.firstElementChild.removeAttribute('tabindex');\n if (tbItems.classList.contains(CLS_ACTIVE)) {\n this.select(index + 1);\n }\n }\n if (!isNOU(this.items[index])) {\n this.items[index].disabled = !value;\n this.dataBind();\n }\n tbItems.setAttribute('aria-disabled', (value === true) ? 'false' : 'true');\n };\n /**\n * Adds new items to the Tab that accepts an array as Tab items.\n *\n * @param {TabItemModel[]} items - An array of item that is added to the Tab.\n * @param {number} index - Number value that determines where the items to be added. By default, index is 0.\n * @returns {void}.\n */\n Tab.prototype.addTab = function (items, index) {\n var _this = this;\n var addArgs = { addedItems: items, cancel: false };\n if (!this.isReplace) {\n this.trigger('adding', addArgs, function (tabAddingArgs) {\n if (!tabAddingArgs.cancel) {\n _this.addingTabContent(items, index);\n }\n });\n }\n else {\n this.addingTabContent(items, index);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Tab.prototype.addingTabContent = function (items, index) {\n var _this = this;\n var lastEleIndex = 0;\n this.hdrEle = select('.' + CLS_HEADER, this.element);\n if (isNOU(this.hdrEle)) {\n this.items = items;\n this.reRenderItems();\n this.bindDraggable();\n }\n else {\n var itemsCount = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element).length;\n if (itemsCount !== 0) {\n lastEleIndex = this.lastIndex + 1;\n }\n if (isNOU(index)) {\n index = itemsCount - 1;\n }\n if (itemsCount < index || index < 0 || isNaN(index)) {\n return;\n }\n if (itemsCount === 0 && !isNOU(this.hdrEle)) {\n this.hdrEle.style.display = '';\n }\n if (!isNOU(this.bdrLine)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\n this.isAdd = true;\n var tabItems_2 = this.parseObject(items, index);\n this.isAdd = false;\n var i_1 = 0;\n var textValue_1;\n items.forEach(function (item, place) {\n textValue_1 = item.headerTemplate || item.header.text;\n if (!(isNOU(item.headerTemplate || item.header) || isNOU(textValue_1) ||\n (textValue_1.length === 0) && !isNOU(item.header) && isNOU(item.header.iconCss))) {\n if (tabItems_2[place]) {\n if (isNOU(item.id)) {\n item.id = CLS_ITEM + _this.tabId + '_' + TABITEMPREFIX + (lastEleIndex + place).toString();\n }\n tabItems_2[place].htmlAttributes['data-id'] = item.id;\n }\n _this.items.splice((index + i_1), 0, item);\n i_1++;\n }\n if (_this.isTemplate && !isNOU(item.header) && !isNOU(item.header.text)) {\n var no = lastEleIndex + place;\n var ele = _this.createElement('div', {\n id: CLS_CONTENT + _this.tabId + '_' + no, className: CLS_ITEM,\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + '_' + no }\n });\n _this.cntEle.insertBefore(ele, _this.cntEle.children[(index + place)]);\n var eleTrg = _this.getTrgContent(_this.cntEle, no.toString());\n _this.getContent(eleTrg, item.content, 'render', index);\n }\n });\n this.tbObj.addItems(tabItems_2, index);\n if (!this.isReplace) {\n this.trigger('added', { addedItems: items });\n }\n if (this.selectedItem === index) {\n this.select(index);\n }\n else {\n this.setActiveBorder();\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());\n }\n this.bindDraggable();\n }\n };\n /**\n * Removes the items in the Tab from the specified index.\n *\n * @param {number} index - Index of target item that is going to be removed.\n * @returns {void}.\n */\n Tab.prototype.removeTab = function (index) {\n var _this = this;\n var trg = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(trg)) {\n return;\n }\n var removeArgs = { removedItem: trg, removedIndex: index, cancel: false };\n this.trigger('removing', removeArgs, function (tabRemovingArgs) {\n if (!tabRemovingArgs.cancel) {\n _this.tbObj.removeItems(index);\n if (_this.allowDragAndDrop && (index !== Array.prototype.indexOf.call(_this.itemIndexArray, trg.id))) {\n index = Array.prototype.indexOf.call(_this.itemIndexArray, trg.id);\n }\n var targetEleIndex = _this.itemIndexArray.indexOf(trg.id);\n _this.items.splice(targetEleIndex, 1);\n _this.itemIndexArray.splice(targetEleIndex, 1);\n _this.refreshActiveBorder();\n var cntTrg = select('#' + CLS_CONTENT + _this.tabId + '_' + _this.extIndex(trg.id), select('.' + CLS_CONTENT, _this.element));\n if (!isNOU(cntTrg)) {\n var registeredTemplate = _this.registeredTemplate;\n if (registeredTemplate && registeredTemplate.content) {\n var templateToClear = [];\n for (var i = 0; i < registeredTemplate.content.length; i++) {\n var registeredItem = registeredTemplate.content[i].rootNodes[0];\n var closestItem = closest(registeredItem, '.' + CLS_ITEM);\n if (!isNullOrUndefined(registeredItem) && closestItem === cntTrg) {\n templateToClear.push(registeredTemplate.content[i]);\n break;\n }\n }\n if (templateToClear.length > 0) {\n _this.clearTemplate(['content'], templateToClear);\n }\n }\n detach(cntTrg);\n }\n _this.trigger('removed', tabRemovingArgs);\n if (_this.draggableItems && _this.draggableItems.length > 0) {\n _this.draggableItems[index].destroy();\n _this.draggableItems[index] = null;\n _this.draggableItems.splice(index, 1);\n }\n if (trg.classList.contains(CLS_ACTIVE)) {\n index = (index > selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_TB_POPUP + ')', _this.element).length - 1) ? index - 1 : index;\n _this.enableAnimation = false;\n _this.selectedItem = index;\n _this.select(index);\n }\n else if (index !== _this.selectedItem) {\n if (index < _this.selectedItem) {\n index = _this.itemIndexArray.indexOf(_this.tbItem[_this.selectedItem].id);\n _this.setProperties({ selectedItem: index > -1 ? index : _this.selectedItem }, true);\n _this.prevIndex = _this.selectedItem;\n }\n _this.tbItem = selectAll('.' + CLS_TB_ITEM, _this.getTabHeader());\n }\n if (selectAll('.' + CLS_TB_ITEM, _this.element).length === 0) {\n _this.hdrEle.style.display = 'none';\n }\n _this.enableAnimation = true;\n }\n });\n };\n /**\n * Shows or hides the Tab that is in the specified index.\n *\n * @param {number} index - Index value of target item.\n * @param {boolean} value - Based on this Boolean value, item will be hide (false) or show (true). By default, value is true.\n * @returns {void}.\n */\n Tab.prototype.hideTab = function (index, value) {\n var items;\n var item = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(item)) {\n return;\n }\n if (isNOU(value)) {\n value = true;\n }\n this.bdrLine.classList.add(CLS_HIDDEN);\n if (value === true) {\n item.classList.add(CLS_HIDDEN);\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\n if (items.length !== 0 && item.classList.contains(CLS_ACTIVE)) {\n if (index !== 0) {\n for (var i = index - 1; i >= 0; i--) {\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\n this.select(i);\n break;\n }\n else if (i === 0) {\n for (var k = index + 1; k < this.tbItem.length; k++) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.select(k);\n break;\n }\n }\n }\n }\n }\n else {\n for (var k = index + 1; k < this.tbItem.length; k++) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.select(k);\n break;\n }\n }\n }\n }\n else if (items.length === 0) {\n this.element.classList.add(CLS_HIDDEN);\n }\n }\n else {\n this.element.classList.remove(CLS_HIDDEN);\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\n item.classList.remove(CLS_HIDDEN);\n if (items.length === 0) {\n this.select(index);\n }\n }\n this.setActiveBorder();\n item.setAttribute('aria-hidden', '' + value);\n if (this.overflowMode === 'Popup' && this.tbObj) {\n this.tbObj.refreshOverflow();\n }\n };\n Tab.prototype.selectTab = function (args, event, isInteracted) {\n if (event === void 0) { event = null; }\n if (isInteracted === void 0) { isInteracted = false; }\n this.isInteracted = isInteracted;\n this.select(args, event);\n };\n /**\n * Specifies the index or HTMLElement to select an item from the Tab.\n *\n * @param {number | HTMLElement} args - Index or DOM element is used for selecting an item from the Tab.\n * @param {Event} event - An event which takes place in DOM.\n * @returns {void}\n */\n Tab.prototype.select = function (args, event) {\n var _this = this;\n var tabHeader = this.getTabHeader();\n this.tbItems = select('.' + CLS_TB_ITEMS, tabHeader);\n this.tbItem = selectAll('.' + CLS_TB_ITEM, tabHeader);\n this.content = select('.' + CLS_CONTENT, this.element);\n this.prevItem = this.tbItem[this.prevIndex];\n if (isNOU(this.selectedItem) || (this.selectedItem < 0) || (this.tbItem.length <= this.selectedItem) || isNaN(this.selectedItem)) {\n this.selectedItem = 0;\n }\n else {\n this.selectedID = this.extIndex(this.tbItem[this.selectedItem].id);\n }\n var trg = this.tbItem[args];\n if (isNOU(trg)) {\n this.selectedID = '0';\n }\n else {\n this.selectingID = this.extIndex(trg.id);\n }\n if (!isNOU(this.prevItem) && !this.prevItem.classList.contains(CLS_DISABLE)) {\n this.prevItem.children.item(0).setAttribute('tabindex', this.prevItem.firstElementChild.getAttribute('tabindex'));\n }\n var eventArg = {\n event: event,\n previousItem: this.prevItem,\n previousIndex: this.prevIndex,\n selectedItem: this.tbItem[this.selectedItem],\n selectedIndex: this.selectedItem,\n selectedContent: !isNOU(this.content) ?\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectedID, this.content) : null,\n selectingItem: trg,\n selectingIndex: args,\n selectingContent: !isNOU(this.content) ?\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content) : null,\n isSwiped: this.isSwipeed,\n isInteracted: this.isInteracted,\n cancel: false\n };\n if (!this.initRender) {\n this.trigger('selecting', eventArg, function (selectArgs) {\n if (!selectArgs.cancel) {\n _this.selectingContent(args, _this.isInteracted);\n }\n });\n }\n else {\n this.selectingContent(args, this.isInteracted);\n }\n this.isInteracted = false;\n };\n Tab.prototype.selectingContent = function (args, isInteracted) {\n if (typeof args === 'number') {\n if (!isNOU(this.tbItem[args]) && (this.tbItem[args].classList.contains(CLS_DISABLE) ||\n this.tbItem[args].classList.contains(CLS_HIDDEN))) {\n for (var i = args + 1; i < this.items.length; i++) {\n if (this.items[i].disabled === false && this.items[i].visible === true) {\n args = i;\n break;\n }\n else {\n args = 0;\n }\n }\n }\n if (this.tbItem.length > args && args >= 0 && !isNaN(args)) {\n this.prevIndex = this.selectedItem;\n this.prevItem = this.tbItem[this.prevIndex];\n if (this.tbItem[args].classList.contains(CLS_TB_POPUP) && this.reorderActiveTab) {\n this.setActive(this.popupHandler(this.tbItem[args]), null, isInteracted);\n if ((!isNOU(this.items) && this.items.length > 0) && this.allowDragAndDrop) {\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\n var item = this.items[args];\n this.items.splice(args, 1);\n this.items.splice(this.tbItem.length - 1, 0, item);\n var itemId = this.itemIndexArray[args];\n this.itemIndexArray.splice(args, 1);\n this.itemIndexArray.splice(this.tbItem.length - 1, 0, itemId);\n }\n }\n else {\n this.setActive(args, null, isInteracted);\n }\n }\n else {\n this.setActive(0, null, isInteracted);\n }\n }\n else if (args instanceof (HTMLElement)) {\n this.setActive(this.getEleIndex(args), null, isInteracted);\n }\n };\n /**\n * Gets the item index from the Tab.\n *\n * @param {string} tabItemId - Item ID is used for getting index from the Tab.\n * @returns {number} - It returns item index.\n */\n Tab.prototype.getItemIndex = function (tabItemId) {\n var tabIndex;\n for (var i = 0; i < this.tbItem.length; i++) {\n var value = this.tbItem[i].getAttribute('data-id');\n if (tabItemId === value) {\n tabIndex = i;\n break;\n }\n }\n return tabIndex;\n };\n /**\n * Specifies the value to disable/enable the Tab component.\n * When set to `true`, the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, Tab will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n Tab.prototype.disable = function (value) {\n this.setCssClass(this.element, CLS_DISABLE, value);\n this.element.setAttribute('aria-disabled', '' + value);\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - It returns the persisted state.\n */\n Tab.prototype.getPersistData = function () {\n return this.addOnPersist(['selectedItem', 'actEleId']);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Tab.prototype.getModuleName = function () {\n return 'tab';\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {TabModel} newProp - It contains the new value of data.\n * @param {TabModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Tab.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyle(this.element, { width: formatUnit(newProp.width) });\n break;\n case 'height':\n setStyle(this.element, { height: formatUnit(newProp.height) });\n this.setContentHeight(false);\n break;\n case 'cssClass':\n var headerEle = this.element.querySelector('.' + CLS_HEADER);\n if (oldProp.cssClass !== '' && !isNullOrUndefined(oldProp.cssClass)) {\n this.setCssClass(this.element, oldProp.cssClass, false);\n this.setCssClass(this.element, newProp.cssClass, true);\n if (!isNullOrUndefined(headerEle)) {\n this.setCssClass(headerEle, oldProp.cssClass, false);\n this.setCssClass(headerEle, newProp.cssClass, true);\n }\n }\n else {\n this.setCssClass(this.element, newProp.cssClass, true);\n if (!isNullOrUndefined(headerEle)) {\n this.setCssClass(headerEle, newProp.cssClass, true);\n }\n }\n break;\n case 'items':\n this.evalOnPropertyChangeItems(newProp, oldProp);\n break;\n case 'showCloseButton':\n this.setCloseButton(newProp.showCloseButton);\n break;\n case 'reorderActiveTab':\n this.refreshActiveTabBorder();\n break;\n case 'selectedItem':\n this.selectedItem = oldProp.selectedItem;\n this.select(newProp.selectedItem);\n break;\n case 'headerPlacement':\n this.changeOrientation(newProp.headerPlacement);\n break;\n case 'enableRtl':\n this.setRTL(newProp.enableRtl);\n break;\n case 'overflowMode':\n this.tbObj.overflowMode = newProp.overflowMode;\n this.tbObj.dataBind();\n this.refreshActiveTabBorder();\n break;\n case 'heightAdjustMode':\n this.setContentHeight(false);\n this.select(this.selectedItem);\n break;\n case 'scrollStep':\n if (this.tbObj) {\n this.tbObj.scrollStep = this.scrollStep;\n }\n break;\n case 'allowDragAndDrop':\n this.bindDraggable();\n break;\n case 'dragArea':\n if (this.allowDragAndDrop) {\n this.draggableItems.forEach(function (item) {\n item.dragArea = _this.dragArea;\n });\n this.refresh();\n }\n break;\n }\n }\n };\n /**\n * To refresh the active tab contents.\n *\n * @returns {void}\n */\n Tab.prototype.refreshActiveTab = function () {\n if (this.isReact && this.isTemplate) {\n this.clearTemplate();\n }\n if (!this.isTemplate) {\n if (this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE)) {\n detach(this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).children[0]);\n detach(this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0]);\n var item = this.items[this.selectedItem];\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\n var text = item.headerTemplate || item.header.text;\n var txtWrap = this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\n if (!isNOU(text.tagName)) {\n txtWrap.appendChild(text);\n }\n else {\n this.headerTextCompile(txtWrap, text, this.selectedItem);\n }\n var tEle = void 0;\n var icon = this.createElement('span', {\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\n });\n var tConts = this.createElement('div', { className: CLS_TEXT_WRAP });\n tConts.appendChild(txtWrap);\n if ((text !== '' && text !== undefined) && css !== '') {\n if ((pos === 'left' || pos === 'top')) {\n tConts.insertBefore(icon, tConts.firstElementChild);\n }\n else {\n tConts.appendChild(icon);\n }\n tEle = txtWrap;\n this.isIconAlone = false;\n }\n else {\n tEle = ((css === '') ? txtWrap : icon);\n if (tEle === icon) {\n detach(txtWrap);\n tConts.appendChild(icon);\n this.isIconAlone = true;\n }\n }\n var tabIndex = isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString();\n var wrapAtt = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'true' };\n tConts.appendChild(this.btnCls.cloneNode(true));\n var wraper = this.createElement('div', { className: CLS_WRAP, attrs: wrapAtt });\n wraper.appendChild(tConts);\n if (pos === 'top' || pos === 'bottom') {\n this.element.classList.add('e-vertical-icon');\n }\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wraper);\n var crElem = this.createElement('div');\n var cnt = item.content;\n var eleStr = void 0;\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\n cnt = SanitizeHtmlHelper.sanitize(cnt);\n }\n if (cnt[0] === '.' || cnt[0] === '#') {\n if (document.querySelectorAll(cnt).length) {\n var eleVal = document.querySelector(cnt);\n eleStr = eleVal.outerHTML.trim();\n crElem.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\n }\n }\n else {\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\n }\n }\n else {\n crElem.appendChild(cnt);\n }\n if (!isNOU(eleStr)) {\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\n this.templateEle.push(cnt.toString());\n }\n }\n this.element.querySelector('.' + CLS_ITEM + '.' + CLS_ACTIVE).appendChild(crElem);\n }\n }\n else {\n var tabItems = this.element.querySelector('.' + CLS_TB_ITEMS);\n var element = this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE);\n var index = this.getIndexFromEle(element.id);\n var header = element.innerText;\n var detachContent = this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0];\n var mainContents = detachContent.innerHTML;\n detach(element);\n detach(detachContent);\n var attr = {\n className: CLS_TB_ITEM + ' ' + CLS_TEMPLATE + ' ' + CLS_ACTIVE, id: CLS_ITEM + this.tabId + '_' + index\n };\n var txtString = this.createElement('span', {\n className: CLS_TEXT, innerHTML: header, attrs: { 'role': 'presentation' }\n }).outerHTML;\n var conte = this.createElement('div', {\n className: CLS_TEXT_WRAP, innerHTML: txtString + this.btnCls.outerHTML\n }).outerHTML;\n var tabIndex = element.firstElementChild.getAttribute('data-tabindex');\n var wrap = this.createElement('div', {\n className: CLS_WRAP, innerHTML: conte,\n attrs: { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-controls': CLS_CONTENT + this.tabId + '_' + index, 'aria-selected': 'true' }\n });\n tabItems.insertBefore(this.createElement('div', attr), tabItems.children[index + 1]);\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wrap);\n var crElem = this.createElement('div', { innerHTML: mainContents });\n this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).appendChild(crElem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * To refresh the active tab indicator.\n *\n * @returns {void}\n */\n Tab.prototype.refreshActiveTabBorder = function () {\n var activeEle = select('.' + CLS_TB_ITEM + '.' + CLS_TB_POPUP + '.' + CLS_ACTIVE, this.element);\n if (!isNOU(activeEle) && this.reorderActiveTab) {\n this.select(this.getEleIndex(activeEle));\n }\n this.refreshActiveBorder();\n };\n __decorate([\n Collection([], TabItem)\n ], Tab.prototype, \"items\", void 0);\n __decorate([\n Property('100%')\n ], Tab.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tab.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Tab.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], Tab.prototype, \"selectedItem\", void 0);\n __decorate([\n Property('Top')\n ], Tab.prototype, \"headerPlacement\", void 0);\n __decorate([\n Property('Content')\n ], Tab.prototype, \"heightAdjustMode\", void 0);\n __decorate([\n Property('Scrollable')\n ], Tab.prototype, \"overflowMode\", void 0);\n __decorate([\n Property('Dynamic')\n ], Tab.prototype, \"loadOn\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"showCloseButton\", void 0);\n __decorate([\n Property(true)\n ], Tab.prototype, \"reorderActiveTab\", void 0);\n __decorate([\n Property()\n ], Tab.prototype, \"scrollStep\", void 0);\n __decorate([\n Property()\n ], Tab.prototype, \"dragArea\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"allowDragAndDrop\", void 0);\n __decorate([\n Complex({}, TabAnimationSettings)\n ], Tab.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"adding\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"added\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"selecting\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"selected\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"removing\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"removed\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"onDragStart\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"dragging\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"dragged\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"destroyed\", void 0);\n Tab = __decorate([\n NotifyPropertyChanges\n ], Tab);\n return Tab;\n}(Component));\nexport { Tab };\n","import { createElement, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { splitArrayCollection, processPathData, getPathString } from '@syncfusion/ej2-drawings';\nimport { TextBox } from '@syncfusion/ej2-inputs';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { CheckBox } from '@syncfusion/ej2-buttons';\nimport { Tab } from '@syncfusion/ej2-navigations';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { DisplayMode } from './types';\n/**\n * @hidden\n */\nvar Signature = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorUIadapater.\n * @private\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function Signature(pdfViewer, pdfViewerBase) {\n var _this = this;\n this.mouseMoving = true;\n this.canvasTouched = false;\n this.imageSignatureDataUrl = '';\n this.drawSignatureDataUrl = '';\n // eslint-disable-next-line\n this.newObject = [];\n /**\n * @private\n */\n this.outputString = '';\n /**\n * @private\n */\n this.drawOutputString = '';\n /**\n * @private\n */\n this.imageOutputString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signaturecollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.outputcollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signAnnotationIndex = [];\n // eslint-disable-next-line\n this.fontsign = [];\n // eslint-disable-next-line\n this.signfontStyle = [];\n this.isSaveSignature = false;\n this.isSaveInitial = false;\n this.isInitialFiledSaveSignature = false;\n this.isSignatureFieldsSaveSignature = false;\n // eslint-disable-next-line\n this.saveSignatureString = '';\n // eslint-disable-next-line\n this.saveInitialString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.saveImageString = '';\n this.signatureImageString = '';\n this.initialImageString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.maxSaveLimit = 5;\n this.select = function (e) {\n if (this.canvasTouched) {\n this.mouseMoving = true;\n this.canvasTouched = false;\n }\n if (e.isSwiped && this.signaturetype == 'Draw' && this.mouseMoving) {\n e.cancel = true;\n this.mouseMoving = false;\n }\n };\n // eslint-disable-next-line\n this.addStampImage = function (args) {\n // eslint-disable-next-line\n var proxy = _this;\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile.type.split('/')[0] === 'image') {\n var reader = new FileReader();\n // eslint-disable-next-line\n reader.onload = function (e) {\n // eslint-disable-next-line\n var canvas = document.getElementById(_this.pdfViewer.element.id + '_signatureuploadCanvas_');\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n // eslint-disable-next-line\n var image = new Image();\n // eslint-disable-next-line\n var proxy = _this;\n image.onload = function () {\n // eslint-disable-next-line\n var signbutton = document.getElementById(_this.pdfViewer.element.id + '_e-pv-upload-button');\n signbutton.style.visibility = 'hidden';\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n proxy.enableCreateButton(false);\n proxy.outputString = image.src;\n proxy.signatureImageHeight = image.naturalHeight;\n proxy.signatureImageWidth = image.naturalWidth;\n };\n image.src = e.currentTarget.result;\n proxy.outputString = e.currentTarget.result;\n proxy.switchTabImageSignature = e.currentTarget.result;\n };\n reader.readAsDataURL(uploadedFile);\n }\n }\n args.target.value = '';\n args.currentTarget.value = '';\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.createSignaturePanel = function () {\n var _this = this;\n var maximumWidth = 750;\n this.imageSignatureDataUrl = \"\";\n this.drawSignatureDataUrl = \"\";\n if (!isBlazor()) {\n var elementID = this.pdfViewer.element.id;\n var dialogDiv = createElement('div', { id: elementID + '_signature_window', className: 'e-pv-signature-window' });\n dialogDiv.style.display = 'block';\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n var appearanceTab = this.createSignatureCanvas();\n var signaturePanelHeader = void 0;\n if (!this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('HandwrittenInitialDialogHeaderText');\n }\n else {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText');\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('InitialFieldDialogHeaderText');\n }\n else {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText');\n }\n }\n if (this.signatureDialog) {\n this.signatureDialog.content = appearanceTab;\n }\n else {\n this.signatureDialog = new Dialog({\n // eslint-disable-next-line max-len\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: signaturePanelHeader, cssClass: 'e-pv-signature-dialog-height',\n target: this.pdfViewer.element, content: appearanceTab, width: '750px', visible: true, allowDragging: true,\n beforeClose: function () {\n _this.clearSignatureCanvas();\n _this.signatureDialog.destroy();\n _this.signatureDialog = null;\n if (_this.tabObj) {\n _this.tabObj.destroy();\n }\n // eslint-disable-next-line\n var signatureWindow = document.getElementById(_this.pdfViewer.element.id + '_signature_window');\n if (signatureWindow) {\n // eslint-disable-next-line\n signatureWindow.parentNode ? signatureWindow.parentNode.removeChild(signatureWindow) : signatureWindow.parentElement.removeChild(signatureWindow);\n }\n // eslint-disable-next-line max-len\n if (!_this.pdfViewerBase.isToolbarSignClicked && !_this.pdfViewerBase.drawSignatureWithTool && !isNullOrUndefined(_this.pdfViewer.formFieldsModule.currentTarget)) {\n _this.pdfViewer.fireFocusOutFormField(_this.pdfViewer.formFieldsModule.currentTarget.name, '');\n }\n _this.pdfViewerBase.isToolbarSignClicked = false;\n _this.pdfViewer.formFieldsModule.setFocus();\n }\n });\n this.signatureDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Clear'), disabled: true, cssClass: 'e-pv-clearbtn' }, click: this.clearSignatureCanvas.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel'), cssClass: 'e-pv-cancelbtn' }, click: this.closeSignaturePanel.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Create'), isPrimary: true, disabled: true, cssClass: 'e-pv-createbtn' }, click: this.addSignatureInPage.bind(this) }\n ];\n this.signatureDialog.appendTo(dialogDiv);\n }\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n if (this.pdfViewer.enableRtl) {\n this.signatureDialog.enableRtl = this.pdfViewer.enableRtl;\n }\n var checkboxItem = this.signatureDialog.content.ej2_instances[0].items[0];\n if (checkboxItem.header.label === 'DRAW') {\n var drawCheckbox = document.getElementById(\"checkbox\");\n this.hideSignatureCheckbox(drawCheckbox);\n }\n else if (checkboxItem.header.label === 'TYPE') {\n var typeCheckbox = document.getElementById(\"checkbox1\");\n this.hideSignatureCheckbox(typeCheckbox);\n }\n else {\n var imageCheckbox = document.getElementById(\"checkbox2\");\n this.hideSignatureCheckbox(imageCheckbox);\n }\n }\n else {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n if (!this.pdfViewerBase.pageContainer.querySelector('.e-pv-signature-window')) {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_signature_window', className: 'e-pv-signature-window' });\n dialogDiv.style.display = 'block';\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n }\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n this.clearSignatureCanvas();\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenSignaturePanel', this.pdfViewerBase.isToolbarSignClicked);\n }\n this.drawSavedSignature();\n };\n Signature.prototype.drawSavedSignature = function () {\n if (!this.pdfViewerBase.isToolbarSignClicked && (this.isSaveSignature || this.isSaveInitial)) {\n if (!this.pdfViewerBase.isInitialField && this.isSaveSignature) {\n this.outputString = this.saveSignatureString;\n }\n else if (this.pdfViewerBase.isInitialField && this.isSaveInitial) {\n this.outputString = this.saveInitialString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var context_1 = canvas.getContext('2d');\n // eslint-disable-next-line\n var image_1 = new Image();\n image_1.onload = function () {\n context_1.drawImage(image_1, 0, 0);\n };\n if (!this.pdfViewerBase.isInitialField && this.isSaveSignature) {\n image_1.src = this.signatureImageString;\n }\n else if (this.pdfViewerBase.isInitialField && this.isSaveInitial) {\n image_1.src = this.initialImageString;\n }\n // eslint-disable-next-line\n var checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n if (checkbox) {\n checkbox.checked = true;\n }\n this.enableCreateButton(false);\n this.enableClearbutton(false);\n }\n };\n Signature.prototype.hideSignatureCheckbox = function (checkbox) {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings && this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else if (this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings && this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.initialFieldSettings.initialDialogSettings && this.pdfViewer.initialFieldSettings.initialDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else {\n if (this.pdfViewer.signatureFieldSettings.signatureDialogSettings && this.pdfViewer.signatureFieldSettings.signatureDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n }\n };\n Signature.prototype.saveSignatureCheckbox = function () {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n return false;\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.initialFieldSettings.initialDialogSettings && this.pdfViewer.initialFieldSettings.initialDialogSettings.hideSaveSignature) {\n return false;\n }\n else {\n return this.isInitialFiledSaveSignature;\n }\n }\n else {\n if (this.pdfViewer.signatureFieldSettings.signatureDialogSettings && this.pdfViewer.signatureFieldSettings.signatureDialogSettings.hideSaveSignature) {\n return false;\n }\n else {\n return this.isSignatureFieldsSaveSignature;\n }\n }\n }\n };\n Signature.prototype.hideCheckboxParent = function (checkbox) {\n if (checkbox) {\n checkbox.parentElement.style.display = 'none';\n }\n };\n Signature.prototype.saveSignatureImage = function () {\n // eslint-disable-next-line\n var checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n if (checkbox && checkbox.checked) {\n if (this.outputString !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.saveInitialString = this.outputString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n }\n }\n else {\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n this.saveImageString = '';\n this.signatureImageString = '';\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n this.saveImageString = '';\n this.initialImageString = '';\n }\n this.clearSignatureCanvas();\n }\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addSignature = function (type) {\n var annot;\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n // eslint-disable-next-line max-len\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var fontFamily = 'Helvetica';\n var signatureBounds = this.pdfViewer.formFieldsModule.updateSignatureAspectRatio(this.outputString, true);\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: signatureBounds, pageIndex: pageIndex, data: this.outputString, fontFamily: fontFamily, fontSize: fontSize,\n shapeAnnotationType: 'HandWrittenSignature', opacity: opacity, strokeColor: strokeColor, thickness: thickness, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox');\n }\n var isSignatureAdded = false;\n if (isBlazor() && type) {\n if (type[0] === 'Image') {\n this.imageAddSignature();\n isSignatureAdded = true;\n this.outputString = '';\n }\n else if (type[0] === 'Type') {\n this.typeAddSignature();\n isSignatureAdded = true;\n this.outputString = '';\n }\n }\n if (!isSignatureAdded) {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (checkbox && checkbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureImageString = this.saveImageString;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.initialImageString = this.saveImageString;\n this.saveInitialString = this.outputString;\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, true);\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n }\n else {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, false);\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n this.pdfViewer.formFieldsModule.drawSignature(null, null, this.pdfViewerBase.currentTarget, null);\n isSignatureAdded = true;\n }\n }\n };\n Signature.prototype.checkSaveFiledSign = function (initialField, saveSign) {\n if (initialField) {\n this.isInitialFiledSaveSignature = saveSign;\n }\n else {\n this.isSignatureFieldsSaveSignature = saveSign;\n }\n };\n Signature.prototype.addSignatureInPage = function () {\n if (this.signaturetype === 'Draw') {\n this.addSignature();\n }\n else if (this.signaturetype === 'Type') {\n this.typeAddSignature();\n }\n else {\n this.imageAddSignature();\n }\n this.drawOutputString = '';\n this.imageOutputString = '';\n };\n Signature.prototype.typeAddSignature = function () {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot = null;\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var currentLeft = 0;\n var currentTop = 0;\n var currentHeight = 65;\n var currentWidth = 200;\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n if (!this.signtypevalue) {\n this.updateSignatureTypeValue(true);\n }\n var inputValue = this.signtypevalue;\n annot = {\n // eslint-disable-next-line max-len\n id: 'Typesign' + this.pdfViewerBase.signatureCount, bounds: {\n left: currentLeft / zoomFactor, top: currentTop / zoomFactor, x: currentLeft / zoomFactor,\n // eslint-disable-next-line max-len\n y: currentTop / zoomFactor, width: currentWidth, height: currentHeight\n }, pageIndex: pageIndex, dynamicText: inputValue, data: this.pdfViewerBase.signatureModule.outputString, shapeAnnotationType: 'SignatureText',\n opacity: opacity, strokeColor: strokeColor, thickness: thickness, fontSize: fontSize, fontFamily: this.fontName, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox1');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.signtypevalue = '';\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n if (this.outputString === '') {\n this.updateSignatureTypeValue();\n }\n this.pdfViewer.formFieldsModule.drawSignature('Type', '', this.pdfViewerBase.currentTarget);\n this.hideSignaturePanel();\n }\n };\n Signature.prototype.imageAddSignature = function () {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot = null;\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var currentLeft = 0;\n var currentTop = 0;\n var standardImageRatio = 100;\n var currentHeight = 0;\n var currentWidth = 0;\n // eslint-disable-next-line max-len\n if (this.signatureImageHeight >= this.signatureImageWidth) {\n currentHeight = ((this.signatureImageHeight / this.signatureImageHeight) * standardImageRatio);\n currentWidth = ((this.signatureImageWidth / this.signatureImageHeight) * standardImageRatio);\n }\n else {\n currentHeight = ((this.signatureImageHeight / this.signatureImageWidth) * standardImageRatio);\n currentWidth = ((this.signatureImageWidth / this.signatureImageWidth) * standardImageRatio);\n }\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n var inputValue = this.signtypevalue;\n annot = {\n // eslint-disable-next-line max-len\n id: 'Typesign' + this.pdfViewerBase.signatureCount, bounds: {\n left: currentLeft / zoomFactor, top: currentTop / zoomFactor, x: currentLeft / zoomFactor,\n // eslint-disable-next-line max-len\n y: currentTop / zoomFactor, width: currentWidth, height: currentHeight\n }, pageIndex: pageIndex, dynamicText: inputValue, data: this.pdfViewerBase.signatureModule.outputString, shapeAnnotationType: 'SignatureImage',\n opacity: opacity, strokeColor: strokeColor, thickness: thickness, fontSize: fontSize, fontFamily: this.fontName, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox2');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n this.pdfViewer.formFieldsModule.drawSignature('Image', '', this.pdfViewerBase.currentTarget);\n this.hideSignaturePanel();\n }\n };\n Signature.prototype.updateSignatureTypeValue = function (isType) {\n // eslint-disable-next-line\n var fontElements = document.querySelectorAll('.e-pv-font-sign');\n if (fontElements) {\n for (var j = 0; j < fontElements.length; j++) {\n if (fontElements[parseInt(j.toString(), 10)] && fontElements[parseInt(j.toString(), 10)].style.borderColor === 'red') {\n if (isType) {\n this.signtypevalue = fontElements[parseInt(j.toString(), 10)].textContent;\n this.outputString = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n else {\n this.outputString = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n try {\n this.fontName = JSON.parse(fontElements[parseInt(j.toString(), 10)].style.fontFamily);\n }\n catch (e) {\n this.fontName = fontElements[parseInt(j.toString(), 10)].style.fontFamily;\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.hideSignaturePanel = function () {\n if (this.signatureDialog) {\n this.signatureDialog.hide();\n }\n };\n Signature.prototype.bindTypeSignatureClickEvent = function () {\n if (isBlazor()) {\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.querySelector('#' + this.pdfViewer.element.id + '_font_signature' + i);\n if (fontElement) {\n fontElement.addEventListener('click', this.typeSignatureclicked.bind(this));\n }\n }\n }\n };\n Signature.prototype.bindDrawSignatureClickEvent = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n }\n };\n // eslint-disable-next-line\n Signature.prototype.typeSignatureclicked = function (event) {\n var eventTarget = event.target;\n if (eventTarget) {\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.querySelector('#' + this.pdfViewer.element.id + '_font_signature' + i);\n if (fontElement) {\n fontElement.style.borderColor = '';\n }\n }\n eventTarget.style.borderColor = 'red';\n this.outputString = eventTarget.textContent;\n try {\n this.fontName = JSON.parse(eventTarget.style.fontFamily);\n }\n catch (e) {\n this.fontName = eventTarget.style.fontFamily;\n }\n this.enableCreateButton(false);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.createSignatureCanvas = function () {\n // eslint-disable-next-line\n var previousField = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var field = document.getElementById(this.pdfViewer.element.id + 'Signature_appearance');\n if (previousField) {\n previousField.remove();\n }\n if (field) {\n field.remove();\n }\n // eslint-disable-next-line max-len\n var appearanceDiv = createElement('div', { id: this.pdfViewer.element.id + 'Signature_appearance', className: 'e-pv-signature-apperance', styles: 'margin-top:30px' });\n // eslint-disable-next-line max-len\n var canvas = createElement('canvas', { id: this.pdfViewer.element.id + '_signatureCanvas_', className: 'e-pv-signature-canvas' });\n if (this.pdfViewer.element.offsetWidth > 750) {\n canvas.width = 714;\n }\n else {\n canvas.width = this.pdfViewer.element.offsetWidth - 35;\n }\n canvas.classList.add('e-pv-canvas-signature');\n canvas.height = 305;\n canvas.style.height = '305px';\n canvas.style.border = '1px dotted #bdbdbd';\n canvas.style.backgroundColor = 'white';\n canvas.style.boxSizing = 'border-box';\n canvas.style.borderRadius = '2px';\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseLeave.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n appearanceDiv.appendChild(canvas);\n // eslint-disable-next-line\n var checkBoxObj;\n // eslint-disable-next-line\n var input;\n var saveCheckBoxContent;\n if (this.pdfViewerBase.isToolbarSignClicked && !this.pdfViewerBase.isInitialField) {\n saveCheckBoxContent = this.pdfViewer.localeObj.getConstant('Save Signature');\n }\n else {\n saveCheckBoxContent = this.pdfViewerBase.isInitialField ? this.pdfViewer.localeObj.getConstant('Save Initial') : this.pdfViewer.localeObj.getConstant('Save Signature');\n }\n if (!this.pdfViewer.hideSaveSignature) {\n // eslint-disable-next-line\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox';\n appearanceDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = this.saveSignatureCheckbox();\n }\n else {\n this.isSaveInitial = this.saveSignatureCheckbox();\n }\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n checkBoxObj.checked = true;\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n checkBoxObj.checked = true;\n }\n //if (!this.pdfViewerBase.isToolbarSignClicked) {\n // eslint-disable-next-line\n var typeDiv = createElement('div', { id: this.pdfViewer.element.id + 'type_appearance', className: 'e-pv-signature-apperance', styles: 'margin-top:6px' });\n // eslint-disable-next-line\n var inputText = document.createElement('input');\n inputText.type = 'text';\n inputText.id = this.pdfViewer.element.id + '_e-pv-Signtext-box';\n typeDiv.appendChild(inputText);\n // eslint-disable-next-line\n var inputobj = new TextBox({\n placeholder: this.pdfViewer.localeObj.getConstant('Enter Signature as Name'),\n floatLabelType: 'Auto'\n });\n inputobj.appendTo(inputText);\n // eslint-disable-next-line\n var fontDiv = createElement('div', { id: this.pdfViewer.element.id + '_font_appearance', className: 'e-pv-font-appearance-style' });\n fontDiv.classList.add('e-pv-canvas-signature');\n fontDiv.style.height = '270px';\n fontDiv.style.border = '1px dotted #bdbdbd';\n fontDiv.style.boxSizing = 'border-box';\n fontDiv.style.borderRadius = '2px';\n fontDiv.style.backgroundColor = 'white';\n fontDiv.style.color = 'black';\n fontDiv.style.marginTop = '8px';\n typeDiv.appendChild(fontDiv);\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox1';\n typeDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n inputobj.addEventListener('input', this.renderSignatureText.bind(this));\n this.enableCreateButton(true);\n // eslint-disable-next-line\n var tab = createElement('div', { id: this.pdfViewer.element.id + 'Signature_tab' });\n var uploadDiv = createElement('div', { id: this.pdfViewer.element.id + 'upload_appearance', className: 'e-pv-signature-apperance', styles: 'padding-top:30px' });\n // eslint-disable-next-line\n var button = document.createElement('div');\n button.id = this.pdfViewer.element.id + '_e-pv-upload-button';\n uploadDiv.appendChild(button);\n // eslint-disable-next-line\n var uploadButton = new Button({ cssClass: 'e-pv-sign-upload', content: this.pdfViewer.localeObj.getConstant('Browse Signature Image') });\n uploadButton.appendTo(button);\n uploadButton.element.style.position = 'absolute';\n // eslint-disable-next-line max-len\n var uploadCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_signatureuploadCanvas_', className: 'e-pv-signature-uploadcanvas' });\n if (this.pdfViewer.element.offsetWidth > 750) {\n uploadCanvas.width = 714;\n }\n else {\n uploadCanvas.width = this.pdfViewer.element.offsetWidth - 35;\n }\n uploadCanvas.classList.add('e-pv-canvas-signature');\n uploadCanvas.height = 305;\n uploadCanvas.style.height = '305px';\n uploadButton.element.style.left = ((uploadCanvas.width / 2) - 50) + 'px';\n uploadButton.element.style.top = ((parseFloat(uploadCanvas.style.height) / 2) + 20) + 'px';\n uploadCanvas.style.border = '1px dotted #bdbdbd';\n uploadCanvas.style.backgroundColor = 'white';\n uploadCanvas.style.boxSizing = 'border-box';\n uploadCanvas.style.borderRadius = '2px';\n uploadCanvas.style.zIndex = '0';\n uploadDiv.appendChild(uploadCanvas);\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox2';\n uploadDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n button.addEventListener('click', this.uploadSignatureImage.bind(this));\n // eslint-disable-next-line max-len\n this.signfontStyle = [{ FontName: 'Helvetica' }, { FontName: 'Times New Roman' }, { FontName: 'Courier' }, { FontName: 'Symbol' }];\n // eslint-disable-next-line\n var fontSignature = [];\n if (this.pdfViewerBase.isToolbarSignClicked && !isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts)) {\n for (var j = 0; j < 4; j++) {\n if (!isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts[parseInt(j.toString(), 10)])) {\n this.signfontStyle[parseInt(j.toString(), 10)].FontName = this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts[parseInt(j.toString(), 10)];\n }\n }\n }\n for (var i = 0; i < this.signfontStyle.length; i++) {\n fontSignature[parseInt(i.toString(), 10)] = document.createElement('div');\n fontSignature[parseInt(i.toString(), 10)].id = '_font_signature' + i + '';\n fontSignature[parseInt(i.toString(), 10)].classList.add('e-pv-font-sign');\n }\n this.fontsign = fontSignature;\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n if (this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n items = this.showHideSignatureTab(this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings && this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings.displayMode, appearanceDiv, typeDiv, uploadDiv);\n }\n else {\n items = this.showHideSignatureTab(this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings && this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings.displayMode, appearanceDiv, typeDiv, uploadDiv);\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n items = this.showHideSignatureTab((this.pdfViewer.initialFieldSettings.initialDialogSettings ? this.pdfViewer.initialFieldSettings.initialDialogSettings.displayMode : 7), appearanceDiv, typeDiv, uploadDiv);\n }\n else {\n items = this.showHideSignatureTab((this.pdfViewer.signatureFieldSettings.signatureDialogSettings ? this.pdfViewer.signatureFieldSettings.signatureDialogSettings.displayMode : 7), appearanceDiv, typeDiv, uploadDiv);\n }\n }\n // eslint-disable-next-line\n this.tabObj = new Tab({\n selected: function (args) {\n proxy.handleSelectEvent(args);\n },\n selecting: function (args) {\n proxy.select(args);\n },\n items: items\n });\n this.tabObj.appendTo(tab);\n if (tab && tab.lastElementChild) {\n tab.lastElementChild.style.overflow = 'hidden';\n }\n if (items[0].header.label === 'DRAW') {\n this.signaturetype = 'Draw';\n }\n else if (items[0].header.label === 'TYPE') {\n this.signaturetype = 'Type';\n }\n else {\n this.signaturetype = 'Image';\n }\n return tab;\n // } else {\n // return appearanceDiv;\n // }\n };\n Signature.prototype.handleSelectEvent = function (e) {\n // eslint-disable-next-line\n var headerText = '';\n var maximumWidth = 750;\n var tabInstance = document.getElementById(this.pdfViewer.element.id + 'Signature_tab').ej2_instances[0];\n if (tabInstance) {\n if (tabInstance.items.length > 0) {\n for (var i = 0; i < tabInstance.items.length; i++) {\n var headerValue = tabInstance.items[parseInt(i.toString(), 10)].header.text;\n if (headerValue === e.selectedItem.textContent) {\n headerText = tabInstance.items[parseInt(i.toString(), 10)].header.label;\n }\n }\n }\n }\n var checkbox = document.getElementById('checkbox');\n if (checkbox && checkbox.checked) {\n if (e.previousIndex === 0 && this.outputString !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.saveInitialString = this.outputString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n }\n }\n else {\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n this.saveImageString = '';\n this.signatureImageString = '';\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n this.saveImageString = '';\n this.initialImageString = '';\n }\n }\n this.clearSignatureCanvas(e);\n // eslint-disable-next-line\n if (headerText.toLocaleLowerCase() === 'draw') {\n this.signaturetype = 'Draw';\n this.enableCreateSignatureButton();\n var drawCheckbox = document.getElementById(\"checkbox\");\n this.hideSignatureCheckbox(drawCheckbox);\n }\n else if (headerText.toLocaleLowerCase() === 'type') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.drawSignatureDataUrl = canvas.toDataURL();\n this.updateSignatureTypeValue();\n this.signaturetype = 'Type';\n this.enableCreateSignatureButton();\n var typeCheckbox = document.getElementById(\"checkbox1\");\n this.hideSignatureCheckbox(typeCheckbox);\n }\n else if (headerText.toLocaleLowerCase() === 'upload') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.drawSignatureDataUrl = canvas.toDataURL();\n this.signaturetype = 'Image';\n this.enableCreateSignatureButton();\n var imageCheckbox = document.getElementById(\"checkbox2\");\n this.hideSignatureCheckbox(imageCheckbox);\n }\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n this.drawSignOnTabSwitch();\n if (headerText.toLocaleLowerCase() === 'upload' && this.imageSignatureDataUrl) {\n this.imageSignOnTabSwitch();\n }\n };\n Signature.prototype.enableCreateSignatureButton = function () {\n if (this.outputString !== \"\") {\n this.enableCreateButton(false);\n }\n else {\n this.enableCreateButton(true);\n }\n };\n Signature.prototype.showHideSignatureTab = function (displayMode, appearanceDiv, typeDiv, uploadDiv) {\n var items = [];\n if (displayMode & DisplayMode.Draw) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Draw-hand Signature'), 'label': 'DRAW' },\n content: appearanceDiv\n });\n }\n if (displayMode & DisplayMode.Text) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Type Signature'), 'label': 'TYPE' },\n content: typeDiv\n });\n }\n if (displayMode & DisplayMode.Upload) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Upload Signature'), 'label': 'UPLOAD' },\n content: uploadDiv\n });\n }\n return items;\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.createSignatureFileElement = function () {\n // eslint-disable-next-line\n var signImage = createElement('input', { id: this.pdfViewer.element.id + '_signElement', attrs: { 'type': 'file' } });\n signImage.setAttribute('accept', '.jpg,.jpeg,.png');\n signImage.style.position = 'absolute';\n signImage.style.left = '0px';\n signImage.style.top = '0px';\n signImage.style.visibility = 'hidden';\n document.body.appendChild(signImage);\n signImage.addEventListener('change', this.addStampImage);\n };\n Signature.prototype.uploadSignatureImage = function () {\n // eslint-disable-next-line\n var signImage = document.getElementById(this.pdfViewer.element.id + '_signElement');\n if (signImage) {\n signImage.click();\n }\n };\n Signature.prototype.renderSignatureText = function () {\n var maximumWidth = 750;\n // eslint-disable-next-line\n var fontDiv = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n // eslint-disable-next-line\n var textBox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n for (var i = 0; i < this.signfontStyle.length; i++) {\n this.fontsign[parseInt(i.toString(), 10)].innerHTML = textBox.value;\n this.fontsign[parseInt(i.toString(), 10)].style.fontFamily = this.signfontStyle[parseInt(i.toString(), 10)].FontName;\n if (this.signfontStyle[parseInt(i.toString(), 10)].FontName === 'Helvetica') {\n this.fontsign[parseInt(i.toString(), 10)].style.borderColor = 'red';\n }\n fontDiv.appendChild(this.fontsign[parseInt(i.toString(), 10)]);\n }\n for (var i = 0; i < this.signfontStyle.length; i++) {\n // eslint-disable-next-line\n var clickSign = document.getElementById('_font_signature' + i + '');\n clickSign.addEventListener('click', this.typeSignatureclick.bind(this));\n }\n this.enableCreateButton(false);\n this.enableClearbutton(false);\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n this.drawSignOnTabSwitch();\n };\n Signature.prototype.typeSignatureclick = function () {\n var eventTarget = event.target;\n // eslint-disable-next-line\n var createButton = document.getElementsByClassName('e-pv-createbtn')[0];\n createButton.disabled = false;\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.getElementById('_font_signature' + i + '');\n if (fontElement) {\n fontElement.style.borderColor = '';\n }\n }\n eventTarget.style.borderColor = 'red';\n this.outputString = eventTarget.textContent;\n try {\n this.fontName = JSON.parse(eventTarget.style.fontFamily);\n }\n catch (e) {\n this.fontName = eventTarget.style.fontFamily;\n }\n };\n /**\n * @param bounds\n * @param position\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addSignatureCollection = function (bounds, position) {\n var minimumX = -1;\n var minimumY = -1;\n var maximumX = -1;\n var maximumY = -1;\n // eslint-disable-next-line\n var collectionData = processPathData(this.outputString);\n // eslint-disable-next-line\n var newCanvas = document.createElement('canvas');\n // eslint-disable-next-line\n var context = newCanvas.getContext('2d');\n // eslint-disable-next-line\n var imageString;\n var signatureType = this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType;\n if (signatureType === 'HandWrittenSignature') {\n if (collectionData.length !== 0) {\n // eslint-disable-next-line\n for (var k = 0; k < collectionData.length; k++) {\n // eslint-disable-next-line\n var val = collectionData[k];\n if (minimumX === -1) {\n // eslint-disable-next-line\n minimumX = (val['x']);\n // eslint-disable-next-line\n maximumX = (val['x']);\n // eslint-disable-next-line\n minimumY = (val['y']);\n // eslint-disable-next-line\n maximumY = (val['y']);\n }\n else {\n // eslint-disable-next-line\n var point1 = (val['x']);\n // eslint-disable-next-line\n var point2 = (val['y']);\n if (minimumX >= point1) {\n minimumX = point1;\n }\n if (minimumY >= point2) {\n minimumY = point2;\n }\n if (maximumX <= point1) {\n maximumX = point1;\n }\n if (maximumY <= point2) {\n maximumY = point2;\n }\n }\n }\n var newdifferenceX = maximumX - minimumX;\n var newdifferenceY = maximumY - minimumY;\n var differenceX = newdifferenceX / 100;\n var differenceY = newdifferenceY / 100;\n var left = 0;\n var top_1 = 0;\n if (bounds) {\n newCanvas.width = position.currentWidth;\n newCanvas.height = position.currentHeight;\n differenceX = newdifferenceX / (bounds.width);\n differenceY = newdifferenceY / (bounds.height);\n left = bounds.x - position.currentLeft;\n top_1 = bounds.y - position.currentTop;\n }\n else {\n newCanvas.width = 100;\n newCanvas.height = 100;\n }\n context.beginPath();\n for (var n = 0; n < collectionData.length; n++) {\n // eslint-disable-next-line\n var val = collectionData[n];\n // eslint-disable-next-line\n var point1 = ((val['x'] - minimumX) / differenceX) + left;\n // eslint-disable-next-line\n var point2 = ((val['y'] - minimumY) / differenceY) + top_1;\n // eslint-disable-next-line\n if (val['command'] === 'M') {\n context.moveTo(point1, point2);\n // eslint-disable-next-line\n }\n else if (val['command'] === 'L') {\n context.lineTo(point1, point2);\n }\n }\n context.stroke();\n context.closePath();\n imageString = newCanvas.toDataURL();\n }\n }\n else if (signatureType === 'SignatureText') {\n imageString = this.outputString;\n }\n else {\n imageString = this.outputString;\n }\n if (bounds) {\n this.saveImageString = imageString;\n }\n else {\n // eslint-disable-next-line\n var signCollection = {};\n signCollection['sign_' + this.pdfViewerBase.imageCount] = this.outputString;\n this.outputcollection.push(signCollection);\n // eslint-disable-next-line\n var signature = [];\n signature.push({ id: 'sign_' + this.pdfViewerBase.imageCount, imageData: imageString, signatureType: signatureType, fontFamily: this.pdfViewerBase.currentSignatureAnnot.fontFamily });\n this.signaturecollection.push({ image: signature, isInitial: this.pdfViewerBase.isInitialField });\n this.pdfViewerBase.imageCount++;\n }\n };\n /**\n * @private]\n * @param {number} limit - The limit.\n * @returns {number} - Returns number.\n */\n Signature.prototype.getSaveLimit = function (limit) {\n if (limit > this.maxSaveLimit) {\n limit = this.maxSaveLimit;\n }\n else if (limit < 1) {\n limit = 1;\n }\n return limit;\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.RenderSavedSignature = function () {\n this.pdfViewerBase.signatureCount++;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var annot;\n if (this.pdfViewerBase.isAddedSignClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var currentLeft = 0;\n var currentTop = 0;\n // eslint-disable-next-line max-len\n var currentWidth = this.pdfViewer.handWrittenSignatureSettings.width ? this.pdfViewer.handWrittenSignatureSettings.width : 100;\n // eslint-disable-next-line max-len\n var currentHeight = this.pdfViewer.handWrittenSignatureSettings.height ? this.pdfViewer.handWrittenSignatureSettings.height : 100;\n // eslint-disable-next-line max-len\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n // eslint-disable-next-line max-len\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var keyString = '';\n var signatureType = void 0;\n var signatureFontFamily = void 0;\n for (var collection = 0; collection < this.outputcollection.length; collection++) {\n // eslint-disable-next-line\n var collectionAddedsign = this.outputcollection[collection];\n // eslint-disable-next-line\n var eventTarget = event.target;\n // eslint-disable-next-line max-len\n if (eventTarget && eventTarget.id === 'sign_' + collection || eventTarget && eventTarget.id === 'sign_border' + collection) {\n keyString = collectionAddedsign['sign_' + collection];\n break;\n }\n }\n for (var signatureIndex = 0; signatureIndex < this.signaturecollection.length; signatureIndex++) {\n var eventTarget = event.target;\n var signatureId = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].id.split('_')[1];\n if (eventTarget && eventTarget.id === 'sign_' + signatureId || eventTarget && eventTarget.id === 'sign_border' + signatureId) {\n signatureType = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].signatureType;\n signatureFontFamily = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].fontFamily;\n break;\n }\n }\n if (signatureType === 'HandWrittenSignature') {\n // eslint-disable-next-line\n var signatureBounds = this.pdfViewer.formFieldsModule.updateSignatureAspectRatio(keyString, true);\n // eslint-disable-next-line max-len\n currentWidth = signatureBounds.width ? signatureBounds.width : currentWidth;\n // eslint-disable-next-line max-len\n currentHeight = signatureBounds.height ? signatureBounds.height : currentHeight;\n }\n else {\n currentWidth = currentWidth === 150 ? 200 : this.pdfViewer.handWrittenSignatureSettings.width;\n // eslint-disable-next-line max-len\n currentHeight = currentHeight === 100 ? 65 : this.pdfViewer.handWrittenSignatureSettings.height;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: keyString,\n // eslint-disable-next-line max-len\n shapeAnnotationType: signatureType, opacity: opacity, fontFamily: signatureFontFamily, strokeColor: strokeColor, thickness: thickness, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n this.pdfViewerBase.isAddedSignClicked = false;\n }\n else {\n this.pdfViewer.formFieldsModule.drawSignature();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.updateCanvasSize = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.setTabItemWidth(canvas);\n var uploadCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n this.setTabItemWidth(uploadCanvas);\n var fontAppearance = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n this.setTabItemWidth(fontAppearance);\n };\n Signature.prototype.setTabItemWidth = function (canvas) {\n var padding = 2;\n var maximumWidth = 750;\n var canvasWidth = 714;\n var margin = 50;\n var elem = document.querySelector('.e-dlg-content');\n if (elem) {\n var style = getComputedStyle(elem);\n padding = padding + parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);\n }\n if (canvas && this.signatureDialog && this.signatureDialog.visible) {\n if (this.pdfViewer.element.offsetWidth > maximumWidth) {\n canvas.width = canvasWidth;\n canvas.style.width = canvasWidth + 'px';\n }\n else {\n canvas.width = this.pdfViewer.element.offsetWidth - padding;\n canvas.style.width = canvas.width + 'px';\n }\n }\n var fontInnerDiv = document.getElementsByClassName('e-pv-font-sign');\n if (canvas && fontInnerDiv && fontInnerDiv.length > 0) {\n for (var i = 0; i < fontInnerDiv.length; i++) {\n var fontDiv = fontInnerDiv[parseInt(i.toString(), 10)];\n fontDiv.style.width = ((canvas.width / 2) - margin) + 'px';\n }\n }\n };\n Signature.prototype.drawSignOnTabSwitch = function () {\n var proxy = this;\n var image = new Image();\n image.onload = function () {\n var canvas = document.getElementById(proxy.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0);\n }\n };\n image.src = this.drawSignatureDataUrl;\n };\n Signature.prototype.imageSignOnTabSwitch = function () {\n var proxy = this;\n var image = new Image();\n image.onload = function () {\n var canvas = document.getElementById(proxy.pdfViewer.element.id + '_signatureuploadCanvas_');\n if (canvas) {\n var context = canvas.getContext('2d');\n var signbutton = document.getElementById(proxy.pdfViewer.element.id + '_e-pv-upload-button');\n signbutton.style.visibility = 'hidden';\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n proxy.enableCreateButton(false);\n proxy.signatureImageHeight = image.naturalHeight;\n proxy.signatureImageWidth = image.naturalWidth;\n }\n };\n image.src = this.imageSignatureDataUrl;\n };\n Signature.prototype.signaturePanelMouseDown = function (e) {\n if (e.type !== 'contextmenu') {\n e.preventDefault();\n this.findMousePosition(e);\n this.mouseDetection = true;\n this.oldX = this.mouseX;\n this.oldY = this.mouseY;\n this.newObject = [];\n this.drawMousePosition(e);\n this.mouseMoving = true;\n }\n };\n Signature.prototype.enableCreateButton = function (isEnable) {\n // eslint-disable-next-line\n var createbtn = document.getElementsByClassName('e-pv-createbtn')[0];\n if (createbtn) {\n createbtn.disabled = isEnable;\n }\n this.enableClearbutton(isEnable);\n };\n Signature.prototype.enableClearbutton = function (isEnable) {\n // eslint-disable-next-line\n var clearbtn = document.getElementsByClassName('e-pv-clearbtn')[0];\n if (clearbtn) {\n clearbtn.disabled = isEnable;\n }\n };\n Signature.prototype.signaturePanelMouseMove = function (e) {\n if (this.mouseDetection && this.signaturetype === 'Draw') {\n this.findMousePosition(e);\n this.enableCreateButton(false);\n this.drawMousePosition(e);\n }\n };\n Signature.prototype.findMousePosition = function (event) {\n var offsetX;\n var offsetY;\n if (event.type.indexOf('touch') !== -1) {\n event = event;\n var element = event.target;\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n this.mouseX = event.changedTouches[0].clientX - currentRect.left;\n this.mouseY = event.changedTouches[0].clientY - currentRect.top;\n }\n else {\n event = event;\n this.mouseX = event.offsetX;\n this.mouseY = event.offsetY;\n }\n };\n Signature.prototype.drawMousePosition = function (event) {\n if (this.mouseDetection) {\n this.drawSignatureInCanvas();\n this.oldX = this.mouseX;\n this.oldY = this.mouseY;\n }\n };\n Signature.prototype.drawSignatureInCanvas = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n context.beginPath();\n context.moveTo(this.oldX, this.oldY);\n context.lineTo(this.mouseX, this.mouseY);\n context.stroke();\n context.lineWidth = 2;\n context.arc(this.oldX, this.oldY, 2 / 2, 0, Math.PI * 2, true);\n context.closePath();\n this.newObject.push(this.mouseX, this.mouseY);\n };\n Signature.prototype.signaturePanelMouseUp = function () {\n if (this.mouseDetection) {\n this.convertToPath(this.newObject);\n }\n this.mouseDetection = false;\n if (event.type == 'touchend') {\n this.canvasTouched = true;\n }\n };\n Signature.prototype.signaturePanelMouseLeave = function () {\n if (this.mouseDetection) {\n this.convertToPath(this.newObject);\n }\n this.mouseDetection = false;\n this.mouseMoving = false;\n };\n ;\n // eslint-disable-next-line\n Signature.prototype.convertToPath = function (newObject) {\n this.movePath(newObject[0], newObject[1]);\n this.linePath(newObject[0], newObject[1]);\n for (var n = 2; n < newObject.length; n = n + 2) {\n this.linePath(newObject[parseInt(n.toString(), 10)], newObject[n + 1]);\n }\n };\n Signature.prototype.linePath = function (x, y) {\n this.outputString += 'L' + x + ',' + y + ' ';\n };\n Signature.prototype.movePath = function (x, y) {\n this.outputString += 'M' + x + ',' + y + ' ';\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.clearSignatureCanvas = function (type) {\n var isCanvasClear = true;\n var drawObject = [];\n if (type && !isNullOrUndefined(type.previousIndex) && !isNullOrUndefined(type.selectedIndex)) {\n isCanvasClear = false;\n if (type.previousIndex === 0) {\n this.drawOutputString = this.outputString;\n drawObject = this.newObject;\n }\n else if (type.previousIndex === 2) {\n this.imageOutputString = this.outputString;\n }\n this.outputString = '';\n this.newObject = [];\n if (type.selectedIndex === 0) {\n this.outputString = this.drawOutputString;\n this.newObject = drawObject;\n }\n else if (type.selectedIndex === 2) {\n this.outputString = this.imageOutputString;\n }\n }\n else {\n this.outputString = '';\n this.newObject = [];\n }\n var isClearDrawTab = false;\n var isClearTypeTab = false;\n var isClearImageTab = false;\n if (type && type.currentTarget && type.currentTarget.classList.contains(\"e-pv-clearbtn\")) {\n isCanvasClear = false;\n if (this.signaturetype === 'Draw') {\n isClearDrawTab = true;\n }\n else if (this.signaturetype === 'Type') {\n isClearTypeTab = true;\n }\n else {\n isClearImageTab = true;\n }\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n if ((canvas && isCanvasClear) || (isClearDrawTab)) {\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n // eslint-disable-next-line\n var imageCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n if (imageCanvas && isCanvasClear || (isClearImageTab)) {\n // eslint-disable-next-line\n var context = imageCanvas.getContext('2d');\n context.clearRect(0, 0, imageCanvas.width, imageCanvas.height);\n // eslint-disable-next-line\n var signbutton = document.getElementById(this.pdfViewer.element.id + '_e-pv-upload-button');\n if (signbutton) {\n signbutton.style.visibility = '';\n }\n }\n // eslint-disable-next-line\n var fontdiv = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n // eslint-disable-next-line\n var textbox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n if ((fontdiv && textbox && isCanvasClear) || (isClearTypeTab)) {\n textbox.value = '';\n if (!isBlazor()) {\n fontdiv.innerHTML = '';\n }\n }\n this.enableCreateButton(true);\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.closeSignaturePanel = function () {\n if (this.pdfViewerBase.currentTarget) {\n this.pdfViewerBase.drawSignatureWithTool = true;\n }\n this.clearSignatureCanvas();\n if (!isBlazor()) {\n this.signatureDialog.hide();\n }\n this.pdfViewerBase.isToolbarSignClicked = false;\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.drawOutputString = '';\n this.imageOutputString = '';\n };\n /**\n * @private\n * @returns {string} - Returns the string.\n */\n Signature.prototype.saveSignature = function () {\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[parseInt(j.toString(), 10)] = [];\n }\n if (storeObject) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[parseInt(i.toString(), 10)];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n // eslint-disable-next-line max-len\n var strokeColorString = pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor ? pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor : \"black\";\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds, pageAnnotationObject.pageIndex));\n if (pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType === 'HandWrittenSignature' || pageAnnotationObject.annotations[parseInt(z.toString(), 10)].signatureName === 'ink') {\n // eslint-disable-next-line\n var collectionData = processPathData(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(csData);\n }\n else {\n if (pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType === 'SignatureText' && !this.checkDefaultFont(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontFamily)) {\n var signTypeCanvas = createElement('canvas');\n var bounds = JSON.parse(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds);\n signTypeCanvas.width = (bounds && bounds.width) || 150;\n signTypeCanvas.height = (bounds && bounds.height) || pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize * 2;\n // eslint-disable-next-line\n var canvasContext = signTypeCanvas.getContext('2d');\n var x = signTypeCanvas.width / 2;\n var y = (signTypeCanvas.height / 2) + pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize / 2 - 10;\n canvasContext.textAlign = 'center';\n canvasContext.font = pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize + 'px ' + pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontFamily;\n canvasContext.fillText(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data, x, y);\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(signTypeCanvas.toDataURL('image/png'));\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType = 'SignatureImage';\n }\n else {\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data);\n }\n }\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n Signature.prototype.checkDefaultFont = function (fontName) {\n // eslint-disable-next-line\n [{ FontName: 'Helvetica' }, { FontName: 'Times New Roman' }, { FontName: 'Courier' }, { FontName: 'Symbol' }];\n if (fontName === 'Helvetica' || fontName === 'Times New Roman' || fontName === 'Courier' || fontName === 'Symbol') {\n return true;\n }\n return false;\n };\n /**\n * @param colorString\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.getRgbCode = function (colorString) {\n /* eslint-disable-next-line security/detect-unsafe-regex */\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorString = this.pdfViewer.annotationModule.nameToHash(colorString);\n }\n var stringArray = colorString.split(',');\n if (isNullOrUndefined(stringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n stringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var r = parseInt(stringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var g = parseInt(stringArray[1]);\n // eslint-disable-next-line radix\n var b = parseInt(stringArray[2]);\n // eslint-disable-next-line radix\n var a = parseInt(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @private\n * @param {number} left - The left.\n * @param {number} top - The top.\n * @returns {void}\n */\n Signature.prototype.renderSignature = function (left, top) {\n var annot;\n // eslint-disable-next-line\n var currentAnnotation = this.pdfViewerBase.currentSignatureAnnot;\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (currentAnnotation) {\n if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'HandWrittenSignature') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'HandWrittenSignature', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'SignatureText') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'SignatureText', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n else if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'SignatureImage') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'SignatureImage', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentAnnotation.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentAnnotation.pageIndex);\n this.pdfViewerBase.signatureAdded = true;\n // eslint-disable-next-line max-len\n this.storeSignatureData(currentAnnotation.pageIndex, annot);\n this.pdfViewer.fireSignatureAdd(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, currentAnnotation.bounds, currentAnnotation.opacity, currentAnnotation.strokeColor, currentAnnotation.thickness);\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n }\n };\n /**\n * @param annotationCollection\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.renderExistingSignature = function (annotationCollection, pageIndex, isImport) {\n var annot;\n var isAnnotationAdded = false;\n if (!isImport) {\n for (var p = 0; p < this.signAnnotationIndex.length; p++) {\n if (this.signAnnotationIndex[parseInt(p.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n break;\n }\n }\n }\n if (annotationCollection && !isAnnotationAdded) {\n if (annotationCollection.length > 0 && this.signAnnotationIndex.indexOf(pageIndex) === -1) {\n this.signAnnotationIndex.push(pageIndex);\n }\n for (var n = 0; n < annotationCollection.length; n++) {\n // eslint-disable-next-line\n var currentAnnotation = annotationCollection[n];\n if (currentAnnotation) {\n // eslint-disable-next-line\n var data = currentAnnotation.PathData;\n if (isImport) {\n if (currentAnnotation.IsSignature) {\n data = currentAnnotation.PathData;\n }\n else if (currentAnnotation.AnnotationType === 'SignatureImage' || currentAnnotation.AnnotationType === 'SignatureText') {\n data = JSON.parse(JSON.stringify(currentAnnotation.PathData));\n }\n else {\n if (data.includes('command')) {\n data = getPathString(JSON.parse(currentAnnotation.PathData));\n }\n else {\n data = currentAnnotation.PathData;\n }\n }\n }\n this.outputString = data;\n this.outputString = '';\n var rectDiff = 0;\n var rectDifference = 1;\n var bounds = currentAnnotation.Bounds;\n var currentLeft = !isNullOrUndefined(bounds.X) ? bounds.X + (rectDiff / 2) : bounds.x + (rectDiff / 2);\n var currentTop = !isNullOrUndefined(bounds.Y) ? bounds.Y + (rectDiff / 2) : bounds.y + (rectDiff / 2);\n var currentWidth = bounds.Width ? bounds.Width - (rectDifference - 1) : bounds.width - (rectDifference - 1);\n var currentHeight = bounds.Height ? bounds.Height - (rectDifference - 1) : bounds.height - (rectDifference - 1);\n if (currentAnnotation.AnnotationType === 'SignatureText') {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, fontFamily: currentAnnotation.FontFamily, fontSize: currentAnnotation.FontSize,\n shapeAnnotationType: 'SignatureText', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName\n };\n }\n else if (currentAnnotation.AnnotationType === 'SignatureImage') {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, shapeAnnotationType: 'SignatureImage', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName\n };\n }\n else {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, shapeAnnotationType: 'HandWrittenSignature', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName ? currentAnnotation.SignatureName : \"ink\"\n };\n }\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentAnnotation.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, annot.pageIndex);\n this.storeSignatureData(annot.pageIndex, annot);\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane && this.pdfViewerBase.navigationPane.annotationMenuObj && this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], true);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], true);\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param annotations\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.storeSignatureData = function (pageNumber, annotations) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotations.pageIndex ? annotations.pageIndex : annotations.PageIndex, null, annotations, 'Addition', '', annotations, annotations);\n var annotation = null;\n var left;\n var top;\n var width;\n var height;\n var pageIndex;\n if (annotations.bounds) {\n left = annotations.bounds.left ? annotations.bounds.left : annotations.bounds.x;\n top = annotations.bounds.top ? annotations.bounds.top : annotations.bounds.y;\n width = annotations.bounds.width;\n height = annotations.bounds.height;\n pageIndex = annotations.pageIndex;\n }\n else {\n left = annotations.Bounds.left ? annotations.Bounds.left : annotations.Bounds.x;\n top = annotations.Bounds.top ? annotations.Bounds.top : annotations.Bounds.y;\n width = annotations.LineBounds.Width;\n height = annotations.LineBounds.Height;\n pageIndex = annotations.PageIndex;\n }\n if (annotations.wrapper && annotations.wrapper.bounds) {\n left = annotations.wrapper.bounds.left;\n top = annotations.wrapper.bounds.top;\n }\n annotation = {\n id: annotations.id ? annotations.id : null, bounds: { left: left, top: top, width: width, height: height }, shapeAnnotationType: annotations.shapeAnnotationType ? annotations.shapeAnnotationType : \"ink\", opacity: annotations.opacity ? annotations.opacity : 1, thickness: annotations.thickness ? annotations.thickness : 1, strokeColor: annotations.strokeColor ? annotations.strokeColor : null, pageIndex: pageIndex, data: annotations.data ? annotations.data : annotations.Value, fontSize: annotations.fontSize ? annotations.fontSize : null, fontFamily: annotations.fontFamily ? annotations.fontFamily : null, signatureName: annotations.signatureName ? annotations.signatureName : annotations.Name\n };\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n // eslint-disable-next-line\n var currentAnnotation = Math.round(JSON.stringify(annotation).length / 1024);\n if ((sessionSize + currentAnnotation) > 4500) {\n this.pdfViewerBase.isStorageExceed = true;\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n if (!(this.pdfViewerBase.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n }\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var index = 0;\n if (!storeObject) {\n this.storeSignatureCollections(annotation, pageNumber);\n var shapeAnnotation = { pageIndex: pageNumber, annotations: [] };\n shapeAnnotation.annotations.push(annotation);\n index = shapeAnnotation.annotations.indexOf(annotation);\n var annotationCollection = [];\n annotationCollection.push(shapeAnnotation);\n var annotationStringified = JSON.stringify(annotationCollection);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n else {\n this.storeSignatureCollections(annotation, pageNumber);\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var pageIndex_1 = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (!isNullOrUndefined(pageIndex_1) && annotObject[parseInt(pageIndex_1.toString(), 10)]) {\n annotObject[parseInt(pageIndex_1.toString(), 10)].annotations.push(annotation);\n index = annotObject[parseInt(pageIndex_1.toString(), 10)].annotations.indexOf(annotation);\n }\n else {\n var markupAnnotation = { pageIndex: pageNumber, annotations: [] };\n markupAnnotation.annotations.push(annotation);\n index = markupAnnotation.annotations.indexOf(annotation);\n annotObject.push(markupAnnotation);\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isSignatureEdited\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.modifySignatureCollection = function (property, pageNumber, annotationBase, isSignatureEdited) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.id === pageAnnotations[parseInt(i.toString(), 10)].id) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[parseInt(i.toString(), 10)].bounds = { left: annotationBase.wrapper.bounds.left, top: annotationBase.wrapper.bounds.top, width: annotationBase.bounds.width, height: annotationBase.bounds.height };\n pageAnnotations[parseInt(i.toString(), 10)].fontSize = annotationBase.fontSize;\n }\n else if (property === 'stroke') {\n pageAnnotations[parseInt(i.toString(), 10)].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[parseInt(i.toString(), 10)].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[parseInt(i.toString(), 10)].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'delete') {\n this.updateSignatureCollection(pageAnnotations[parseInt(i.toString(), 10)]);\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n if (property && property !== 'delete') {\n this.storeSignatureCollections(pageAnnotations[parseInt(i.toString(), 10)], pageNumber);\n }\n if (isSignatureEdited) {\n pageAnnotations[parseInt(i.toString(), 10)].opacity = annotationBase.wrapper.children[0].style.opacity;\n pageAnnotations[parseInt(i.toString(), 10)].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n pageAnnotations[parseInt(i.toString(), 10)].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n this.storeSignatureCollections(pageAnnotations[parseInt(i.toString(), 10)], pageNumber);\n break;\n }\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.storeSignatureCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var collectionDetails = this.checkSignatureCollection(annotation);\n // eslint-disable-next-line\n var selectAnnotation = cloneObject(annotation);\n selectAnnotation.annotationId = annotation.signatureName;\n selectAnnotation.pageNumber = pageNumber;\n delete selectAnnotation.annotName;\n if (annotation.id) {\n selectAnnotation.uniqueKey = annotation.id;\n delete selectAnnotation.id;\n }\n if (collectionDetails.isExisting) {\n this.pdfViewer.signatureCollection.splice(collectionDetails.position, 0, selectAnnotation);\n }\n else {\n this.pdfViewer.signatureCollection.push(selectAnnotation);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.checkSignatureCollection = function (signature) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.signatureCollection;\n if (collections && signature) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[parseInt(i.toString(), 10)].annotationId === signature.signatureName) {\n this.pdfViewer.signatureCollection.splice(i, 1);\n return { isExisting: true, position: i };\n }\n }\n }\n return { isExisting: false, position: null };\n };\n /**\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.updateSignatureCollection = function (signature) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.signatureCollection;\n if (collections && signature) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[parseInt(i.toString(), 10)].annotationId === signature.signatureName) {\n this.pdfViewer.signatureCollection.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addInCollection = function (pageNumber, signature) {\n if (signature) {\n this.storeSignatureCollections(signature, pageNumber);\n // eslint-disable-next-line\n var pageSignatures = this.getAnnotations(pageNumber, null);\n if (pageSignatures) {\n pageSignatures.push(signature);\n }\n this.manageAnnotations(pageSignatures, pageNumber);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[parseInt(index.toString(), 10)]) {\n annotationCollection = annotObject[parseInt(index.toString(), 10)].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n Signature.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[parseInt(index.toString(), 10)]) {\n annotObject[parseInt(index.toString(), 10)].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n };\n /**\n * @private\n * @param {boolean} isShow - Returns the true or false.\n * @returns {void}\n */\n Signature.prototype.showSignatureDialog = function (isShow) {\n if (isShow) {\n this.createSignaturePanel();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.setAnnotationMode = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.showSignatureDialog(true);\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.setInitialMode = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.pdfViewerBase.isInitialField = true;\n this.showSignatureDialog(true);\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @param signature\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.updateSignatureCollections = function (signature, pageIndex, isImport) {\n var annot;\n // eslint-disable-next-line\n if (signature) {\n // eslint-disable-next-line\n var bounds = signature.Bounds;\n var currentLeft = bounds.X;\n var currentTop = bounds.Y;\n var currentWidth = bounds.Width;\n var currentHeight = bounds.Height;\n // eslint-disable-next-line\n var data = signature.PathData;\n if (isImport) {\n data = getPathString(JSON.parse(signature.PathData));\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + signature.SignatureName, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data,\n shapeAnnotationType: 'HandWrittenSignature', opacity: signature.Opacity, strokeColor: signature.StrokeColor, thickness: signature.Thickness, signatureName: signature.SignatureName\n };\n return annot;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.destroy = function () {\n window.sessionStorage.removeItem('_annotations_sign');\n // eslint-disable-next-line\n var signImage = document.getElementById(this.pdfViewer.element.id + '_signElement');\n if (signImage) {\n signImage.removeEventListener('change', this.addStampImage);\n if (signImage.parentElement)\n signImage.parentElement.removeChild(signImage);\n }\n if (this.signatureDialog)\n this.signatureDialog.destroy();\n };\n return Signature;\n}());\nexport { Signature };\n","/* eslint-disable no-inner-declarations */\nimport { extend, merge, isNullOrUndefined, getValue } from '@syncfusion/ej2-base';\nimport { attributes, prepend, isVisible, append, addClass } from '@syncfusion/ej2-base';\nimport { compile } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nexport var cssClass = {\n li: 'e-list-item',\n ul: 'e-list-parent e-ul',\n group: 'e-list-group-item',\n icon: 'e-list-icon',\n text: 'e-list-text',\n check: 'e-list-check',\n checked: 'e-checked',\n selected: 'e-selected',\n expanded: 'e-expanded',\n textContent: 'e-text-content',\n hasChild: 'e-has-child',\n level: 'e-level',\n url: 'e-list-url',\n collapsible: 'e-icon-collapsible',\n disabled: 'e-disabled',\n image: 'e-list-img',\n iconWrapper: 'e-icon-wrapper',\n anchorWrap: 'e-anchor-wrap',\n navigable: 'e-navigable'\n};\n/**\n * Base List Generator\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var ListBase;\n(function (ListBase) {\n /**\n *\n * Default mapped fields.\n */\n ListBase.defaultMappedFields = {\n id: 'id',\n text: 'text',\n url: 'url',\n value: 'value',\n isChecked: 'isChecked',\n enabled: 'enabled',\n expanded: 'expanded',\n selected: 'selected',\n iconCss: 'iconCss',\n child: 'child',\n isVisible: 'isVisible',\n hasChildren: 'hasChildren',\n tooltip: 'tooltip',\n htmlAttributes: 'htmlAttributes',\n urlAttributes: 'urlAttributes',\n imageAttributes: 'imageAttributes',\n imageUrl: 'imageUrl',\n groupBy: null,\n sortBy: null\n };\n var defaultAriaAttributes = {\n level: 1,\n listRole: 'presentation',\n itemRole: 'presentation',\n groupItemRole: 'group',\n itemText: 'list-item',\n wrapperRole: 'presentation'\n };\n var defaultListBaseOptions = {\n showCheckBox: false,\n showIcon: false,\n enableHtmlSanitizer: false,\n expandCollapse: false,\n fields: ListBase.defaultMappedFields,\n ariaAttributes: defaultAriaAttributes,\n listClass: '',\n itemClass: '',\n processSubChild: false,\n sortOrder: 'None',\n template: null,\n groupTemplate: null,\n headerTemplate: null,\n expandIconClass: 'e-icon-collapsible',\n moduleName: 'list',\n expandIconPosition: 'Right',\n itemNavigable: false\n };\n /**\n * Function helps to created and return the UL Li element based on your data.\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} createListFromJson - Specifies the list options that need to provide.\n */\n function createList(createElement, dataSource, \n // eslint-disable-next-line\n options, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var type = typeofData(dataSource).typeof;\n if (type === 'string' || type === 'number') {\n return createListFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\n }\n else {\n return createListFromJson(createElement, dataSource, options, ariaAttributes.level, isSingleLevel, componentInstance);\n }\n }\n ListBase.createList = createList;\n /**\n * Function helps to created an element list based on string array input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} generateUL - returns the list options that need to provide.\n */\n function createListFromArray(createElement, dataSource, \n // tslint:disable-next-line\n // eslint-disable-next-line\n isSingleLevel, options, componentInstance) {\n var subChild = createListItemFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\n return generateUL(createElement, subChild, null, options);\n }\n ListBase.createListFromArray = createListFromArray;\n /**\n * Function helps to created an element list based on string array input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {HTMLElement[]} subChild - returns the list options that need to provide.\n */\n function createListItemFromArray(createElement, dataSource, \n // eslint-disable-next-line\n isSingleLevel, options, componentInstance) {\n var subChild = [];\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n var id = generateId(); // generate id for drop-down-list option.\n for (var i = 0; i < dataSource.length; i++) {\n if (isNullOrUndefined(dataSource[i])) {\n continue;\n }\n var li = void 0;\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: dataSource[i],\n options: curOpt\n };\n curOpt.itemCreating(curData);\n }\n if (isSingleLevel) {\n li = generateSingleLevelLI(createElement, dataSource[i], undefined, null, null, [], null, id, i, options);\n }\n else {\n li = generateLI(createElement, dataSource[i], undefined, null, null, options, componentInstance);\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: dataSource[i],\n item: li,\n options: curOpt\n };\n curOpt.itemCreated(curData);\n }\n subChild.push(li);\n }\n return subChild;\n }\n ListBase.createListItemFromArray = createListItemFromArray;\n /**\n * Function helps to created an element list based on array of JSON input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {number} level? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {HTMLElement[]} child - returns the list options that need to provide.\n */\n function createListItemFromJson(createElement, dataSource, \n // eslint-disable-next-line\n options, level, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n var fields = (componentInstance &&\n (componentInstance.getModuleName() === 'listview' || componentInstance.getModuleName() === 'multiselect'))\n ? curOpt.fields : extend({}, ListBase.defaultMappedFields, curOpt.fields);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var id;\n var checkboxElement = [];\n if (level) {\n ariaAttributes.level = level;\n }\n var child = [];\n var li;\n var anchorElement;\n if (dataSource && dataSource.length && !isNullOrUndefined(typeofData(dataSource).item) &&\n // eslint-disable-next-line no-prototype-builtins\n !typeofData(dataSource).item.hasOwnProperty(fields.id)) {\n id = generateId(); // generate id for drop-down-list option.\n }\n for (var i = 0; i < dataSource.length; i++) {\n var fieldData = getFieldValues(dataSource[i], fields);\n if (isNullOrUndefined(dataSource[i])) {\n continue;\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: fieldData[fields.text],\n options: curOpt,\n fields: fields\n };\n curOpt.itemCreating(curData);\n }\n var curItem = dataSource[i];\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n fieldData = getFieldValues(dataSource[i], fields);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.id) && !isNullOrUndefined(fieldData[fields.id])) {\n id = fieldData[fields.id];\n }\n var innerEle = [];\n if (curOpt.showCheckBox) {\n if (curOpt.itemNavigable && (fieldData[fields.url] || fieldData[fields.urlAttributes])) {\n checkboxElement.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\n }\n else {\n innerEle.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\n }\n }\n if (isSingleLevel === true) {\n // eslint-disable-next-line no-prototype-builtins\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) && !isNullOrUndefined(fieldData[fields.iconCss])) {\n innerEle.push(createElement('span', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] }));\n }\n li = generateSingleLevelLI(createElement, curItem, fieldData, fields, curOpt.itemClass, innerEle, \n // eslint-disable-next-line no-prototype-builtins\n (curItem.hasOwnProperty('isHeader') &&\n curItem.isHeader) ? true : false, id, i, options);\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\n if (curOpt.itemNavigable && checkboxElement.length) {\n prepend(checkboxElement, li.firstElementChild);\n }\n }\n else {\n li = generateLI(createElement, curItem, fieldData, fields, curOpt.itemClass, options, componentInstance);\n li.classList.add(cssClass.level + '-' + ariaAttributes.level);\n li.setAttribute('aria-level', ariaAttributes.level.toString());\n if (ariaAttributes.groupItemRole == 'presentation') {\n li.removeAttribute('aria-level');\n }\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.tooltip)) {\n li.setAttribute('title', fieldData[fields.tooltip]);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\n setAttribute(li, fieldData[fields.htmlAttributes]);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled] === false) {\n li.classList.add(cssClass.disabled);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.isVisible) && fieldData[fields.isVisible] === false) {\n li.style.display = 'none';\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.imageUrl) && !isNullOrUndefined(fieldData[fields.imageUrl])\n && !curOpt.template) {\n var attr = { src: fieldData[fields.imageUrl] };\n merge(attr, fieldData[fields.imageAttributes]);\n var imageElemnt = createElement('img', { className: cssClass.image, attrs: attr });\n if (anchorElement) {\n anchorElement.insertAdjacentElement('afterbegin', imageElemnt);\n }\n else {\n prepend([imageElemnt], li.firstElementChild);\n }\n }\n // eslint-disable-next-line no-prototype-builtins\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) &&\n !isNullOrUndefined(fieldData[fields.iconCss]) && !curOpt.template) {\n var iconElement = createElement('div', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] });\n if (anchorElement) {\n anchorElement.insertAdjacentElement('afterbegin', iconElement);\n }\n else {\n prepend([iconElement], li.firstElementChild);\n }\n }\n if (innerEle.length) {\n prepend(innerEle, li.firstElementChild);\n }\n if (curOpt.itemNavigable && checkboxElement.length) {\n prepend(checkboxElement, li.firstElementChild);\n }\n processSubChild(createElement, fieldData, fields, dataSource, curOpt, li, ariaAttributes.level);\n }\n if (anchorElement) {\n addClass([li], [cssClass.navigable]);\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: fieldData[fields.text],\n item: li,\n options: curOpt,\n fields: fields\n };\n curOpt.itemCreated(curData);\n }\n checkboxElement = [];\n child.push(li);\n }\n return child;\n }\n ListBase.createListItemFromJson = createListItemFromJson;\n /**\n * Function helps to created an element list based on array of JSON input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {number} level? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} generateUL - Specifies the list options that need to provide.\n */\n function createListFromJson(createElement, dataSource, \n // eslint-disable-next-line\n options, level, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var li = createListItemFromJson(createElement, dataSource, options, level, isSingleLevel, componentInstance);\n return generateUL(createElement, li, curOpt.listClass, options);\n }\n ListBase.createListFromJson = createListFromJson;\n /**\n * Return the next or previous visible element.\n *\n * @param {Element[]|NodeList} elementArray - An element array to find next or previous element.\n * @param {Element} li - An element to find next or previous after this element.\n * @param {boolean} isPrevious? - Specify when the need get previous element from array.\n */\n function getSiblingLI(elementArray, element, isPrevious) {\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\n if (!elementArray || !elementArray.length) {\n return void 0;\n }\n var siblingLI;\n var liIndex;\n var liCollections = Array.prototype.slice.call(elementArray);\n if (element) {\n liIndex = indexOf(element, liCollections);\n }\n else {\n liIndex = (isPrevious === true ? liCollections.length : -1);\n }\n siblingLI = liCollections[liIndex + (isPrevious === true ? -1 : 1)];\n while (siblingLI && (!isVisible(siblingLI) || siblingLI.classList.contains(cssClass.disabled))) {\n liIndex = liIndex + (isPrevious === true ? -1 : 1);\n siblingLI = liCollections[liIndex];\n }\n return siblingLI;\n }\n ListBase.getSiblingLI = getSiblingLI;\n /**\n * Return the index of the li element\n *\n * @param {Element} item - An element to find next or previous after this element.\n * @param {Element[]} elementArray - An element array to find index of given li.\n */\n function indexOf(item, elementArray) {\n if (!elementArray || !item) {\n return void 0;\n }\n else {\n var liCollections = elementArray;\n liCollections = Array.prototype.slice.call(elementArray);\n return liCollections.indexOf(item);\n }\n }\n ListBase.indexOf = indexOf;\n /**\n * Returns the grouped data from given dataSource.\n *\n * @param {{Object}[]} dataSource - The JSON data which is necessary to process.\n * @param {FieldsMapping} fields - Fields that are mapped from the data source.\n * @param {SortOrder} sortOrder- Specifies final result sort order.\n */\n function groupDataSource(dataSource, fields, sortOrder) {\n if (sortOrder === void 0) { sortOrder = 'None'; }\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n var cusQuery = new Query().group(curFields.groupBy);\n // need to remove once sorting issues fixed in DataManager\n cusQuery = addSorting(sortOrder, 'key', cusQuery);\n var ds = getDataSource(dataSource, cusQuery);\n dataSource = [];\n for (var j = 0; j < ds.length; j++) {\n var itemObj = ds[j].items;\n var grpItem = {};\n var hdr = 'isHeader';\n grpItem[curFields.text] = ds[j].key;\n grpItem[hdr] = true;\n var newtext = curFields.text;\n if (newtext === 'id') {\n newtext = 'text';\n grpItem[newtext] = ds[j].key;\n }\n grpItem._id = 'group-list-item-' + (ds[j].key ?\n ds[j].key.toString().trim() : 'undefined');\n grpItem.items = itemObj;\n dataSource.push(grpItem);\n for (var k = 0; k < itemObj.length; k++) {\n dataSource.push(itemObj[k]);\n }\n }\n return dataSource;\n }\n ListBase.groupDataSource = groupDataSource;\n /**\n * Returns a sorted query object.\n *\n * @param {SortOrder} sortOrder - Specifies that sort order.\n * @param {string} sortBy - Specifies sortBy fields.\n * @param {Query} query - Pass if any existing query.\n */\n function addSorting(sortOrder, sortBy, query) {\n if (query === void 0) { query = new Query(); }\n if (sortOrder === 'Ascending') {\n query.sortBy(sortBy, 'ascending', true);\n }\n else if (sortOrder === 'Descending') {\n query.sortBy(sortBy, 'descending', true);\n }\n else {\n for (var i = 0; i < query.queries.length; i++) {\n if (query.queries[i].fn === 'onSortBy') {\n query.queries.splice(i, 1);\n }\n }\n }\n return query;\n }\n ListBase.addSorting = addSorting;\n /**\n * Return an array of JSON Data that processed based on queries.\n *\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n *\n * @param {Query} query - Specifies query that need to process.\n */\n function getDataSource(dataSource, query) {\n // eslint-disable-next-line\n return new DataManager(dataSource)\n .executeLocal(query);\n }\n ListBase.getDataSource = getDataSource;\n /**\n * Created JSON data based the UL and LI element\n *\n * @param {HTMLElement|Element} element - UL element that need to convert as a JSON\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\n */\n function createJsonFromElement(element, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var fields = extend({}, ListBase.defaultMappedFields, curOpt.fields);\n var curEle = element.cloneNode(true);\n // eslint-disable-next-line\n var jsonAr = [];\n curEle.classList.add('json-parent');\n var childs = curEle.querySelectorAll('.json-parent>li');\n curEle.classList.remove('json-parent');\n for (var i = 0; i < childs.length; i++) {\n var li = childs[i];\n var anchor = li.querySelector('a');\n var ul = li.querySelector('ul');\n // eslint-disable-next-line\n var json = {};\n var childNodes = anchor ? anchor.childNodes : li.childNodes;\n var keys = Object.keys(childNodes);\n for (var i_1 = 0; i_1 < childNodes.length; i_1++) {\n if (!(childNodes[Number(keys[i_1])]).hasChildNodes()) {\n json[fields.text] = childNodes[Number(keys[i_1])].textContent;\n }\n }\n var attributes_1 = getAllAttributes(li);\n if (attributes_1.id) {\n json[fields.id] = attributes_1.id;\n delete attributes_1.id;\n }\n else {\n json[fields.id] = generateId();\n }\n if (Object.keys(attributes_1).length) {\n json[fields.htmlAttributes] = attributes_1;\n }\n if (anchor) {\n attributes_1 = getAllAttributes(anchor);\n if (Object.keys(attributes_1).length) {\n json[fields.urlAttributes] = attributes_1;\n }\n }\n if (ul) {\n json[fields.child] = createJsonFromElement(ul, options);\n }\n jsonAr.push(json);\n }\n return jsonAr;\n }\n ListBase.createJsonFromElement = createJsonFromElement;\n function typeofData(data) {\n var match = { typeof: null, item: null };\n for (var i = 0; i < data.length; i++) {\n if (!isNullOrUndefined(data[i])) {\n return match = { typeof: typeof data[i], item: data[i] };\n }\n }\n return match;\n }\n function setAttribute(element, elementAttributes) {\n var attr = {};\n merge(attr, elementAttributes);\n if (attr.class) {\n addClass([element], attr.class.split(' '));\n delete attr.class;\n }\n attributes(element, attr);\n }\n function getAllAttributes(element) {\n var attributes = {};\n var attr = element.attributes;\n for (var index = 0; index < attr.length; index++) {\n attributes[attr[index].nodeName] = attr[index].nodeValue;\n }\n return attributes;\n }\n /**\n * Created UL element from content template.\n *\n * @param {string} template - that need to convert and generate li element.\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\n */\n function renderContentTemplate(createElement, template, dataSource, \n // eslint-disable-next-line\n fields, options, componentInstance) {\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\n var ulElement = createElement('ul', { className: cssClass.ul, attrs: { role: 'presentation' } });\n var curOpt = extend({}, defaultListBaseOptions, options);\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n // eslint-disable-next-line\n var compiledString = compileTemplate(template);\n var liCollection = [];\n var value;\n var id = generateId(); // generate id for drop-down-list option.\n for (var i = 0; i < dataSource.length; i++) {\n var fieldData = getFieldValues(dataSource[i], curFields);\n var curItem = dataSource[i];\n var isHeader = curItem.isHeader;\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n value = curItem;\n }\n else {\n value = fieldData[curFields.value];\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: curItem,\n text: value,\n options: curOpt,\n fields: curFields\n };\n curOpt.itemCreating(curData);\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n fieldData = getFieldValues(dataSource[i], curFields);\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n value = curItem;\n }\n else {\n value = fieldData[curFields.value];\n }\n }\n var li = createElement('li', {\n id: id + '-' + i,\n className: isHeader ? cssClass.group : cssClass.li, attrs: { role: 'presentation' }\n });\n if (isHeader) {\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n li.innerText = curItem;\n }\n else {\n li.innerText = fieldData[curFields.text];\n }\n }\n else {\n var currentID = isHeader ? curOpt.groupTemplateID : curOpt.templateID;\n if (isHeader) {\n if (componentInstance && componentInstance.getModuleName() != 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate), li);\n }\n }\n else {\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate), li);\n }\n }\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\n li.setAttribute('role', 'option');\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: curItem,\n text: value,\n item: li,\n options: curOpt,\n fields: curFields\n };\n curOpt.itemCreated(curData);\n }\n liCollection.push(li);\n }\n append(liCollection, ulElement);\n return ulElement;\n }\n ListBase.renderContentTemplate = renderContentTemplate;\n /**\n * Created header items from group template.\n *\n * @param {string} template - that need to convert and generate li element.\n *\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n *\n * @param {FieldsMapping} fields - Specifies fields for mapping the dataSource.\n *\n * @param {Element[]} headerItems? - Specifies listbase header items.\n */\n // tslint:disable-next-line\n function renderGroupTemplate(groupTemplate, groupDataSource, fields, \n // eslint-disable-next-line\n headerItems, options, componentInstance) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(groupTemplate);\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n var curOpt = extend({}, defaultListBaseOptions, options);\n var category = curFields.groupBy;\n for (var _i = 0, headerItems_1 = headerItems; _i < headerItems_1.length; _i++) {\n var header = headerItems_1[_i];\n var headerData = {};\n headerData[category] = header.textContent;\n header.innerHTML = '';\n if (componentInstance && componentInstance.getModuleName() !== \"listview\") {\n // eslint-disable-next-line\n var compiledElement = compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, header);\n if (compiledElement) {\n append(compiledElement, header);\n }\n }\n else {\n append(compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), header);\n }\n }\n return headerItems;\n }\n ListBase.renderGroupTemplate = renderGroupTemplate;\n function generateId() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n ListBase.generateId = generateId;\n function processSubChild(createElement, fieldData, fields, ds, options, element, level) {\n // Get SubList\n var subDS = fieldData[fields.child] || [];\n var hasChildren = fieldData[fields.hasChildren];\n //Create Sub child\n if (subDS.length) {\n hasChildren = true;\n element.classList.add(cssClass.hasChild);\n if (options.processSubChild) {\n var subLi = createListFromJson(createElement, subDS, options, ++level);\n element.appendChild(subLi);\n }\n }\n // Create expand and collapse node\n if (!!options.expandCollapse && hasChildren && !options.template) {\n element.firstElementChild.classList.add(cssClass.iconWrapper);\n // eslint-disable-next-line @typescript-eslint/ban-types\n var expandElement = options.expandIconPosition === 'Left' ? prepend : append;\n expandElement([createElement('div', { className: 'e-icons ' + options.expandIconClass })], element.querySelector('.' + cssClass.textContent));\n }\n }\n function generateSingleLevelLI(createElement, item, fieldData, fields, className, innerElements, grpLI, id, index, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var text = item;\n var value = item;\n var dataSource;\n if (typeof item !== 'string' && typeof item !== 'number' && typeof item !== 'boolean') {\n dataSource = item;\n text = (typeof fieldData[fields.text] === 'boolean' || typeof fieldData[fields.text] === 'number') ?\n fieldData[fields.text] : (fieldData[fields.text] || '');\n value = fieldData[fields.value];\n }\n var elementID;\n if (!isNullOrUndefined(dataSource) && !isNullOrUndefined(fieldData[fields.id])\n && fieldData[fields.id] !== '') {\n elementID = id;\n }\n else {\n elementID = id + '-' + index;\n }\n var li = createElement('li', {\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\n id: elementID, attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\n });\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource && fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled].toString() === 'false') {\n li.classList.add(cssClass.disabled);\n }\n if (grpLI) {\n li.innerText = text;\n }\n else {\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\n li.setAttribute('role', 'option');\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource && fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\n setAttribute(li, fieldData[fields.htmlAttributes]);\n }\n if (innerElements.length && !curOpt.itemNavigable) {\n append(innerElements, li);\n }\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\n fieldData[fields.urlAttributes].href))) {\n li.appendChild(anchorTag(createElement, dataSource, fields, text, innerElements, curOpt.itemNavigable));\n }\n else {\n if (innerElements.length && curOpt.itemNavigable) {\n append(innerElements, li);\n }\n li.appendChild(document.createTextNode(text));\n }\n }\n return li;\n }\n function getModuleClass(moduleName) {\n var moduleClass;\n // eslint-disable-next-line\n return moduleClass = {\n li: \"e-\" + moduleName + \"-item\",\n ul: \"e-\" + moduleName + \"-parent e-ul\",\n group: \"e-\" + moduleName + \"-group-item\",\n icon: \"e-\" + moduleName + \"-icon\",\n text: \"e-\" + moduleName + \"-text\",\n check: \"e-\" + moduleName + \"-check\",\n checked: 'e-checked',\n selected: 'e-selected',\n expanded: 'e-expanded',\n textContent: 'e-text-content',\n hasChild: 'e-has-child',\n level: 'e-level',\n url: \"e-\" + moduleName + \"-url\",\n collapsible: 'e-icon-collapsible',\n disabled: 'e-disabled',\n image: \"e-\" + moduleName + \"-img\",\n iconWrapper: 'e-icon-wrapper',\n anchorWrap: 'e-anchor-wrap',\n navigable: 'e-navigable'\n };\n }\n function anchorTag(createElement, dataSource, fields, text, innerElements, isFullNavigation) {\n var fieldData = getFieldValues(dataSource, fields);\n var attr = { href: fieldData[fields.url] };\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.urlAttributes) && fieldData[fields.urlAttributes]) {\n merge(attr, fieldData[fields.urlAttributes]);\n attr.href = fieldData[fields.url] ? fieldData[fields.url] :\n fieldData[fields.urlAttributes].href;\n }\n var anchorTag;\n if (!isFullNavigation) {\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url, innerHTML: text });\n }\n else {\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url });\n var anchorWrapper = createElement('div', { className: cssClass.anchorWrap });\n if (innerElements && innerElements.length) {\n append(innerElements, anchorWrapper);\n }\n anchorWrapper.appendChild(document.createTextNode(text));\n append([anchorWrapper], anchorTag);\n }\n setAttribute(anchorTag, attr);\n return anchorTag;\n }\n // tslint:disable-next-line\n /* tslint:disable:align */\n function generateLI(createElement, item, fieldData, \n // eslint-disable-next-line\n fields, className, options, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var text = item;\n var uID;\n var grpLI;\n var dataSource;\n if (typeof item !== 'string' && typeof item !== 'number') {\n dataSource = item;\n text = fieldData[fields.text] || '';\n // tslint:disable-next-line\n uID = (isNullOrUndefined(fieldData['_id'])) ? fieldData[fields.id] : fieldData['_id'];\n // eslint-disable-next-line no-prototype-builtins\n grpLI = (item.hasOwnProperty('isHeader') && item.isHeader)\n ? true : false;\n }\n if (options && options.enableHtmlSanitizer) {\n // eslint-disable-next-line no-self-assign\n text = text;\n }\n var li = createElement('li', {\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\n attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\n });\n if (!isNullOrUndefined(uID) === true) {\n li.setAttribute('data-uid', uID);\n }\n else {\n li.setAttribute('data-uid', generateId());\n }\n if (grpLI && options && options.groupTemplate) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(options.groupTemplate);\n if (componentInstance && componentInstance.getModuleName() !== \"listview\") {\n // eslint-disable-next-line\n var compiledElement = compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), li);\n }\n }\n else if (!grpLI && options && options.template) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(options.template);\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate), li);\n }\n }\n else {\n var innerDiv = createElement('div', {\n className: cssClass.textContent,\n attrs: (ariaAttributes.wrapperRole !== '' ? { role: ariaAttributes.wrapperRole } : {})\n });\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\n fieldData[fields.urlAttributes].href))) {\n innerDiv.appendChild(anchorTag(createElement, dataSource, fields, text, null, curOpt.itemNavigable));\n }\n else {\n var element = createElement('span', {\n className: cssClass.text,\n attrs: (ariaAttributes.itemText !== '' ? { role: ariaAttributes.itemText } : {})\n });\n if (options && options.enableHtmlSanitizer) {\n element.innerText = text;\n }\n else {\n element.innerHTML = text;\n }\n innerDiv.appendChild(element);\n }\n li.appendChild(innerDiv);\n }\n return li;\n }\n /**\n * Returns UL element based on the given LI element.\n *\n * @param {HTMLElement[]} liElement - Specifies array of LI element.\n *\n * @param {string} className? - Specifies class name that need to be added in UL element.\n *\n * @param {ListBaseOptions} options? - Specifies ListBase options.\n */\n function generateUL(createElement, liElement, className, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n cssClass = getModuleClass(curOpt.moduleName);\n var ulElement = createElement('ul', {\n className: cssClass.ul + ' ' + (isNullOrUndefined(className) ? '' : className),\n attrs: (ariaAttributes.listRole !== '' ? { role: ariaAttributes.listRole } : {})\n });\n append(liElement, ulElement);\n return ulElement;\n }\n ListBase.generateUL = generateUL;\n /**\n * Returns LI element with additional DIV tag based on the given LI element.\n *\n * @param {liElement} liElement - Specifies LI element.\n *\n * @param {string} className? - Specifies class name that need to be added in created DIV element.\n *\n * @param {ListBaseOptions} options? - Specifies ListBase options.\n */\n function generateIcon(createElement, liElement, className, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n // eslint-disable-next-line @typescript-eslint/ban-types\n var expandElement = curOpt.expandIconPosition === 'Left' ? prepend : append;\n expandElement([createElement('div', {\n className: 'e-icons ' + curOpt.expandIconClass + ' ' +\n (isNullOrUndefined(className) ? '' : className)\n })], liElement.querySelector('.' + cssClass.textContent));\n return liElement;\n }\n ListBase.generateIcon = generateIcon;\n})(ListBase || (ListBase = {}));\n/**\n * Used to get dataSource item from complex data using fields.\n *\n * @param {Object} dataSource - Specifies an JSON or String data.\n *\n * @param {FieldsMapping} fields - Fields that are mapped from the dataSource.\n */\nexport function getFieldValues(dataItem, fields) {\n var fieldData = {};\n if (isNullOrUndefined(dataItem) || typeof (dataItem) === 'string' || typeof (dataItem) === 'number'\n || !isNullOrUndefined(dataItem.isHeader)) {\n return dataItem;\n }\n else {\n for (var _i = 0, _a = Object.keys(fields); _i < _a.length; _i++) {\n var field = _a[_i];\n var dataField = fields[field];\n var value = !isNullOrUndefined(dataField) &&\n typeof (dataField) === 'string' ? getValue(dataField, dataItem) : undefined;\n if (!isNullOrUndefined(value)) {\n fieldData[dataField] = value;\n }\n }\n }\n return fieldData;\n}\nfunction compileTemplate(template) {\n if (template) {\n try {\n if (document.querySelector(template)) {\n return compile(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (e) {\n return compile(template);\n }\n }\n return undefined;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { merge, extend, isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource.\n * This is the base adaptor class that other adaptors can extend.\n * @hidden\n */\nvar Adaptor = /** @class */ (function () {\n /**\n * Constructor for Adaptor class\n * @param {DataOptions} ds?\n * @hidden\n * @returns aggregates\n */\n function Adaptor(ds) {\n // common options for all the adaptors \n this.options = {\n from: 'table',\n requestType: 'json',\n sortBy: 'sorted',\n select: 'select',\n skip: 'skip',\n group: 'group',\n take: 'take',\n search: 'search',\n count: 'requiresCounts',\n where: 'where',\n aggregates: 'aggregates',\n expand: 'expand'\n };\n /**\n * Specifies the type of adaptor.\n * @default Adaptor\n */\n this.type = Adaptor;\n this.dataSource = ds;\n this.pvt = {};\n }\n /**\n * Returns the data from the query processing.\n * @param {Object} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @returns Object\n */\n Adaptor.prototype.processResponse = function (data, ds, query, xhr) {\n return data;\n };\n return Adaptor;\n}());\nexport { Adaptor };\n/**\n * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries.\n * @hidden\n */\nvar JsonAdaptor = /** @class */ (function (_super) {\n __extends(JsonAdaptor, _super);\n function JsonAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the JSON data based on the provided queries.\n * @param {DataManager} dataManager\n * @param {Query} query\n * @returns Object\n */\n JsonAdaptor.prototype.processQuery = function (dataManager, query) {\n var result = dataManager.dataSource.json.slice(0);\n var count = result.length;\n var countFlg = true;\n var ret;\n var key;\n var lazyLoad = {};\n var keyCount = 0;\n var group = [];\n var page;\n for (var i = 0; i < query.lazyLoad.length; i++) {\n keyCount++;\n lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n var agg = {};\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if ((key.fn === 'onPage' || key.fn === 'onGroup') && query.lazyLoad.length) {\n if (key.fn === 'onGroup') {\n group.push(key.e);\n }\n if (key.fn === 'onPage') {\n page = key.e;\n }\n continue;\n }\n ret = this[key.fn].call(this, result, key.e, query);\n if (key.fn === 'onAggregates') {\n agg[key.e.field + ' - ' + key.e.type] = ret;\n }\n else {\n result = ret !== undefined ? ret : result;\n }\n if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') {\n countFlg = false;\n }\n if (countFlg) {\n count = result.length;\n }\n }\n if (keyCount) {\n var args = {\n query: query, lazyLoad: lazyLoad, result: result, group: group, page: page\n };\n var lazyLoadData = this.lazyLoadGroup(args);\n result = lazyLoadData.result;\n count = lazyLoadData.count;\n }\n if (query.isCountRequired) {\n result = {\n result: result,\n count: count,\n aggregates: agg\n };\n }\n return result;\n };\n /**\n * Perform lazy load grouping in JSON array based on the given query and lazy load details.\n * @param {LazyLoadGroupArgs} args\n */\n JsonAdaptor.prototype.lazyLoadGroup = function (args) {\n var count = 0;\n var agg = this.getAggregate(args.query);\n var result = args.result;\n if (!isNullOrUndefined(args.lazyLoad.onDemandGroupInfo)) {\n var req = args.lazyLoad.onDemandGroupInfo;\n for (var i = req.where.length - 1; i >= 0; i--) {\n result = this.onWhere(result, req.where[i]);\n }\n if (args.group.length !== req.level) {\n var field = args.group[req.level].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n }\n count = result.length;\n var data = result;\n result = result.slice(req.skip);\n result = result.slice(0, req.take);\n if (args.group.length !== req.level) {\n this.formGroupResult(result, data);\n }\n }\n else {\n var field = args.group[0].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n count = result.length;\n var data = result;\n if (args.page) {\n result = this.onPage(result, args.page, args.query);\n }\n this.formGroupResult(result, data);\n }\n return { result: result, count: count };\n };\n JsonAdaptor.prototype.formGroupResult = function (result, data) {\n if (result.length && data.length) {\n var uid = 'GroupGuid';\n var childLevel = 'childLevels';\n var level = 'level';\n var records = 'records';\n result[uid] = data[uid];\n result[childLevel] = data[childLevel];\n result[level] = data[level];\n result[records] = data[records];\n }\n return result;\n };\n /**\n * Separate the aggregate query from the given queries\n * @param {Query} query\n */\n JsonAdaptor.prototype.getAggregate = function (query) {\n var aggQuery = Query.filterQueries(query.queries, 'onAggregates');\n var agg = [];\n if (aggQuery.length) {\n var tmp = void 0;\n for (var i = 0; i < aggQuery.length; i++) {\n tmp = aggQuery[i].e;\n agg.push({ type: tmp.type, field: DataUtil.getValue(tmp.field, query) });\n }\n }\n return agg;\n };\n /**\n * Performs batch update in the JSON array which add, remove and update records.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n JsonAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var i;\n var deletedRecordsLen = changes.deletedRecords.length;\n for (i = 0; i < changes.addedRecords.length; i++) {\n this.insert(dm, changes.addedRecords[i]);\n }\n for (i = 0; i < changes.changedRecords.length; i++) {\n this.update(dm, e.key, changes.changedRecords[i]);\n }\n for (i = 0; i < deletedRecordsLen; i++) {\n this.remove(dm, e.key, changes.deletedRecords[i]);\n }\n return changes;\n };\n /**\n * Performs filter operation with the given data and where query.\n * @param {Object[]} ds\n * @param {{validate:Function}} e\n */\n JsonAdaptor.prototype.onWhere = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.filter(function (obj) {\n if (e) {\n return e.validate(obj);\n }\n });\n };\n /**\n * Returns aggregate function based on the aggregate type.\n * @param {Object[]} ds\n * @param {{field:string} e\n * @param {string}} type\n */\n JsonAdaptor.prototype.onAggregates = function (ds, e) {\n var fn = DataUtil.aggregates[e.type];\n if (!ds || !fn || ds.length === 0) {\n return null;\n }\n return fn(ds, e.field);\n };\n /**\n * Performs search operation based on the given query.\n * @param {Object[]} ds\n * @param {QueryOptions} e\n */\n JsonAdaptor.prototype.onSearch = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n if (e.fieldNames.length === 0) {\n DataUtil.getFieldList(ds[0], e.fieldNames);\n }\n return ds.filter(function (obj) {\n for (var j = 0; j < e.fieldNames.length; j++) {\n if (e.comparer.call(obj, DataUtil.getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) {\n return true;\n }\n }\n return false;\n });\n };\n /**\n * Sort the data with given direction and field.\n * @param {Object[]} ds\n * @param {{comparer:(a:Object} e\n * @param {Object} b\n */\n JsonAdaptor.prototype.onSortBy = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var fnCompare;\n var field = DataUtil.getValue(e.fieldName, query);\n if (!field) {\n return ds.sort(e.comparer);\n }\n if (field instanceof Array) {\n field = field.slice(0);\n for (var i = field.length - 1; i >= 0; i--) {\n if (!field[i]) {\n continue;\n }\n fnCompare = e.comparer;\n if (DataUtil.endsWith(field[i], ' desc')) {\n fnCompare = DataUtil.fnSort('descending');\n field[i] = field[i].replace(' desc', '');\n }\n ds = DataUtil.sort(ds, field[i], fnCompare);\n }\n return ds;\n }\n return DataUtil.sort(ds, field, e.comparer);\n };\n /**\n * Group the data based on the given query.\n * @param {Object[]} ds\n * @param {QueryOptions} e\n * @param {Query} query\n */\n JsonAdaptor.prototype.onGroup = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var agg = this.getAggregate(query);\n return DataUtil.group(ds, DataUtil.getValue(e.fieldName, query), agg, null, null, e.comparer);\n };\n /**\n * Retrieves records based on the given page index and size.\n * @param {Object[]} ds\n * @param {{pageSize:number} e\n * @param {number}} pageIndex\n * @param {Query} query\n */\n JsonAdaptor.prototype.onPage = function (ds, e, query) {\n var size = DataUtil.getValue(e.pageSize, query);\n var start = (DataUtil.getValue(e.pageIndex, query) - 1) * size;\n var end = start + size;\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(start, end);\n };\n /**\n * Retrieves records based on the given start and end index from query.\n * @param {Object[]} ds\n * @param {{start:number} e\n * @param {number}} end\n */\n JsonAdaptor.prototype.onRange = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.start), DataUtil.getValue(e.end));\n };\n /**\n * Picks the given count of records from the top of the datasource.\n * @param {Object[]} ds\n * @param {{nos:number}} e\n */\n JsonAdaptor.prototype.onTake = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(0, DataUtil.getValue(e.nos));\n };\n /**\n * Skips the given count of records from the data source.\n * @param {Object[]} ds\n * @param {{nos:number}} e\n */\n JsonAdaptor.prototype.onSkip = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.nos));\n };\n /**\n * Selects specified columns from the data source.\n * @param {Object[]} ds\n * @param {{fieldNames:string}} e\n */\n JsonAdaptor.prototype.onSelect = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return DataUtil.select(ds, DataUtil.getValue(e.fieldNames));\n };\n /**\n * Inserts new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {number} position\n */\n JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n if (isNullOrUndefined(position)) {\n return dm.dataSource.json.push(data);\n }\n else {\n return dm.dataSource.json.splice(position, 0, data);\n }\n };\n /**\n * Remove the data from the dataSource based on the key field value.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @returns null\n */\n JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n if (typeof value === 'object' && !(value instanceof Date)) {\n value = DataUtil.getObject(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (DataUtil.getObject(keyField, ds[i]) === value) {\n break;\n }\n }\n return i !== ds.length ? ds.splice(i, 1) : null;\n };\n /**\n * Updates existing record and saves the changes to the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @returns null\n */\n JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n var key;\n if (!isNullOrUndefined(keyField)) {\n key = getValue(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (!isNullOrUndefined(keyField) && (getValue(keyField, ds[i])) === key) {\n break;\n }\n }\n return i < ds.length ? merge(ds[i], value) : null;\n };\n return JsonAdaptor;\n}(Adaptor));\nexport { JsonAdaptor };\n/**\n * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data.\n * It interacts with server-side for all DataManager Queries and CRUD operations.\n * @hidden\n */\nvar UrlAdaptor = /** @class */ (function (_super) {\n __extends(UrlAdaptor, _super);\n function UrlAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the query to generate request body.\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @returns p\n */\n // tslint:disable-next-line:max-func-body-length\n UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var params = query.params;\n var url = dm.dataSource.url;\n var temp;\n var skip;\n var take = null;\n var options = this.options;\n var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n // calc Paging & Range\n if ('onPage' in singles) {\n temp = singles.onPage;\n skip = DataUtil.getValue(temp.pageIndex, query);\n take = DataUtil.getValue(temp.pageSize, query);\n skip = (skip - 1) * take;\n }\n else if ('onRange' in singles) {\n temp = singles.onRange;\n skip = temp.start;\n take = temp.end - temp.start;\n }\n // Sorting\n for (var i = 0; i < queries.sorts.length; i++) {\n temp = DataUtil.getValue(queries.sorts[i].e.fieldName, query);\n request.sorts.push(DataUtil.callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query));\n }\n // hierarchy\n if (hierarchyFilters) {\n temp = this.getFiltersFrom(hierarchyFilters, query);\n if (temp) {\n request.filters.push(DataUtil.callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query));\n }\n }\n // Filters\n for (var i = 0; i < queries.filters.length; i++) {\n var res = DataUtil.callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query);\n if ((this.getModuleName &&\n this.getModuleName() === 'ODataV4Adaptor') &&\n !isNullOrUndefined(queries.filters[i].e.key) && queries.filters.length > 1) {\n res = \"(\" + res + \")\";\n }\n request.filters.push(res);\n var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : [];\n for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (DataUtil.isNull((request)[prop])) {\n delete request[prop];\n }\n }\n }\n // Searches\n for (var i = 0; i < queries.searches.length; i++) {\n temp = queries.searches[i].e;\n request.searches.push(DataUtil.callAdaptorFunction(this, 'onEachSearch', {\n fields: temp.fieldNames,\n operator: temp.operator,\n key: temp.searchKey,\n ignoreCase: temp.ignoreCase\n }, query));\n }\n // Grouping\n for (var i = 0; i < queries.groups.length; i++) {\n request.groups.push(DataUtil.getValue(queries.groups[i].e.fieldName, query));\n }\n // aggregates\n for (var i = 0; i < queries.aggregates.length; i++) {\n temp = queries.aggregates[i].e;\n request.aggregates.push({ type: temp.type, field: DataUtil.getValue(temp.field, query) });\n }\n var req = {};\n this.getRequestQuery(options, query, singles, request, req);\n // Params\n DataUtil.callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req });\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n req[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n }\n // cleanup\n var keys = Object.keys(req);\n for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {\n var prop = keys_2[_a];\n if (DataUtil.isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) {\n delete req[prop];\n }\n }\n if (!(options.skip in req && options.take in req) && take !== null) {\n req[options.skip] = DataUtil.callAdaptorFunction(this, 'onSkip', skip, query);\n req[options.take] = DataUtil.callAdaptorFunction(this, 'onTake', take, query);\n }\n var p = this.pvt;\n this.pvt = {};\n if (this.options.requestType === 'json') {\n return {\n data: JSON.stringify(req, DataUtil.parse.jsonDateReplacer),\n url: url,\n pvtData: p,\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n }\n temp = this.convertToQueryString(req, query, dm);\n temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp;\n return {\n type: 'GET', url: temp.length ? url.replace(/\\/*$/, temp) : url, pvtData: p\n };\n };\n UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) {\n var param = 'param';\n var req = request1;\n req[options.from] = query.fromTable;\n if (options.apply && query.distincts.length) {\n req[options.apply] = 'onDistinct' in this ? DataUtil.callAdaptorFunction(this, 'onDistinct', query.distincts) : '';\n }\n if (!query.distincts.length && options.expand) {\n req[options.expand] = 'onExpand' in this && 'onSelect' in singles ?\n DataUtil.callAdaptorFunction(this, 'onExpand', { selects: DataUtil.getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands;\n }\n req[options.select] = 'onSelect' in singles && !query.distincts.length ?\n DataUtil.callAdaptorFunction(this, 'onSelect', DataUtil.getValue(singles.onSelect.fieldNames, query), query) : '';\n req[options.count] = query.isCountRequired ? DataUtil.callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : '';\n req[options.search] = request.searches.length ? DataUtil.callAdaptorFunction(this, 'onSearch', request.searches, query) : '';\n req[options.skip] = 'onSkip' in singles ?\n DataUtil.callAdaptorFunction(this, 'onSkip', DataUtil.getValue(singles.onSkip.nos, query), query) : '';\n req[options.take] = 'onTake' in singles ?\n DataUtil.callAdaptorFunction(this, 'onTake', DataUtil.getValue(singles.onTake.nos, query), query) : '';\n req[options.where] = request.filters.length || request.searches.length ?\n DataUtil.callAdaptorFunction(this, 'onWhere', request.filters, query) : '';\n req[options.sortBy] = request.sorts.length ? DataUtil.callAdaptorFunction(this, 'onSortBy', request.sorts, query) : '';\n req[options.group] = request.groups.length ? DataUtil.callAdaptorFunction(this, 'onGroup', request.groups, query) : '';\n req[options.aggregates] = request.aggregates.length ?\n DataUtil.callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : '';\n req[param] = [];\n };\n /**\n * Convert the object from processQuery to string which can be added query string.\n * @param {Object} req\n * @param {Query} query\n * @param {DataManager} dm\n */\n UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n return '';\n // this needs to be overridden\n };\n /**\n * Return the data from the data manager processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @param {CrudOptions} changes?\n */\n UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('application/json') !== -1) {\n var handleTimeZone = DataUtil.timeZoneHandling;\n if (ds && !ds.timeZoneHandling) {\n DataUtil.timeZoneHandling = false;\n }\n data = DataUtil.parse.parseJson(data);\n DataUtil.timeZoneHandling = handleTimeZone;\n }\n var requests = request;\n var pvt = requests.pvtData || {};\n var groupDs = data ? data.groupDs : [];\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n var d = JSON.parse(requests.data);\n if (d && d.action === 'batch' && data && data.addedRecords) {\n changes.addedRecords = data.addedRecords;\n return changes;\n }\n if (data && data.d) {\n data = data.d;\n }\n var args = {};\n if (data && 'count' in data) {\n args.count = data.count;\n }\n args.result = data && data.result ? data.result : data;\n var isExpand = false;\n if (Array.isArray(data.result) && data.result.length) {\n var key = 'key';\n var val = 'value';\n var level = 'level';\n if (!isNullOrUndefined(data.result[0][key])) {\n args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1);\n }\n if (query && query.lazyLoad.length && pvt.groups.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n if (query.lazyLoad[i][key] === 'onDemandGroupInfo') {\n var value = query.lazyLoad[i][val][level];\n if (pvt.groups.length === value) {\n isExpand = true;\n }\n }\n }\n }\n }\n if (!isExpand) {\n this.getAggregateResult(pvt, data, args, groupDs, query);\n }\n return DataUtil.isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) {\n this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1);\n }\n }\n var uid = 'GroupGuid';\n var childLvl = 'childLevels';\n var lvl = 'level';\n var records = 'records';\n data[uid] = consts[uid];\n data[lvl] = level;\n data[childLvl] = childLevel;\n data[records] = data[0].items.length ? this.getGroupedRecords(data, !isNullOrUndefined(data[0].items[records])) : [];\n return data;\n };\n UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) {\n var childGroupedRecords = [];\n var records = 'records';\n for (var i = 0; i < data.length; i++) {\n if (!hasRecords) {\n for (var j = 0; j < data[i].items.length; j++) {\n childGroupedRecords.push(data[i].items[j]);\n }\n }\n else {\n childGroupedRecords = childGroupedRecords.concat(data[i].items[records]);\n }\n }\n return childGroupedRecords;\n };\n /**\n * Add the group query to the adaptor`s option.\n * @param {Object[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return e;\n };\n /**\n * Add the aggregate query to the adaptor`s option.\n * @param {Aggregates[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n */\n UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var url;\n var key;\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e[url],\n key: e[key]\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @returns void\n */\n UrlAdaptor.prototype.beforeSend = function (dm, request) {\n // need to extend this method\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName\n */\n UrlAdaptor.prototype.insert = function (dm, data, tableName, query) {\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number|string} value\n * @param {string} tableName\n */\n UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: value,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: value,\n action: 'update',\n keyColumn: keyField,\n key: DataUtil.getObject(keyField, value),\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * To generate the predicate based on the filtered query.\n * @param {Object[]|string[]|number[]} data\n * @param {Query} query\n * @hidden\n */\n UrlAdaptor.prototype.getFiltersFrom = function (data, query) {\n var key = query.fKey;\n var value;\n var prop = key;\n var pKey = query.key;\n var predicats = [];\n if (typeof data[0] !== 'object') {\n prop = null;\n }\n for (var i = 0; i < data.length; i++) {\n if (typeof data[0] === 'object') {\n value = DataUtil.getObject(pKey || prop, data[i]);\n }\n else {\n value = data[i];\n }\n predicats.push(new Predicate(key, 'equal', value));\n }\n return Predicate.or(predicats);\n };\n UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) {\n var pData = data;\n if (data && data.result) {\n pData = data.result;\n }\n if (pvt && pvt.aggregates && pvt.aggregates.length) {\n var agg = pvt.aggregates;\n var fn = void 0;\n var aggregateData = pData;\n var res = {};\n if (data.aggregate) {\n aggregateData = data.aggregate;\n }\n for (var i = 0; i < agg.length; i++) {\n fn = DataUtil.aggregates[agg[i].type];\n if (fn) {\n res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field);\n }\n }\n args.aggregates = res;\n }\n var key = 'key';\n var isServerGrouping = Array.isArray(data.result) && data.result.length && !isNullOrUndefined(data.result[0][key]);\n if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) {\n var groups = pvt.groups;\n for (var i = 0; i < groups.length; i++) {\n var level = null;\n if (!isNullOrUndefined(groupDs)) {\n groupDs = DataUtil.group(groupDs, groups[i]);\n }\n var groupQuery = Query.filterQueries(query.queries, 'onGroup')[i].e;\n pData = DataUtil.group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer);\n }\n args.result = pData;\n }\n return args;\n };\n UrlAdaptor.prototype.getQueryRequest = function (query) {\n var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n req.sorts = Query.filterQueries(query.queries, 'onSortBy');\n req.groups = Query.filterQueries(query.queries, 'onGroup');\n req.filters = Query.filterQueries(query.queries, 'onWhere');\n req.searches = Query.filterQueries(query.queries, 'onSearch');\n req.aggregates = Query.filterQueries(query.queries, 'onAggregates');\n return req;\n };\n UrlAdaptor.prototype.addParams = function (options) {\n var req = options.reqParams;\n if (options.params.length) {\n req.params = {};\n }\n for (var _i = 0, _a = options.params; _i < _a.length; _i++) {\n var tmp = _a[_i];\n if (req[tmp.key]) {\n throw new Error('Query() - addParams: Custom Param is conflicting other request arguments');\n }\n req[tmp.key] = tmp.value;\n if (tmp.fn) {\n req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm);\n }\n req.params[tmp.key] = req[tmp.key];\n }\n };\n return UrlAdaptor;\n}(Adaptor));\nexport { UrlAdaptor };\n/**\n * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service.\n * @hidden\n */\nvar ODataAdaptor = /** @class */ (function (_super) {\n __extends(ODataAdaptor, _super);\n function ODataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$inlinecount',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PUT'\n });\n extend(_this.options, props || {});\n return _this;\n }\n ODataAdaptor.prototype.getModuleName = function () {\n return 'ODataAdaptor';\n };\n /**\n * Generate request string based on the filter criteria from query.\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n */\n ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var operator;\n var guid;\n var val = predicate.value;\n var type = typeof val;\n var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null;\n if (val instanceof Date) {\n val = 'datetime\\'' + DataUtil.parse.replacer(val) + '\\'';\n }\n if (type === 'string') {\n val = val.replace(/'/g, \"''\");\n if (predicate.ignoreCase) {\n val = val.toLowerCase();\n }\n val = encodeURIComponent(val);\n val = '\\'' + val + '\\'';\n if (requiresCast) {\n field = 'cast(' + field + ', \\'Edm.String\\')';\n }\n if (DataUtil.parse.isGuid(val)) {\n guid = 'guid';\n }\n if (predicate.ignoreCase) {\n if (!guid) {\n field = 'tolower(' + field + ')';\n }\n val = val.toLowerCase();\n }\n }\n operator = DataUtil.odBiOperator[predicate.operator];\n if (operator) {\n returnValue += field;\n returnValue += operator;\n if (guid) {\n returnValue += guid;\n }\n return returnValue + val;\n }\n if (!isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') {\n operator = DataUtil.odv4UniOperator[predicate.operator];\n }\n else {\n operator = DataUtil.odUniOperator[predicate.operator];\n }\n if (operator === 'substringof') {\n var temp = val;\n val = field;\n field = temp;\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += val + ')';\n return returnValue;\n };\n ODataAdaptor.prototype.addParams = function (options) {\n _super.prototype.addParams.call(this, options);\n delete options.reqParams.params;\n };\n /**\n * Generate request string based on the multiple filter criteria from query.\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n */\n ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) {\n var res = [];\n for (var i = 0; i < predicate.predicates.length; i++) {\n res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')');\n }\n return res.join(' ' + predicate.condition + ' ');\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n * @param {Predicate} filter\n * @param {boolean} requiresCast?\n */\n ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) {\n return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast);\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n * @param {string[]} filters\n */\n ODataAdaptor.prototype.onWhere = function (filters) {\n if (this.pvt.search) {\n filters.push(this.onEachWhere(this.pvt.search, null, true));\n }\n return filters.join(' and ');\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n * @param {{fields:string[]} e\n * @param {string} operator\n * @param {string} key\n * @param {boolean}} ignoreCase\n */\n ODataAdaptor.prototype.onEachSearch = function (e) {\n if (e.fields && e.fields.length === 0) {\n DataUtil.throwError('Query() - Search : oData search requires list of field names to search');\n }\n var filter = this.pvt.search || [];\n for (var i = 0; i < e.fields.length; i++) {\n filter.push(new Predicate(e.fields[i], e.operator, e.key, e.ignoreCase));\n }\n this.pvt.search = filter;\n };\n /**\n * Generate query string based on the search criteria from query.\n * @param {Object} e\n */\n ODataAdaptor.prototype.onSearch = function (e) {\n this.pvt.search = Predicate.or(this.pvt.search);\n return '';\n };\n /**\n * Generate query string based on multiple sort criteria from query.\n * @param {QueryOptions} e\n */\n ODataAdaptor.prototype.onEachSort = function (e) {\n var res = [];\n if (e.name instanceof Array) {\n for (var i = 0; i < e.name.length; i++) {\n res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : ''));\n }\n }\n else {\n res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : ''));\n }\n return res.join(',');\n };\n /**\n * Returns sort query string.\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSortBy = function (e) {\n return e.reverse().join(',');\n };\n /**\n * Adds the group query to the adaptor option.\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return [];\n };\n /**\n * Returns the select query string.\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSelect = function (e) {\n for (var i = 0; i < e.length; i++) {\n e[i] = ODataAdaptor.getField(e[i]);\n }\n return e.join(',');\n };\n /**\n * Add the aggregate query to the adaptor option.\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n return '';\n };\n /**\n * Returns the query string which requests total count from the data source.\n * @param {boolean} e\n * @returns string\n */\n ODataAdaptor.prototype.onCount = function (e) {\n return e === true ? 'allpages' : '';\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n */\n ODataAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (DataUtil.endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.options.multipartAccept);\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.overrideMimeType('text/plain; charset=x-user-defined');\n }\n else {\n request.setRequestHeader('Accept', this.options.accept);\n }\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.setRequestHeader('MaxDataServiceVersion', '2.0');\n };\n /**\n * Returns the data from the query processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @returns aggregateResult\n */\n ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaCheck = 'odata.metadata';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) {\n var dataUrls = data[metaCheck].split('/$metadata#');\n this.rootUrl = dataUrls[0];\n this.resourceTableName = dataUrls[1];\n }\n var pvtData = 'pvtData';\n if (!isNullOrUndefined(data.d)) {\n var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d);\n var metaData = '__metadata';\n if (!isNullOrUndefined(dataCopy)) {\n for (var i = 0; i < dataCopy.length; i++) {\n if (!isNullOrUndefined(dataCopy[i][metaData])) {\n delete dataCopy[i][metaData];\n }\n }\n }\n }\n var pvt = request && request[pvtData];\n var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var count = null;\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n var oDataCount = '__count';\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n if (data.d) {\n data = data.d;\n }\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n }\n if (version === 3 && data.value) {\n data = data.value;\n }\n if (data.d) {\n data = data.d;\n }\n if (version < 3 && data.results) {\n data = data.results;\n }\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n /**\n * Converts the request object to query string.\n * @param {Object} req\n * @param {Query} query\n * @param {DataManager} dm\n * @returns tableName\n */\n ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n var res = [];\n var table = 'table';\n var tableName = request[table] || '';\n var format = '$format';\n delete request[table];\n if (dm.dataSource.requiresFormat) {\n request[format] = 'json';\n }\n var keys = Object.keys(request);\n for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) {\n var prop = keys_4[_i];\n res.push(prop + '=' + request[prop]);\n }\n res = res.join('&');\n if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) {\n return res;\n }\n return res.length ? tableName + '?' + res : tableName || '';\n };\n ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) {\n for (var _i = 0, _a = !isNullOrUndefined(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((convertObj[prop] instanceof Date)) {\n convertObj[prop] = DataUtil.dateParse.toLocalTime(convertObj[prop]);\n }\n }\n return convertObj;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n */\n ODataAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : ''),\n data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n */\n ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var url;\n if (typeof value === 'string' && !DataUtil.parse.isGuid(value)) {\n url = \"('\" + value + \"')\";\n }\n else {\n url = \"(\" + value + \")\";\n }\n return {\n type: 'DELETE',\n url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url\n };\n };\n /**\n * Updates existing record and saves the changes to the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @returns this\n */\n ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) {\n if (this.options.updateType === 'PATCH' && !isNullOrUndefined(original)) {\n value = this.compareAndRemove(value, original, keyField);\n }\n var url;\n if (typeof value[keyField] === 'string' && !DataUtil.parse.isGuid(value[keyField])) {\n url = \"('\" + value[keyField] + \"')\";\n }\n else {\n url = \"(\" + value[keyField] + \")\";\n }\n return {\n type: this.options.updateType,\n url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url,\n data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null),\n accept: this.options.accept\n };\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @returns {Object}\n */\n ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = this.rootUrl ? this.rootUrl + '/' + this.options.batch :\n dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var args = {\n url: e.url,\n key: e.key,\n cid: 1,\n cSet: DataUtil.getGuid(this.options.changeSet)\n };\n var req = '--' + initialGuid + '\\n';\n req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\\n';\n this.pvt.changeSet = 0;\n req += this.generateInsertRequest(changes.addedRecords, args, dm);\n req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []);\n req += this.generateDeleteRequest(changes.deletedRecords, args, dm);\n req += args.cSet + '--\\n';\n req += '--' + initialGuid + '--';\n return {\n type: 'POST',\n url: url,\n dataType: 'json',\n contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid,\n data: req\n };\n };\n /**\n * Generate the string content from the removed records.\n * The result will be send during batch update.\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @returns this\n */\n ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '(' + url + ')';\n }\n else if (url instanceof Date) {\n var dateTime = data[i][key];\n return '(' + dateTime.toJSON() + ')';\n }\n else {\n return \"('\" + url + \"')\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req + '\\n';\n };\n /**\n * Generate the string content from the inserted records.\n * The result will be send during batch update.\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n */\n ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n /**\n * Generate the string content from the updated records.\n * The result will be send during batch update.\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n */\n ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) {\n var _this = this;\n if (!arr) {\n return '';\n }\n var req = '';\n arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return DataUtil.getObject(e.key, o) === DataUtil.getObject(e.key, change); })[0], e.key); });\n var stat = {\n 'method': this.options.updateType + ' ',\n 'url': function (data, i, key) {\n if (typeof data[i][key] === 'number' || DataUtil.parse.isGuid(data[i][key])) {\n return '(' + data[i][key] + ')';\n }\n else if (data[i][key] instanceof Date) {\n var date = data[i][key];\n return '(' + date.toJSON() + ')';\n }\n else {\n return \"('\" + data[i][key] + \"')\";\n }\n },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n ODataAdaptor.getField = function (prop) {\n return prop.replace(/\\./g, '/');\n };\n ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) {\n var req = '';\n for (var i = 0; i < arr.length; i++) {\n req += '\\n' + e.cSet + '\\n';\n req += this.options.changeSetContent + '\\n\\n';\n req += stat.method;\n if (stat.method === 'POST ') {\n req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'PUT ' || stat.method === 'PATCH ') {\n req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'DELETE ') {\n req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n req += 'Accept: ' + this.options.accept + '\\n';\n req += 'Content-Id: ' + this.pvt.changeSet++ + '\\n';\n req += this.options.batchChangeSetContentType + '\\n';\n if (!isNullOrUndefined(arr[i]['@odata.etag'])) {\n req += 'If-Match: ' + arr[i]['@odata.etag'] + '\\n\\n';\n delete arr[i]['@odata.etag'];\n }\n else {\n req += '\\n';\n }\n req += stat.data(arr, i);\n }\n return req;\n };\n ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') && xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n if (request && this.options.batch && DataUtil.endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') {\n var guid = xhr.getResponseHeader('Content-Type');\n var cIdx = void 0;\n var jsonObj = void 0;\n var d = data + '';\n guid = guid.substring(guid.indexOf('=batchresponse') + 1);\n d = d.split(guid);\n if (d.length < 2) {\n return {};\n }\n d = d[1];\n var exVal = /(?:\\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d);\n if (exVal) {\n d.replace(exVal[0], '');\n }\n var changeGuid = exVal ? exVal[1] : '';\n d = d.split(changeGuid);\n for (var i = d.length; i > -1; i--) {\n if (!/\\bContent-ID:/i.test(d[i]) || !/\\bHTTP.+201/.test(d[i])) {\n continue;\n }\n cIdx = parseInt(/\\bContent-ID: (\\d+)/i.exec(d[i])[1], 10);\n if (changes.addedRecords[cIdx]) {\n jsonObj = DataUtil.parse.parseJson(/^\\{.+\\}/m.exec(d[i])[0]);\n extend({}, changes.addedRecords[cIdx], this.processResponse(jsonObj));\n }\n }\n return changes;\n }\n return null;\n };\n ODataAdaptor.prototype.compareAndRemove = function (data, original, key) {\n var _this = this;\n if (isNullOrUndefined(original)) {\n return data;\n }\n Object.keys(data).forEach(function (prop) {\n if (prop !== key && prop !== '@odata.etag') {\n if (DataUtil.isPlainObject(data[prop])) {\n _this.compareAndRemove(data[prop], original[prop]);\n var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; });\n if (final.length === 0) {\n delete data[prop];\n }\n }\n else if (data[prop] === original[prop]) {\n delete data[prop];\n }\n else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) {\n delete data[prop];\n }\n }\n });\n return data;\n };\n return ODataAdaptor;\n}(UrlAdaptor));\nexport { ODataAdaptor };\n/**\n * The OData v4 is an improved version of OData protocols.\n * The DataManager uses the ODataV4Adaptor to consume OData v4 services.\n * @hidden\n */\nvar ODataV4Adaptor = /** @class */ (function (_super) {\n __extends(ODataV4Adaptor, _super);\n function ODataV4Adaptor(props) {\n var _this = _super.call(this, props) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json, text/javascript, */*; q=0.01',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$count',\n search: '$search',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PATCH',\n localTime: false,\n apply: '$apply'\n });\n extend(_this.options, props || {});\n return _this;\n }\n /**\n * @hidden\n */\n ODataV4Adaptor.prototype.getModuleName = function () {\n return 'ODataV4Adaptor';\n };\n /**\n * Returns the query string which requests total count from the data source.\n * @param {boolean} e\n * @returns string\n */\n ODataV4Adaptor.prototype.onCount = function (e) {\n return e === true ? 'true' : '';\n };\n /**\n * Generate request string based on the filter criteria from query.\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n */\n ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var val = predicate.value;\n var isDate = val instanceof Date;\n if (query instanceof Query) {\n var queries = this.getQueryRequest(query);\n for (var i = 0; i < queries.filters.length; i++) {\n if (queries.filters[i].e.key === predicate.value) {\n requiresCast = true;\n }\n }\n }\n returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\n if (isDate) {\n returnValue = returnValue.replace(/datetime'(.*)'$/, '$1');\n }\n if (DataUtil.parse.isGuid(val)) {\n returnValue = returnValue.replace('guid', '').replace(/'/g, '');\n }\n return returnValue;\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n * @param {{fields:string[]} e\n * @param {string} operator\n * @param {string} key\n * @param {boolean}} ignoreCase\n */\n ODataV4Adaptor.prototype.onEachSearch = function (e) {\n var search = this.pvt.searches || [];\n search.push(e.key);\n this.pvt.searches = search;\n };\n /**\n * Generate query string based on the search criteria from query.\n * @param {Object} e\n */\n ODataV4Adaptor.prototype.onSearch = function (e) {\n return this.pvt.searches.join(' OR ');\n };\n /**\n * Returns the expand query string.\n * @param {string} e\n */\n ODataV4Adaptor.prototype.onExpand = function (e) {\n var _this = this;\n var selected = {};\n var expanded = {};\n var expands = e.expands.slice();\n var exArr = [];\n var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; });\n selects.forEach(function (select) {\n var splits = select.split('.');\n if (!(splits[0] in selected)) {\n selected[splits[0]] = [];\n }\n if (splits.length == 2) {\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1) {\n if (selected[splits[0]][0].indexOf('$expand') !== -1 && selected[splits[0]][0].indexOf(';$select=') === -1) {\n selected[splits[0]][0] = selected[splits[0]][0] + ';' + '$select=' + splits[1];\n }\n else {\n selected[splits[0]][0] = selected[splits[0]][0] + ',' + splits[1];\n }\n }\n else {\n selected[splits[0]].push('$select=' + splits[1]);\n }\n }\n else {\n var sel = '$select=' + splits[splits.length - 1];\n var exp = '';\n var close_1 = '';\n for (var i = 1; i < splits.length - 1; i++) {\n exp = exp + '$expand=' + splits[i] + '(';\n close_1 = close_1 + ')';\n }\n var combineVal = exp + sel + close_1;\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1 &&\n _this.expandQueryIndex(selected[splits[0]], true)) {\n var idx = _this.expandQueryIndex(selected[splits[0]]);\n selected[splits[0]][idx] = selected[splits[0]][idx] + combineVal.replace('$expand=', ',');\n }\n else {\n selected[splits[0]].push(combineVal);\n }\n }\n });\n //Auto expand from select query\n Object.keys(selected).forEach(function (expand) {\n if ((expands.indexOf(expand) === -1)) {\n expands.push(expand);\n }\n });\n expands.forEach(function (expand) {\n expanded[expand] = expand in selected ? expand + \"(\" + selected[expand].join(';') + \")\" : expand;\n });\n Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); });\n return exArr.join(',');\n };\n ODataV4Adaptor.prototype.expandQueryIndex = function (query, isExpand) {\n for (var i = 0; i < query.length; i++) {\n if (query[i].indexOf('$expand') !== -1) {\n return isExpand ? true : i;\n }\n }\n return isExpand ? false : 0;\n };\n /**\n * Returns the groupby query string.\n * @param {string} e\n */\n ODataV4Adaptor.prototype.onDistinct = function (distinctFields) {\n var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(',');\n return \"groupby((\" + fields + \"))\";\n };\n /**\n * Returns the select query string.\n * @param {string[]} e\n */\n ODataV4Adaptor.prototype.onSelect = function (e) {\n return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; }));\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) {\n if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') {\n request.setRequestHeader('Prefer', 'return=representation');\n }\n request.setRequestHeader('Accept', this.options.accept);\n };\n /**\n * Returns the data from the query processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @returns aggregateResult\n */\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaName = '@odata.context';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaName]) {\n var dataUrl = data[metaName].split('/$metadata#');\n this.rootUrl = dataUrl[0];\n this.resourceTableName = dataUrl[1];\n }\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var count = null;\n var dataCount = '@odata.count';\n if (query && query.isCountRequired) {\n if (dataCount in data) {\n count = data[dataCount];\n }\n }\n data = !isNullOrUndefined(data.value) ? data.value : data;\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates };\n };\n return ODataV4Adaptor;\n}(ODataAdaptor));\nexport { ODataV4Adaptor };\n/**\n * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML.\n * The DataManager uses the WebApiAdaptor to consume Web API.\n * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor\n * @hidden\n */\nvar WebApiAdaptor = /** @class */ (function (_super) {\n __extends(WebApiAdaptor, _super);\n function WebApiAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WebApiAdaptor.prototype.getModuleName = function () {\n return 'WebApiAdaptor';\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n */\n WebApiAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n type: 'POST',\n url: dm.dataSource.url,\n data: JSON.stringify(data)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n */\n WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n return {\n type: 'DELETE',\n url: dm.dataSource.url + '/' + value,\n data: JSON.stringify(value)\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n */\n WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n return {\n type: 'PUT',\n url: dm.dataSource.url,\n data: JSON.stringify(value)\n };\n };\n WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var _this = this;\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var req = [];\n var _loop_1 = function (i, x) {\n changes.addedRecords.forEach(function (j, d) {\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //insertion\n for (var i = 0, x = changes.addedRecords.length; i < x; i++) {\n _loop_1(i, x);\n }\n var _loop_2 = function (i, x) {\n changes.changedRecords.forEach(function (j, d) {\n var stat = {\n 'method': _this.options.updateType + ' ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //updation \n for (var i = 0, x = changes.changedRecords.length; i < x; i++) {\n _loop_2(i, x);\n }\n var _loop_3 = function (i, x) {\n changes.deletedRecords.forEach(function (j, d) {\n var state = {\n 'mtd': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '/' + url;\n }\n else if (url instanceof Date) {\n var datTime = data[i][key];\n return '/' + datTime.toJSON();\n }\n else {\n return \"/'\" + url + \"'\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url)\n + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //deletion\n for (var i = 0, x = changes.deletedRecords.length; i < x; i++) {\n _loop_3(i, x);\n }\n req.push('--' + initialGuid + '--', '');\n return {\n type: 'POST',\n url: url,\n contentType: 'multipart/mixed; boundary=' + initialGuid,\n data: req.join('\\r\\n')\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) {\n request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');\n };\n /**\n * Returns the data from the query processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @returns aggregateResult\n */\n WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var count = null;\n var args = {};\n if (request && request.type.toLowerCase() !== 'post') {\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n if (!DataUtil.isNull(data.Count)) {\n count = data.Count;\n }\n }\n if (version < 3 && data.Items) {\n data = data.Items;\n }\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n }\n args.result = args.result || data;\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n return WebApiAdaptor;\n}(ODataAdaptor));\nexport { WebApiAdaptor };\n/**\n * WebMethodAdaptor can be used by DataManager to interact with web method.\n * @hidden\n */\nvar WebMethodAdaptor = /** @class */ (function (_super) {\n __extends(WebMethodAdaptor, _super);\n function WebMethodAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Prepare the request body based on the query.\n * The query information can be accessed at the WebMethod using variable named `value`.\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @returns application\n */\n WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters);\n var getData = 'data';\n var data = DataUtil.parse.parseJson(obj[getData]);\n var result = {};\n var value = 'value';\n if (data.param) {\n for (var i = 0; i < data.param.length; i++) {\n var param = data.param[i];\n var key = Object.keys(param)[0];\n result[key] = param[key];\n }\n }\n result[value] = data;\n var pvtData = 'pvtData';\n var url = 'url';\n return {\n data: JSON.stringify(result),\n url: obj[url],\n pvtData: obj[pvtData],\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n };\n return WebMethodAdaptor;\n}(UrlAdaptor));\nexport { WebMethodAdaptor };\n/**\n * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side.\n * It interacts with server-side only for CRUD operations.\n * @hidden\n */\nvar RemoteSaveAdaptor = /** @class */ (function (_super) {\n __extends(RemoteSaveAdaptor, _super);\n /**\n * @hidden\n */\n function RemoteSaveAdaptor() {\n var _this = _super.call(this) || this;\n setValue('beforeSend', UrlAdaptor.prototype.beforeSend, _this);\n return _this;\n }\n RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n this.pvt.position = position;\n this.updateType = 'add';\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) {\n _super.prototype.remove.call(this, dm, keyField, val);\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: val,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) {\n this.updateType = 'update';\n this.updateKey = keyField;\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: val,\n action: 'update',\n keyColumn: keyField,\n key: val[keyField],\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) {\n var i;\n var newData = request ? JSON.parse(request.data) : data;\n data = newData.action === 'batch' ? DataUtil.parse.parseJson(data) : data;\n if (this.updateType === 'add') {\n _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position);\n }\n if (this.updateType === 'update') {\n _super.prototype.update.call(this, ds, this.updateKey, data);\n }\n this.updateType = undefined;\n if (data.added) {\n for (i = 0; i < data.added.length; i++) {\n _super.prototype.insert.call(this, ds, data.added[i]);\n }\n }\n if (data.changed) {\n for (i = 0; i < data.changed.length; i++) {\n _super.prototype.update.call(this, ds, e.key, data.changed[i]);\n }\n }\n if (data.deleted) {\n for (i = 0; i < data.deleted.length; i++) {\n _super.prototype.remove.call(this, ds, e.key, data.deleted[i]);\n }\n }\n return data;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * Also perform the changes in the locally cached data to sync with the remote data.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e.url,\n key: e.key\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.addParams = function (options) {\n var urlParams = new UrlAdaptor();\n urlParams.addParams(options);\n };\n return RemoteSaveAdaptor;\n}(JsonAdaptor));\nexport { RemoteSaveAdaptor };\n/**\n * Ajax Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions.\n * @hidden\n */\nvar CustomDataAdaptor = /** @class */ (function (_super) {\n __extends(CustomDataAdaptor, _super);\n function CustomDataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n getData: new Function(),\n addRecord: new Function(),\n updateRecord: new Function(),\n deleteRecord: new Function(),\n batchUpdate: new Function()\n });\n extend(_this.options, props || {});\n return _this;\n }\n CustomDataAdaptor.prototype.getModuleName = function () {\n return 'CustomDataAdaptor';\n };\n return CustomDataAdaptor;\n}(UrlAdaptor));\nexport { CustomDataAdaptor };\n/**\n * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server.\n * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations.\n * @hidden\n */\nvar GraphQLAdaptor = /** @class */ (function (_super) {\n __extends(GraphQLAdaptor, _super);\n function GraphQLAdaptor(options) {\n var _this = _super.call(this) || this;\n _this.opt = options;\n _this.schema = _this.opt.response;\n _this.query = _this.opt.query;\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\n _this.getQuery = function () { return _this.query; };\n return _this;\n }\n GraphQLAdaptor.prototype.getModuleName = function () {\n return 'GraphQLAdaptor';\n };\n /**\n * Process the JSON data based on the provided queries.\n * @param {DataManager} dm\n * @param {Query} query?\n */\n GraphQLAdaptor.prototype.processQuery = function (datamanager, query) {\n var urlQuery = _super.prototype.processQuery.apply(this, arguments);\n var dm = JSON.parse(urlQuery.data);\n // constructing GraphQL parameters\n var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where',\n 'search', 'requiresCounts', 'aggregates', 'params'];\n var temp = {};\n var str = 'searchwhereparams';\n keys.filter(function (e) {\n temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e];\n });\n var vars = this.getVariables() || {};\n vars['datamanager'] = temp;\n var data = JSON.stringify({\n query: this.getQuery(),\n variables: vars\n });\n urlQuery.data = data;\n return urlQuery;\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @returns DataResult\n */\n GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) {\n var res = resData;\n var count;\n var aggregates;\n var result = getValue(this.schema.result, res.data);\n if (this.schema.count) {\n count = getValue(this.schema.count, res.data);\n }\n if (this.schema.aggregates) {\n aggregates = getValue(this.schema.aggregates, res.data);\n aggregates = !isNullOrUndefined(aggregates) ? DataUtil.parse.parseJson(aggregates) : aggregates;\n }\n var pvt = request.pvtData || {};\n var args = { result: result, aggregates: aggregates };\n var data = args;\n if (pvt && pvt.groups && pvt.groups.length) {\n this.getAggregateResult(pvt, data, args, null, query);\n }\n return !isNullOrUndefined(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n */\n GraphQLAdaptor.prototype.insert = function () {\n var inserted = _super.prototype.insert.apply(this, arguments);\n return this.generateCrudData(inserted, 'insert');\n };\n /**\n * Prepare and returns request body which is used to update a new record in the table.\n */\n GraphQLAdaptor.prototype.update = function () {\n var inserted = _super.prototype.update.apply(this, arguments);\n return this.generateCrudData(inserted, 'update');\n };\n /**\n * Prepare and returns request body which is used to remove a new record in the table.\n */\n GraphQLAdaptor.prototype.remove = function () {\n var inserted = _super.prototype.remove.apply(this, arguments);\n return this.generateCrudData(inserted, 'remove');\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param {Query} query\n * @param {Object} original\n */\n GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var batch = _super.prototype.batchRequest.apply(this, arguments);\n var bData = JSON.parse(batch.data);\n bData.key = e.key;\n batch.data = JSON.stringify(bData);\n return this.generateCrudData(batch, 'batch');\n };\n GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) {\n var parsed = JSON.parse(crudData.data);\n crudData.data = JSON.stringify({\n query: this.opt.getMutation(action),\n variables: parsed\n });\n return crudData;\n };\n return GraphQLAdaptor;\n}(UrlAdaptor));\nexport { GraphQLAdaptor };\n/**\n * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages.\n * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager\n * @hidden\n */\nvar CacheAdaptor = /** @class */ (function (_super) {\n __extends(CacheAdaptor, _super);\n /**\n * Constructor for CacheAdaptor class.\n * @param {CacheAdaptor} adaptor?\n * @param {number} timeStamp?\n * @param {number} pageSize?\n * @hidden\n */\n function CacheAdaptor(adaptor, timeStamp, pageSize) {\n var _this = _super.call(this) || this;\n _this.isCrudAction = false;\n _this.isInsertAction = false;\n if (!isNullOrUndefined(adaptor)) {\n _this.cacheAdaptor = adaptor;\n }\n _this.pageSize = pageSize;\n _this.guidId = DataUtil.getGuid('cacheAdaptor');\n var obj = { keys: [], results: [] };\n window.localStorage.setItem(_this.guidId, JSON.stringify(obj));\n var guid = _this.guidId;\n if (!isNullOrUndefined(timeStamp)) {\n setInterval(function () {\n var data;\n data = DataUtil.parse.parseJson(window.localStorage.getItem(guid));\n var forDel = [];\n for (var i = 0; i < data.results.length; i++) {\n var currentTime = +new Date();\n var requestTime = +new Date(data.results[i].timeStamp);\n data.results[i].timeStamp = currentTime - requestTime;\n if (currentTime - requestTime > timeStamp) {\n forDel.push(i);\n }\n }\n for (var i = 0; i < forDel.length; i++) {\n data.results.splice(forDel[i], 1);\n data.keys.splice(forDel[i], 1);\n }\n window.localStorage.removeItem(guid);\n window.localStorage.setItem(guid, JSON.stringify(data));\n }, timeStamp);\n }\n return _this;\n }\n /**\n * It will generate the key based on the URL when we send a request to server.\n * @param {string} url\n * @param {Query} query?\n * @hidden\n */\n CacheAdaptor.prototype.generateKey = function (url, query) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var key = url;\n var page = 'onPage';\n if (page in singles) {\n key += singles[page].pageIndex;\n }\n queries.sorts.forEach(function (obj) {\n key += obj.e.direction + obj.e.fieldName;\n });\n queries.groups.forEach(function (obj) {\n key += obj.e.fieldName;\n });\n queries.searches.forEach(function (obj) {\n key += obj.e.searchKey;\n });\n for (var filter = 0; filter < queries.filters.length; filter++) {\n var currentFilter = queries.filters[filter];\n if (currentFilter.e.isComplex) {\n var newQuery = query.clone();\n newQuery.queries = [];\n for (var i = 0; i < currentFilter.e.predicates.length; i++) {\n newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });\n }\n key += currentFilter.e.condition + this.generateKey(url, newQuery);\n }\n else {\n key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;\n }\n }\n return key;\n };\n /**\n * Process the query to generate request body.\n * If the data is already cached, it will return the cached data.\n * @param {DataManager} dm\n * @param {Query} query?\n * @param {Object[]} hierarchyFilters?\n */\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var key = this.generateKey(dm.dataSource.url, query);\n var cachedItems;\n cachedItems = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;\n if (data != null && !this.isCrudAction && !this.isInsertAction) {\n return data;\n }\n this.isCrudAction = null;\n this.isInsertAction = null;\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n */\n CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (this.isInsertAction || (request && this.cacheAdaptor.options.batch &&\n DataUtil.endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) {\n return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes);\n }\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url;\n var obj = {};\n obj = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var index = obj.keys.indexOf(key);\n if (index !== -1) {\n obj.results.splice(index, 1);\n obj.keys.splice(index, 1);\n }\n obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count };\n while (obj.results.length > this.pageSize) {\n obj.results.splice(0, 1);\n obj.keys.splice(0, 1);\n }\n window.localStorage.setItem(this.guidId, JSON.stringify(obj));\n return data;\n };\n /**\n * Method will trigger before send the request to server side. Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n */\n CacheAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (!isNullOrUndefined(this.cacheAdaptor.options.batch) && DataUtil.endsWith(settings.url, this.cacheAdaptor.options.batch)\n && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.multipartAccept);\n }\n if (!dm.dataSource.crossDomain) {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.accept);\n }\n };\n /**\n * Updates existing record and saves the changes to the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.update(dm, keyField, value, tableName);\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n */\n CacheAdaptor.prototype.insert = function (dm, data, tableName) {\n this.isInsertAction = true;\n return this.cacheAdaptor.insert(dm, data, tableName);\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n */\n CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.remove(dm, keyField, value, tableName);\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n CacheAdaptor.prototype.batchRequest = function (dm, changes, e) {\n return this.cacheAdaptor.batchRequest(dm, changes, e);\n };\n return CacheAdaptor;\n}(UrlAdaptor));\nexport { CacheAdaptor };\n","import { Ajax } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query } from './query';\nimport { ODataAdaptor, JsonAdaptor, CacheAdaptor, RemoteSaveAdaptor, CustomDataAdaptor } from './adaptors';\n/**\n * DataManager is used to manage and manipulate relational data.\n */\nvar DataManager = /** @class */ (function () {\n /**\n * Constructor for DataManager class\n * @param {DataOptions|JSON[]} dataSource?\n * @param {Query} query?\n * @param {AdaptorOptions|string} adaptor?\n * @hidden\n */\n function DataManager(dataSource, query, adaptor) {\n var _this = this;\n /** @hidden */\n this.dateParse = true;\n /** @hidden */\n this.timeZoneHandling = true;\n this.requests = [];\n if (!dataSource && !this.dataSource) {\n dataSource = [];\n }\n adaptor = adaptor || dataSource.adaptor;\n if (dataSource && dataSource.timeZoneHandling === false) {\n this.timeZoneHandling = dataSource.timeZoneHandling;\n }\n var data;\n if (dataSource instanceof Array) {\n data = {\n json: dataSource,\n offline: true\n };\n }\n else if (typeof dataSource === 'object') {\n if (!dataSource.json) {\n dataSource.json = [];\n }\n data = {\n url: dataSource.url,\n insertUrl: dataSource.insertUrl,\n removeUrl: dataSource.removeUrl,\n updateUrl: dataSource.updateUrl,\n crudUrl: dataSource.crudUrl,\n batchUrl: dataSource.batchUrl,\n json: dataSource.json,\n headers: dataSource.headers,\n accept: dataSource.accept,\n data: dataSource.data,\n timeTillExpiration: dataSource.timeTillExpiration,\n cachingPageSize: dataSource.cachingPageSize,\n enableCaching: dataSource.enableCaching,\n requestType: dataSource.requestType,\n key: dataSource.key,\n crossDomain: dataSource.crossDomain,\n jsonp: dataSource.jsonp,\n dataType: dataSource.dataType,\n offline: dataSource.offline !== undefined ? dataSource.offline\n : dataSource.adaptor instanceof RemoteSaveAdaptor || dataSource.adaptor instanceof CustomDataAdaptor ?\n false : dataSource.url ? false : true,\n requiresFormat: dataSource.requiresFormat\n };\n }\n else {\n DataUtil.throwError('DataManager: Invalid arguments');\n }\n if (data.requiresFormat === undefined && !DataUtil.isCors()) {\n data.requiresFormat = isNullOrUndefined(data.crossDomain) ? true : data.crossDomain;\n }\n if (data.dataType === undefined) {\n data.dataType = 'json';\n }\n this.dataSource = data;\n this.defaultQuery = query;\n if (data.url && data.offline && !data.json.length) {\n this.isDataAvailable = false;\n this.adaptor = adaptor || new ODataAdaptor();\n this.dataSource.offline = false;\n this.ready = this.executeQuery(query || new Query());\n this.ready.then(function (e) {\n _this.dataSource.offline = true;\n _this.isDataAvailable = true;\n data.json = e.result;\n _this.adaptor = new JsonAdaptor();\n });\n }\n else {\n this.adaptor = data.offline ? new JsonAdaptor() : new ODataAdaptor();\n }\n if (!data.jsonp && this.adaptor instanceof ODataAdaptor) {\n data.jsonp = 'callback';\n }\n this.adaptor = adaptor || this.adaptor;\n if (data.enableCaching) {\n this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);\n }\n return this;\n }\n /**\n * Overrides DataManager's default query with given query.\n * @param {Query} query - Defines the new default query.\n */\n DataManager.prototype.setDefaultQuery = function (query) {\n this.defaultQuery = query;\n return this;\n };\n /**\n * Executes the given query with local data source.\n * @param {Query} query - Defines the query to retrieve data.\n */\n DataManager.prototype.executeLocal = function (query) {\n if (!this.defaultQuery && !(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeLocal() : A query is required to execute');\n }\n if (!this.dataSource.json) {\n DataUtil.throwError('DataManager - executeLocal() : Json data is required to execute');\n }\n query = query || this.defaultQuery;\n var result = this.adaptor.processQuery(this, query);\n if (query.subQuery) {\n var from = query.subQuery.fromTable;\n var lookup = query.subQuery.lookups;\n var res = query.isCountRequired ? result.result :\n result;\n if (lookup && lookup instanceof Array) {\n DataUtil.buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key);\n }\n for (var j = 0; j < res.length; j++) {\n if (res[j][from] instanceof Array) {\n res[j] = extend({}, {}, res[j]);\n res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query);\n }\n }\n }\n return this.adaptor.processResponse(result, this, query);\n };\n /**\n * Executes the given query with either local or remote data source.\n * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed.\n * @param {Query|Function} query - Defines the query to retrieve data.\n * @param {Function} done - Defines the callback function and triggers when the Promise is resolved.\n * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected.\n * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected.\n */\n DataManager.prototype.executeQuery = function (query, done, fail, always) {\n var _this = this;\n var makeRequest = 'makeRequest';\n if (typeof query === 'function') {\n always = fail;\n fail = done;\n done = query;\n query = null;\n }\n if (!query) {\n query = this.defaultQuery;\n }\n if (!(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeQuery() : A query is required to execute');\n }\n var deffered = new Deferred();\n var args = { query: query };\n if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '')\n || (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {\n var result = this.adaptor.processQuery(this, query);\n if (!isNullOrUndefined(this.adaptor[makeRequest])) {\n this.adaptor[makeRequest](result, deffered, args, query);\n }\n else if (!isNullOrUndefined(result.url) || this.isCustomDataAdaptor(this.adaptor)) {\n this.requests = [];\n this.makeRequest(result, deffered, args, query);\n }\n else {\n args = DataManager.getDeferedArgs(query, result, args);\n deffered.resolve(args);\n }\n }\n else {\n DataManager.nextTick(function () {\n var res = _this.executeLocal(query);\n args = DataManager.getDeferedArgs(query, res, args);\n deffered.resolve(args);\n });\n }\n if (done || fail) {\n deffered.promise.then(done, fail);\n }\n if (always) {\n deffered.promise.then(always, always);\n }\n return deffered.promise;\n };\n DataManager.getDeferedArgs = function (query, result, args) {\n if (query.isCountRequired) {\n args.result = result.result;\n args.count = result.count;\n args.aggregates = result.aggregates;\n }\n else {\n args.result = result;\n }\n return args;\n };\n DataManager.nextTick = function (fn) {\n (window.setImmediate || window.setTimeout)(fn, 0);\n };\n DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) {\n return extend({}, {\n type: 'GET',\n dataType: this.dataSource.dataType,\n crossDomain: this.dataSource.crossDomain,\n jsonp: this.dataSource.jsonp,\n cache: true,\n processData: false,\n onSuccess: fnSuccess,\n onFailure: fnFail\n }, url);\n };\n // tslint:disable-next-line:max-func-body-length\n DataManager.prototype.makeRequest = function (url, deffered, args, query) {\n var _this = this;\n var isSelector = !!query.subQuerySelector;\n var fnFail = function (e) {\n args.error = e;\n deffered.reject(args);\n };\n var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) {\n args.xhr = xhr;\n args.count = count ? parseInt(count.toString(), 10) : 0;\n args.result = data;\n args.request = request;\n args.aggregates = aggregates;\n args.actual = actual;\n args.virtualSelectRecords = virtualSelectRecords;\n deffered.resolve(args);\n };\n var fnQueryChild = function (data, selector) {\n var subDeffer = new Deferred();\n var childArgs = { parent: args };\n query.subQuery.isChild = true;\n var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector);\n var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery);\n if (!isSelector) {\n subDeffer.then(function (subData) {\n if (data) {\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key);\n process(data, subData.count, subData.xhr);\n }\n }, fnFail);\n }\n return childReq;\n };\n var fnSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n if (!isNullOrUndefined(data['errors'])) {\n return fnFail(data['errors'], request);\n }\n }\n if (_this.isCustomDataAdaptor(_this.adaptor)) {\n request = extend({}, _this.ajaxReqOption, request);\n }\n if (request.httpRequest.getResponseHeader('Content-Type').indexOf('xml') === -1 && _this.dateParse) {\n data = DataUtil.parse.parseJson(data);\n }\n var result = _this.adaptor.processResponse(data, _this, query, request.httpRequest, request);\n var count = 0;\n var aggregates = null;\n var virtualSelectRecords = 'virtualSelectRecords';\n var virtualRecords = data[virtualSelectRecords];\n if (query.isCountRequired) {\n count = result.count;\n aggregates = result.aggregates;\n result = result.result;\n }\n if (!query.subQuery) {\n process(result, count, request.httpRequest, request.type, data, aggregates, virtualRecords);\n return;\n }\n if (!isSelector) {\n fnQueryChild(result, request);\n }\n };\n var req = this.extendRequest(url, fnSuccess, fnFail);\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_1 = new Ajax(req);\n ajax_1.beforeSend = function () {\n _this.beforeSend(ajax_1.httpRequest, ajax_1);\n };\n req = ajax_1.send();\n req.catch(function (e) { return true; }); // to handle failure remote requests. \n this.requests.push(ajax_1);\n }\n else {\n this.ajaxReqOption = req;\n var request = req;\n this.adaptor.options.getData({\n data: request.data,\n onSuccess: request.onSuccess, onFailure: request.onFailure\n });\n }\n if (isSelector) {\n var promise = void 0;\n var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query });\n if (res && res.length) {\n promise = Promise.all([req, fnQueryChild(null, res)]);\n promise.then(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = args[0];\n var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].httpRequest, _this.requests[0]);\n var count = 0;\n if (query.isCountRequired) {\n count = pResult.count;\n pResult = pResult.result;\n }\n var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].httpRequest, _this.requests[1]);\n count = 0;\n if (query.subQuery.isCountRequired) {\n count = cResult.count;\n cResult = cResult.result;\n }\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key);\n isSelector = false;\n process(pResult, count, _this.requests[0].httpRequest);\n });\n }\n else {\n isSelector = false;\n }\n }\n return req;\n };\n DataManager.prototype.beforeSend = function (request, settings) {\n this.adaptor.beforeSend(this, request, settings);\n var headers = this.dataSource.headers;\n var props;\n for (var i = 0; headers && i < headers.length; i++) {\n props = [];\n var keys = Object.keys(headers[i]);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n props.push(prop);\n request.setRequestHeader(prop, headers[i][prop]);\n }\n }\n };\n /**\n * Save bulk changes to the given table name.\n * User can add a new record, edit an existing record, and delete a record at the same time.\n * If the datasource from remote, then updated in a single post.\n * @param {Object} changes - Defines the CrudOptions.\n * @param {string} key - Defines the column field.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) {\n var _this = this;\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var args = {\n url: tableName,\n key: key || this.dataSource.key\n };\n var req = this.adaptor.batchRequest(this, changes, args, query || new Query(), original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else if (!this.isCustomDataAdaptor(this.adaptor)) {\n var deff_1 = new Deferred();\n var ajax_2 = new Ajax(req);\n ajax_2.beforeSend = function () {\n _this.beforeSend(ajax_2.httpRequest, ajax_2);\n };\n ajax_2.onSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n if (!isNullOrUndefined(data['errors'])) {\n ajax_2.onFailure(JSON.stringify(data['errors']));\n }\n }\n deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.httpRequest, request, changes, args));\n };\n ajax_2.onFailure = function (e) {\n deff_1.reject([{ error: e }]);\n };\n ajax_2.send().catch(function (e) { return true; }); // to handle the failure requests. \n return deff_1.promise;\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.batchUpdate);\n }\n };\n /**\n * Inserts new record in the given table.\n * @param {Object} data - Defines the data to insert.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.insert = function (data, tableName, query, position) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var req = this.adaptor.insert(this, data, tableName, query, position);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.addRecord);\n }\n };\n /**\n * Removes data from the table with the given key.\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.remove = function (keyField, value, tableName, query) {\n if (typeof value === 'object') {\n value = DataUtil.getObject(keyField, value);\n }\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.remove(this, keyField, value, tableName, query);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var remove = this.adaptor.options.deleteRecord;\n return this.doAjaxRequest(res, remove);\n }\n };\n /**\n * Updates existing record in the given table.\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.update = function (keyField, value, tableName, query, original) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.update(this, keyField, value, tableName, query, original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var update = this.adaptor.options.updateRecord;\n return this.doAjaxRequest(res, update);\n }\n };\n DataManager.prototype.isCustomDataAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'CustomDataAdaptor';\n };\n DataManager.prototype.isGraphQLAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'GraphQLAdaptor';\n };\n DataManager.prototype.successFunc = function (record, request) {\n if (this.isGraphQLAdaptor(this.adaptor)) {\n var data = JSON.parse(record);\n if (!isNullOrUndefined(data['errors'])) {\n this.failureFunc(JSON.stringify(data['errors']));\n }\n }\n if (this.isCustomDataAdaptor(this.adaptor)) {\n request = extend({}, this.ajaxReqOption, request);\n }\n try {\n DataUtil.parse.parseJson(record);\n }\n catch (e) {\n record = [];\n }\n record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.httpRequest, request);\n this.ajaxDeffered.resolve(record);\n };\n ;\n DataManager.prototype.failureFunc = function (e) {\n this.ajaxDeffered.reject([{ error: e }]);\n };\n ;\n DataManager.prototype.doAjaxRequest = function (res, ajaxFunc) {\n var _this = this;\n res = extend({}, {\n type: 'POST',\n contentType: 'application/json; charset=utf-8',\n processData: false\n }, res);\n this.ajaxDeffered = new Deferred();\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_3 = new Ajax(res);\n ajax_3.beforeSend = function () {\n _this.beforeSend(ajax_3.httpRequest, ajax_3);\n };\n ajax_3.onSuccess = this.successFunc.bind(this);\n ajax_3.onFailure = this.failureFunc.bind(this);\n ajax_3.send().catch(function (e) { return true; }); // to handle the failure requests.\n }\n else {\n this.ajaxReqOption = res;\n ajaxFunc.call(this, {\n data: res.data, onSuccess: this.successFunc.bind(this),\n onFailure: this.failureFunc.bind(this)\n });\n }\n return this.ajaxDeffered.promise;\n };\n return DataManager;\n}());\nexport { DataManager };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataManager } from './manager';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Data manager common utility methods.\n * @hidden\n */\nvar DataUtil = /** @class */ (function () {\n function DataUtil() {\n }\n /**\n * Returns the value by invoking the provided parameter function.\n * If the paramater is not of type function then it will be returned as it is.\n * @param {Function|string|string[]|number} value\n * @param {Object} inst?\n * @hidden\n */\n DataUtil.getValue = function (value, inst) {\n if (typeof value === 'function') {\n return value.call(inst || {});\n }\n return value;\n };\n /**\n * Returns true if the input string ends with given string.\n * @param {string} input\n * @param {string} substr\n */\n DataUtil.endsWith = function (input, substr) {\n return input.slice && input.slice(-substr.length) === substr;\n };\n /**\n * Returns true if the input string starts with given string.\n * @param {string} str\n * @param {string} startstr\n */\n DataUtil.startsWith = function (input, start) {\n return input.slice(0, start.length) === start;\n };\n /**\n * To return the sorting function based on the string.\n * @param {string} order\n * @hidden\n */\n DataUtil.fnSort = function (order) {\n order = order ? DataUtil.toLowerCase(order) : 'ascending';\n if (order === 'ascending') {\n return this.fnAscending;\n }\n return this.fnDescending;\n };\n /**\n * Comparer function which is used to sort the data in ascending order.\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnAscending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return -1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y);\n }\n if (x === null || x === undefined) {\n return 1;\n }\n return x - y;\n };\n /**\n * Comparer function which is used to sort the data in descending order.\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnDescending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return 1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y) * -1;\n }\n if (x === null || x === undefined) {\n return -1;\n }\n return y - x;\n };\n DataUtil.extractFields = function (obj, fields) {\n var newObj = {};\n for (var i = 0; i < fields.length; i++) {\n newObj = this.setValue(fields[i], this.getObject(fields[i], obj), newObj);\n }\n return newObj;\n };\n /**\n * Select objects by given fields from jsonArray.\n * @param {Object[]} jsonArray\n * @param {string[]} fields\n */\n DataUtil.select = function (jsonArray, fields) {\n var newData = [];\n for (var i = 0; i < jsonArray.length; i++) {\n newData.push(this.extractFields(jsonArray[i], fields));\n }\n return newData;\n };\n /**\n * Group the input data based on the field name.\n * It also performs aggregation of the grouped records based on the aggregates paramater.\n * @param {Object[]} jsonArray\n * @param {string} field?\n * @param {Object[]} agg?\n * @param {number} level?\n * @param {Object[]} groupDs?\n */\n DataUtil.group = function (jsonArray, field, aggregates, level, groupDs, format, isLazyLoad) {\n level = level || 1;\n var jsonData = jsonArray;\n var guid = 'GroupGuid';\n if (jsonData.GroupGuid === consts[guid]) {\n var _loop_1 = function (j) {\n if (!isNullOrUndefined(groupDs)) {\n var indx = -1;\n var temp = groupDs.filter(function (e) { return e.key === jsonData[j].key; });\n indx = groupDs.indexOf(temp[0]);\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, groupDs[indx].items, format, isLazyLoad);\n jsonData[j].count = groupDs[indx].count;\n }\n else {\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, null, format, isLazyLoad);\n jsonData[j].count = jsonData[j].items.length;\n }\n };\n var this_1 = this;\n for (var j = 0; j < jsonData.length; j++) {\n _loop_1(j);\n }\n jsonData.childLevels += 1;\n return jsonData;\n }\n var grouped = {};\n var groupedArray = [];\n groupedArray.GroupGuid = consts[guid];\n groupedArray.level = level;\n groupedArray.childLevels = 0;\n groupedArray.records = jsonData;\n var _loop_2 = function (i) {\n var val = this_2.getVal(jsonData, i, field);\n if (!isNullOrUndefined(format)) {\n val = format(val, field);\n }\n if (!grouped[val]) {\n grouped[val] = {\n key: val,\n count: 0,\n items: [],\n aggregates: {},\n field: field\n };\n groupedArray.push(grouped[val]);\n if (!isNullOrUndefined(groupDs)) {\n var tempObj = groupDs.filter(function (e) { return e.key === grouped[val].key; });\n grouped[val].count = tempObj[0].count;\n }\n }\n grouped[val].count = !isNullOrUndefined(groupDs) ? grouped[val].count : grouped[val].count += 1;\n if (!isLazyLoad || (isLazyLoad && aggregates.length)) {\n grouped[val].items.push(jsonData[i]);\n }\n };\n var this_2 = this;\n for (var i = 0; i < jsonData.length; i++) {\n _loop_2(i);\n }\n if (aggregates && aggregates.length) {\n var _loop_3 = function (i) {\n var res = {};\n var fn = void 0;\n var aggs = aggregates;\n for (var j = 0; j < aggregates.length; j++) {\n fn = DataUtil.aggregates[aggregates[j].type];\n if (!isNullOrUndefined(groupDs)) {\n var temp = groupDs.filter(function (e) { return e.key === groupedArray[i].key; });\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(temp[0].items, aggs[j].field);\n }\n }\n else {\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(groupedArray[i].items, aggs[j].field);\n }\n }\n }\n groupedArray[i].aggregates = res;\n };\n for (var i = 0; i < groupedArray.length; i++) {\n _loop_3(i);\n }\n }\n if (isLazyLoad && groupedArray.length && aggregates.length) {\n for (var i = 0; i < groupedArray.length; i++) {\n groupedArray[i].items = [];\n }\n }\n return jsonData.length && groupedArray || jsonData;\n };\n /**\n * It is used to categorize the multiple items based on a specific field in jsonArray.\n * The hierarchical queries are commonly required when you use foreign key binding.\n * @param {string} fKey\n * @param {string} from\n * @param {Object[]} source\n * @param {Group} lookup?\n * @param {string} pKey?\n * @hidden\n */\n DataUtil.buildHierarchy = function (fKey, from, source, lookup, pKey) {\n var i;\n var grp = {};\n var temp;\n if (lookup.result) {\n lookup = lookup.result;\n }\n if (lookup.GroupGuid) {\n this.throwError('DataManager: Do not have support Grouping in hierarchy');\n }\n for (i = 0; i < lookup.length; i++) {\n var fKeyData = this.getObject(fKey, lookup[i]);\n temp = grp[fKeyData] || (grp[fKeyData] = []);\n temp.push(lookup[i]);\n }\n for (i = 0; i < source.length; i++) {\n var fKeyData = this.getObject(pKey || fKey, source[i]);\n source[i][from] = grp[fKeyData];\n }\n };\n /**\n * The method used to get the field names which started with specified characters.\n * @param {Object} obj\n * @param {string[]} fields?\n * @param {string} prefix?\n * @hidden\n */\n DataUtil.getFieldList = function (obj, fields, prefix) {\n if (prefix === undefined) {\n prefix = '';\n }\n if (fields === undefined || fields === null) {\n return this.getFieldList(obj, [], prefix);\n }\n var copyObj = obj;\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (typeof copyObj[prop] === 'object' && !(copyObj[prop] instanceof Array)) {\n this.getFieldList(copyObj[prop], fields, prefix + prop + '.');\n }\n else {\n fields.push(prefix + prop);\n }\n }\n return fields;\n };\n /**\n * Gets the value of the property in the given object.\n * The complex object can be accessed by providing the field names concatenated with dot(.).\n * @param {string} nameSpace - The name of the property to be accessed.\n * @param {Object} from - Defines the source object.\n */\n DataUtil.getObject = function (nameSpace, from) {\n if (!nameSpace) {\n return from;\n }\n if (!from) {\n return undefined;\n }\n if (nameSpace.indexOf('.') === -1) {\n return from[nameSpace];\n }\n var value = from;\n var splits = nameSpace.split('.');\n for (var i = 0; i < splits.length; i++) {\n if (value == null) {\n break;\n }\n value = value[splits[i]];\n }\n return value;\n };\n /**\n * To set value for the nameSpace in desired object.\n * @param {string} nameSpace - String value to the get the inner object.\n * @param {Object} value - Value that you need to set.\n * @param {Object} obj - Object to get the inner object value.\n * @return { [key: string]: Object; } | Object\n * @hidden\n */\n DataUtil.setValue = function (nameSpace, value, obj) {\n var keys = nameSpace.toString().split('.');\n var start = obj || {};\n var fromObj = start;\n var i;\n var length = keys.length;\n var key;\n for (i = 0; i < length; i++) {\n key = keys[i];\n if (i + 1 === length) {\n fromObj[key] = value === undefined ? undefined : value;\n }\n else if (isNullOrUndefined(fromObj[key])) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return start;\n };\n /**\n * Sort the given data based on the field and comparer.\n * @param {Object[]} ds - Defines the input data.\n * @param {string} field - Defines the field to be sorted.\n * @param {Function} comparer - Defines the comparer function used to sort the records.\n */\n DataUtil.sort = function (ds, field, comparer) {\n if (ds.length <= 1) {\n return ds;\n }\n var middle = parseInt((ds.length / 2).toString(), 10);\n var left = ds.slice(0, middle);\n var right = ds.slice(middle);\n left = this.sort(left, field, comparer);\n right = this.sort(right, field, comparer);\n return this.merge(left, right, field, comparer);\n };\n DataUtil.ignoreDiacritics = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n var result = value.split('');\n var newValue = result.map(function (temp) { return temp in DataUtil.diacritics ? DataUtil.diacritics[temp] : temp; });\n return newValue.join('');\n };\n DataUtil.merge = function (left, right, fieldName, comparer) {\n var result = [];\n var current;\n while (left.length > 0 || right.length > 0) {\n if (left.length > 0 && right.length > 0) {\n if (comparer) {\n current = comparer(this.getVal(left, 0, fieldName), this.getVal(right, 0, fieldName), left[0], right[0]) <= 0 ? left : right;\n }\n else {\n current = left[0][fieldName] < left[0][fieldName] ? left : right;\n }\n }\n else {\n current = left.length > 0 ? left : right;\n }\n result.push(current.shift());\n }\n return result;\n };\n DataUtil.getVal = function (array, index, field) {\n return field ? this.getObject(field, array[index]) : array[index];\n };\n DataUtil.toLowerCase = function (val) {\n return val ? typeof val === 'string' ? val.toLowerCase() : val.toString() : (val === 0 || val === false) ? val.toString() : '';\n };\n /**\n * To perform the filter operation with specified adaptor and returns the result.\n * @param {Object} adaptor\n * @param {string} fnName\n * @param {Object} param1?\n * @param {Object} param2?\n * @hidden\n */\n DataUtil.callAdaptorFunction = function (adaptor, fnName, param1, param2) {\n if (fnName in adaptor) {\n var res = adaptor[fnName](param1, param2);\n if (!isNullOrUndefined(res)) {\n param1 = res;\n }\n }\n return param1;\n };\n DataUtil.getAddParams = function (adp, dm, query) {\n var req = {};\n DataUtil.callAdaptorFunction(adp, 'addParams', {\n dm: dm,\n query: query,\n params: query.params,\n reqParams: req\n });\n return req;\n };\n /**\n * Checks wheather the given input is a plain object or not.\n * @param {Object|Object[]} obj\n */\n DataUtil.isPlainObject = function (obj) {\n return (!!obj) && (obj.constructor === Object);\n };\n /**\n * Returns true when the browser cross origin request.\n */\n DataUtil.isCors = function () {\n var xhr = null;\n var request = 'XMLHttpRequest';\n try {\n xhr = new window[request]();\n }\n catch (e) {\n // No exception handling\n }\n return !!xhr && ('withCredentials' in xhr);\n };\n /**\n * Generate random GUID value which will be prefixed with the given value.\n * @param {string} prefix\n */\n DataUtil.getGuid = function (prefix) {\n var hexs = '0123456789abcdef';\n var rand;\n return (prefix || '') + '00000000-0000-4000-0000-000000000000'.replace(/0/g, function (val, i) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var arr = new Uint8Array(1);\n window.crypto.getRandomValues(arr);\n rand = arr[0] % 16 | 0;\n }\n else {\n rand = Math.random() * 16 | 0;\n }\n return hexs[i === 19 ? rand & 0x3 | 0x8 : rand];\n });\n };\n /**\n * Checks wheather the given value is null or not.\n * @param {string|Object} val\n * @returns boolean\n */\n DataUtil.isNull = function (val) {\n return val === undefined || val === null;\n };\n /**\n * To get the required items from collection of objects.\n * @param {Object[]} array\n * @param {string} field\n * @param {Function} comparer\n * @returns Object\n * @hidden\n */\n DataUtil.getItemFromComparer = function (array, field, comparer) {\n var keyVal;\n var current;\n var key;\n var i = 0;\n var castRequired = typeof DataUtil.getVal(array, 0, field) === 'string';\n if (array.length) {\n while (isNullOrUndefined(keyVal) && i < array.length) {\n keyVal = DataUtil.getVal(array, i, field);\n key = array[i++];\n }\n }\n for (; i < array.length; i++) {\n current = DataUtil.getVal(array, i, field);\n if (isNullOrUndefined(current)) {\n continue;\n }\n if (castRequired) {\n keyVal = +keyVal;\n current = +current;\n }\n if (comparer(keyVal, current) > 0) {\n keyVal = current;\n key = array[i];\n }\n }\n return key;\n };\n /**\n * To get distinct values of Array or Array of Objects.\n * @param {Object[]} json\n * @param {string} field\n * @param {boolean} requiresCompleteRecord\n * @returns Object[]\n * * distinct array of objects is return when requiresCompleteRecord set as true.\n * @hidden\n */\n DataUtil.distinct = function (json, fieldName, requiresCompleteRecord) {\n requiresCompleteRecord = isNullOrUndefined(requiresCompleteRecord) ? false : requiresCompleteRecord;\n var result = [];\n var val;\n var tmp = {};\n json.forEach(function (data, index) {\n val = typeof (json[index]) === 'object' ? DataUtil.getVal(json, index, fieldName) : json[index];\n if (!(val in tmp)) {\n result.push(!requiresCompleteRecord ? val : json[index]);\n tmp[val] = 1;\n }\n });\n return result;\n };\n /**\n * Process the given records based on the datamanager string.\n * @param {string} datamanager\n * @param {Object[]} records\n */\n DataUtil.processData = function (dm, records) {\n var query = this.prepareQuery(dm);\n var sampledata = new DataManager(records);\n if (dm.requiresCounts) {\n query.requiresCount();\n }\n var result = sampledata.executeLocal(query);\n var returnValue = {\n result: dm.requiresCounts ? result.result : result,\n count: result.count,\n aggregates: JSON.stringify(result.aggregates)\n };\n return dm.requiresCounts ? returnValue : result;\n };\n DataUtil.prepareQuery = function (dm) {\n var _this = this;\n var query = new Query();\n if (dm.select) {\n query.select(dm.select);\n }\n if (dm.where) {\n var where = DataUtil.parse.parseJson(dm.where);\n where.filter(function (pred) {\n if (isNullOrUndefined(pred.condition)) {\n query.where(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent);\n }\n else {\n var predicateList = [];\n if (pred.field) {\n predicateList.push(new Predicate(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent));\n }\n else {\n predicateList = predicateList.concat(_this.getPredicate(pred.predicates));\n }\n if (pred.condition == 'or') {\n query.where(Predicate.or(predicateList));\n }\n else if (pred.condition == 'and') {\n query.where(Predicate.and(predicateList));\n }\n }\n });\n }\n if (dm.search) {\n var search = DataUtil.parse.parseJson(dm.search);\n search.filter(function (e) { return query.search(e.key, e.fields, e['operator'], e['ignoreCase'], e['ignoreAccent']); });\n }\n if (dm.aggregates) {\n dm.aggregates.filter(function (e) { return query.aggregate(e.type, e.field); });\n }\n if (dm.sorted) {\n dm.sorted.filter(function (e) { return query.sortBy(e.name, e.direction); });\n }\n if (dm.skip) {\n query.skip(dm.skip);\n }\n if (dm.take) {\n query.take(dm.take);\n }\n if (dm.group) {\n dm.group.filter(function (grp) { return query.group(grp); });\n }\n return query;\n };\n DataUtil.getPredicate = function (pred) {\n var mainPred = [];\n for (var i = 0; i < pred.length; i++) {\n var e = pred[i];\n if (e.field) {\n mainPred.push(new Predicate(e.field, e.operator, e.value, e.ignoreCase, e.ignoreAccent));\n }\n else {\n var childPred = [];\n var cpre = this.getPredicate(e.predicates);\n for (var _i = 0, _a = Object.keys(cpre); _i < _a.length; _i++) {\n var prop = _a[_i];\n childPred.push(cpre[prop]);\n }\n mainPred.push(e.condition == 'or' ? Predicate.or(childPred) : Predicate.and(childPred));\n }\n }\n return mainPred;\n };\n /**\n * Specifies the value which will be used to adjust the date value to server timezone.\n * @default null\n */\n DataUtil.serverTimezoneOffset = null;\n /**\n * Species whether are not to be parsed with serverTimezoneOffset value.\n * @hidden\n */\n DataUtil.timeZoneHandling = true;\n /**\n * Throw error with the given string as message.\n * @param {string} er\n */\n DataUtil.throwError = function (error) {\n try {\n throw new Error(error);\n }\n catch (e) {\n throw e.message + '\\n' + e.stack;\n }\n };\n DataUtil.aggregates = {\n /**\n * Calculate sum of the given field in the data.\n * @param {Object[]} ds\n * @param {string} field\n */\n sum: function (ds, field) {\n var result = 0;\n var val;\n var castRequired = typeof DataUtil.getVal(ds, 0, field) !== 'number';\n for (var i = 0; i < ds.length; i++) {\n val = DataUtil.getVal(ds, i, field);\n if (!isNaN(val) && val !== null) {\n if (castRequired) {\n val = +val;\n }\n result += val;\n }\n }\n return result;\n },\n /**\n * Calculate average value of the given field in the data.\n * @param {Object[]} ds\n * @param {string} field\n */\n average: function (ds, field) {\n return DataUtil.aggregates.sum(ds, field) / ds.length;\n },\n /**\n * Returns the min value of the data based on the field.\n * @param {Object[]} ds\n * @param {string|Function} field\n */\n min: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnAscending));\n },\n /**\n * Returns the max value of the data based on the field.\n * @param {Object[]} ds\n * @param {string} field\n * @returns number\n */\n max: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnDescending));\n },\n /**\n * Returns the total number of true value present in the data based on the given boolean field name.\n * @param {Object[]} ds\n * @param {string} field\n */\n truecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', true, true)).length;\n },\n /**\n * Returns the total number of false value present in the data based on the given boolean field name.\n * @param {Object[]} ds\n * @param {string} field\n */\n falsecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', false, true)).length;\n },\n /**\n * Returns the length of the given data.\n * @param {Object[]} ds\n * @param {string} field?\n * @returns number\n */\n count: function (ds, field) {\n return ds.length;\n }\n };\n /**\n * Specifies the Object with filter operators.\n */\n DataUtil.operatorSymbols = {\n '<': 'lessthan',\n '>': 'greaterthan',\n '<=': 'lessthanorequal',\n '>=': 'greaterthanorequal',\n '==': 'equal',\n '!=': 'notequal',\n '*=': 'contains',\n '$=': 'endswith',\n '^=': 'startswith'\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * * It will be used for date/number type filter query.\n */\n DataUtil.odBiOperator = {\n '<': ' lt ',\n '>': ' gt ',\n '<=': ' le ',\n '>=': ' ge ',\n '==': ' eq ',\n '!=': ' ne ',\n 'lessthan': ' lt ',\n 'lessthanorequal': ' le ',\n 'greaterthan': ' gt ',\n 'greaterthanorequal': ' ge ',\n 'equal': ' eq ',\n 'notequal': ' ne '\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odUniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'substringof',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'substringof'\n };\n /**\n * Specifies the Object with filter operators which will be used for ODataV4 filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odv4UniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'contains',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'contains'\n };\n DataUtil.diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n DataUtil.fnOperators = {\n /**\n * Returns true when the actual input is equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param {boolean} ignoreAccent?\n */\n equal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) === DataUtil.toLowerCase(expected);\n }\n return actual === expected;\n },\n /**\n * Returns true when the actual input is not equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n notequal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n return !DataUtil.fnOperators.equal(actual, expected, ignoreCase);\n },\n /**\n * Returns true when the actual input is less than to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n lessthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) < DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual < expected;\n },\n /**\n * Returns true when the actual input is greater than to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n greaterthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) > DataUtil.toLowerCase(expected);\n }\n return actual > expected;\n },\n /**\n * Returns true when the actual input is less than or equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n lessthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) <= DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual <= expected;\n },\n /**\n * Returns true when the actual input is greater than or equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n greaterthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) >= DataUtil.toLowerCase(expected);\n }\n return actual >= expected;\n },\n /**\n * Returns true when the actual input contains the given string.\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n */\n contains: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) !== -1;\n }\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n actual.toString().indexOf(expected) !== -1;\n },\n /**\n * Returns true when the given input value is not null.\n * @param {string|number} actual\n * @returns boolean\n */\n notnull: function (actual) {\n return actual !== null;\n },\n /**\n * Returns true when the given input value is null.\n * @param {string|number} actual\n * @returns boolean\n */\n isnull: function (actual) {\n return actual === null;\n },\n /**\n * Returns true when the actual input starts with the given string\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n startswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.startsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.startsWith(actual, expected);\n },\n /**\n * Returns true when the actual input ends with the given string.\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n endswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.endsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.endsWith(actual, expected);\n },\n /**\n * It will return the filter operator based on the filter symbol.\n * @param {string} operator\n * @hidden\n */\n processSymbols: function (operator) {\n var fnName = DataUtil.operatorSymbols[operator];\n if (fnName) {\n var fn = DataUtil.fnOperators[fnName];\n return fn;\n }\n return DataUtil.throwError('Query - Process Operator : Invalid operator');\n },\n /**\n * It will return the valid filter operator based on the specified operators.\n * @param {string} operator\n * @hidden\n */\n processOperator: function (operator) {\n var fn = DataUtil.fnOperators[operator];\n if (fn) {\n return fn;\n }\n return DataUtil.fnOperators.processSymbols(operator);\n }\n };\n /**\n * To perform the parse operation on JSON data, like convert to string from JSON or convert to JSON from string.\n */\n DataUtil.parse = {\n /**\n * Parse the given string to the plain JavaScript object.\n * @param {string|Object|Object[]} jsonText\n */\n parseJson: function (jsonText) {\n if (typeof jsonText === 'string') {\n jsonText = JSON.parse(jsonText, DataUtil.parse.jsonReviver);\n }\n else if (jsonText instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(jsonText);\n }\n else if (typeof jsonText === 'object' && jsonText !== null) {\n DataUtil.parse.iterateAndReviveJson(jsonText);\n }\n return jsonText;\n },\n /**\n * It will perform on array of values.\n * @param {string[]|Object[]} array\n * @hidden\n */\n iterateAndReviveArray: function (array) {\n for (var i = 0; i < array.length; i++) {\n if (typeof array[i] === 'object' && array[i] !== null) {\n DataUtil.parse.iterateAndReviveJson(array[i]);\n }\n else if (typeof array[i] === 'string' && !/^[\\s]*\\[|^[\\s]*\\{(.)+:|\\\"/g.test(array[i])) {\n array[i] = DataUtil.parse.jsonReviver('', array[i]);\n }\n else {\n array[i] = DataUtil.parse.parseJson(array[i]);\n }\n }\n },\n /**\n * It will perform on JSON values\n * @param {JSON} json\n * @hidden\n */\n iterateAndReviveJson: function (json) {\n var value;\n var keys = Object.keys(json);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var prop = keys_2[_i];\n if (DataUtil.startsWith(prop, '__')) {\n continue;\n }\n value = json[prop];\n if (typeof value === 'object') {\n if (value instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(value);\n }\n else if (value) {\n DataUtil.parse.iterateAndReviveJson(value);\n }\n }\n else {\n json[prop] = DataUtil.parse.jsonReviver(json[prop], value);\n }\n }\n },\n /**\n * It will perform on JSON values\n * @param {string} field\n * @param {string|Date} value\n * @hidden\n */\n jsonReviver: function (field, value) {\n if (typeof value === 'string') {\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n var offSet = DataUtil.timeZoneHandling ? DataUtil.serverTimezoneOffset : null;\n if (ms) {\n return DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), offSet, true);\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var isUTC = value.indexOf('Z') > -1 || value.indexOf('z') > -1;\n var arr = value.split(/[^0-9.]/);\n if (isUTC) {\n if (arr[5].indexOf('.') > -1) {\n var secondsMs = arr[5].split('.');\n arr[5] = secondsMs[0];\n arr[6] = new Date(value).getUTCMilliseconds().toString();\n }\n else {\n arr[6] = '00';\n }\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10), parseInt(arr[6], 10)), DataUtil.serverTimezoneOffset, false);\n }\n else {\n var utcFormat = new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10));\n var hrs = parseInt(arr[6], 10);\n var mins = parseInt(arr[7], 10);\n if (isNaN(hrs) && isNaN(mins)) {\n return utcFormat;\n }\n if (value.indexOf('+') > -1) {\n utcFormat.setHours(utcFormat.getHours() - hrs, utcFormat.getMinutes() - mins);\n }\n else {\n utcFormat.setHours(utcFormat.getHours() + hrs, utcFormat.getMinutes() + mins);\n }\n value = DataUtil.dateParse\n .toTimeZone(utcFormat, DataUtil.serverTimezoneOffset, false);\n }\n if (DataUtil.serverTimezoneOffset == null) {\n value = DataUtil.dateParse.addSelfOffset(value);\n }\n }\n }\n return value;\n },\n /**\n * Check wheather the given value is JSON or not.\n * @param {Object[]} jsonData\n */\n isJson: function (jsonData) {\n if (typeof jsonData[0] === 'string') {\n return jsonData;\n }\n return DataUtil.parse.parseJson(jsonData);\n },\n /**\n * Checks wheather the given value is GUID or not.\n * @param {string} value\n */\n isGuid: function (value) {\n var regex = /[A-Fa-f0-9]{8}(?:-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}/i;\n var match = regex.exec(value);\n return match != null;\n },\n /**\n * The method used to replace the value based on the type.\n * @param {Object} value\n * @param {boolean} stringify\n * @hidden\n */\n replacer: function (value, stringify) {\n if (DataUtil.isPlainObject(value)) {\n return DataUtil.parse.jsonReplacer(value, stringify);\n }\n if (value instanceof Array) {\n return DataUtil.parse.arrayReplacer(value);\n }\n if (value instanceof Date) {\n return DataUtil.parse.jsonReplacer({ val: value }, stringify).val;\n }\n return value;\n },\n /**\n * It will replace the JSON value.\n * @param {string} key\n * @param {Object} val\n * @hidden\n */\n jsonReplacer: function (val, stringify) {\n var value;\n var keys = Object.keys(val);\n for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) {\n var prop = keys_3[_i];\n value = val[prop];\n if (!(value instanceof Date)) {\n continue;\n }\n var d = value;\n if (DataUtil.serverTimezoneOffset == null) {\n val[prop] = DataUtil.dateParse.toTimeZone(d, null).toJSON();\n }\n else {\n d = new Date(+d + DataUtil.serverTimezoneOffset * 3600000);\n val[prop] = DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(d), null).toJSON();\n }\n }\n return val;\n },\n /**\n * It will replace the Array of value.\n * @param {string} key\n * @param {Object[]} val\n * @hidden\n */\n arrayReplacer: function (val) {\n for (var i = 0; i < val.length; i++) {\n if (DataUtil.isPlainObject(val[i])) {\n val[i] = DataUtil.parse.jsonReplacer(val[i]);\n }\n else if (val[i] instanceof Date) {\n val[i] = DataUtil.parse.jsonReplacer({ date: val[i] }).date;\n }\n }\n return val;\n },\n /**\n * It will replace the Date object with respective to UTC format value.\n * @param {string} key\n * @param {any} value\n * @hidden\n */\n /* tslint:disable-next-line:no-any */\n jsonDateReplacer: function (key, value) {\n if (key === 'value' && value) {\n if (typeof value === 'string') {\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n if (ms) {\n value = DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), null, true);\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var arr = value.split(/[^0-9]/);\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)), null, true);\n }\n }\n if (value instanceof Date) {\n value = DataUtil.dateParse.addSelfOffset(value);\n if (DataUtil.serverTimezoneOffset === null) {\n return DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(value), null).toJSON();\n }\n else {\n value = DataUtil.dateParse.toTimeZone(value, (((value.getTimezoneOffset() / 60) * 2)\n - DataUtil.serverTimezoneOffset), false);\n return value.toJSON();\n }\n }\n }\n return value;\n }\n };\n /**\n * @hidden\n */\n DataUtil.dateParse = {\n addSelfOffset: function (input) {\n return new Date(+input - (input.getTimezoneOffset() * 60000));\n },\n toUTC: function (input) {\n return new Date(+input + (input.getTimezoneOffset() * 60000));\n },\n toTimeZone: function (input, offset, utc) {\n if (offset === null) {\n return input;\n }\n var unix = utc ? DataUtil.dateParse.toUTC(input) : input;\n return new Date(+unix - (offset * 3600000));\n },\n toLocalTime: function (input) {\n var datefn = input;\n var timeZone = -datefn.getTimezoneOffset();\n var differenceString = timeZone >= 0 ? '+' : '-';\n var localtimefn = function (num) {\n var norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n };\n var val = datefn.getFullYear() + '-' + localtimefn(datefn.getMonth() + 1) + '-' + localtimefn(datefn.getDate()) +\n 'T' + localtimefn(datefn.getHours()) +\n ':' + localtimefn(datefn.getMinutes()) +\n ':' + localtimefn(datefn.getSeconds()) +\n differenceString + localtimefn(timeZone / 60) +\n ':' + localtimefn(timeZone % 60);\n return val;\n }\n };\n return DataUtil;\n}());\nexport { DataUtil };\n","import { DataUtil } from './util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Query class is used to build query which is used by the DataManager to communicate with datasource.\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor for Query class.\n * @param {string|string[]} from?\n * @hidden\n */\n function Query(from) {\n /** @hidden */\n this.subQuery = null;\n /** @hidden */\n this.isChild = false;\n /** @hidden */\n this.distincts = [];\n this.queries = [];\n this.key = '';\n this.fKey = '';\n if (typeof from === 'string') {\n this.fromTable = from;\n }\n else if (from && from instanceof Array) {\n this.lookups = from;\n }\n this.expands = [];\n this.sortedColumns = [];\n this.groupedColumns = [];\n this.subQuery = null;\n this.isChild = false;\n this.params = [];\n this.lazyLoad = [];\n return this;\n }\n /**\n * Sets the primary key.\n * @param {string} field - Defines the column field.\n */\n Query.prototype.setKey = function (field) {\n this.key = field;\n return this;\n };\n /**\n * Sets default DataManager to execute query.\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.using = function (dataManager) {\n this.dataManager = dataManager;\n return this;\n };\n /**\n * Executes query with the given DataManager.\n * @param {DataManager} dataManager - Defines the DataManager.\n * @param {Function} done - Defines the success callback.\n * @param {Function} fail - Defines the failure callback.\n * @param {Function} always - Defines the callback which will be invoked on either success or failure.\n *\n *
\n     * let dataManager: DataManager = new DataManager([{ ID: '10' }, { ID: '2' }, { ID: '1' }, { ID: '20' }]);\n     * let query: Query = new Query();\n     * query.sortBy('ID', (x: string, y: string): number => { return parseInt(x, 10) - parseInt(y, 10) });\n     * let promise: Promise< Object > = query.execute(dataManager);\n     * promise.then((e: { result: Object }) => { });\n     * 
\n */\n Query.prototype.execute = function (dataManager, done, fail, always) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeQuery(this, done, fail, always);\n }\n return DataUtil.throwError('Query - execute() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Executes query with the local datasource.\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.executeLocal = function (dataManager) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeLocal(this);\n }\n return DataUtil.throwError('Query - executeLocal() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Creates deep copy of the Query object.\n */\n Query.prototype.clone = function () {\n var cloned = new Query();\n cloned.queries = this.queries.slice(0);\n cloned.key = this.key;\n cloned.isChild = this.isChild;\n cloned.dataManager = this.dataManager;\n cloned.fromTable = this.fromTable;\n cloned.params = this.params.slice(0);\n cloned.expands = this.expands.slice(0);\n cloned.sortedColumns = this.sortedColumns.slice(0);\n cloned.groupedColumns = this.groupedColumns.slice(0);\n cloned.subQuerySelector = this.subQuerySelector;\n cloned.subQuery = this.subQuery;\n cloned.fKey = this.fKey;\n cloned.isCountRequired = this.isCountRequired;\n cloned.distincts = this.distincts.slice(0);\n cloned.lazyLoad = this.lazyLoad.slice(0);\n return cloned;\n };\n /**\n * Specifies the name of table to retrieve data in query execution.\n * @param {string} tableName - Defines the table name.\n */\n Query.prototype.from = function (tableName) {\n this.fromTable = tableName;\n return this;\n };\n /**\n * Adds additional parameter which will be sent along with the request which will be generated while DataManager execute.\n * @param {string} key - Defines the key of additional parameter.\n * @param {Function|string} value - Defines the value for the key.\n */\n Query.prototype.addParams = function (key, value) {\n if (typeof value === 'function') {\n this.params.push({ key: key, fn: value });\n }\n else {\n this.params.push({ key: key, value: value });\n }\n return this;\n };\n /**\n * @hidden\n */\n Query.prototype.distinct = function (fields) {\n if (typeof fields === 'string') {\n this.distincts = [].slice.call([fields], 0);\n }\n else {\n this.distincts = fields.slice(0);\n }\n return this;\n };\n /**\n * Expands the related table.\n * @param {string|Object[]} tables\n */\n Query.prototype.expand = function (tables) {\n if (typeof tables === 'string') {\n this.expands = [].slice.call([tables], 0);\n }\n else {\n this.expands = tables.slice(0);\n }\n return this;\n };\n /**\n * Filter data with given filter criteria.\n * @param {string|Predicate} fieldName - Defines the column field or Predicate.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string|number|boolean} value - Defines the values to match with data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Query.prototype.where = function (fieldName, operator, value, ignoreCase, ignoreAccent, matchCase) {\n operator = operator ? (operator).toLowerCase() : null;\n var predicate = null;\n if (typeof fieldName === 'string') {\n predicate = new Predicate(fieldName, operator, value, ignoreCase, ignoreAccent, matchCase);\n }\n else if (fieldName instanceof Predicate) {\n predicate = fieldName;\n }\n this.queries.push({\n fn: 'onWhere',\n e: predicate\n });\n return this;\n };\n /**\n * Search data with given search criteria.\n * @param {string|number|boolean} searchKey - Defines the search key.\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n * @param {string} operator - Defines the operator how to search data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Query.prototype.search = function (searchKey, fieldNames, operator, ignoreCase, ignoreAccent) {\n if (typeof fieldNames === 'string') {\n fieldNames = [fieldNames];\n }\n if (!operator || operator === 'none') {\n operator = 'contains';\n }\n var comparer = DataUtil.fnOperators[operator];\n this.queries.push({\n fn: 'onSearch',\n e: {\n fieldNames: fieldNames,\n operator: operator,\n searchKey: searchKey,\n ignoreCase: ignoreCase,\n ignoreAccent: ignoreAccent,\n comparer: comparer\n }\n });\n return this;\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n */\n Query.prototype.sortBy = function (fieldName, comparer, isFromGroup) {\n return this.sortByForeignKey(fieldName, comparer, isFromGroup);\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n * @param {string} direction - Defines the sort direction .\n */\n Query.prototype.sortByForeignKey = function (fieldName, comparer, isFromGroup, direction) {\n var order = !isNullOrUndefined(direction) ? direction : 'ascending';\n var sorts;\n var temp;\n if (typeof fieldName === 'string' && DataUtil.endsWith(fieldName.toLowerCase(), ' desc')) {\n fieldName = fieldName.replace(/ desc$/i, '');\n comparer = 'descending';\n }\n if (!comparer || typeof comparer === 'string') {\n order = comparer ? comparer.toLowerCase() : 'ascending';\n comparer = DataUtil.fnSort(comparer);\n }\n if (isFromGroup) {\n sorts = Query.filterQueries(this.queries, 'onSortBy');\n for (var i = 0; i < sorts.length; i++) {\n temp = sorts[i].e.fieldName;\n if (typeof temp === 'string') {\n if (temp === fieldName) {\n return this;\n }\n }\n else if (temp instanceof Array) {\n for (var j = 0; j < temp.length; j++) {\n if (temp[j] === fieldName || fieldName.toLowerCase() === temp[j] + ' desc') {\n return this;\n }\n }\n }\n }\n }\n this.queries.push({\n fn: 'onSortBy',\n e: {\n fieldName: fieldName,\n comparer: comparer,\n direction: order\n }\n });\n return this;\n };\n /**\n * Sorts data in descending order.\n * @param {string} fieldName - Defines the column field.\n */\n Query.prototype.sortByDesc = function (fieldName) {\n return this.sortBy(fieldName, 'descending');\n };\n /**\n * Groups data with the given field name.\n * @param {string} fieldName - Defines the column field.\n */\n Query.prototype.group = function (fieldName, fn, format) {\n this.sortBy(fieldName, null, true);\n this.queries.push({\n fn: 'onGroup',\n e: {\n fieldName: fieldName,\n comparer: fn ? fn : null,\n format: format ? format : null\n }\n });\n return this;\n };\n /**\n * Gets data based on the given page index and size.\n * @param {number} pageIndex - Defines the current page index.\n * @param {number} pageSize - Defines the no of records per page.\n */\n Query.prototype.page = function (pageIndex, pageSize) {\n this.queries.push({\n fn: 'onPage',\n e: {\n pageIndex: pageIndex,\n pageSize: pageSize\n }\n });\n return this;\n };\n /**\n * Gets data based on the given start and end index.\n * @param {number} start - Defines the start index of the datasource.\n * @param {number} end - Defines the end index of the datasource.\n */\n Query.prototype.range = function (start, end) {\n this.queries.push({\n fn: 'onRange',\n e: {\n start: start,\n end: end\n }\n });\n return this;\n };\n /**\n * Gets data from the top of the data source based on given number of records count.\n * @param {number} nos - Defines the no of records to retrieve from datasource.\n */\n Query.prototype.take = function (nos) {\n this.queries.push({\n fn: 'onTake',\n e: {\n nos: nos\n }\n });\n return this;\n };\n /**\n * Skips data with given number of records count from the top of the data source.\n * @param {number} nos - Defines the no of records skip in the datasource.\n */\n Query.prototype.skip = function (nos) {\n this.queries.push({\n fn: 'onSkip',\n e: { nos: nos }\n });\n return this;\n };\n /**\n * Selects specified columns from the data source.\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n */\n Query.prototype.select = function (fieldNames) {\n if (typeof fieldNames === 'string') {\n fieldNames = [].slice.call([fieldNames], 0);\n }\n this.queries.push({\n fn: 'onSelect',\n e: { fieldNames: fieldNames }\n });\n return this;\n };\n /**\n * Gets the records in hierarchical relationship from two tables. It requires the foreign key to relate two tables.\n * @param {Query} query - Defines the query to relate two tables.\n * @param {Function} selectorFn - Defines the custom function to select records.\n */\n Query.prototype.hierarchy = function (query, selectorFn) {\n this.subQuerySelector = selectorFn;\n this.subQuery = query;\n return this;\n };\n /**\n * Sets the foreign key which is used to get data from the related table.\n * @param {string} key - Defines the foreign key.\n */\n Query.prototype.foreignKey = function (key) {\n this.fKey = key;\n return this;\n };\n /**\n * It is used to get total number of records in the DataManager execution result.\n */\n Query.prototype.requiresCount = function () {\n this.isCountRequired = true;\n return this;\n };\n //type - sum, avg, min, max\n /**\n * Aggregate the data with given type and field name.\n * @param {string} type - Defines the aggregate type.\n * @param {string} field - Defines the column field to aggregate.\n */\n Query.prototype.aggregate = function (type, field) {\n this.queries.push({\n fn: 'onAggregates',\n e: { field: field, type: type }\n });\n return this;\n };\n /**\n * Pass array of filterColumn query for performing filter operation.\n * @param {QueryOptions[]} queries\n * @param {string} name\n * @hidden\n */\n Query.filterQueries = function (queries, name) {\n return queries.filter(function (q) {\n return q.fn === name;\n });\n };\n /**\n * To get the list of queries which is already filtered in current data source.\n * @param {Object[]} queries\n * @param {string[]} singles\n * @hidden\n */\n Query.filterQueryLists = function (queries, singles) {\n var filtered = queries.filter(function (q) {\n return singles.indexOf(q.fn) !== -1;\n });\n var res = {};\n for (var i = 0; i < filtered.length; i++) {\n if (!res[filtered[i].fn]) {\n res[filtered[i].fn] = filtered[i].e;\n }\n }\n return res;\n };\n return Query;\n}());\nexport { Query };\n/**\n * Predicate class is used to generate complex filter criteria.\n * This will be used by DataManager to perform multiple filtering operation.\n */\nvar Predicate = /** @class */ (function () {\n /**\n * Constructor for Predicate class.\n * @param {string|Predicate} field\n * @param {string} operator\n * @param {string|number|boolean|Predicate|Predicate[]} value\n * @param {boolean=false} ignoreCase\n * @param {boolean} matchCase\n * @hidden\n */\n function Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase) {\n if (ignoreCase === void 0) { ignoreCase = false; }\n /** @hidden */\n this.ignoreAccent = false;\n /** @hidden */\n this.isComplex = false;\n if (typeof field === 'string') {\n this.field = field;\n this.operator = operator.toLowerCase();\n this.value = value;\n this.matchCase = matchCase;\n this.ignoreCase = ignoreCase;\n this.ignoreAccent = ignoreAccent;\n this.isComplex = false;\n this.comparer = DataUtil.fnOperators.processOperator(this.operator);\n }\n else if (field instanceof Predicate && value instanceof Predicate || value instanceof Array) {\n this.isComplex = true;\n this.condition = operator.toLowerCase();\n this.predicates = [field];\n this.matchCase = field.matchCase;\n this.ignoreCase = field.ignoreCase;\n this.ignoreAccent = field.ignoreAccent;\n if (value instanceof Array) {\n [].push.apply(this.predicates, value);\n }\n else {\n this.predicates.push(value);\n }\n }\n return this;\n }\n /**\n * Adds n-number of new predicates on existing predicate with “and” condition.\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.and = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'and');\n };\n /**\n * Adds new predicate on existing predicate with “and” condition.\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Predicate.prototype.and = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'and', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “or” condition.\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.or = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'or');\n };\n /**\n * Adds new predicate on existing predicate with “or” condition.\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Predicate.prototype.or = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'or', ignoreCase, ignoreAccent);\n };\n /**\n * Converts plain JavaScript object to Predicate object.\n * @param {Predicate[]|Predicate} json - Defines single or collection of Predicate.\n */\n Predicate.fromJson = function (json) {\n if (json instanceof Array) {\n var res = [];\n for (var i = 0, len = json.length; i < len; i++) {\n res.push(this.fromJSONData(json[i]));\n }\n return res;\n }\n var pred = json;\n return this.fromJSONData(pred);\n };\n /**\n * Validate the record based on the predicates.\n * @param {Object} record - Defines the datasource record.\n */\n Predicate.prototype.validate = function (record) {\n var predicate = this.predicates ? this.predicates : [];\n var isAnd;\n var ret;\n if (!this.isComplex && this.comparer) {\n return this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n isAnd = this.condition === 'and';\n for (var i = 0; i < predicate.length; i++) {\n ret = predicate[i].validate(record);\n if (isAnd) {\n if (!ret) {\n return false;\n }\n }\n else {\n if (ret) {\n return true;\n }\n }\n }\n return isAnd;\n };\n /**\n * Converts predicates to plain JavaScript.\n * This method is uses Json stringify when serializing Predicate object.\n */\n Predicate.prototype.toJson = function () {\n var predicates;\n var p;\n if (this.isComplex) {\n predicates = [];\n p = this.predicates;\n for (var i = 0; i < p.length; i++) {\n predicates.push(p[i].toJson());\n }\n }\n return {\n isComplex: this.isComplex,\n field: this.field,\n operator: this.operator,\n value: this.value,\n ignoreCase: this.ignoreCase,\n ignoreAccent: this.ignoreAccent,\n condition: this.condition,\n predicates: predicates,\n matchCase: this.matchCase\n };\n };\n Predicate.combinePredicates = function (predicates, operator) {\n if (predicates.length === 1) {\n if (!(predicates[0] instanceof Array)) {\n return predicates[0];\n }\n predicates = predicates[0];\n }\n return new Predicate(predicates[0], operator, predicates.slice(1));\n };\n Predicate.combine = function (pred, field, operator, value, condition, ignoreCase, ignoreAccent) {\n if (field instanceof Predicate) {\n return Predicate[condition](pred, field);\n }\n if (typeof field === 'string') {\n return Predicate[condition](pred, new Predicate(field, operator, value, ignoreCase, ignoreAccent));\n }\n return DataUtil.throwError('Predicate - ' + condition + ' : invalid arguments');\n };\n Predicate.fromJSONData = function (json) {\n var preds = json.predicates || [];\n var len = preds.length;\n var predicates = [];\n var result;\n for (var i = 0; i < len; i++) {\n predicates.push(this.fromJSONData(preds[i]));\n }\n if (!json.isComplex) {\n result = new Predicate(json.field, json.operator, json.value, json.ignoreCase, json.ignoreAccent);\n }\n else {\n result = new Predicate(predicates[0], json.condition, predicates.slice(1));\n }\n return result;\n };\n return Predicate;\n}());\nexport { Predicate };\n","import { select, detach } from '@syncfusion/ej2-base';\nimport { VScroll } from './v-scroll';\nimport { HScroll } from './h-scroll';\n/**\n * Used to add scroll in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nexport function addScrolling(createElement, container, content, scrollType, enableRtl, offset) {\n var containerOffset;\n var contentOffset;\n var parentElem = container.parentElement;\n if (scrollType === 'vscroll') {\n containerOffset = offset || container.getBoundingClientRect().height;\n contentOffset = content.getBoundingClientRect().height;\n }\n else {\n containerOffset = container.getBoundingClientRect().width;\n contentOffset = content.getBoundingClientRect().width;\n }\n if (containerOffset < contentOffset) {\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n else if (parentElem) {\n var width = parentElem.getBoundingClientRect().width;\n if (width < containerOffset && scrollType === 'hscroll') {\n contentOffset = width;\n container.style.maxWidth = width + 'px';\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n return content;\n }\n else {\n return content;\n }\n}\n/**\n * Used to create scroll bar in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nfunction createScrollbar(createElement, container, content, scrollType, enableRtl, offset) {\n var scrollEle = createElement('div', { className: 'e-menu-' + scrollType });\n container.appendChild(scrollEle);\n scrollEle.appendChild(content);\n if (offset) {\n scrollEle.style.overflow = 'hidden';\n scrollEle.style.height = offset + 'px';\n }\n else {\n scrollEle.style.maxHeight = container.style.maxHeight;\n container.style.overflow = 'hidden';\n }\n var scrollObj;\n if (scrollType === 'vscroll') {\n scrollObj = new VScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetHeight / 2;\n }\n else {\n scrollObj = new HScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetWidth;\n }\n return scrollEle;\n}\n/**\n * Used to destroy the scroll option.\n *\n * @param {VScroll | HScroll} scrollObj - Specifies the scroller object\n * @param {Element} element - Specifies the element\n * @param {HTMLElement} skipEle - Specifies the skip element\n * @returns {void}\n * @hidden\n */\nexport function destroyScroll(scrollObj, element, skipEle) {\n if (scrollObj) {\n var menu = select('.e-menu-parent', element);\n if (menu) {\n if (!skipEle || skipEle === menu) {\n scrollObj.destroy();\n element.parentElement.appendChild(menu);\n detach(element);\n }\n }\n else {\n scrollObj.destroy();\n detach(element);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, isBlazor } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, KeyboardEvents, Touch } from '@syncfusion/ej2-base';\nimport { Animation } from '@syncfusion/ej2-base';\nimport { Browser, Collection, setValue, getValue, getUniqueID, getInstance, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { select, selectAll, closest, detach, append, rippleEffect, isVisible, Complex, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { getZindexPartial, calculatePosition, isCollide, fit, Popup } from '@syncfusion/ej2-popups';\nimport { SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nimport { addScrolling, destroyScroll } from '../common/menu-scroll';\nvar ENTER = 'enter';\nvar ESCAPE = 'escape';\nvar FOCUSED = 'e-focused';\nvar HEADER = 'e-menu-header';\nvar SELECTED = 'e-selected';\nvar SEPARATOR = 'e-separator';\nvar UPARROW = 'uparrow';\nvar DOWNARROW = 'downarrow';\nvar LEFTARROW = 'leftarrow';\nvar RIGHTARROW = 'rightarrow';\nvar HOME = 'home';\nvar END = 'end';\nvar TAB = 'tab';\nvar CARET = 'e-caret';\nvar ITEM = 'e-menu-item';\nvar DISABLED = 'e-disabled';\nvar HIDE = 'e-menu-hide';\nvar ICONS = 'e-icons';\nvar RTL = 'e-rtl';\nvar POPUP = 'e-menu-popup';\nvar TEMPLATE_PROPERTY = 'Template';\n/**\n * Configures the field options of the Menu.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('id')\n ], FieldSettings.prototype, \"itemId\", void 0);\n __decorate([\n Property('parentId')\n ], FieldSettings.prototype, \"parentId\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('url')\n ], FieldSettings.prototype, \"url\", void 0);\n __decorate([\n Property('separator')\n ], FieldSettings.prototype, \"separator\", void 0);\n __decorate([\n Property('items')\n ], FieldSettings.prototype, \"children\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies menu items.\n */\nvar MenuItem = /** @class */ (function (_super) {\n __extends(MenuItem, _super);\n function MenuItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], MenuItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], MenuItem.prototype, \"separator\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuItem.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"url\", void 0);\n return MenuItem;\n}(ChildProperty));\nexport { MenuItem };\n/**\n * Animation configuration settings.\n */\nvar MenuAnimationSettings = /** @class */ (function (_super) {\n __extends(MenuAnimationSettings, _super);\n function MenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], MenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], MenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], MenuAnimationSettings.prototype, \"easing\", void 0);\n return MenuAnimationSettings;\n}(ChildProperty));\nexport { MenuAnimationSettings };\n/**\n * Base class for Menu and ContextMenu components.\n *\n * @private\n */\nvar MenuBase = /** @class */ (function (_super) {\n __extends(MenuBase, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {MenuBaseModel} options - Specifies the menu base model\n * @param {string | HTMLUListElement} element - Specifies the element\n */\n function MenuBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.navIdx = [];\n _this.animation = new Animation({});\n _this.isTapHold = false;\n _this.tempItem = [];\n _this.showSubMenuOn = 'Auto';\n return _this;\n }\n /**\n * Initialized third party configuration settings.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.preRender = function () {\n if (!this.isMenu) {\n var ul = void 0;\n if (this.element.tagName === 'EJS-CONTEXTMENU') {\n ul = this.createElement('ul', {\n id: getUniqueID(this.getModuleName()), className: 'e-control e-lib e-' + this.getModuleName()\n });\n var ejInst = getValue('ej2_instances', this.element);\n removeClass([this.element], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.clonedElement = this.element;\n this.element = ul;\n setValue('ej2_instances', ejInst, this.element);\n }\n else {\n ul = this.createElement('ul', { id: getUniqueID(this.getModuleName()) });\n append([].slice.call(this.element.cloneNode(true).children), ul);\n var refEle = this.element.nextElementSibling;\n if (refEle) {\n this.element.parentElement.insertBefore(ul, refEle);\n }\n else {\n this.element.parentElement.appendChild(ul);\n }\n this.clonedElement = ul;\n }\n this.clonedElement.style.display = 'none';\n }\n if (this.element.tagName === 'EJS-MENU') {\n var ele = this.element;\n var ejInstance = getValue('ej2_instances', ele);\n var ul = this.createElement('ul');\n var wrapper = this.createElement('EJS-MENU', { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n ul.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = ul;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.clonedElement = wrapper;\n this.element = ele;\n if (!this.element.id) {\n this.element.id = getUniqueID(this.getModuleName());\n }\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.renderItems();\n this.wireEvents();\n this.renderComplete();\n var wrapper = this.getWrapper();\n // eslint-disable-next-line\n if (this.template && this.enableScrolling && (this.isReact || this.isAngular)) {\n requestAnimationFrame(function () {\n addScrolling(_this.createElement, wrapper, _this.element, 'hscroll', _this.enableRtl);\n });\n }\n };\n MenuBase.prototype.initialize = function () {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n if (this.isMenu) {\n this.element.parentElement.insertBefore(wrapper, this.element);\n }\n else {\n document.body.appendChild(wrapper);\n }\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n wrapper.appendChild(this.element);\n if (this.isMenu && this.hamburgerMode) {\n if (!this.target) {\n this.createHeaderContainer(wrapper);\n }\n }\n this.defaultOption = this.showItemOnClick;\n };\n MenuBase.prototype.renderItems = function () {\n if (!this.items.length) {\n var items = ListBase.createJsonFromElement(this.element, { fields: { child: 'items' } });\n this.setProperties({ items: items }, true);\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n }\n var ul = this.createItems(this.items);\n append(Array.prototype.slice.call(ul.children), this.element);\n this.element.classList.add('e-menu-parent');\n if (this.isMenu) {\n if (!this.hamburgerMode && this.element.classList.contains('e-vertical')) {\n this.setBlankIconStyle(this.element);\n }\n if (this.enableScrolling) {\n var wrapper = this.getWrapper();\n if (this.element.classList.contains('e-vertical')) {\n addScrolling(this.createElement, wrapper, this.element, 'vscroll', this.enableRtl);\n }\n else {\n addScrolling(this.createElement, wrapper, this.element, 'hscroll', this.enableRtl);\n }\n }\n }\n };\n MenuBase.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n if (this.target) {\n var target = void 0;\n var targetElems = selectAll(this.target);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.add(target, 'click', this.menuHeaderClickHandler, this);\n }\n else {\n if (Browser.isIos) {\n new Touch(target, { tapHold: this.touchHandler.bind(this) });\n }\n else {\n EventHandler.add(target, 'contextmenu', this.cmenuHandler, this);\n }\n }\n }\n this.targetElement = target;\n if (!this.isMenu) {\n EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollHandler, this);\n }\n }\n }\n if (!Browser.isDevice) {\n this.delegateMoverHandler = this.moverHandler.bind(this);\n this.delegateMouseDownHandler = this.mouseDownHandler.bind(this);\n EventHandler.add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this);\n EventHandler.add(document, 'mousedown', this.delegateMouseDownHandler, this);\n }\n this.delegateClickHandler = this.clickHandler.bind(this);\n EventHandler.add(document, 'click', this.delegateClickHandler, this);\n this.wireKeyboardEvent(wrapper);\n this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });\n };\n MenuBase.prototype.wireKeyboardEvent = function (element) {\n var keyConfigs = {\n downarrow: DOWNARROW,\n uparrow: UPARROW,\n enter: ENTER,\n leftarrow: LEFTARROW,\n rightarrow: RIGHTARROW,\n escape: ESCAPE\n };\n if (this.isMenu) {\n keyConfigs.home = HOME;\n keyConfigs.end = END;\n keyConfigs.tab = TAB;\n }\n new KeyboardEvents(element, {\n keyAction: this.keyBoardHandler.bind(this),\n keyConfigs: keyConfigs\n });\n };\n MenuBase.prototype.mouseDownHandler = function (e) {\n if (closest(e.target, '.e-' + this.getModuleName() + '-wrapper') !== this.getWrapper()\n && (!closest(e.target, '.e-' + this.getModuleName() + '-popup'))) {\n this.closeMenu(this.isMenu ? null : this.navIdx.length, e);\n }\n };\n MenuBase.prototype.keyBoardHandler = function (e) {\n var actionName = '';\n var trgt = e.target;\n var actionNeeded = this.isMenu && !this.hamburgerMode && !this.element.classList.contains('e-vertical')\n && this.navIdx.length < 1;\n e.preventDefault();\n if (this.enableScrolling && e.keyCode === 13 && trgt.classList.contains('e-scroll-nav')) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [closest(trgt, '.e-' + this.getModuleName() + '-wrapper')]);\n }\n if (actionNeeded) {\n switch (e.action) {\n case RIGHTARROW:\n actionName = RIGHTARROW;\n e.action = DOWNARROW;\n break;\n case LEFTARROW:\n actionName = LEFTARROW;\n e.action = UPARROW;\n break;\n case DOWNARROW:\n actionName = DOWNARROW;\n e.action = RIGHTARROW;\n break;\n case UPARROW:\n actionName = UPARROW;\n e.action = '';\n break;\n }\n }\n else if (this.enableRtl) {\n switch (e.action) {\n case LEFTARROW:\n actionNeeded = true;\n actionName = LEFTARROW;\n e.action = RIGHTARROW;\n break;\n case RIGHTARROW:\n actionNeeded = true;\n actionName = RIGHTARROW;\n e.action = LEFTARROW;\n break;\n }\n }\n switch (e.action) {\n case DOWNARROW:\n case UPARROW:\n case END:\n case HOME:\n case TAB:\n this.upDownKeyHandler(e);\n break;\n case RIGHTARROW:\n this.rightEnterKeyHandler(e);\n break;\n case LEFTARROW:\n this.leftEscKeyHandler(e);\n break;\n case ENTER:\n if (this.hamburgerMode && trgt.tagName === 'SPAN' && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n this.rightEnterKeyHandler(e);\n }\n break;\n case ESCAPE:\n this.leftEscKeyHandler(e);\n break;\n }\n if (actionNeeded) {\n e.action = actionName;\n }\n };\n MenuBase.prototype.upDownKeyHandler = function (e) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (e.action === DOWNARROW || e.action === HOME || e.action === TAB) ? 0 : cul.childElementCount - 1;\n var fliIdx = defaultIdx;\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n if (e.action !== END && e.action !== HOME) {\n fliIdx = this.getIdx(cul, fli);\n }\n fli.classList.remove(FOCUSED);\n if (e.action !== END && e.action !== HOME) {\n if (e.action === DOWNARROW) {\n fliIdx++;\n }\n else {\n fliIdx--;\n }\n if (fliIdx === (e.action === DOWNARROW ? cul.childElementCount : -1)) {\n fliIdx = defaultIdx;\n }\n }\n }\n var cli = cul.children[fliIdx];\n fliIdx = this.isValidLI(cli, fliIdx, e.action);\n cul.children[fliIdx].classList.add(FOCUSED);\n cul.children[fliIdx].focus();\n };\n MenuBase.prototype.isValidLI = function (cli, index, action) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (action === DOWNARROW || action === HOME || action === TAB) ? 0 : cul.childElementCount - 1;\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n if (action === DOWNARROW && index === cul.childElementCount - 1) {\n index = defaultIdx;\n }\n else if (action === UPARROW && index === 0) {\n index = defaultIdx;\n }\n else if ((action === DOWNARROW) || (action === RIGHTARROW)) {\n index++;\n }\n else {\n index--;\n }\n }\n cli = cul.children[index];\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n index = this.isValidLI(cli, index, action);\n }\n return index;\n };\n MenuBase.prototype.getUlByNavIdx = function (navIdxLen) {\n if (navIdxLen === void 0) { navIdxLen = this.navIdx.length; }\n if (this.isMenu) {\n var popup = [this.getWrapper()].concat([].slice.call(selectAll('.' + POPUP)))[navIdxLen];\n return isNullOrUndefined(popup) ? null : select('.e-menu-parent', popup);\n }\n else {\n return this.getWrapper().children[navIdxLen];\n }\n };\n MenuBase.prototype.rightEnterKeyHandler = function (e) {\n var eventArgs;\n var cul = this.getUlByNavIdx();\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n var fliIdx = this.getIdx(cul, fli);\n var navIdx = this.navIdx.concat(fliIdx);\n var item = this.getItem(navIdx);\n if (item.items.length) {\n this.navIdx.push(fliIdx);\n this.keyType = 'right';\n this.action = e.action;\n this.openMenu(fli, item, -1, -1, e);\n }\n else {\n if (e.action === ENTER) {\n if (this.isMenu && this.navIdx.length === 0) {\n this.removeLIStateByClass([SELECTED], [this.getWrapper()]);\n }\n else {\n fli.classList.remove(FOCUSED);\n }\n fli.classList.add(SELECTED);\n eventArgs = { element: fli, item: item, event: e };\n this.trigger('select', eventArgs);\n this.closeMenu(null, e);\n }\n }\n }\n };\n MenuBase.prototype.leftEscKeyHandler = function (e) {\n if (this.navIdx.length) {\n this.keyType = 'left';\n this.closeMenu(this.navIdx.length, e);\n }\n else {\n if (e.action === ESCAPE) {\n this.closeMenu(null, e);\n }\n }\n };\n MenuBase.prototype.scrollHandler = function (e) {\n this.closeMenu(null, e);\n };\n MenuBase.prototype.touchHandler = function (e) {\n this.isTapHold = true;\n this.cmenuHandler(e.originalEvent);\n };\n MenuBase.prototype.cmenuHandler = function (e) {\n e.preventDefault();\n this.currentTarget = e.target;\n this.isCMenu = true;\n this.pageX = e.changedTouches ? e.changedTouches[0].pageX + 1 : e.pageX + 1;\n this.pageY = e.changedTouches ? e.changedTouches[0].pageY + 1 : e.pageY + 1;\n this.closeMenu(null, e);\n if (this.isCMenu) {\n if (this.canOpen(e.target)) {\n this.openMenu(null, null, this.pageY, this.pageX, e);\n }\n this.isCMenu = false;\n }\n };\n // eslint:disable-next-line:max-func-body-length\n MenuBase.prototype.closeMenu = function (ulIndex, e, isIterated) {\n var _this = this;\n if (ulIndex === void 0) { ulIndex = 0; }\n if (e === void 0) { e = null; }\n if (this.isMenuVisible()) {\n var sli = void 0;\n var item_1;\n var wrapper_1 = this.getWrapper();\n var beforeCloseArgs = void 0;\n var items_1;\n var popups = this.getPopups();\n var isClose = false;\n var cnt = this.isMenu ? popups.length + 1 : wrapper_1.childElementCount;\n var ul_1 = this.isMenu && cnt !== 1 ? select('.e-ul', popups[cnt - 2])\n : selectAll('.e-menu-parent', wrapper_1)[cnt - 1];\n if (this.isMenu && ul_1.classList.contains('e-menu')) {\n sli = this.getLIByClass(ul_1, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n isClose = true;\n }\n if (!isClose) {\n var liElem_1 = e && e.target && this.getLI(e.target);\n if (liElem_1) {\n this.cli = liElem_1;\n }\n else {\n this.cli = ul_1.children[0];\n }\n item_1 = this.navIdx.length ? this.getItem(this.navIdx) : null;\n items_1 = item_1 ? item_1.items : this.items;\n beforeCloseArgs = { element: ul_1, parentItem: item_1, items: items_1, event: e, cancel: false, isFocused: true };\n this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n var popupEle;\n var closeArgs;\n var popupId = '';\n var popupObj;\n var isOpen = !observedCloseArgs.cancel;\n if (isOpen || _this.isCMenu) {\n if (_this.isMenu) {\n popupEle = closest(ul_1, '.' + POPUP);\n if (_this.hamburgerMode) {\n popupEle.parentElement.style.minHeight = '';\n closest(ul_1, '.e-menu-item').setAttribute('aria-expanded', 'false');\n }\n _this.unWireKeyboardEvent(popupEle);\n destroyScroll(getInstance(popupEle.children[0], VScroll), popupEle.children[0]);\n popupObj = getInstance(popupEle, Popup);\n popupObj.hide();\n popupId = popupEle.id;\n popupObj.destroy();\n detach(popupEle);\n }\n else {\n _this.toggleAnimation(ul_1, false);\n }\n closeArgs = { element: ul_1, parentItem: item_1, items: items_1 };\n _this.trigger('onClose', closeArgs);\n _this.navIdx.pop();\n }\n _this.updateReactTemplate();\n var trgtliId;\n var closedLi;\n var trgtLi;\n var trgtpopUp = _this.getWrapper() && _this.getUlByNavIdx();\n if (_this.isCMenu) {\n if (_this.canOpen(e.target)) {\n _this.openMenu(null, null, _this.pageY, _this.pageX, e);\n }\n _this.isCMenu = false;\n }\n if (_this.isMenu && trgtpopUp && popupId.length) {\n // eslint-disable-next-line\n trgtliId = new RegExp('(.*)-ej2menu-' + _this.element.id + '-popup').exec(popupId)[1];\n closedLi = trgtpopUp.querySelector('[id=\"' + trgtliId + '\"]');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n else if (trgtpopUp) {\n closedLi = trgtpopUp.querySelector('.e-menu-item.e-selected');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n var submenus = liElem_1 && liElem_1.querySelectorAll('.e-menu-item');\n if (isOpen && _this.hamburgerMode && ulIndex && !(submenus.length)) {\n _this.afterCloseMenu(e);\n }\n else if (isOpen && !_this.hamburgerMode && closedLi && !trgtLi && _this.keyType !== 'left' && (_this.navIdx.length || !_this.isMenu && _this.navIdx.length === 0)) {\n var ele = (e && e.target.classList.contains('e-vscroll'))\n ? closest(e.target, '.e-menu-wrapper') : null;\n if (ele) {\n ele = ele.querySelector('.e-menu-item');\n if (_this.showItemOnClick || (ele && _this.getIndex(ele.id, true).length <= _this.navIdx.length)) {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e, true);\n }\n }\n else {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e);\n }\n }\n else if (isOpen && !isIterated && !ulIndex && ((_this.hamburgerMode && _this.navIdx.length) ||\n _this.navIdx.length === 1 && liElem_1 && trgtpopUp !== liElem_1.parentElement)) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && isNullOrUndefined(ulIndex) && _this.navIdx.length) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && !_this.isMenu && !ulIndex && _this.navIdx.length === 0 && !_this.isMenusClosed) {\n _this.isMenusClosed = true;\n _this.closeMenu(0, e);\n }\n else if (isOpen && _this.isMenu && e && e.target &&\n _this.navIdx.length !== 0 && closest(e.target, '.e-menu-parent.e-control')) {\n _this.closeMenu(0, e);\n }\n else if (isOpen && !_this.isMenu && selectAll('.e-menu-parent', wrapper_1)[ulIndex - 1] && e.which === 3) {\n _this.closeMenu(null, e);\n }\n else {\n if (isOpen && (_this.keyType === 'right' || _this.keyType === 'click')) {\n _this.afterCloseMenu(e);\n }\n else {\n var cul = _this.getUlByNavIdx();\n var sli_1 = _this.getLIByClass(cul, SELECTED);\n if (sli_1) {\n sli_1.setAttribute('aria-expanded', 'false');\n sli_1.classList.remove(SELECTED);\n if (observedCloseArgs.isFocused && liElem_1 || _this.keyType === 'left') {\n sli_1.classList.add(FOCUSED);\n sli_1.focus();\n }\n }\n if (!isOpen && _this.hamburgerMode && liElem_1 && liElem_1.getAttribute('aria-expanded') === 'false' &&\n liElem_1.getAttribute('aria-haspopup') === 'true') {\n if (closest(liElem_1, '.e-menu-parent.e-control')) {\n _this.navIdx = [];\n }\n else {\n _this.navIdx.pop();\n }\n _this.navIdx.push(_this.cliIdx);\n var item_2 = _this.getItem(_this.navIdx);\n liElem_1.setAttribute('aria-expanded', 'true');\n _this.openMenu(liElem_1, item_2, -1, -1, e);\n }\n }\n if (_this.navIdx.length < 1) {\n if (_this.showSubMenuOn === 'Hover' || _this.showSubMenuOn === 'Click') {\n _this.showItemOnClick = _this.defaultOption;\n _this.showSubMenuOn = 'Auto';\n }\n }\n }\n _this.removeStateWrapper();\n });\n }\n }\n };\n MenuBase.prototype.updateReactTemplate = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && this.template && this.navIdx.length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var portals = this.portals.splice(0, this.items.length);\n this.clearTemplate(['template']);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.portals = portals;\n this.renderReactTemplates();\n }\n };\n MenuBase.prototype.getMenuItemModel = function (item, level) {\n if (isNullOrUndefined(item)) {\n return null;\n }\n if (isNullOrUndefined(level)) {\n level = 0;\n }\n var fields = this.getFields(level);\n return { text: item[fields.text], id: item[fields.id], items: item[fields.child], separator: item[fields.separator],\n iconCss: item[fields.iconCss], url: item[fields.url] };\n };\n MenuBase.prototype.getPopups = function () {\n var _this = this;\n var popups = [];\n [].slice.call(document.querySelectorAll('.' + POPUP)).forEach(function (elem) {\n if (!isNullOrUndefined(elem.querySelector('.' + ITEM)) && _this.getIndex(elem.querySelector('.' + ITEM).id, true).length) {\n popups.push(elem);\n }\n });\n return popups;\n };\n MenuBase.prototype.isMenuVisible = function () {\n return (this.navIdx.length > 0 || (this.element.classList.contains('e-contextmenu') && isVisible(this.element).valueOf()));\n };\n MenuBase.prototype.canOpen = function (target) {\n var canOpen = true;\n if (this.filter) {\n canOpen = false;\n var filter = this.filter.split(' ');\n for (var i = 0, len = filter.length; i < len; i++) {\n if (closest(target, '.' + filter[i])) {\n canOpen = true;\n break;\n }\n }\n }\n return canOpen;\n };\n MenuBase.prototype.openMenu = function (li, item, top, left, e, target) {\n var _this = this;\n if (top === void 0) { top = 0; }\n if (left === void 0) { left = 0; }\n if (e === void 0) { e = null; }\n if (target === void 0) { target = this.targetElement; }\n var wrapper = this.getWrapper();\n this.lItem = li;\n var elemId = this.element.id !== '' ? this.element.id : 'menu';\n this.isMenusClosed = false;\n if (isNullOrUndefined(top)) {\n top = -1;\n }\n if (isNullOrUndefined(left)) {\n left = -1;\n }\n if (li) {\n this.uList = this.createItems(item[this.getField('children', this.navIdx.length - 1)]);\n if (!this.isMenu && Browser.isDevice) {\n wrapper.lastChild.style.display = 'none';\n var data = {\n text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous'\n };\n var hdata = new MenuItem(this.items[0], 'items', data, true);\n var hli = this.createItems([hdata]).children[0];\n hli.classList.add(HEADER);\n this.uList.insertBefore(hli, this.uList.children[0]);\n }\n if (this.isMenu) {\n this.popupWrapper = this.createElement('div', {\n className: 'e-' + this.getModuleName() + '-wrapper ' + POPUP, id: li.id + '-ej2menu-' + elemId + '-popup'\n });\n if (this.hamburgerMode) {\n top = li.offsetHeight;\n li.appendChild(this.popupWrapper);\n }\n else {\n document.body.appendChild(this.popupWrapper);\n }\n this.isNestedOrVertical = this.element.classList.contains('e-vertical') || this.navIdx.length !== 1;\n this.popupObj = this.generatePopup(this.popupWrapper, this.uList, li, this.isNestedOrVertical);\n if (this.template) {\n this.renderReactTemplates();\n }\n if (this.hamburgerMode) {\n this.calculateIndentSize(this.uList, li);\n }\n else {\n if (this.cssClass) {\n addClass([this.popupWrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.popupObj.hide();\n }\n if (!this.hamburgerMode && !this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, 0, 0, 'menu'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, 0, 0, 'menu');\n }\n }\n else {\n this.uList.style.zIndex = this.element.style.zIndex;\n wrapper.appendChild(this.uList);\n if (!this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, top, left, 'none'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n }\n else {\n this.uList = this.element;\n this.uList.style.zIndex = getZindexPartial(target ? target : this.element).toString();\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n };\n MenuBase.prototype.calculateIndentSize = function (ul, li) {\n var liStyle = getComputedStyle(li);\n var liIndent = parseInt(liStyle.textIndent, 10);\n if (this.navIdx.length < 2 && !li.classList.contains('e-blankicon')) {\n liIndent *= 2;\n }\n else {\n liIndent += (liIndent / 4);\n }\n ul.style.textIndent = liIndent + 'px';\n var blankIconElem = ul.querySelectorAll('.e-blankicon');\n if (blankIconElem && blankIconElem.length) {\n var menuIconElem = ul.querySelector('.e-menu-icon');\n var menuIconElemStyle = getComputedStyle(menuIconElem);\n var blankIconIndent = (parseInt(menuIconElemStyle.marginRight, 10) + menuIconElem.offsetWidth + liIndent);\n for (var i = 0; i < blankIconElem.length; i++) {\n blankIconElem[i].style.textIndent = blankIconIndent + 'px';\n }\n }\n };\n MenuBase.prototype.generatePopup = function (popupWrapper, ul, li, isNestedOrVertical) {\n var _this = this;\n var popupObj = new Popup(popupWrapper, {\n actionOnScroll: this.hamburgerMode ? 'none' : 'reposition',\n relateTo: li,\n collision: this.hamburgerMode ? { X: 'none', Y: 'none' } : { X: isNestedOrVertical ||\n this.enableRtl ? 'none' : 'flip', Y: 'fit' },\n position: (isNestedOrVertical && !this.hamburgerMode) ? { X: 'right', Y: 'top' } : { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n enableRtl: this.enableRtl,\n content: ul,\n open: function () {\n var scrollEle = select('.e-menu-vscroll', popupObj.element);\n if (scrollEle) {\n scrollEle.style.height = 'inherit';\n scrollEle.style.maxHeight = '';\n }\n var ul = select('.e-ul', popupObj.element);\n popupObj.element.style.maxHeight = '';\n ul.focus();\n _this.triggerOpen(ul);\n }\n });\n return popupObj;\n };\n MenuBase.prototype.createHeaderContainer = function (wrapper) {\n wrapper = wrapper || this.getWrapper();\n var spanElem = this.createElement('span', { className: 'e-' + this.getModuleName() + '-header' });\n var tempTitle = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.title) : this.title;\n var spanTitle = this.createElement('span', {\n className: 'e-' + this.getModuleName() + '-title', innerHTML: tempTitle\n });\n var spanIcon = this.createElement('span', {\n className: 'e-icons e-' + this.getModuleName() + '-icon', attrs: { 'tabindex': '0' }\n });\n spanElem.appendChild(spanTitle);\n spanElem.appendChild(spanIcon);\n wrapper.insertBefore(spanElem, this.element);\n };\n MenuBase.prototype.openHamburgerMenu = function (e) {\n if (this.hamburgerMode) {\n this.triggerBeforeOpen(null, this.element, null, e, 0, 0, 'hamburger');\n }\n };\n MenuBase.prototype.closeHamburgerMenu = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.element, parentItem: null, event: e,\n items: this.items, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedHamburgerCloseArgs) {\n if (!observedHamburgerCloseArgs.cancel) {\n _this.closeMenu(null, e);\n _this.element.classList.add('e-hide-menu');\n _this.trigger('onClose', { element: _this.element, parentItem: null, items: _this.items });\n }\n });\n };\n MenuBase.prototype.callFit = function (element, x, y, top, left) {\n return fit(element, null, { X: x, Y: y }, { top: top, left: left });\n };\n MenuBase.prototype.triggerBeforeOpen = function (li, ul, item, e, top, left, type) {\n var _this = this;\n var items = li ? item[this.getField('children', this.navIdx.length - 1)] : this.items;\n var eventArgs = {\n element: ul, items: items, parentItem: item, event: e, cancel: false, top: top, left: left, showSubMenuOn: 'Auto'\n };\n var menuType = type;\n this.trigger('beforeOpen', eventArgs, function (observedOpenArgs) {\n switch (menuType) {\n case 'menu':\n if (!_this.hamburgerMode) {\n if (observedOpenArgs.showSubMenuOn !== 'Auto') {\n _this.showItemOnClick = !_this.defaultOption;\n _this.showSubMenuOn = observedOpenArgs.showSubMenuOn;\n }\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n }\n _this.popupWrapper.style.display = 'block';\n if (!_this.hamburgerMode) {\n _this.popupWrapper.style.maxHeight = _this.popupWrapper.getBoundingClientRect().height + 'px';\n if (_this.enableScrolling) {\n addScrolling(_this.createElement, _this.popupWrapper, _this.uList, 'vscroll', _this.enableRtl);\n }\n _this.checkScrollOffset(e);\n }\n if (!_this.hamburgerMode && !_this.left && !_this.top) {\n _this.popupObj.refreshPosition(_this.lItem, true);\n _this.left = parseInt(_this.popupWrapper.style.left, 10);\n _this.top = parseInt(_this.popupWrapper.style.top, 10);\n if (_this.enableRtl) {\n _this.left =\n _this.isNestedOrVertical ? _this.left - _this.popupWrapper.offsetWidth - _this.lItem.parentElement.offsetWidth + 2\n : _this.left - _this.popupWrapper.offsetWidth + _this.lItem.offsetWidth;\n }\n // eslint-disable-next-line\n if (_this.template && (_this.isReact || _this.isAngular)) {\n requestAnimationFrame(function () {\n _this.collision();\n _this.popupWrapper.style.display = '';\n });\n }\n else {\n _this.collision();\n _this.popupWrapper.style.display = '';\n }\n }\n else {\n _this.popupObj.collision = { X: 'none', Y: 'none' };\n _this.popupWrapper.style.display = '';\n }\n break;\n case 'none':\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n break;\n case 'hamburger':\n if (!observedOpenArgs.cancel) {\n _this.element.classList.remove('e-hide-menu');\n _this.triggerOpen(_this.element);\n }\n break;\n }\n if (menuType !== 'hamburger') {\n if (observedOpenArgs.cancel) {\n if (_this.isMenu) {\n _this.popupObj.destroy();\n detach(_this.popupWrapper);\n }\n else if (ul.className.indexOf('e-ul') > -1) {\n detach(ul);\n }\n _this.navIdx.pop();\n }\n else {\n if (_this.isMenu) {\n if (_this.hamburgerMode) {\n _this.popupWrapper.style.top = _this.top + 'px';\n _this.popupWrapper.style.left = 0 + 'px';\n _this.toggleAnimation(_this.popupWrapper);\n }\n else {\n _this.setBlankIconStyle(_this.popupWrapper);\n _this.wireKeyboardEvent(_this.popupWrapper);\n rippleEffect(_this.popupWrapper, { selector: '.' + ITEM });\n _this.popupWrapper.style.left = _this.left + 'px';\n _this.popupWrapper.style.top = _this.top + 'px';\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n _this.popupObj.show(animationOptions, _this.lItem);\n }\n }\n else {\n _this.setBlankIconStyle(_this.uList);\n _this.setPosition(_this.lItem, _this.uList, _this.top, _this.left);\n _this.toggleAnimation(_this.uList);\n }\n }\n }\n if (_this.keyType === 'right') {\n var cul = _this.getUlByNavIdx();\n li.classList.remove(FOCUSED);\n if (_this.isMenu && _this.navIdx.length === 1) {\n _this.removeLIStateByClass([SELECTED], [_this.getWrapper()]);\n }\n li.classList.add(SELECTED);\n if (_this.action === ENTER) {\n var eventArgs_1 = { element: li, item: item, event: e };\n _this.trigger('select', eventArgs_1);\n }\n li.focus();\n cul = _this.getUlByNavIdx();\n var index = _this.isValidLI(cul.children[0], 0, _this.action);\n cul.children[index].classList.add(FOCUSED);\n cul.children[index].focus();\n }\n });\n };\n MenuBase.prototype.collision = function () {\n var collide;\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if ((this.isNestedOrVertical || this.enableRtl) && (collide.indexOf('right') > -1\n || collide.indexOf('left') > -1)) {\n this.popupObj.collision.X = 'none';\n var offWidth = closest(this.lItem, '.e-' + this.getModuleName() + '-wrapper').offsetWidth;\n this.left =\n this.enableRtl ? calculatePosition(this.lItem, this.isNestedOrVertical ? 'right' : 'left', 'top').left\n : this.left - this.popupWrapper.offsetWidth - offWidth + 2;\n }\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if (collide.indexOf('left') > -1 || collide.indexOf('right') > -1) {\n this.left = this.callFit(this.popupWrapper, true, false, this.top, this.left).left;\n }\n this.popupWrapper.style.left = this.left + 'px';\n };\n MenuBase.prototype.setBlankIconStyle = function (menu) {\n var blankIconList = [].slice.call(menu.getElementsByClassName('e-blankicon'));\n if (!blankIconList.length) {\n return;\n }\n var iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)');\n if (!iconLi) {\n return;\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n if (!icon) {\n return;\n }\n var cssProp = this.enableRtl ? { padding: 'paddingRight', margin: 'marginLeft' } :\n { padding: 'paddingLeft', margin: 'marginRight' };\n var iconCssProps = getComputedStyle(icon);\n var iconSize = parseInt(iconCssProps.fontSize, 10);\n if (!!parseInt(iconCssProps.width, 10) && parseInt(iconCssProps.width, 10) > iconSize) {\n iconSize = parseInt(iconCssProps.width, 10);\n }\n // eslint:disable\n var size = iconSize + parseInt(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n iconCssProps[cssProp.margin], 10) + parseInt(getComputedStyle(iconLi)[cssProp.padding], 10) + \"px\";\n blankIconList.forEach(function (li) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n li.style[cssProp.padding] = size;\n });\n // eslint:enable\n };\n MenuBase.prototype.checkScrollOffset = function (e) {\n var wrapper = this.getWrapper();\n if (wrapper.children[0].classList.contains('e-menu-hscroll') && this.navIdx.length === 1) {\n var trgt = isNullOrUndefined(e) ? this.element : closest(e.target, '.' + ITEM);\n var offsetEle = select('.e-hscroll-bar', wrapper);\n if (offsetEle.scrollLeft > trgt.offsetLeft) {\n offsetEle.scrollLeft -= (offsetEle.scrollLeft - trgt.offsetLeft);\n }\n var offsetLeft = offsetEle.scrollLeft + offsetEle.offsetWidth;\n var offsetRight = trgt.offsetLeft + trgt.offsetWidth;\n if (offsetLeft < offsetRight) {\n offsetEle.scrollLeft += (offsetRight - offsetLeft);\n }\n }\n };\n MenuBase.prototype.setPosition = function (li, ul, top, left) {\n var px = 'px';\n this.toggleVisiblity(ul);\n if (ul === this.element || (left > -1 && top > -1)) {\n var collide = isCollide(ul, null, left, top);\n if (collide.indexOf('right') > -1) {\n left = left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n var offset = this.callFit(ul, false, true, top, left);\n top = offset.top - 20;\n if (top < 0) {\n var newTop = (pageYOffset + document.documentElement.clientHeight) - ul.getBoundingClientRect().height;\n if (newTop > -1) {\n top = newTop;\n }\n }\n }\n collide = isCollide(ul, null, left, top);\n if (collide.indexOf('left') > -1) {\n var offset = this.callFit(ul, true, false, top, left);\n left = offset.left;\n }\n }\n else {\n if (Browser.isDevice) {\n top = Number(this.element.style.top.replace(px, ''));\n left = Number(this.element.style.left.replace(px, ''));\n }\n else {\n var x = this.enableRtl ? 'left' : 'right';\n var offset = calculatePosition(li, x, 'top');\n top = offset.top;\n left = offset.left;\n var collide = isCollide(ul, null, this.enableRtl ? left - ul.offsetWidth : left, top);\n var xCollision = collide.indexOf('left') > -1 || collide.indexOf('right') > -1;\n if (xCollision) {\n offset = calculatePosition(li, this.enableRtl ? 'right' : 'left', 'top');\n left = offset.left;\n }\n if (this.enableRtl || xCollision) {\n left = (this.enableRtl && xCollision) ? left : left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n offset = this.callFit(ul, false, true, top, left);\n top = offset.top;\n }\n }\n }\n this.toggleVisiblity(ul, false);\n ul.style.top = top + px;\n ul.style.left = left + px;\n };\n MenuBase.prototype.toggleVisiblity = function (ul, isVisible) {\n if (isVisible === void 0) { isVisible = true; }\n ul.style.visibility = isVisible ? 'hidden' : '';\n ul.style.display = isVisible ? 'block' : 'none';\n };\n MenuBase.prototype.createItems = function (items) {\n var _this = this;\n var level = this.navIdx ? this.navIdx.length : 0;\n var fields = this.getFields(level);\n var showIcon = this.hasField(items, this.getField('iconCss', level));\n var listBaseOptions = {\n showIcon: showIcon,\n moduleName: 'menu',\n fields: fields,\n template: this.template,\n itemNavigable: true,\n itemCreating: function (args) {\n if (!args.curData[args.fields[fields.id]]) {\n args.curData[args.fields[fields.id]] = getUniqueID('menuitem');\n }\n args.curData.htmlAttributes = {\n role: 'menuitem',\n tabindex: '-1'\n };\n if (_this.isMenu && !args.curData[_this.getField('separator', level)]) {\n args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?\n args.curData[args.fields.text] : args.curData[args.fields.id];\n }\n if (args.curData[args.fields[fields.iconCss]] === '') {\n args.curData[args.fields[fields.iconCss]] = null;\n }\n },\n itemCreated: function (args) {\n if (args.curData[_this.getField('separator', level)]) {\n args.item.classList.add(SEPARATOR);\n args.item.setAttribute('role', 'separator');\n }\n if (showIcon && !args.curData[args.fields.iconCss]\n && !args.curData[_this.getField('separator', level)]) {\n args.item.classList.add('e-blankicon');\n }\n if (args.curData[args.fields.child]\n && args.curData[args.fields.child].length) {\n var span = _this.createElement('span', { className: ICONS + ' ' + CARET });\n args.item.appendChild(span);\n args.item.setAttribute('aria-haspopup', 'true');\n args.item.setAttribute('aria-expanded', 'false');\n args.item.classList.add('e-menu-caret-icon');\n }\n if (_this.isMenu && _this.template) {\n args.item.setAttribute('id', args.curData[args.fields.id].toString());\n args.item.removeAttribute('data-uid');\n if (args.item.classList.contains('e-level-1')) {\n args.item.classList.remove('e-level-1');\n }\n if (args.item.classList.contains('e-has-child')) {\n args.item.classList.remove('e-has-child');\n }\n args.item.removeAttribute('aria-level');\n }\n var eventArgs = { item: args.curData, element: args.item };\n _this.trigger('beforeItemRender', eventArgs);\n }\n };\n this.setProperties({ 'items': this.items }, true);\n if (this.isMenu) {\n listBaseOptions.templateID = this.element.id + TEMPLATE_PROPERTY;\n }\n var ul = ListBase.createList(this.createElement, items, listBaseOptions, !this.template, this);\n ul.setAttribute('tabindex', '0');\n if (this.isMenu) {\n ul.setAttribute('role', 'menu');\n }\n else {\n ul.setAttribute('role', 'menubar');\n }\n return ul;\n };\n MenuBase.prototype.moverHandler = function (e) {\n var trgt = e.target;\n this.liTrgt = trgt;\n var cli = this.getLI(trgt);\n var wrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : this.getWrapper();\n var hdrWrapper = this.getWrapper();\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var ulId;\n var isDifferentElem = false;\n if (!wrapper) {\n return;\n }\n if (wrapper.id !== '') {\n ulId = regex.exec(wrapper.id)[1];\n }\n else {\n ulId = wrapper.querySelector('ul').id;\n }\n if (ulId !== this.element.id) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [this.getWrapper()]);\n if (this.navIdx.length) {\n isDifferentElem = true;\n }\n else {\n return;\n }\n }\n if (cli && closest(cli, '.e-' + this.getModuleName() + '-wrapper') && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [wrapper].concat(this.getPopups()) : [wrapper]);\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [hdrWrapper].concat(this.getPopups()) : [hdrWrapper]);\n cli.classList.add(FOCUSED);\n if (!this.showItemOnClick) {\n this.clickHandler(e);\n }\n }\n else if (this.isMenu && this.showItemOnClick && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n }\n if (this.isMenu) {\n if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))\n && (!cli || (cli && !this.getIndex(cli.id, true).length)) && this.showSubMenuOn !== 'Hover') {\n this.removeLIStateByClass([FOCUSED], [wrapper]);\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n else if (isDifferentElem && !this.showItemOnClick) {\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n if (!this.isClosed) {\n this.removeStateWrapper();\n }\n this.isClosed = false;\n }\n };\n MenuBase.prototype.removeStateWrapper = function () {\n if (this.liTrgt) {\n var wrapper = closest(this.liTrgt, '.e-menu-vscroll');\n if (this.liTrgt.tagName === 'DIV' && wrapper) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);\n }\n }\n };\n MenuBase.prototype.removeLIStateByClass = function (classList, element) {\n var li;\n var _loop_1 = function (i) {\n classList.forEach(function (className) {\n li = select('.' + className, element[i]);\n if (li) {\n li.classList.remove(className);\n }\n });\n };\n for (var i = 0; i < element.length; i++) {\n _loop_1(i);\n }\n };\n MenuBase.prototype.getField = function (propName, level) {\n if (level === void 0) { level = 0; }\n var fieldName = this.fields[\"\" + propName];\n return typeof fieldName === 'string' ? fieldName :\n (!fieldName[level] ? fieldName[fieldName.length - 1].toString()\n : fieldName[level].toString());\n };\n MenuBase.prototype.getFields = function (level) {\n if (level === void 0) { level = 0; }\n return {\n id: this.getField('itemId', level),\n iconCss: this.getField('iconCss', level),\n text: this.getField('text', level),\n url: this.getField('url', level),\n child: this.getField('children', level),\n separator: this.getField('separator', level)\n };\n };\n MenuBase.prototype.hasField = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n MenuBase.prototype.menuHeaderClickHandler = function (e) {\n if (closest(e.target, '.e-menu-wrapper').querySelector('ul.e-menu-parent').id !== this.element.id) {\n return;\n }\n if (this.element.className.indexOf('e-hide-menu') > -1) {\n this.openHamburgerMenu(e);\n }\n else {\n this.closeHamburgerMenu(e);\n }\n };\n MenuBase.prototype.clickHandler = function (e) {\n if (this.isTapHold) {\n this.isTapHold = false;\n }\n else {\n var wrapper = this.getWrapper();\n var trgt = e.target;\n var cli = this.cli = this.getLI(trgt);\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;\n var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0\n : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);\n if (Browser.isDevice && this.isMenu) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n this.mouseDownHandler(e);\n }\n if (cli && cliWrapper && this.isMenu) {\n var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;\n if (this.element.id !== cliWrapperId) {\n return;\n }\n }\n if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {\n this.setLISelected(cli);\n var navIdx = this.getIndex(cli.id, true);\n var item = this.getItem(navIdx);\n var eventArgs = { element: cli, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {\n var ul = void 0;\n if (cli.classList.contains(HEADER)) {\n ul = wrapper.children[this.navIdx.length - 1];\n this.toggleAnimation(ul);\n var sli = this.getLIByClass(ul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n detach(cli.parentNode);\n this.navIdx.pop();\n }\n else {\n if (!cli.classList.contains(SEPARATOR)) {\n this.showSubMenu = true;\n var cul = cli.parentNode;\n this.cliIdx = this.getIdx(cul, cli);\n if (this.isMenu || !Browser.isDevice) {\n var culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))\n : this.getIdx(wrapper, cul);\n if (this.navIdx[culIdx] === this.cliIdx) {\n this.showSubMenu = false;\n }\n if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n this.isClosed = true;\n this.keyType = 'click';\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n }\n this.closeMenu(culIdx + 1, e);\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n }\n }\n }\n if (!this.isClosed) {\n this.afterCloseMenu(e);\n }\n this.isClosed = false;\n }\n }\n }\n else {\n if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {\n var popupEle = closest(trgt, '.' + POPUP);\n var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;\n if (cIdx < this.navIdx.length) {\n this.closeMenu(cIdx + 1, e);\n if (popupEle) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);\n }\n }\n }\n else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'\n && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&\n !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {\n if (!cli) {\n this.removeLIStateByClass([SELECTED], [wrapper]);\n }\n if (!cli || !cli.querySelector('.' + CARET)) {\n this.closeMenu(null, e);\n }\n }\n }\n }\n }\n };\n MenuBase.prototype.afterCloseMenu = function (e) {\n var isHeader;\n if (this.showSubMenu) {\n if (this.showItemOnClick && this.navIdx.length === 0) {\n isHeader = closest(e.target, '.e-menu-parent.e-control');\n }\n else {\n isHeader = closest(this.element, '.e-menu-parent.e-control');\n }\n var idx = this.navIdx.concat(this.cliIdx);\n var item = this.getItem(idx);\n if (item && item[this.getField('children', idx.length - 1)] &&\n item[this.getField('children', idx.length - 1)].length) {\n if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {\n this.setLISelected(this.cli);\n }\n if ((!this.hamburgerMode && isHeader) || (this.hamburgerMode && this.cli.getAttribute('aria-expanded') === 'false')) {\n this.cli.setAttribute('aria-expanded', 'true');\n this.navIdx.push(this.cliIdx);\n this.openMenu(this.cli, item, null, null, e);\n }\n }\n else {\n if (e.type !== 'mouseover') {\n this.closeMenu(null, e);\n }\n }\n if (!isHeader) {\n var cul = this.getUlByNavIdx();\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.setAttribute('aria-expanded', 'false');\n sli.classList.remove(SELECTED);\n }\n }\n }\n this.keyType = '';\n };\n MenuBase.prototype.setLISelected = function (li) {\n var sli = this.getLIByClass(li.parentElement, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n if (!this.isMenu) {\n li.classList.remove(FOCUSED);\n }\n li.classList.add(SELECTED);\n };\n MenuBase.prototype.getLIByClass = function (ul, classname) {\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains(classname)) {\n return ul.children[i];\n }\n }\n return null;\n };\n /**\n * This method is used to get the index of the menu item in the Menu based on the argument.\n *\n * @param {MenuItem | string} item - item be passed to get the index | id to be passed to get the item index.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.getItemIndex = function (item, isUniqueId) {\n var idx;\n if (typeof item === 'string') {\n idx = item;\n }\n else {\n idx = item.id;\n }\n var isText = (isUniqueId === false) ? false : true;\n var navIdx = this.getIndex(idx, isText);\n return navIdx;\n };\n /**\n * This method is used to set the menu item in the Menu based on the argument.\n *\n * @param {MenuItem} item - item need to be updated.\n * @param {string} id - id / text to be passed to update the item.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.setItem = function (item, id, isUniqueId) {\n var idx;\n if (isUniqueId) {\n idx = id ? id : item.id;\n }\n else {\n idx = id ? id : item.text;\n }\n var navIdx = this.getIndex(idx, isUniqueId);\n var newItem = this.getItem(navIdx);\n Object.assign(newItem, item);\n };\n MenuBase.prototype.getItem = function (navIdx) {\n navIdx = navIdx.slice();\n var idx = navIdx.pop();\n var items = this.getItems(navIdx);\n return items[idx];\n };\n MenuBase.prototype.getItems = function (navIdx) {\n var items = this.items;\n for (var i = 0; i < navIdx.length; i++) {\n items = items[navIdx[i]][this.getField('children', i)];\n }\n return items;\n };\n MenuBase.prototype.setItems = function (newItems, navIdx) {\n var items = this.getItems(navIdx);\n items.splice(0, items.length);\n for (var i = 0; i < newItems.length; i++) {\n items.splice(i, 0, newItems[i]);\n }\n };\n MenuBase.prototype.getIdx = function (ul, li, skipHdr) {\n if (skipHdr === void 0) { skipHdr = true; }\n var idx = Array.prototype.indexOf.call(ul.children, li);\n if (skipHdr && ul.children[0].classList.contains(HEADER)) {\n idx--;\n }\n return idx;\n };\n MenuBase.prototype.getLI = function (elem) {\n if (elem.tagName === 'LI' && elem.classList.contains('e-menu-item')) {\n return elem;\n }\n return closest(elem, 'li.e-menu-item');\n };\n MenuBase.prototype.updateItemsByNavIdx = function () {\n var items = this.items;\n var count = 0;\n for (var index = 0; index < this.navIdx.length; index++) {\n items = items[index].items;\n if (!items) {\n break;\n }\n count++;\n var ul = this.getUlByNavIdx(count);\n if (!ul) {\n break;\n }\n this.updateItem(ul, items);\n }\n };\n MenuBase.prototype.removeChildElement = function (elem) {\n while (elem.firstElementChild) {\n elem.removeChild(elem.firstElementChild);\n }\n return elem;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuBaseModel} newProp - Specifies the new properties\n * @param {MenuBaseModel} oldProp - Specifies the old properties\n * @returns {void}\n */\n MenuBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n var wrapper = this.getWrapper();\n var _loop_2 = function (prop) {\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n wrapper.classList.toggle(RTL);\n break;\n case 'showItemOnClick':\n this_1.unWireEvents();\n this_1.showItemOnClick = newProp.showItemOnClick;\n this_1.wireEvents();\n break;\n case 'enableScrolling':\n if (newProp.enableScrolling) {\n var ul_2;\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n this_1.getPopups().forEach(function (wrapper) {\n ul_2 = select('.e-ul', wrapper);\n addScrolling(_this.createElement, wrapper, ul_2, 'vscroll', _this.enableRtl);\n });\n }\n else {\n var ul_3 = wrapper.children[0];\n if (this_1.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n }\n else {\n destroyScroll(getInstance(ul_3, HScroll), ul_3);\n }\n wrapper.style.overflow = '';\n wrapper.appendChild(this_1.element);\n this_1.getPopups().forEach(function (wrapper) {\n ul_3 = wrapper.children[0];\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n wrapper.style.overflow = '';\n });\n }\n break;\n case 'items': {\n var idx = void 0;\n var navIdx = void 0;\n var item = void 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this_1.isReact && this_1.template) {\n this_1.clearTemplate(['template']);\n }\n if (!Object.keys(oldProp.items).length) {\n this_1.updateItem(this_1.element, this_1.items);\n if (this_1.enableScrolling && this_1.element.parentElement.classList.contains('e-custom-scroll')) {\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n }\n if (!this_1.hamburgerMode) {\n for (var i = 1, count = wrapper.childElementCount; i < count; i++) {\n detach(wrapper.lastElementChild);\n }\n }\n this_1.navIdx = [];\n }\n else {\n var keys = Object.keys(newProp.items);\n for (var i = 0; i < keys.length; i++) {\n navIdx = this_1.getChangedItemIndex(newProp, [], Number(keys[i]));\n if (navIdx.length <= this_1.getWrapper().children.length) {\n idx = navIdx.pop();\n item = this_1.getItems(navIdx);\n this_1.insertAfter([item[idx]], item[idx].text);\n this_1.removeItem(item, navIdx, idx);\n this_1.setItems(item, navIdx);\n }\n navIdx.length = 0;\n }\n }\n break;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_2(prop);\n }\n };\n MenuBase.prototype.updateItem = function (ul, items) {\n if (isBlazor() && !this.isMenu) {\n ul = this.removeChildElement(ul);\n }\n else {\n if (this.enableScrolling) {\n var wrapper1 = this.getWrapper();\n var ul1 = wrapper1.children[0];\n if (this.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul1, VScroll), ul1);\n }\n else {\n destroyScroll(getInstance(ul1, HScroll), ul1);\n }\n }\n ul.innerHTML = '';\n }\n var lis = [].slice.call(this.createItems(items).children);\n lis.forEach(function (li) {\n ul.appendChild(li);\n });\n };\n MenuBase.prototype.getChangedItemIndex = function (newProp, index, idx) {\n index.push(idx);\n var key = Object.keys(newProp.items[idx]).pop();\n if (key === 'items') {\n var item = newProp.items[idx];\n var popStr = Object.keys(item.items).pop();\n if (popStr) {\n this.getChangedItemIndex(item, index, Number(popStr));\n }\n }\n else {\n if (key === 'isParentArray' && index.length > 1) {\n index.pop();\n }\n }\n return index;\n };\n MenuBase.prototype.removeItem = function (item, navIdx, idx) {\n item.splice(idx, 1);\n var uls = this.getWrapper().children;\n if (navIdx.length < uls.length) {\n detach(uls[navIdx.length].children[idx]);\n }\n };\n /**\n * Used to unwire the bind events.\n *\n * @private\n * @param {string} targetSelctor - Specifies the target selector\n * @returns {void}\n */\n MenuBase.prototype.unWireEvents = function (targetSelctor) {\n if (targetSelctor === void 0) { targetSelctor = this.target; }\n var wrapper = this.getWrapper();\n if (targetSelctor) {\n var target = void 0;\n var touchModule = void 0;\n var targetElems = selectAll(targetSelctor);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.remove(target, 'click', this.menuHeaderClickHandler);\n }\n else {\n if (Browser.isIos) {\n touchModule = getInstance(target, Touch);\n if (touchModule) {\n touchModule.destroy();\n }\n }\n else {\n EventHandler.remove(target, 'contextmenu', this.cmenuHandler);\n }\n }\n }\n if (!this.isMenu) {\n EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollHandler);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);\n EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);\n }\n EventHandler.remove(document, 'click', this.delegateClickHandler);\n this.unWireKeyboardEvent(wrapper);\n this.rippleFn();\n };\n MenuBase.prototype.unWireKeyboardEvent = function (element) {\n var keyboardModule = getInstance(element, KeyboardEvents);\n if (keyboardModule) {\n keyboardModule.destroy();\n }\n };\n MenuBase.prototype.toggleAnimation = function (ul, isMenuOpen) {\n var _this = this;\n if (isMenuOpen === void 0) { isMenuOpen = true; }\n var pUlHeight;\n var pElement;\n if (this.animationSettings.effect === 'None' || !isMenuOpen) {\n this.end(ul, isMenuOpen);\n }\n else {\n this.animation.animate(ul, {\n name: this.animationSettings.effect,\n duration: this.animationSettings.duration,\n timingFunction: this.animationSettings.easing,\n begin: function (options) {\n if (_this.hamburgerMode) {\n pElement = options.element.parentElement;\n options.element.style.position = 'absolute';\n pUlHeight = pElement.offsetHeight;\n options.element.style.maxHeight = options.element.offsetHeight + 'px';\n pElement.style.maxHeight = '';\n }\n else {\n options.element.style.display = 'block';\n options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px';\n }\n },\n progress: function (options) {\n if (_this.hamburgerMode) {\n pElement.style.minHeight = (pUlHeight + options.element.offsetHeight) + 'px';\n }\n },\n end: function (options) {\n if (_this.hamburgerMode) {\n options.element.style.position = '';\n options.element.style.maxHeight = '';\n pElement.style.minHeight = '';\n options.element.style.top = 0 + 'px';\n options.element.children[0].focus();\n _this.triggerOpen(options.element.children[0]);\n }\n else {\n _this.end(options.element, isMenuOpen);\n }\n }\n });\n }\n };\n MenuBase.prototype.triggerOpen = function (ul) {\n var item = this.navIdx.length ? this.getItem(this.navIdx) : null;\n var eventArgs = {\n element: ul, parentItem: item, items: item ? item.items : this.items\n };\n this.trigger('onOpen', eventArgs);\n };\n MenuBase.prototype.end = function (ul, isMenuOpen) {\n if (isMenuOpen) {\n ul.style.display = 'block';\n ul.style.maxHeight = '';\n this.triggerOpen(ul);\n if (ul.querySelector('.' + FOCUSED)) {\n ul.querySelector('.' + FOCUSED).focus();\n }\n else {\n var ele = this.getWrapper().children[this.getIdx(this.getWrapper(), ul) - 1];\n if (this.currentTarget) {\n if (!(this.currentTarget.classList.contains('e-numerictextbox') || this.currentTarget.classList.contains('e-textbox') || this.currentTarget.tagName === 'INPUT')) {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n else {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n }\n else {\n if (ul === this.element) {\n var fli = this.getLIByClass(this.element, FOCUSED);\n if (fli) {\n fli.classList.remove(FOCUSED);\n }\n var sli = this.getLIByClass(this.element, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n ul.style.display = 'none';\n }\n else {\n detach(ul);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n MenuBase.prototype.getPersistData = function () {\n return '';\n };\n /**\n * Get wrapper element.\n *\n * @returns {Element} - Wrapper element\n * @private\n */\n MenuBase.prototype.getWrapper = function () {\n return closest(this.element, '.e-' + this.getModuleName() + '-wrapper');\n };\n MenuBase.prototype.getIndex = function (data, isUniqueId, items, nIndex, isCallBack, level) {\n if (items === void 0) { items = this.items; }\n if (nIndex === void 0) { nIndex = []; }\n if (isCallBack === void 0) { isCallBack = false; }\n if (level === void 0) { level = 0; }\n var item;\n level = isCallBack ? level + 1 : 0;\n for (var i = 0, len = items.length; i < len; i++) {\n item = items[i];\n if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) {\n nIndex.push(i);\n break;\n }\n else if (item[this.getField('children', level)]\n && item[this.getField('children', level)].length) {\n nIndex = this.getIndex(data, isUniqueId, item[this.getField('children', level)], nIndex, true, level);\n if (nIndex[nIndex.length - 1] === -1) {\n if (i !== len - 1) {\n nIndex.pop();\n }\n }\n else {\n nIndex.unshift(i);\n break;\n }\n }\n else {\n if (i === len - 1) {\n nIndex.push(-1);\n }\n }\n }\n return (!isCallBack && nIndex[0] === -1) ? [] : nIndex;\n };\n /**\n * This method is used to enable or disable the menu items in the Menu based on the items and enable argument.\n *\n * @param {string[]} items - Text items that needs to be enabled/disabled.\n * @param {boolean} enable - Set `true`/`false` to enable/disable the list items.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.enableItems = function (items, enable, isUniqueId) {\n if (enable === void 0) { enable = true; }\n var ul;\n var idx;\n var navIdx;\n var disabled = DISABLED;\n var skipItem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n if (this.navIdx.length) {\n if (navIdx.length !== 1) {\n skipItem = false;\n for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) {\n if (navIdx[i_1] !== this.navIdx[i_1]) {\n skipItem = true;\n break;\n }\n }\n if (skipItem) {\n continue;\n }\n }\n }\n else {\n if (navIdx.length !== 1) {\n continue;\n }\n }\n idx = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul) {\n if (enable) {\n if (this.isMenu) {\n ul.children[idx].classList.remove(disabled);\n ul.children[idx].removeAttribute('aria-disabled');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.remove(disabled);\n }\n else {\n ul.children[idx].classList.remove(disabled);\n }\n }\n }\n else {\n if (this.isMenu) {\n ul.children[idx].classList.add(disabled);\n ul.children[idx].setAttribute('aria-disabled', 'true');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.add(disabled);\n }\n else {\n ul.children[idx].classList.add(disabled);\n }\n }\n }\n }\n }\n };\n /**\n * This method is used to show the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be shown.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.showItems = function (items, isUniqueId) {\n this.showHideItems(items, false, isUniqueId);\n };\n /**\n * This method is used to hide the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be hidden.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.hideItems = function (items, isUniqueId) {\n this.showHideItems(items, true, isUniqueId);\n };\n MenuBase.prototype.showHideItems = function (items, ishide, isUniqueId) {\n var ul;\n var index;\n var navIdx;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n index = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul) {\n if (ishide) {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[index + 1].classList.add(HIDE);\n }\n else {\n ul.children[index].classList.add(HIDE);\n }\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[index + 1].classList.remove(HIDE);\n }\n else {\n ul.children[index].classList.remove(HIDE);\n }\n }\n }\n }\n };\n /**\n * It is used to remove the menu items from the Menu based on the items text.\n *\n * @param {string[]} items Text items that needs to be removed.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.removeItems = function (items, isUniqueId) {\n var idx;\n var navIdx;\n var iitems;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n if (!isNullOrUndefined(idx)) {\n this.removeItem(iitems, navIdx, idx);\n }\n }\n };\n /**\n * It is used to insert the menu items after the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item after that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertAfter = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId);\n };\n /**\n * It is used to insert the menu items before the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item before that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertBefore = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId, false);\n };\n MenuBase.prototype.insertItems = function (items, text, isUniqueId, isAfter) {\n if (isAfter === void 0) { isAfter = true; }\n var li;\n var idx;\n var navIdx;\n var iitems;\n var menuitem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(text, isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n menuitem = new MenuItem(iitems[0], 'items', items[i], true);\n iitems.splice(isAfter ? idx + 1 : idx, 0, menuitem);\n var uls = this.isMenu ? [this.getWrapper()].concat(this.getPopups()) : [].slice.call(this.getWrapper().children);\n if (!isNullOrUndefined(idx) && navIdx.length < uls.length) {\n idx = isAfter ? idx + 1 : idx;\n li = this.createItems(iitems).children[idx];\n var ul = this.isMenu ? select('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length];\n ul.insertBefore(li, ul.children[idx]);\n }\n }\n };\n MenuBase.prototype.removeAttributes = function () {\n var _this = this;\n ['top', 'left', 'display', 'z-index'].forEach(function (key) {\n _this.element.style.removeProperty(key);\n });\n ['role', 'tabindex', 'class', 'style'].forEach(function (key) {\n if (key === 'class' && _this.element.classList.contains('e-menu-parent')) {\n _this.element.classList.remove('e-menu-parent');\n }\n if (['class', 'style'].indexOf(key) === -1 || !_this.element.getAttribute(key)) {\n _this.element.removeAttribute(key);\n }\n if (_this.isMenu && key === 'class' && _this.element.classList.contains('e-vertical')) {\n _this.element.classList.remove('e-vertical');\n }\n });\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n MenuBase.prototype.destroy = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n this.unWireEvents();\n if (!this.isMenu) {\n this.clonedElement.style.display = '';\n if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') {\n addClass([this.clonedElement], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.element = this.clonedElement;\n }\n else {\n if (this.refreshing && this.clonedElement.childElementCount && this.clonedElement.children[0].tagName === 'LI') {\n this.setProperties({ 'items': [] }, true);\n }\n if (document.getElementById(this.clonedElement.id)) {\n var refEle = this.clonedElement.nextElementSibling;\n if (refEle && refEle !== wrapper) {\n this.clonedElement.parentElement.insertBefore(this.element, refEle);\n }\n else {\n this.clonedElement.parentElement.appendChild(this.element);\n }\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n append([].slice.call(this.clonedElement.children), this.element);\n detach(this.clonedElement);\n this.removeAttributes();\n }\n }\n this.clonedElement = null;\n }\n else {\n this.closeMenu();\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n this.removeAttributes();\n wrapper.parentNode.insertBefore(this.element, wrapper);\n this.clonedElement = null;\n }\n if (this.isMenu && this.clonedElement) {\n detach(this.element);\n wrapper.style.display = '';\n wrapper.classList.remove('e-' + this.getModuleName() + '-wrapper');\n wrapper.removeAttribute('data-ripple');\n }\n else {\n detach(wrapper);\n }\n _super.prototype.destroy.call(this);\n if (this.template) {\n this.clearTemplate(['template']);\n }\n }\n this.rippleFn = null;\n };\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"created\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], MenuBase.prototype, \"hoverDelay\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"showItemOnClick\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"filter\", void 0);\n __decorate([\n Property(null)\n ], MenuBase.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], MenuBase.prototype, \"fields\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuBase.prototype, \"items\", void 0);\n __decorate([\n Complex({ duration: 400, easing: 'ease', effect: 'SlideDown' }, MenuAnimationSettings)\n ], MenuBase.prototype, \"animationSettings\", void 0);\n MenuBase = __decorate([\n NotifyPropertyChanges\n ], MenuBase);\n return MenuBase;\n}(Component));\nexport { MenuBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, Animation, createElement } from '@syncfusion/ej2-base';\nimport { Browser, isNullOrUndefined as isNOU, getUniqueID, formatUnit, EventHandler } from '@syncfusion/ej2-base';\nimport { Collection, Complex, setStyleAttribute, Event, detach, L10n } from '@syncfusion/ej2-base';\nimport { attributes, extend, closest, compile as templateCompiler, classList, isUndefined } from '@syncfusion/ej2-base';\nimport { Touch, isBlazor, SanitizeHtmlHelper, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nvar ROOT = 'e-toast';\nvar CONTAINER = 'e-toast-container';\nvar TITLE = 'e-toast-title';\nvar WIDTHFULL = 'e-toast-full-width';\nvar CONTENT = 'e-toast-content';\nvar MESSAGE = 'e-toast-message';\nvar ICON = 'e-toast-icon';\nvar PROGRESS = 'e-toast-progress';\nvar ACTIOBUTTONS = 'e-toast-actions';\nvar CLOSEBTN = 'e-toast-close-icon';\nvar RTL = 'e-rtl';\n// eslint-disable-next-line\nvar TOAST_REF_ELEMENT = 'e-toast-ref-element';\nvar TOAST_BLAZOR_HIDDEN = 'e-blazor-toast-hidden';\n/**\n * An object that is used to configure the Toast X Y positions.\n */\nvar ToastPosition = /** @class */ (function (_super) {\n __extends(ToastPosition, _super);\n function ToastPosition() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Left')\n ], ToastPosition.prototype, \"X\", void 0);\n __decorate([\n Property('Top')\n ], ToastPosition.prototype, \"Y\", void 0);\n return ToastPosition;\n}(ChildProperty));\nexport { ToastPosition };\n/**\n * An object that is used to configure the action button model properties and event.\n */\nvar ButtonModelProps = /** @class */ (function (_super) {\n __extends(ButtonModelProps, _super);\n function ButtonModelProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ButtonModelProps.prototype, \"model\", void 0);\n __decorate([\n Property(null)\n ], ButtonModelProps.prototype, \"click\", void 0);\n return ButtonModelProps;\n}(ChildProperty));\nexport { ButtonModelProps };\n/**\n * An object that is used to configure the animation object of Toast.\n */\nvar ToastAnimations = /** @class */ (function (_super) {\n __extends(ToastAnimations, _super);\n function ToastAnimations() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('FadeIn')\n ], ToastAnimations.prototype, \"effect\", void 0);\n __decorate([\n Property(600)\n ], ToastAnimations.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], ToastAnimations.prototype, \"easing\", void 0);\n return ToastAnimations;\n}(ChildProperty));\nexport { ToastAnimations };\n/**\n * An object that is used to configure the show/hide animation settings of Toast.\n */\nvar ToastAnimationSettings = /** @class */ (function (_super) {\n __extends(ToastAnimationSettings, _super);\n function ToastAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'FadeIn', duration: 600, easing: 'ease' }, ToastAnimations)\n ], ToastAnimationSettings.prototype, \"show\", void 0);\n __decorate([\n Complex({ effect: 'FadeOut', duration: 600, easing: 'ease' }, ToastAnimations)\n ], ToastAnimationSettings.prototype, \"hide\", void 0);\n return ToastAnimationSettings;\n}(ChildProperty));\nexport { ToastAnimationSettings };\n/**\n * The Toast is a notification pop-up that showing on desired position which can provide an information to the user.\n * ```html\n *
\n * \n * ```\n */\nvar Toast = /** @class */ (function (_super) {\n __extends(Toast, _super);\n /**\n * Initializes a new instance of the Toast class.\n *\n * @param {ToastModel} options - Specifies Toast model properties as options.\n * @param {HTMLElement} element - Specifies the element that is rendered as a Toast.\n */\n function Toast(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.toastCollection = [];\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets the Component module name.\n *\n * @returns {string} - returns the string\n * @private\n */\n Toast.prototype.getModuleName = function () {\n return 'toast';\n };\n /**\n * Gets the persisted state properties of the Component.\n *\n * @returns {string} - returns the string\n */\n Toast.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\n *\n * @returns {void}\n */\n Toast.prototype.destroy = function () {\n this.hide('All');\n this.element.classList.remove(CONTAINER);\n setStyleAttribute(this.element, { 'position': '', 'z-index': '' });\n if (!isNOU(this.refElement) && !isNOU(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore(this.element, this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (!this.isBlazorServer()) {\n _super.prototype.destroy.call(this);\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.preRender = function () {\n //There is no event handler\n this.isDevice = Browser.isDevice;\n if (this.width === '300px') {\n this.width = (this.isDevice && screen.width < 768) ? '100%' : '300px';\n }\n if (isNOU(this.target)) {\n this.target = document.body;\n }\n if (this.enableRtl && !this.isBlazorServer()) {\n this.element.classList.add(RTL);\n }\n };\n /**\n * Initialize the component rendering\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.render = function () {\n this.progressObj = [];\n this.intervalId = [];\n this.contentTemplate = null;\n this.toastTemplate = null;\n this.renderComplete();\n this.initRenderClass = this.element.className;\n };\n /**\n * To show Toast element on a document with the relative position.\n *\n * @param {ToastModel} toastObj - To show Toast element on screen.\n * @returns {void}\n\n */\n Toast.prototype.show = function (toastObj) {\n var collectionObj;\n if (!isNOU(toastObj)) {\n this.templateChanges(toastObj);\n collectionObj = JSON.parse(JSON.stringify(toastObj));\n extend(this, this, toastObj);\n }\n if (isNOU(this.toastContainer)) {\n this.toastContainer = this.getContainer();\n var target = typeof (this.target) === 'string' ? document.querySelector(this.target) :\n (typeof (this.target) === 'object' ? this.target : document.body);\n if (isNOU(target)) {\n return;\n }\n if (target.tagName === 'BODY') {\n this.toastContainer.style.position = 'fixed';\n }\n else {\n this.toastContainer.style.position = 'absolute';\n target.style.position = 'relative';\n }\n this.setPositioning(this.position);\n target.appendChild(this.toastContainer);\n }\n if (this.isBlazorServer() && this.element.classList.contains('e-control')) {\n this.isToastModel(toastObj);\n return;\n }\n this.toastEle = this.createElement('div', { className: ROOT, id: getUniqueID('toast') });\n this.setWidthHeight();\n this.setCSSClass(this.cssClass);\n // eslint-disable-next-line\n (isNOU(this.template) || this.template === '') ? this.personalizeToast() : this.templateRendering();\n this.setProgress();\n this.setCloseButton();\n this.setAria();\n this.appendToTarget(toastObj);\n if (this.isDevice && screen.width < 768) {\n new Touch(this.toastEle, { swipe: this.swipeHandler.bind(this) });\n }\n if (!isNOU(collectionObj)) {\n extend(collectionObj, { element: [this.toastEle] }, true);\n this.toastCollection.push(collectionObj);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * @param {string} id - specifies the id\n * @param {ToastModel} toastObj - specifies the model\n * @returns {void}\n * @hidden\n\n * This method applicable for blazor alone.\n */\n Toast.prototype.showToast = function (id, toastObj) {\n this.toastEle = this.element.querySelector('#' + id);\n this.show(toastObj);\n };\n Toast.prototype.isToastModel = function (toastObj) {\n this.toastContainer = this.element;\n this.setPositioning(this.position);\n // eslint-disable-next-line\n var proxy = this;\n if (!isNOU(proxy.element.lastElementChild)) {\n this.setProgress();\n }\n this.setAria();\n this.appendToTarget(toastObj);\n };\n Toast.prototype.swipeHandler = function (e) {\n var toastEle = closest(e.originalEvent.target, '.' + ROOT + ':not(.' + CONTAINER + ')');\n var hideAnimation = this.animation.hide.effect;\n if (!isNOU(toastEle)) {\n if (e.swipeDirection === 'Right') {\n this.animation.hide.effect = 'SlideRightOut';\n this.hideToast('swipe', toastEle);\n }\n else if (e.swipeDirection === 'Left') {\n this.animation.hide.effect = 'SlideLeftOut';\n this.hideToast('swipe', toastEle);\n }\n this.animation.hide.effect = hideAnimation;\n }\n };\n Toast.prototype.templateChanges = function (toastObj) {\n if (!isUndefined(toastObj.content) && !isNOU(this.contentTemplate) && this.content !== toastObj.content) {\n this.clearContentTemplate();\n }\n if (!isUndefined(toastObj.template) && !isNOU(this.toastTemplate) && this.template !== toastObj.template) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.setCSSClass = function (cssClass) {\n if (cssClass) {\n var split = cssClass.indexOf(',') !== -1 ? ',' : ' ';\n classList(this.toastEle, cssClass.split(split), []);\n if (this.toastContainer) {\n classList(this.toastContainer, cssClass.split(split), []);\n }\n }\n };\n Toast.prototype.setWidthHeight = function () {\n if (this.width === '300px') {\n this.toastEle.style.width = formatUnit(this.width);\n }\n else if (this.width === '100%') {\n this.toastContainer.classList.add(WIDTHFULL);\n }\n else {\n this.toastEle.style.width = formatUnit(this.width);\n this.toastContainer.classList.remove(WIDTHFULL);\n }\n this.toastEle.style.height = formatUnit(this.height);\n };\n Toast.prototype.templateRendering = function () {\n this.fetchEle(this.toastEle, this.template, 'template');\n };\n /**\n * @param {string} value - specifies the string value.\n * @returns {string} - returns the string\n * @hidden\n */\n Toast.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNOU(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n /**\n * To Hide Toast element on a document.\n * To Hide all toast element when passing 'All'.\n *\n * @param {HTMLElement} element - To Hide Toast element on screen.\n * @returns {void}\n */\n Toast.prototype.hide = function (element) {\n this.hideToast('', element);\n };\n Toast.prototype.hideToast = function (interactionType, element) {\n if (isNOU(this.toastContainer) || this.toastContainer.childElementCount === 0) {\n return;\n }\n if (typeof element === 'string' && element === 'All') {\n for (var i = 0; i < this.toastContainer.childElementCount; i++) {\n this.destroyToast(this.toastContainer.children[i], interactionType);\n }\n return;\n }\n if (isNOU(element)) {\n element = (this.newestOnTop ? this.toastContainer.lastElementChild : this.toastContainer.firstElementChild);\n }\n this.destroyToast(element, interactionType);\n };\n Toast.prototype.fetchEle = function (ele, value, prob) {\n value = typeof (value) === 'string' ? this.sanitizeHelper(value) : value;\n // eslint-disable-next-line\n var templateFn;\n var tempVar;\n var tmpArray;\n var templateProps;\n if (ele.classList.contains(TITLE)) {\n templateProps = this.element.id + 'title';\n }\n else if (ele.classList.contains(CONTENT)) {\n templateProps = this.element.id + 'content';\n }\n else {\n templateProps = this.element.id + 'template';\n }\n // eslint-disable-next-line\n prob === 'content' ? tempVar = this.contentTemplate : tempVar = this.toastTemplate;\n if (!isNOU(tempVar)) {\n ele.appendChild(tempVar.cloneNode(true));\n return ele;\n }\n try {\n if (document.querySelectorAll(value).length > 0) {\n var elem = null;\n if (prob !== 'title') {\n elem = document.querySelector(value);\n ele.appendChild(elem);\n elem.style.display = '';\n }\n var clo = isNOU(elem) ? tempVar : elem.cloneNode(true);\n // eslint-disable-next-line\n prob === 'content' ? this.contentTemplate = clo : this.toastTemplate = clo;\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n templateFn = templateCompiler(value);\n // eslint-disable-next-line\n var templateValue = value;\n }\n if (!isNOU(templateFn)) {\n if (!this.isBlazorServer()) {\n tmpArray = templateFn({}, this, prob, null, true);\n }\n else {\n var isString = true;\n tmpArray = templateFn({}, this, prob, templateProps, isString);\n }\n }\n if (!isNOU(tmpArray) && tmpArray.length > 0 && !(isNOU(tmpArray[0].tagName) && tmpArray.length === 1)) {\n [].slice.call(tmpArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (ele.childElementCount === 0) {\n ele.innerHTML = value;\n }\n return ele;\n };\n Toast.prototype.clearProgress = function (intervalId) {\n if (!isNOU(this.intervalId[intervalId])) {\n clearInterval(this.intervalId[intervalId]);\n delete this.intervalId[intervalId];\n }\n if (!isNOU(this.progressObj[intervalId])) {\n clearInterval(this.progressObj[intervalId].intervalId);\n delete this.progressObj[intervalId];\n }\n };\n Toast.prototype.removeToastContainer = function (isClosed) {\n if (isClosed && this.toastContainer.classList.contains('e-toast-util')) {\n detach(this.toastContainer);\n }\n };\n Toast.prototype.clearContainerPos = function (isClosed) {\n var _this = this;\n if (this.isBlazorServer()) {\n this.toastContainer = null;\n return;\n }\n if (this.customPosition) {\n setStyleAttribute(this.toastContainer, { 'left': '', 'top': '' });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n this.customPosition = false;\n }\n else {\n [ROOT + '-top-left',\n ROOT + '-top-right',\n ROOT + '-bottom-left',\n ROOT + '-bottom-right',\n ROOT + '-bottom-center',\n ROOT + '-top-center',\n ROOT + '-full-width'].forEach(function (pos) {\n if (!isNOU(_this.toastContainer) && _this.toastContainer.classList.contains(pos)) {\n _this.toastContainer.classList.remove(pos);\n }\n });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n }\n if (!isNOU(this.contentTemplate)) {\n this.clearContentTemplate();\n }\n if (!isNOU(this.toastTemplate)) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.clearContentTemplate = function () {\n this.contentTemplate.style.display = 'none';\n document.body.appendChild(this.contentTemplate);\n this.contentTemplate = null;\n };\n Toast.prototype.clearToastTemplate = function () {\n this.toastTemplate.style.display = 'none';\n document.body.appendChild(this.toastTemplate);\n this.toastTemplate = null;\n };\n Toast.prototype.isBlazorServer = function () {\n return (isBlazor() && this.isServerRendered);\n };\n Toast.prototype.destroyToast = function (toastEle, interactionType) {\n var _this = this;\n var toastObj;\n for (var i = 0; i < this.toastCollection.length; i++) {\n if (this.toastCollection[i].element[0] === toastEle) {\n toastObj = this.toastCollection[i];\n this.toastCollection.splice(i, 1);\n }\n }\n var toastBeforeClose = {\n options: this,\n cancel: false,\n type: interactionType,\n element: toastEle,\n toastContainer: this.toastContainer\n };\n var hideAnimate = this.animation.hide;\n var animate = {\n duration: hideAnimate.duration, name: hideAnimate.effect, timingFunction: hideAnimate.easing\n };\n var intervalId = parseInt(toastEle.id.split('toast_')[1], 10);\n var toastClose = this.isBlazorServer() ? {\n options: toastObj,\n toastContainer: this.toastContainer\n } : {\n options: toastObj,\n toastContainer: this.toastContainer,\n toastObj: this\n };\n this.trigger('beforeClose', toastBeforeClose, function (toastBeforeCloseArgs) {\n if (!toastBeforeCloseArgs.cancel) {\n if (!isNOU(_this.progressObj[intervalId]) && !isNOU(toastEle.querySelector('.' + PROGRESS))) {\n _this.progressObj[intervalId].progressEle.style.width = '0%';\n }\n animate.end = function () {\n _this.clearProgress(intervalId);\n if (!_this.isBlazorServer() || isNOU(toastObj)) {\n detach(toastEle);\n }\n _this.trigger('close', toastClose);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos(true);\n }\n hideAnimate = null;\n animate = null;\n };\n new Animation(animate).animate(toastEle);\n }\n });\n };\n Toast.prototype.personalizeToast = function () {\n this.setIcon();\n this.setTitle();\n this.setContent();\n this.actionButtons();\n };\n Toast.prototype.setAria = function () {\n attributes(this.toastEle, { 'role': 'alert' });\n };\n Toast.prototype.setPositioning = function (pos) {\n if (this.isBlazorServer()) {\n return;\n }\n if (!isNaN(parseFloat(pos.X)) || !isNaN(parseFloat(pos.Y))) {\n this.customPosition = true;\n setStyleAttribute(this.toastContainer, { 'left': formatUnit(pos.X), 'top': formatUnit(pos.Y) });\n }\n else {\n this.toastContainer.classList.add(ROOT + '-' + pos.Y.toString().toLowerCase() + '-' + pos.X.toString().toLowerCase());\n }\n };\n Toast.prototype.setCloseButton = function () {\n if (!this.showCloseButton) {\n return;\n }\n // eslint-disable-next-line\n var localeText = { close: 'Close' };\n this.l10n = new L10n('toast', localeText, this.locale);\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n var closeBtn = this.createElement('div', { className: CLOSEBTN + ' e-icons ', attrs: { tabindex: '0', 'aria-label': closeIconTitle, 'role': 'button' } });\n this.toastEle.classList.add('e-toast-header-close-icon');\n this.toastEle.appendChild(closeBtn);\n };\n Toast.prototype.setProgress = function () {\n if (this.timeOut > 0) {\n var id = parseInt(this.toastEle.id.split('toast_')[1], 10);\n this.intervalId[id] = window.setTimeout(this.destroyToast.bind(this, this.toastEle), this.timeOut);\n this.progressObj[id] = { hideEta: null, intervalId: null, maxHideTime: null,\n element: null, timeOutId: null, progressEle: null };\n this.progressObj[id].maxHideTime = parseFloat(this.timeOut + '');\n this.progressObj[id].hideEta = new Date().getTime() + this.progressObj[id].maxHideTime;\n this.progressObj[id].element = this.toastEle;\n if (this.extendedTimeout > 0) {\n EventHandler.add(this.toastEle, 'mouseover', this.toastHoverAction.bind(this, id));\n EventHandler.add(this.toastEle, 'mouseleave', this.delayedToastProgress.bind(this, id));\n this.progressObj[id].timeOutId = this.intervalId[id];\n }\n if (this.showProgressBar) {\n this.progressBarEle = this.createElement('div', { className: PROGRESS });\n this.toastEle.insertBefore(this.progressBarEle, this.toastEle.children[0]);\n // eslint-disable-next-line max-len\n this.progressObj[id].intervalId = setInterval(this.updateProgressBar.bind(this, this.progressObj[id]), 10);\n this.progressObj[id].progressEle = this.progressBarEle;\n }\n }\n };\n Toast.prototype.toastHoverAction = function (id) {\n clearTimeout(this.progressObj[id].timeOutId);\n clearInterval(this.progressObj[id].intervalId);\n this.progressObj[id].hideEta = 0;\n var toastEle = this.progressObj[id].element;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n this.progressObj[id].progressEle.style.width = '0%';\n }\n };\n Toast.prototype.delayedToastProgress = function (id) {\n var progress = this.progressObj[id];\n var toastEle = progress.element;\n progress.timeOutId = window.setTimeout(this.destroyToast.bind(this, toastEle), this.extendedTimeout);\n progress.maxHideTime = parseFloat(this.extendedTimeout + '');\n progress.hideEta = new Date().getTime() + progress.maxHideTime;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n progress.intervalId = setInterval(this.updateProgressBar.bind(this, progress), 10);\n }\n };\n Toast.prototype.updateProgressBar = function (progressObj) {\n var percentage = ((progressObj.hideEta - (new Date().getTime())) / progressObj.maxHideTime) * 100;\n percentage = this.progressDirection === 'Ltr' ? 100 - percentage : percentage;\n progressObj.progressEle.style.width = percentage + '%';\n };\n Toast.prototype.setIcon = function () {\n if (isNOU(this.icon) || this.icon.length === 0) {\n return;\n }\n var iconEle = this.createElement('div', { className: ICON + ' e-icons ' + this.icon });\n this.toastEle.classList.add('e-toast-header-icon');\n this.toastEle.appendChild(iconEle);\n };\n Toast.prototype.setTitle = function () {\n if (isNOU(this.title)) {\n return;\n }\n var titleEle = this.createElement('div', { className: TITLE });\n titleEle = this.fetchEle(titleEle, this.title, 'title');\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(titleEle);\n this.toastEle.appendChild(msgContainer);\n };\n Toast.prototype.setContent = function () {\n var contentEle = this.createElement('div', { className: CONTENT });\n var ele = this.element;\n if (isNOU(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s/g, '') !== '';\n if ((ele.children.length > 0 || isContent) && !(ele.firstElementChild && ele.firstElementChild.classList.contains(ROOT))) {\n this.innerEle = document.createDocumentFragment();\n var tempEle_1 = this.createElement('div');\n while (ele.childNodes.length !== 0) {\n this.innerEle.appendChild(this.element.childNodes[0]);\n }\n contentEle.appendChild(this.innerEle);\n [].slice.call(contentEle.children).forEach(function (ele) {\n tempEle_1.appendChild(ele.cloneNode(true));\n });\n this.content = tempEle_1;\n this.appendMessageContainer(contentEle);\n }\n }\n else {\n if (typeof (this.content) === 'object' && !isNOU(this.content.tagName)) {\n contentEle.appendChild(this.content);\n this.content = this.content.cloneNode(true);\n this.appendMessageContainer(contentEle);\n }\n else {\n contentEle = this.fetchEle(contentEle, this.content, 'content');\n this.appendMessageContainer(contentEle);\n }\n }\n };\n Toast.prototype.appendMessageContainer = function (element) {\n if (this.toastEle.querySelectorAll('.' + MESSAGE).length > 0) {\n this.toastEle.querySelector('.' + MESSAGE).appendChild(element);\n }\n else {\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(element);\n this.toastEle.appendChild(msgContainer);\n }\n };\n Toast.prototype.actionButtons = function () {\n var _this = this;\n var actionBtnContainer = this.createElement('div', { className: ACTIOBUTTONS });\n [].slice.call(this.buttons).forEach(function (actionBtn) {\n if (isNOU(actionBtn.model)) {\n return;\n }\n var btnDom = _this.createElement('button');\n btnDom.setAttribute('type', 'button');\n if (isNOU(actionBtn.model.cssClass) || actionBtn.model.cssClass.length === 0) {\n actionBtn.model.cssClass = 'e-primary' + ' ' + _this.cssClass;\n }\n btnDom.classList.add('e-small');\n new Button(actionBtn.model, btnDom);\n if (!isNOU(actionBtn.click) && typeof (actionBtn.click) === 'function') {\n EventHandler.add(btnDom, 'click', actionBtn.click);\n }\n actionBtnContainer.appendChild(btnDom);\n });\n if (actionBtnContainer.childElementCount > 0) {\n this.appendMessageContainer(actionBtnContainer);\n }\n };\n Toast.prototype.appendToTarget = function (toastObj) {\n var _this = this;\n var toastBeforeOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle,\n cancel: false\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle,\n cancel: false\n };\n this.trigger('beforeOpen', toastBeforeOpen, function (toastBeforeOpenArgs) {\n if (!toastBeforeOpenArgs.cancel) {\n if (!_this.isBlazorServer()) {\n _this.toastEle.style.display = 'none';\n }\n if (_this.newestOnTop && _this.toastContainer.childElementCount !== 0) {\n _this.toastContainer.insertBefore(_this.toastEle, _this.toastContainer.children[0]);\n }\n else if (!_this.isBlazorServer()) {\n _this.toastContainer.appendChild(_this.toastEle);\n }\n removeClass([_this.toastEle], TOAST_BLAZOR_HIDDEN);\n EventHandler.add(_this.toastEle, 'click', _this.clickHandler, _this);\n EventHandler.add(_this.toastEle, 'keydown', _this.keyDownHandler, _this);\n _this.toastContainer.style.zIndex = getZindexPartial(_this.toastContainer) + '';\n _this.displayToast(_this.toastEle, toastObj);\n }\n else if (_this.isBlazorServer()) {\n var intervalId = parseInt(_this.toastEle.id.split('toast_')[1], 10);\n _this.clearProgress(intervalId);\n detach(_this.toastEle);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos();\n }\n }\n });\n };\n Toast.prototype.clickHandler = function (e) {\n var _this = this;\n if (!this.isBlazorServer()) {\n e.stopPropagation();\n }\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n var clickArgs = this.isBlazorServer() ? {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e\n } : {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e, toastObj: this\n };\n var isCloseIcon = target.classList.contains(CLOSEBTN);\n this.trigger('click', clickArgs, function (toastClickArgs) {\n if ((isCloseIcon && !toastClickArgs.cancel) || toastClickArgs.clickToClose) {\n _this.destroyToast(toastEle, 'click');\n }\n });\n };\n Toast.prototype.keyDownHandler = function (e) {\n if (e.target.classList.contains(CLOSEBTN) &&\n (e.keyCode === 13 || e.keyCode === 32)) {\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n this.destroyToast(toastEle, 'key');\n }\n };\n Toast.prototype.displayToast = function (toastEle, toastObj) {\n var _this = this;\n var showAnimate = this.animation.show;\n var animate = {\n duration: showAnimate.duration, name: showAnimate.effect, timingFunction: showAnimate.easing\n };\n var toastOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle\n };\n animate.begin = function () {\n toastEle.style.display = '';\n };\n animate.end = function () {\n _this.trigger('open', toastOpen);\n };\n new Animation(animate).animate(toastEle);\n };\n Toast.prototype.getContainer = function () {\n this.element.classList.add(CONTAINER);\n return this.element;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ToastModel} newProp - specifies the new property\n * @param {ToastModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n Toast.prototype.onPropertyChanged = function (newProp, oldProp) {\n var container = this.element;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enableRtl':\n // eslint-disable-next-line\n newProp.enableRtl ? container.classList.add(RTL) : container.classList.remove(RTL);\n break;\n }\n }\n };\n __decorate([\n Property('300px')\n ], Toast.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Toast.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"title\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"icon\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"newestOnTop\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showCloseButton\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showProgressBar\", void 0);\n __decorate([\n Property(5000)\n ], Toast.prototype, \"timeOut\", void 0);\n __decorate([\n Property('Rtl')\n ], Toast.prototype, \"progressDirection\", void 0);\n __decorate([\n Property(1000)\n ], Toast.prototype, \"extendedTimeout\", void 0);\n __decorate([\n Complex({}, ToastAnimationSettings)\n ], Toast.prototype, \"animation\", void 0);\n __decorate([\n Complex({}, ToastPosition)\n ], Toast.prototype, \"position\", void 0);\n __decorate([\n Collection([{}], ButtonModelProps)\n ], Toast.prototype, \"buttons\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"click\", void 0);\n Toast = __decorate([\n NotifyPropertyChanges\n ], Toast);\n return Toast;\n}(Component));\nexport { Toast };\n/**\n * Base for creating Toast through utility method.\n */\n// eslint-disable-next-line\nexport var ToastUtility;\n(function (ToastUtility) {\n /**\n * To display a simple toast using the 'ToastUtility' with 'ToastModal' or\n * as string with toast content, type, timeOut.\n * ```\n * Eg : ToastUtility.show('Toast Content Message', 'Information', 7000);\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param { ToastModel | string } content - Specifies the toast modal or the content of the Toast.\n * @param {string} type - Specifies the type of toast.\n * @param { number } timeOut - Specifies the timeOut of the toast.\n * @returns {Toast} - returns the element\n */\n function show(content, type, timeOut) {\n var toastContainerElement;\n if (document.querySelector('.' + CONTAINER)) {\n toastContainerElement = document.querySelector('.' + CONTAINER);\n }\n else {\n toastContainerElement = createElement('div', { 'className': ROOT + ' ' + CONTAINER + ' e-toast-util' });\n document.body.appendChild(toastContainerElement);\n }\n var toastObj;\n var untilToastsModel;\n if (typeof (content) === 'string') {\n var cssClass = void 0;\n var icon = void 0;\n if (!isNOU(type)) {\n switch (type) {\n case 'Warning':\n cssClass = 'e-toast-warning';\n icon = 'e-toast-warning-icon';\n break;\n case 'Success':\n cssClass = 'e-toast-success';\n icon = 'e-toast-success-icon';\n break;\n case 'Error':\n cssClass = 'e-toast-danger';\n icon = 'e-toast-error-icon';\n break;\n case 'Information':\n cssClass = 'e-toast-info';\n icon = 'e-toast-info-icon';\n break;\n }\n }\n else {\n cssClass = '';\n icon = '';\n }\n untilToastsModel = {\n content: content,\n cssClass: cssClass,\n icon: icon,\n timeOut: !isNOU(timeOut) ? timeOut : 5000\n };\n }\n else {\n untilToastsModel = content;\n }\n toastObj = new Toast(untilToastsModel);\n toastObj.appendTo(toastContainerElement);\n toastObj.show();\n return toastObj;\n }\n ToastUtility.show = show;\n})(ToastUtility || (ToastUtility = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, getUniqueID, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nimport { MenuBase, MenuItem } from '../common/menu-base';\n/**\n * The ContextMenu is a graphical user interface that appears on the user right click/touch hold operation.\n * ```html\n *
\n *
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar ContextMenu = /** @class */ (function (_super) {\n __extends(ContextMenu, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {ContextMenuModel} options - Specifies the context menu model\n * @param {string} element - Specifies the element\n */\n function ContextMenu(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.preRender = function () {\n this.isMenu = false;\n this.element.id = this.element.id || getUniqueID('ej2-contextmenu');\n _super.prototype.preRender.call(this);\n };\n ContextMenu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n this.element.style.zIndex = getZindexPartial(this.element).toString();\n };\n /**\n * This method is used to open the ContextMenu in specified position.\n *\n * @param {number} top - To specify ContextMenu vertical positioning.\n * @param {number} left - To specify ContextMenu horizontal positioning.\n * @param {HTMLElement} target - To calculate z-index for ContextMenu based upon the specified target.\n * @function open\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n _super.prototype.openMenu.call(this, null, null, top, left, null, target);\n };\n /**\n * Closes the ContextMenu if it is opened.\n *\n * @function close\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n _super.prototype.closeMenu.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {ContextMenuModel} newProp - Specifies new properties\n * @param {ContextMenuModel} oldProp - Specifies old properties\n * @returns {void}\n */\n ContextMenu.prototype.onPropertyChanged = function (newProp, oldProp) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'filter':\n this.close();\n this.filter = newProp.filter;\n break;\n case 'target':\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n break;\n }\n }\n };\n /**\n * Get module name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ContextMenu.prototype.getModuleName = function () {\n return 'contextmenu';\n };\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"filter\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], ContextMenu.prototype, \"items\", void 0);\n ContextMenu = __decorate([\n NotifyPropertyChanges\n ], ContextMenu);\n return ContextMenu;\n}(MenuBase));\nexport { ContextMenu };\n","import { createElement, Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { ContextMenuItem } from './types';\n/**\n * ContextMenu module is used to handle the context menus used in the control.\n *\n * @hidden\n */\nvar ContextMenu = /** @class */ (function () {\n /**\n * Initialize the constructor of ontextmenu\n *\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function ContextMenu(pdfViewer, pdfViewerBase) {\n this.copyContextMenu = [];\n this.contextMenuList = [];\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n this.copyContextMenu = [{ text: this.pdfViewer.localeObj.getConstant('Cut'), iconCss: 'e-pv-cut-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Copy'), iconCss: 'e-pv-copy-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Highlight context'), iconCss: 'e-pv-highlight-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Underline context'), iconCss: 'e-pv-underline-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Strikethrough context'), iconCss: 'e-pv-strikethrough-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Paste'), iconCss: 'e-pv-paste-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Delete Context'), iconCss: 'e-pv-delete-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Scale Ratio'), iconCss: 'e-pv-scale-ratio-icon' },\n { separator: true, id: pdfViewer.element.id + '_context_menu_comment_separator' },\n { text: this.pdfViewer.localeObj.getConstant('Comment'), iconCss: 'e-pv-comment-icon' },\n { separator: true, id: pdfViewer.element.id + '_context_menu_separator' },\n { text: this.pdfViewer.localeObj.getConstant('Properties'), iconCss: 'e-pv-property-icon' }\n ];\n }\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.createContextMenu = function () {\n this.contextMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_context_menu', className: 'e-pv-context-menu' });\n this.pdfViewer.element.appendChild(this.contextMenuElement);\n this.contextMenuObj = new Context({\n target: '#' + this.pdfViewerBase.viewerContainer.id, items: this.copyContextMenu,\n beforeOpen: this.contextMenuOnBeforeOpen.bind(this), select: this.onMenuItemSelect.bind(this),\n created: this.contextMenuOnCreated.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.contextMenuObj.enableRtl = true;\n }\n this.contextMenuObj.appendTo(this.contextMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.contextMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.contextMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n ContextMenu.prototype.contextMenuOnCreated = function (args) {\n // eslint-disable-next-line max-len\n var items = [this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'),\n this.pdfViewer.localeObj.getConstant('Strikethrough context')];\n if (this.pdfViewer.annotationModule) {\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.contextMenuObj.enableItems(items, false);\n }\n }\n else {\n this.contextMenuObj.enableItems(items, false);\n }\n };\n ContextMenu.prototype.setTarget = function (args) {\n var target = null;\n if (args.event && args.event.target) {\n target = args.event.target;\n this.currentTarget = target;\n }\n return target;\n };\n ContextMenu.prototype.contextMenuOnBeforeOpen = function (args) {\n if (this.pdfViewerBase.preventContextmenu) {\n args.cancel = true;\n }\n var target = this.setTarget(args);\n var currentAnnotSettings = this.pdfViewer.selectedItems.annotations.length !== 0 ? this.pdfViewer.selectedItems.annotations[0].annotationSettings : null;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus && target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA') {\n this.pdfViewerBase.isFreeTextContextMenu = true;\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.remove('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.checkContextMenuDeleteItem(this.contextMenuObj);\n }\n if (this.pdfViewer.textSelectionModule || this.pdfViewerBase.isShapeBasedAnnotationsEnabled()) {\n if (args.event || this.pdfViewerBase.isTouchDesignerMode) {\n var isClickWithinSelectionBounds = this.pdfViewerBase.isClickWithinSelectionBounds(args.event);\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.isFreeTextContextMenu) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'),\n this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Delete Context')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.isTextSelected) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Copy')], true);\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Copy')], false);\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut')], false);\n window.getSelection().removeAllRanges();\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.selectedText !== '') {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], false);\n }\n }\n else if (isClickWithinSelectionBounds && this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if ((!args.event.target.classList.contains('e-pv-maintaincontent') && args.event.target.classList.contains('e-pv-text') || args.event.target.classList.contains('e-pv-text-layer'))) {\n if (this.pdfViewerBase.checkIsNormalText()) {\n args.cancel = true;\n }\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isIE || Browser.info.name === 'edge') && args.event.target.classList.contains('e-pv-page-container')) {\n args.cancel = true;\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path')) {\n this.onOpeningForShape(false, true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path' && !currentAnnotSettings.isLock) {\n this.onOpeningForShape(true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType && this.pdfViewer.designerMode) {\n this.onOpeningForShape(true);\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(this.pdfViewer.toolbar) && !isNullOrUndefined(this.pdfViewer.toolbar.formDesignerToolbarModule)) {\n this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n else {\n // eslint-disable-next-line\n var target_1 = this.pdfViewerBase.designerModetarget;\n var annotationModule = this.pdfViewer.annotationModule;\n if (args.event && args.event.target) {\n target_1 = args.event.target;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && ((target_1).classList.contains('e-pv-text-layer') ||\n (target_1).classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.onOpeningForShape(false);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied && ((target_1).classList.contains('e-pv-text-layer') ||\n (target_1).classList.contains('e-pv-text'))) {\n this.onOpeningForShape(false);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewerBase.isCalibrateAnnotationModule() && this.pdfViewer.annotationModule.measureAnnotationModule.currentAnnotationMode && !currentAnnotSettings) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Comment')], false);\n // eslint-disable-next-line max-len\n }\n else if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation && !annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.annotationSettings.isLock) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Cut'),\n this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Scale Ratio')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n else {\n args.cancel = true;\n }\n }\n }\n else if (this.pdfViewer.textSelectionModule && (this.pdfViewer.contextMenuOption === 'MouseUp')) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.hideContextItems();\n }\n this.enableCommentPanelItem();\n }\n else {\n args.cancel = true;\n }\n if (this.pdfViewer.contextMenuOption === 'None') {\n args.cancel = true;\n }\n else {\n this.contextMenuItems(args);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.restrictContextMenu()) {\n args.cancel = true;\n }\n this.pdfViewerBase.isTouchDesignerMode = false;\n };\n ContextMenu.prototype.contextMenuItems = function (args) {\n if (this.pdfViewer.contextMenuSettings.contextMenuItems.length) {\n var hideMenuItems = [];\n var contextMenuList = this.contextMenuCollection();\n var ul = this.contextMenuObj.getRootElement();\n for (var j = 0; j < this.pdfViewer.contextMenuSettings.contextMenuItems.length; j++) {\n for (var i = 0; i < this.contextMenuList.length; i++) {\n var menuItem = this.contextMenuList[parseInt(i.toString(), 10)].text;\n switch (menuItem) {\n case 'Highlight':\n menuItem = 'Highlight context';\n break;\n case 'Underline':\n menuItem = 'Underline context';\n break;\n case 'Strikethrough':\n menuItem = 'Strikethrough context';\n break;\n case 'Delete':\n menuItem = 'Delete Context';\n break;\n case 'Scale Ratio':\n menuItem = 'Scale Ratio';\n break;\n case 'Comment':\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n break;\n case 'Properties':\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n break;\n }\n var menuName = this.contextMenuList[parseInt(i.toString(), 10)].text;\n if (j === 0 && menuName !== ContextMenuItem[this.pdfViewer.contextMenuSettings.contextMenuItems[parseInt(j.toString(), 10)]]) {\n hideMenuItems.push(menuName);\n }\n if (j > 0 && menuName === ContextMenuItem[this.pdfViewer.contextMenuSettings.contextMenuItems[parseInt(j.toString(), 10)]]) {\n for (var k = 0; k < hideMenuItems.length; k++) {\n if (hideMenuItems[parseInt(k.toString(), 10)] === menuName) {\n if (this.pdfViewer.disableContextMenuItems && this.pdfViewer.disableContextMenuItems.length > 0) {\n var isDisabled = false;\n for (var l = 0; l < this.pdfViewer.disableContextMenuItems.length; l++) {\n if (hideMenuItems[parseInt(k.toString(), 10)] === ContextMenuItem[this.pdfViewer.disableContextMenuItems[parseInt(l.toString(), 10)]]) {\n isDisabled = true;\n }\n }\n if (!isDisabled) {\n hideMenuItems.splice(k, 1);\n }\n }\n else {\n hideMenuItems.splice(k, 1);\n }\n }\n }\n }\n }\n }\n var hideLocaleItem = this.processLocaleContent(hideMenuItems);\n this.contextMenuObj.hideItems(hideLocaleItem);\n if (this.getEnabledItemCount(ul) === 0) {\n args.cancel = true;\n }\n }\n };\n ContextMenu.prototype.processLocaleContent = function (hideMenuItems) {\n var contextMenuLocaleContent = [];\n if (hideMenuItems.length > 0) {\n for (var i = 0; i < hideMenuItems.length; i++) {\n var menuItem = hideMenuItems[parseInt(i.toString(), 10)];\n switch (menuItem) {\n case 'Highlight':\n menuItem = 'Highlight context';\n break;\n case 'Underline':\n menuItem = 'Underline context';\n break;\n case 'Strikethrough':\n menuItem = 'Strikethrough context';\n break;\n case 'Delete':\n menuItem = 'Delete Context';\n break;\n case 'ScaleRatio':\n menuItem = 'Scale Ratio';\n break;\n }\n contextMenuLocaleContent.push(this.pdfViewer.localeObj.getConstant(menuItem));\n }\n }\n return contextMenuLocaleContent;\n };\n ContextMenu.prototype.contextMenuCollection = function () {\n return this.contextMenuList = [{ text: 'Cut' }, { text: 'Copy' }, { text: 'Highlight' }, { text: 'Underline' }, { text: 'Strikethrough' },\n { text: 'Paste' }, { text: 'Delete' }, { text: 'ScaleRatio' }, { text: 'Comment' }, { text: 'Properties' }];\n };\n ContextMenu.prototype.getEnabledItemCount = function (ul) {\n var enabledItemCount = this.copyContextMenu.length;\n var liCollection = ul.children;\n for (var i = 0; i < liCollection.length; i++) {\n // eslint-disable-next-line\n var li = liCollection[i];\n if (li.classList.contains('e-menu-hide') || li.classList.contains('e-disabled')) {\n enabledItemCount = enabledItemCount - 1;\n }\n }\n return enabledItemCount;\n };\n ContextMenu.prototype.hideContextItems = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 0) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n }\n };\n ContextMenu.prototype.enableCommentPanelItem = function () {\n if (this.pdfViewer.enableCommentPanel) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n if (this.pdfViewer.selectedItems.formFields.length !== 0) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n };\n ContextMenu.prototype.onOpeningForShape = function (isProp, isSignature) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], false);\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Scale Ratio')]);\n if (isProp) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n }\n else if (isNullOrUndefined(isSignature) && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === \"Image\" && !this.pdfViewer.selectedItems.annotations[0].id.startsWith(\"stamp\")) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n }\n }\n else if (isSignature) {\n if ((this.pdfViewer.selectedItems.annotations[0].annotName === \"SignatureField\" || this.pdfViewer.selectedItems.annotations[0].annotName === \"InitialField\" || this.pdfViewer.selectedItems.annotations[0].annotName === \"SignatureText\")) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n };\n ContextMenu.prototype.OnItemSelected = function (selectedMenu) {\n this.pdfViewerBase.OnItemSelected(selectedMenu);\n };\n ContextMenu.prototype.onMenuItemSelect = function (args) {\n this.pdfViewerBase.OnItemSelected(args.item.text);\n };\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.destroy = function () {\n if (this.contextMenuObj) {\n this.previousAction = '';\n this.contextMenuObj.destroy();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n this.contextMenuObj.close();\n };\n /**\n * open the context menu.\n * @param {number} top - The top.\n * @param {number} left - The left.\n * @param {HTMLElement} target - The target.\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n this.contextMenuObj.open(top, left, target);\n };\n return ContextMenu;\n}());\nexport { ContextMenu };\n","/**\n * Size defines and processes the size(width/height) of the objects\n */\nvar Size = /** @class */ (function () {\n function Size(width, height) {\n this.width = width;\n this.height = height;\n }\n // /** @private */\n // public isEmpty(): boolean {\n // return this.height === 0 && this.width === 0;\n // }\n /** @private */\n Size.prototype.clone = function () {\n return new Size(this.width, this.height);\n };\n return Size;\n}());\nexport { Size };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property, Complex } from '@syncfusion/ej2-base';\nimport { Point } from '@syncfusion/ej2-drawings';\nimport { Size } from '@syncfusion/ej2-drawings';\n/**\n * The `PdfBounds` is base for annotation bounds.\n *\n * @hidden\n */\nvar PdfBounds = /** @class */ (function (_super) {\n __extends(PdfBounds, _super);\n function PdfBounds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"y\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"top\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"right\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"bottom\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PdfBounds.prototype, \"location\", void 0);\n __decorate([\n Complex(new Size(0, 0), Size)\n ], PdfBounds.prototype, \"size\", void 0);\n return PdfBounds;\n}(ChildProperty));\nexport { PdfBounds };\n/**\n * The `PdfFont` is base for annotation Text styles.\n *\n * @hidden\n */\nvar PdfFont = /** @class */ (function (_super) {\n __extends(PdfFont, _super);\n function PdfFont() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isBold\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isItalic\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isUnderline\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isStrikeout\", void 0);\n return PdfFont;\n}(ChildProperty));\nexport { PdfFont };\n/**\n * Defines the common behavior of PdfAnnotationBase\n *\n * @hidden\n */\nvar PdfAnnotationBase = /** @class */ (function (_super) {\n __extends(PdfAnnotationBase, _super);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function PdfAnnotationBase(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"id\", void 0);\n __decorate([\n Property('Rectangle')\n ], PdfAnnotationBase.prototype, \"shapeAnnotationType\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"formFieldAnnotationType\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"measureType\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"modifiedDate\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"subject\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"notes\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isCommentLock\", void 0);\n __decorate([\n Property('black')\n ], PdfAnnotationBase.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"stampFillColor\", void 0);\n __decorate([\n Property('black')\n ], PdfAnnotationBase.prototype, \"stampStrokeColor\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"data\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"opacity\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"borderStyle\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isCloudShape\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"cloudIntensity\", void 0);\n __decorate([\n Property(40)\n ], PdfAnnotationBase.prototype, \"leaderHeight\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"lineHeadStart\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"lineHeadEnd\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"vertexPoints\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"sourcePoint\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"sourceDecoraterShapes\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"taregetDecoraterShapes\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"targetPoint\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"segments\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfAnnotationBase.prototype, \"bounds\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"pageIndex\", void 0);\n __decorate([\n Property(-1)\n ], PdfAnnotationBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"wrapper\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isDynamicStamp\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"dynamicText\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotName\", void 0);\n __decorate([\n Property({})\n ], PdfAnnotationBase.prototype, \"review\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"comments\", void 0);\n __decorate([\n Property('#000')\n ], PdfAnnotationBase.prototype, \"fontColor\", void 0);\n __decorate([\n Property(16)\n ], PdfAnnotationBase.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], PdfAnnotationBase.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"fontStyle\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"enableShapeLabel\", void 0);\n __decorate([\n Property('label')\n ], PdfAnnotationBase.prototype, \"labelContent\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"labelFillColor\", void 0);\n __decorate([\n Property(15)\n ], PdfAnnotationBase.prototype, \"labelMaxLength\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"labelOpacity\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"labelBorderColor\", void 0);\n __decorate([\n Property('left')\n ], PdfAnnotationBase.prototype, \"textAlign\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"signatureName\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isLock\", void 0);\n __decorate([\n Property('UI Drawn Annotation')\n ], PdfAnnotationBase.prototype, \"annotationAddMode\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotationSettings\", void 0);\n __decorate([\n Property(16)\n ], PdfAnnotationBase.prototype, \"previousFontSize\", void 0);\n __decorate([\n Complex({ isBold: false, isItalic: false, isStrikeout: false, isUnderline: false }, PdfFont)\n ], PdfAnnotationBase.prototype, \"font\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfAnnotationBase.prototype, \"labelBounds\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], PdfAnnotationBase.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PdfAnnotationBase.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"pageRotation\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isAddAnnotationProgrammatically\", void 0);\n return PdfAnnotationBase;\n}(ChildProperty));\nexport { PdfAnnotationBase };\n/**\n * Defines the common behavior of PdfFormFieldBase\n *\n * @hidden\n */\nvar PdfFormFieldBase = /** @class */ (function (_super) {\n __extends(PdfFormFieldBase, _super);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function PdfFormFieldBase(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"signatureType\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], PdfFormFieldBase.prototype, \"formFieldAnnotationType\", void 0);\n __decorate([\n Property('#daeaf7ff')\n ], PdfFormFieldBase.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('black')\n ], PdfFormFieldBase.prototype, \"color\", void 0);\n __decorate([\n Property('#303030')\n ], PdfFormFieldBase.prototype, \"borderColor\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"opacity\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"rotateAngle\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfFormFieldBase.prototype, \"bounds\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"pageIndex\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(-1)\n ], PdfFormFieldBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], PdfFormFieldBase.prototype, \"wrapper\", void 0);\n __decorate([\n Property(16)\n ], PdfFormFieldBase.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], PdfFormFieldBase.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('None')\n ], PdfFormFieldBase.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('left')\n ], PdfFormFieldBase.prototype, \"alignment\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxLength\", void 0);\n __decorate([\n Property('visible')\n ], PdfFormFieldBase.prototype, \"visibility\", void 0);\n __decorate([\n Property(true)\n ], PdfFormFieldBase.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isChecked\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isSelected\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isMultiline\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isTransparent\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"insertSpaces\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"options\", void 0);\n __decorate([\n Property()\n ], PdfFormFieldBase.prototype, \"signatureIndicatorSettings\", void 0);\n __decorate([\n Complex({ isBold: false, isItalic: false, isStrikeout: false, isUnderline: false }, PdfFont)\n ], PdfFormFieldBase.prototype, \"font\", void 0);\n __decorate([\n Property()\n ], PdfFormFieldBase.prototype, \"selectedIndex\", void 0);\n return PdfFormFieldBase;\n}(ChildProperty));\nexport { PdfFormFieldBase };\n/**\n * @hidden\n */\nvar ZOrderPageTable = /** @class */ (function () {\n function ZOrderPageTable() {\n this.pageIdTemp = 0;\n this.zIndexTemp = -1;\n this.childNodesTemp = [];\n this.objects = [];\n this.zIndexTemp = -1;\n this.pageIdTemp = 0;\n }\n Object.defineProperty(ZOrderPageTable.prototype, \"pageId\", {\n /**\n * @private\n * @returns {number} - Returns the page Id.\n */\n get: function () {\n return this.pageIdTemp;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.pageIdTemp = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZOrderPageTable.prototype, \"zIndex\", {\n /**\n * @private\n * @returns {number} - Returns the z-index value.\n */\n get: function () {\n return this.zIndexTemp;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.zIndexTemp = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZOrderPageTable.prototype, \"objects\", {\n /**\n * @private\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation childNodes.\n */\n get: function () {\n return this.childNodesTemp;\n },\n /**\n * @private\n * @param {PdfAnnotationBaseModel[]} childNodes - Specified the annotation child nodes.\n */\n set: function (childNodes) {\n this.childNodesTemp = childNodes;\n },\n enumerable: true,\n configurable: true\n });\n return ZOrderPageTable;\n}());\nexport { ZOrderPageTable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, Event, append, compile } from '@syncfusion/ej2-base';\nimport { EventHandler, Touch, Browser, Animation as PopupAnimation } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getUniqueID, formatUnit, select, selectAll } from '@syncfusion/ej2-base';\nimport { attributes, closest, removeClass, addClass, remove } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Complex, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '../popup/popup';\nimport { calculatePosition } from '../common/position';\nimport { isCollide, fit } from '../common/collision';\nvar TOUCHEND_HIDE_DELAY = 1500;\nvar TAPHOLD_THRESHOLD = 500;\nvar SHOW_POINTER_TIP_GAP = 0;\nvar HIDE_POINTER_TIP_GAP = 8;\nvar MOUSE_TRAIL_GAP = 2;\nvar POINTER_ADJUST = 2;\nvar ROOT = 'e-tooltip';\nvar RTL = 'e-rtl';\nvar DEVICE = 'e-bigger';\nvar ICON = 'e-icons';\nvar CLOSE = 'e-tooltip-close';\nvar TOOLTIP_WRAP = 'e-tooltip-wrap';\nvar CONTENT = 'e-tip-content';\nvar ARROW_TIP = 'e-arrow-tip';\nvar ARROW_TIP_OUTER = 'e-arrow-tip-outer';\nvar ARROW_TIP_INNER = 'e-arrow-tip-inner';\nvar TIP_BOTTOM = 'e-tip-bottom';\nvar TIP_TOP = 'e-tip-top';\nvar TIP_LEFT = 'e-tip-left';\nvar TIP_RIGHT = 'e-tip-right';\nvar POPUP_ROOT = 'e-popup';\nvar POPUP_OPEN = 'e-popup-open';\nvar POPUP_CLOSE = 'e-popup-close';\nvar POPUP_LIB = 'e-lib';\nvar HIDE_POPUP = 'e-hidden';\nvar POPUP_CONTAINER = 'e-tooltip-popup-container';\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ effect: 'FadeIn', duration: 150, delay: 0 })\n ], Animation.prototype, \"open\", void 0);\n __decorate([\n Property({ effect: 'FadeOut', duration: 150, delay: 0 })\n ], Animation.prototype, \"close\", void 0);\n return Animation;\n}(ChildProperty));\nexport { Animation };\n/**\n * Represents the Tooltip component that displays a piece of information about the target element on mouse hover.\n * ```html\n *
    Show Tooltip
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n /* eslint-enable */\n /**\n * Constructor for creating the Tooltip Component\n *\n * @param {TooltipModel} options - specifies the options for the constructor\n * @param {string| HTMLElement} element - specifies the element for the constructor\n *\n */\n function Tooltip(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseMoveEvent = null;\n _this.mouseMoveTarget = null;\n _this.containerElement = null;\n _this.isBodyContainer = true;\n return _this;\n }\n Tooltip.prototype.initialize = function () {\n this.formatPosition();\n addClass([this.element], ROOT);\n this.element.setAttribute('tabindex', '0');\n };\n Tooltip.prototype.formatPosition = function () {\n var _a, _b;\n if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) {\n _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1];\n }\n else {\n _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1];\n }\n };\n Tooltip.prototype.renderArrow = function () {\n this.setTipClass(this.position);\n var tip = this.createElement('div', { className: ARROW_TIP + ' ' + this.tipClass });\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass }));\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass }));\n this.tooltipEle.appendChild(tip);\n };\n Tooltip.prototype.setTipClass = function (position) {\n if (position.indexOf('Right') === 0) {\n this.tipClass = TIP_LEFT;\n }\n else if (position.indexOf('Bottom') === 0) {\n this.tipClass = TIP_TOP;\n }\n else if (position.indexOf('Left') === 0) {\n this.tipClass = TIP_RIGHT;\n }\n else {\n this.tipClass = TIP_BOTTOM;\n }\n };\n Tooltip.prototype.renderPopup = function (target) {\n var elePos = this.mouseTrail ? { top: 0, left: 0 } : this.getTooltipPosition(target);\n this.tooltipEle.classList.remove(POPUP_LIB);\n this.popupObj = new Popup(this.tooltipEle, {\n height: this.height,\n width: this.width,\n position: { X: elePos.left, Y: elePos.top },\n enableRtl: this.enableRtl,\n open: this.openPopupHandler.bind(this),\n close: this.closePopupHandler.bind(this)\n });\n };\n Tooltip.prototype.getTooltipPosition = function (target) {\n this.tooltipEle.style.display = 'block';\n var pos = calculatePosition(target, this.tooltipPositionX, this.tooltipPositionY, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n var offsetPos = this.calculateTooltipOffset(this.position);\n var collisionPosition = this.calculateElementPosition(pos, offsetPos);\n var collisionLeft = collisionPosition[0];\n var collisionTop = collisionPosition[1];\n var elePos = this.collisionFlipFit(target, collisionLeft, collisionTop);\n this.tooltipEle.style.display = '';\n return elePos;\n };\n Tooltip.prototype.windowResize = function () {\n this.reposition(this.findTarget());\n };\n Tooltip.prototype.reposition = function (target) {\n if (this.popupObj && target) {\n var elePos = this.getTooltipPosition(target);\n this.popupObj.position = { X: elePos.left, Y: elePos.top };\n this.popupObj.dataBind();\n }\n };\n Tooltip.prototype.openPopupHandler = function () {\n if (!this.mouseTrail && this.needTemplateReposition()) {\n this.reposition(this.findTarget());\n }\n this.trigger('afterOpen', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.closePopupHandler = function () {\n if (this.isReact && !(this.opensOn === \"Click\" && typeof (this.content) === 'function')) {\n this.clearTemplate(['content']);\n }\n this.clear();\n this.trigger('afterClose', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.calculateTooltipOffset = function (position) {\n var pos = { top: 0, left: 0 };\n var tooltipEleWidth = this.tooltipEle.offsetWidth;\n var tooltipEleHeight = this.tooltipEle.offsetHeight;\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var tipWidth = arrowEle ? arrowEle.offsetWidth : 0;\n var tipHeight = arrowEle ? arrowEle.offsetHeight : 0;\n var tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n var tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight);\n var tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth);\n if (this.mouseTrail) {\n tipAdjust += MOUSE_TRAIL_GAP;\n }\n switch (position) {\n case 'RightTop':\n pos.left += tipWidth + tipAdjust;\n pos.top -= tooltipEleHeight - tipHeightAdjust;\n break;\n case 'RightCenter':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'RightBottom':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tipHeightAdjust);\n break;\n case 'BottomRight':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n case 'BottomCenter':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n case 'BottomLeft':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'LeftBottom':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tipHeightAdjust);\n break;\n case 'LeftCenter':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'LeftTop':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight - tipHeightAdjust);\n break;\n case 'TopLeft':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'TopRight':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n default:\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n }\n pos.left += this.offsetX;\n pos.top += this.offsetY;\n return pos;\n };\n Tooltip.prototype.updateTipPosition = function (position) {\n var selEle = selectAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER, this.tooltipEle);\n var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT];\n removeClass(selEle, removeList);\n this.setTipClass(position);\n addClass(selEle, this.tipClass);\n };\n Tooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) {\n if (this.showTipPointer === false) {\n return;\n }\n this.updateTipPosition(position);\n var leftValue;\n var topValue;\n this.tooltipEle.style.display = 'block';\n var tooltipWidth = this.tooltipEle.clientWidth;\n var tooltipHeight = this.tooltipEle.clientHeight;\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n var tipWidth = arrowEle.offsetWidth;\n var tipHeight = arrowEle.offsetHeight;\n this.tooltipEle.style.display = '';\n if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) {\n if (this.tipClass === TIP_BOTTOM) {\n topValue = '99.9%';\n // Arrow icon aligned -2px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px';\n }\n else {\n topValue = -(tipHeight - 1) + 'px';\n // Arrow icon aligned -6px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px';\n }\n if (target) {\n var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n leftValue = POINTER_ADJUST + 'px';\n }\n else if ((tipPosExclude) && (this.tipPointerPosition === 'End' || this.tipPointerPosition === 'Start')) {\n leftValue = (this.tipPointerPosition === 'End') ? ((target.offsetWidth + ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2)) - (tipWidth / 2)) - POINTER_ADJUST + 'px'\n : ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2) - (tipWidth / 2) + POINTER_ADJUST + 'px';\n }\n else {\n leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px';\n }\n }\n }\n else {\n if (this.tipClass === TIP_RIGHT) {\n leftValue = '99.9%';\n // Arrow icon aligned -2px left from ArrowOuterTip div\n arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px';\n }\n else {\n leftValue = -(tipWidth - 1) + 'px';\n // Arrow icon aligned -2px from ArrowOuterTip width\n arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px';\n }\n var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n topValue = POINTER_ADJUST + 'px';\n }\n else {\n topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px';\n }\n }\n arrowEle.style.top = topValue;\n arrowEle.style.left = leftValue;\n };\n Tooltip.prototype.renderContent = function (target) {\n var tooltipContent = select('.' + CONTENT, this.tooltipEle);\n if (this.cssClass) {\n addClass([this.tooltipEle], this.cssClass.split(' '));\n }\n if (target && !isNullOrUndefined(target.getAttribute('title'))) {\n target.setAttribute('data-content', target.getAttribute('title'));\n target.removeAttribute('title');\n }\n if (!isNullOrUndefined(this.content)) {\n tooltipContent.innerHTML = '';\n if (this.content instanceof HTMLElement) {\n tooltipContent.appendChild(this.content);\n }\n else if (typeof this.content === 'string') {\n if (this.enableHtmlSanitizer) {\n this.setProperties({ content: SanitizeHtmlHelper.sanitize(this.content) }, true);\n }\n // eslint-disable-next-line\n var tempFunction = compile(this.content);\n var tempArr = tempFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n if (this.enableHtmlParse) {\n var nodeList = tempArr.length;\n for (var i = 0; i < nodeList; i++) {\n tooltipContent[append(tempArr, tooltipContent), 'innerHTML'] = this.content;\n }\n }\n else {\n tooltipContent['textContent'] = this.content;\n }\n }\n }\n else {\n // eslint-disable-next-line\n var templateFunction = compile(this.content);\n var tempArr = templateFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n append(tempArr, tooltipContent);\n }\n this.renderReactTemplates();\n }\n }\n else {\n if (target && !isNullOrUndefined(target.getAttribute('data-content'))) {\n tooltipContent.innerHTML = target.getAttribute('data-content');\n }\n }\n };\n Tooltip.prototype.renderCloseIcon = function () {\n if (!this.isSticky) {\n return;\n }\n var tipClose = this.createElement('div', { className: ICON + ' ' + CLOSE });\n this.tooltipEle.appendChild(tipClose);\n EventHandler.add(tipClose, Browser.touchStartEvent, this.onStickyClose, this);\n };\n Tooltip.prototype.addDescribedBy = function (target, id) {\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\n if (describedby.indexOf(id) < 0) {\n describedby.push(id);\n }\n attributes(target, { 'aria-describedby': describedby.join(' ').trim(), 'data-tooltip-id': id });\n };\n Tooltip.prototype.removeDescribedBy = function (target) {\n var id = target.getAttribute('data-tooltip-id');\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\n var index = describedby.indexOf(id);\n if (index !== -1) {\n describedby.splice(index, 1);\n }\n target.removeAttribute('data-tooltip-id');\n var orgdescribedby = describedby.join(' ').trim();\n if (orgdescribedby) {\n target.setAttribute('aria-describedby', orgdescribedby);\n }\n else {\n target.removeAttribute('aria-describedby');\n }\n };\n Tooltip.prototype.tapHoldHandler = function (evt) {\n clearTimeout(this.autoCloseTimer);\n this.targetHover(evt.originalEvent);\n };\n Tooltip.prototype.touchEndHandler = function (e) {\n var _this = this;\n if (this.isSticky) {\n return;\n }\n // eslint-disable-next-line\n var close = function () {\n _this.close();\n };\n this.autoCloseTimer = setTimeout(close, TOUCHEND_HIDE_DELAY);\n };\n Tooltip.prototype.targetClick = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target)) {\n return;\n }\n if (target.getAttribute('data-tooltip-id') === null) {\n this.targetHover(e);\n }\n else if (!this.isSticky) {\n this.hideTooltip(this.animation.close, e, target);\n }\n };\n Tooltip.prototype.targetHover = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target) || (target.getAttribute('data-tooltip-id') !== null && this.closeDelay === 0)) {\n return;\n }\n var targetList = [].slice.call(selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document));\n for (var _i = 0, targetList_1 = targetList; _i < targetList_1.length; _i++) {\n var target_1 = targetList_1[_i];\n this.restoreElement(target_1);\n }\n // eslint-disable-next-line security/detect-non-literal-fs-filename -- Safe as no value holds user input\n this.showTooltip(target, this.animation.open, e);\n };\n Tooltip.prototype.mouseMoveBeforeOpen = function (e) {\n this.mouseMoveEvent = e;\n };\n Tooltip.prototype.mouseMoveBeforeRemove = function () {\n if (this.mouseMoveTarget) {\n EventHandler.remove(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen);\n }\n };\n Tooltip.prototype.showTooltip = function (target, showAnimation, e) {\n var _this = this;\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n if (this.openDelay && this.mouseTrail) {\n this.mouseMoveBeforeRemove();\n this.mouseMoveTarget = target;\n EventHandler.add(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen, this);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n // eslint-disable-next-line\n var observeCallback = function (beforeRenderArgs) {\n _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation);\n };\n this.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this));\n };\n Tooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) {\n if (beforeRenderArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n }\n else {\n this.isHidden = false;\n if (isNullOrUndefined(this.tooltipEle)) {\n this.ctrlId = this.element.getAttribute('id') ?\n getUniqueID(this.element.getAttribute('id')) : getUniqueID('tooltip');\n this.tooltipEle = this.createElement('div', {\n className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: {\n role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content'\n }, styles: 'width:' +\n formatUnit(this.width) + ';height:' + formatUnit(this.height) + ';position:absolute;'\n });\n this.tooltipBeforeRender(target, this);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n else {\n if (target) {\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n this.addDescribedBy(target, this.ctrlId + '_content');\n this.renderContent(target);\n PopupAnimation.stop(this.tooltipEle);\n this.reposition(target);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n }\n }\n };\n Tooltip.prototype.appendContainer = function (ctrlObj) {\n if (typeof this.container == 'string') {\n if (this.container === 'body') {\n this.containerElement = document.body;\n }\n else {\n this.isBodyContainer = false;\n this.containerElement = select(this.container, document);\n }\n }\n else if (this.container instanceof HTMLElement) {\n this.containerElement = this.container;\n this.isBodyContainer = this.containerElement.tagName === 'BODY';\n }\n if (!this.isBodyContainer) {\n addClass([this.containerElement], POPUP_CONTAINER);\n }\n this.containerElement.appendChild(ctrlObj.tooltipEle);\n };\n Tooltip.prototype.tooltipBeforeRender = function (target, ctrlObj) {\n if (target) {\n if (Browser.isDevice) {\n addClass([ctrlObj.tooltipEle], DEVICE);\n }\n if (ctrlObj.width !== 'auto') {\n ctrlObj.tooltipEle.style.maxWidth = formatUnit(ctrlObj.width);\n }\n ctrlObj.tooltipEle.appendChild(ctrlObj.createElement('div', { className: CONTENT }));\n this.appendContainer(ctrlObj);\n removeClass([ctrlObj.tooltipEle], HIDE_POPUP);\n ctrlObj.addDescribedBy(target, ctrlObj.ctrlId + '_content');\n ctrlObj.renderContent(target);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n if (ctrlObj.showTipPointer) {\n ctrlObj.renderArrow();\n }\n ctrlObj.renderCloseIcon();\n ctrlObj.renderPopup(target);\n ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY);\n PopupAnimation.stop(ctrlObj.tooltipEle);\n ctrlObj.reposition(target);\n }\n };\n Tooltip.prototype.tooltipAfterRender = function (target, e, showAnimation, ctrlObj) {\n if (target) {\n removeClass([ctrlObj.tooltipEle], POPUP_OPEN);\n addClass([ctrlObj.tooltipEle], POPUP_CLOSE);\n ctrlObj.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: ctrlObj.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n if (ctrlObj.needTemplateReposition() && !ctrlObj.mouseTrail) {\n ctrlObj.tooltipEle.style.display = 'none';\n }\n // eslint-disable-next-line\n var observeCallback = function (observedArgs) {\n ctrlObj.beforeOpenCallback(observedArgs, target, showAnimation, e);\n };\n ctrlObj.trigger('beforeOpen', ctrlObj.tooltipEventArgs, observeCallback.bind(ctrlObj));\n }\n };\n Tooltip.prototype.beforeOpenCallback = function (observedArgs, target, showAnimation, e) {\n var _this = this;\n if (observedArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n this.restoreElement(target);\n }\n else {\n // eslint-disable-next-line\n var openAnimation_1 = {\n name: showAnimation.effect,\n duration: showAnimation.duration,\n delay: showAnimation.delay,\n timingFunction: 'easeOut'\n };\n if (showAnimation.effect === 'None') {\n openAnimation_1 = undefined;\n }\n if (this.openDelay > 0) {\n // eslint-disable-next-line\n var show = function () {\n if (_this.mouseTrail) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', _this.onMouseMove, _this);\n }\n if (_this.popupObj) {\n _this.popupObj.show(openAnimation_1, target);\n if (_this.mouseMoveEvent && _this.mouseTrail) {\n _this.onMouseMove(_this.mouseMoveEvent);\n }\n }\n };\n this.showTimer = setTimeout(show, this.openDelay);\n }\n else {\n if (this.popupObj) {\n this.popupObj.show(openAnimation_1, target);\n }\n }\n }\n if (e) {\n this.wireMouseEvents(e, target);\n }\n };\n Tooltip.prototype.needTemplateReposition = function () {\n // eslint-disable-next-line\n var tooltip = this;\n return !isNullOrUndefined(tooltip.viewContainerRef)\n && typeof tooltip.viewContainerRef !== 'string';\n };\n Tooltip.prototype.checkCollision = function (target, x, y) {\n var elePos = {\n left: x, top: y, position: this.position,\n horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY\n };\n var affectedPos = isCollide(this.tooltipEle, this.checkCollideTarget(), x, y);\n if (affectedPos.length > 0) {\n elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' :\n this.tooltipPositionX;\n elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' :\n this.tooltipPositionY;\n }\n return elePos;\n };\n Tooltip.prototype.calculateElementPosition = function (pos, offsetPos) {\n return [this.isBodyContainer ? pos.left + offsetPos.left :\n (pos.left - this.containerElement.offsetLeft) + offsetPos.left + window.pageXOffset + this.containerElement.scrollLeft,\n this.isBodyContainer ? pos.top + offsetPos.top :\n (pos.top - this.containerElement.offsetTop) + offsetPos.top + window.pageYOffset + this.containerElement.scrollTop];\n };\n Tooltip.prototype.collisionFlipFit = function (target, x, y) {\n var elePos = this.checkCollision(target, x, y);\n var newpos = elePos.position;\n if (this.tooltipPositionY !== elePos.vertical) {\n newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical);\n }\n if (this.tooltipPositionX !== elePos.horizontal) {\n if (newpos.indexOf('Left') === 0) {\n elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Left');\n }\n if (newpos.indexOf('Right') === 0) {\n elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Right');\n }\n elePos.horizontal = this.tooltipPositionX;\n }\n this.tooltipEventArgs = {\n type: null, cancel: false, target: target, event: null,\n element: this.tooltipEle, collidedPosition: newpos\n };\n this.trigger('beforeCollision', this.tooltipEventArgs);\n var elePosVertical = elePos.vertical;\n var elePosHorizontal = elePos.horizontal;\n if (elePos.position !== newpos) {\n var pos = calculatePosition(target, elePosHorizontal, elePosVertical, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n var offsetPos = this.calculateTooltipOffset(newpos);\n offsetPos.top -= this.getOffSetPosition('TopBottom', newpos, this.offsetY);\n offsetPos.left -= this.getOffSetPosition('RightLeft', newpos, this.offsetX);\n elePos.position = newpos;\n var elePosition = this.calculateElementPosition(pos, offsetPos);\n elePos.left = elePosition[0];\n elePos.top = elePosition[1];\n }\n else {\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n }\n var eleOffset = { left: elePos.left, top: elePos.top };\n var left = this.isBodyContainer ?\n fit(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: false }, eleOffset).left : eleOffset.left;\n this.tooltipEle.style.display = 'block';\n if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) {\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowleft = parseInt(arrowEle.style.left, 10) - (left - elePos.left);\n if (arrowleft < 0) {\n arrowleft = 0;\n }\n else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) {\n arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth;\n }\n arrowEle.style.left = arrowleft.toString() + 'px';\n }\n this.tooltipEle.style.display = '';\n eleOffset.left = left;\n return eleOffset;\n };\n Tooltip.prototype.getOffSetPosition = function (positionString, newPos, offsetType) {\n return ((positionString.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\n (positionString.indexOf(newPos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * offsetType) : 0;\n };\n Tooltip.prototype.checkCollideTarget = function () {\n return !this.windowCollision && this.target ? this.element : null;\n };\n Tooltip.prototype.hideTooltip = function (hideAnimation, e, targetElement) {\n var _this = this;\n if (this.closeDelay > 0) {\n clearTimeout(this.hideTimer);\n clearTimeout(this.showTimer);\n // eslint-disable-next-line\n var hide = function () {\n if (_this.closeDelay && _this.tooltipEle && _this.isTooltipOpen) {\n return;\n }\n _this.tooltipHide(hideAnimation, e, targetElement);\n };\n this.hideTimer = setTimeout(hide, this.closeDelay);\n }\n else {\n this.tooltipHide(hideAnimation, e, targetElement);\n }\n };\n Tooltip.prototype.tooltipHide = function (hideAnimation, e, targetElement) {\n var _this = this;\n var target;\n if (e) {\n target = this.target ? (targetElement || e.target) : this.element;\n }\n else {\n target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n // this line commented for close the tooltip popup element even the target element destroyed in a page.\n //if (isNullOrUndefined(target)) { return; }\n this.trigger('beforeClose', this.tooltipEventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.mouseMoveBeforeRemove();\n _this.popupHide(hideAnimation, target);\n }\n else {\n _this.isHidden = false;\n }\n });\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.popupHide = function (hideAnimation, target) {\n if (target) {\n this.restoreElement(target);\n }\n this.isHidden = true;\n // eslint-disable-next-line\n var closeAnimation = {\n name: hideAnimation.effect,\n duration: hideAnimation.duration,\n delay: hideAnimation.delay,\n timingFunction: 'easeIn'\n };\n if (hideAnimation.effect === 'None') {\n closeAnimation = undefined;\n }\n if (this.popupObj) {\n this.popupObj.hide(closeAnimation);\n }\n };\n Tooltip.prototype.restoreElement = function (target) {\n this.unwireMouseEvents(target);\n if (!isNullOrUndefined(target.getAttribute('data-content'))) {\n target.setAttribute('title', target.getAttribute('data-content'));\n target.removeAttribute('data-content');\n }\n this.removeDescribedBy(target);\n };\n Tooltip.prototype.clear = function () {\n if (this.tooltipEle) {\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n }\n if (this.isHidden) {\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n this.tooltipEle = null;\n this.popupObj = null;\n }\n };\n Tooltip.prototype.tooltipHover = function (e) {\n if (this.tooltipEle) {\n this.isTooltipOpen = true;\n }\n };\n Tooltip.prototype.tooltipMouseOut = function (e) {\n this.isTooltipOpen = false;\n this.hideTooltip(this.animation.close, e, this.findTarget());\n };\n Tooltip.prototype.onMouseOut = function (e) {\n var enteredElement = e.relatedTarget;\n // don't close the tooltip only if it is tooltip content element\n if (enteredElement && !this.mouseTrail) {\n var checkForTooltipElement = closest(enteredElement, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT);\n if (checkForTooltipElement) {\n EventHandler.add(checkForTooltipElement, 'mouseleave', this.tooltipElementMouseOut, this);\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n if (this.closeDelay === 0) {\n this.clear();\n }\n }\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n this.clear();\n }\n };\n Tooltip.prototype.tooltipElementMouseOut = function (e) {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n EventHandler.remove(this.element, 'mouseleave', this.tooltipElementMouseOut);\n this.clear();\n };\n Tooltip.prototype.onStickyClose = function (e) {\n this.close();\n };\n Tooltip.prototype.onMouseMove = function (event) {\n var eventPageX = 0;\n var eventPageY = 0;\n if (event.type.indexOf('touch') > -1) {\n event.preventDefault();\n eventPageX = event.touches[0].pageX;\n eventPageY = event.touches[0].pageY;\n }\n else {\n eventPageX = event.pageX;\n eventPageY = event.pageY;\n }\n PopupAnimation.stop(this.tooltipEle);\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n this.adjustArrow(event.target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n var pos = this.calculateTooltipOffset(this.position);\n var x = eventPageX + pos.left + this.offsetX;\n var y = eventPageY + pos.top + this.offsetY;\n var elePos = this.checkCollision(event.target, x, y);\n if (this.tooltipPositionX !== elePos.horizontal || this.tooltipPositionY !== elePos.vertical) {\n var newpos = (this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + elePos.horizontal : elePos.horizontal + elePos.vertical;\n elePos.position = newpos;\n this.adjustArrow(event.target, elePos.position, elePos.horizontal, elePos.vertical);\n var colpos = this.calculateTooltipOffset(elePos.position);\n elePos.left = eventPageX + colpos.left - this.offsetX;\n elePos.top = eventPageY + colpos.top - this.offsetY;\n }\n this.tooltipEle.style.left = elePos.left + 'px';\n this.tooltipEle.style.top = elePos.top + 'px';\n };\n Tooltip.prototype.keyDown = function (event) {\n if (this.tooltipEle && event.keyCode === 27) {\n this.close();\n }\n };\n Tooltip.prototype.touchEnd = function (e) {\n if (this.tooltipEle && closest(e.target, '.' + ROOT) === null && !this.isSticky) {\n this.close();\n }\n };\n Tooltip.prototype.scrollHandler = function (e) {\n if (this.tooltipEle) {\n if (!(closest(e.target, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT))) {\n this.close();\n }\n }\n };\n /**\n * Core method that initializes the control rendering.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.render = function () {\n this.initialize();\n this.wireEvents(this.opensOn);\n this.renderComplete();\n };\n /**\n * Initializes the values of private members.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.preRender = function () {\n this.tipClass = TIP_BOTTOM;\n this.tooltipPositionX = 'Center';\n this.tooltipPositionY = 'Top';\n this.isHidden = true;\n };\n /**\n * Binding events to the Tooltip element.\n *\n * @hidden\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.wireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_1 = triggerList; _i < triggerList_1.length; _i++) {\n var opensOn = triggerList_1[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.wireFocusEvents();\n EventHandler.add(this.element, 'DOMNodeInserted', this.updateTarget, this);\n }\n if (opensOn === 'Click') {\n EventHandler.add(this.element, Browser.touchStartEvent, this.targetClick, this);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n this.touchModule = new Touch(this.element, {\n tapHoldThreshold: TAPHOLD_THRESHOLD,\n tapHold: this.tapHoldHandler.bind(this)\n });\n EventHandler.add(this.element, Browser.touchEndEvent, this.touchEndHandler, this);\n }\n else {\n EventHandler.add(this.element, 'mouseover', this.targetHover, this);\n }\n }\n }\n EventHandler.add(document, 'touchend', this.touchEnd, this);\n EventHandler.add(document, 'scroll wheel', this.scrollHandler, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n EventHandler.add(document, 'keydown', this.keyDown, this);\n };\n Tooltip.prototype.updateTarget = function (e) {\n if (!isNullOrUndefined(this.targetsList) && !isNullOrUndefined(this.target)) {\n var target = [].slice.call(selectAll(this.target, this.element));\n if (target.length !== this.targetsList.length) {\n this.unwireEvents(this.opensOn);\n this.wireEvents(this.opensOn);\n }\n }\n };\n Tooltip.prototype.getTriggerList = function (trigger) {\n if (trigger === 'Auto') {\n trigger = (Browser.isDevice) ? 'Hover' : 'Hover Focus';\n }\n return trigger.split(' ');\n };\n Tooltip.prototype.wireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n this.targetsList = targetList;\n for (var _i = 0, targetList_2 = targetList; _i < targetList_2.length; _i++) {\n var target = targetList_2[_i];\n target.setAttribute('tabindex', '0');\n EventHandler.add(target, 'focus', this.targetHover, this);\n }\n }\n else {\n EventHandler.add(this.element, 'focus', this.targetHover, this);\n }\n };\n Tooltip.prototype.wireMouseEvents = function (e, target) {\n if (this.tooltipEle) {\n if (!this.isSticky) {\n if (e.type === 'focus') {\n EventHandler.add(target, 'blur', this.onMouseOut, this);\n }\n if (e.type === 'mouseover') {\n EventHandler.add(target, 'mouseleave', this.onMouseOut, this);\n }\n if (this.closeDelay) {\n EventHandler.add(this.tooltipEle, 'mouseenter', this.tooltipHover, this);\n EventHandler.add(this.tooltipEle, 'mouseleave', this.tooltipMouseOut, this);\n }\n }\n if (this.mouseTrail && this.openDelay === 0) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', this.onMouseMove, this);\n }\n target.setAttribute(\"tabindex\", \"0\");\n }\n };\n /**\n * Unbinding events from the element on widget destroy.\n *\n * @hidden\n *\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.unwireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_2 = triggerList; _i < triggerList_2.length; _i++) {\n var opensOn = triggerList_2[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.unwireFocusEvents();\n EventHandler.remove(this.element, 'DOMNodeInserted', this.updateTarget);\n }\n if (opensOn === 'Click') {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.targetClick);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n if (this.touchModule) {\n this.touchModule.destroy();\n }\n EventHandler.remove(this.element, Browser.touchEndEvent, this.touchEndHandler);\n }\n else {\n EventHandler.remove(this.element, 'mouseover', this.targetHover);\n }\n }\n }\n EventHandler.remove(document, 'touchend', this.touchEnd);\n EventHandler.remove(document, 'scroll wheel', this.scrollHandler);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(document, 'keydown', this.keyDown);\n };\n Tooltip.prototype.unwireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n for (var _i = 0, targetList_3 = targetList; _i < targetList_3.length; _i++) {\n var target = targetList_3[_i];\n target.removeAttribute('tabindex');\n EventHandler.remove(target, 'focus', this.targetHover);\n }\n }\n else {\n EventHandler.remove(this.element, 'focus', this.targetHover);\n }\n };\n Tooltip.prototype.unwireMouseEvents = function (target) {\n if (!this.isSticky) {\n var triggerList = this.getTriggerList(this.opensOn);\n for (var _i = 0, triggerList_3 = triggerList; _i < triggerList_3.length; _i++) {\n var opensOn = triggerList_3[_i];\n if (opensOn === 'Focus') {\n EventHandler.remove(target, 'blur', this.onMouseOut);\n }\n if (opensOn === 'Hover' && !Browser.isDevice) {\n EventHandler.remove(target, 'mouseleave', this.onMouseOut);\n }\n }\n if (this.closeDelay) {\n EventHandler.remove(target, 'mouseenter', this.tooltipHover);\n EventHandler.remove(target, 'mouseleave', this.tooltipMouseOut);\n }\n }\n if (this.mouseTrail) {\n EventHandler.remove(target, 'mousemove touchstart mouseenter', this.onMouseMove);\n }\n };\n Tooltip.prototype.findTarget = function () {\n var target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n return target;\n };\n /**\n * Core method to return the component name.\n *\n * @private\n *\n * @returns {string} - this method returns module name.\n */\n Tooltip.prototype.getModuleName = function () {\n return 'tooltip';\n };\n /**\n * Returns the properties to be maintained in the persisted state.\n *\n * @private\n *\n * @returns {string} - this method returns persisted data.\n */\n Tooltip.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Called internally, if any of the property value changed.\n *\n * @private\n *\n * @param {TooltipModel} newProp - this param gives new property values to the method\n * @param {TooltipModel} oldProp - this param gives old property values to the method\n * @returns {void}\n *\n */\n Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) {\n var targetElement = this.findTarget();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.width = this.tooltipEle.style.maxWidth = formatUnit(newProp.width);\n this.reposition(targetElement);\n }\n break;\n case 'height':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.height = formatUnit(newProp.height);\n this.reposition(targetElement);\n }\n break;\n case 'content':\n if (this.tooltipEle) {\n this.renderContent();\n }\n break;\n case 'opensOn':\n this.unwireEvents(oldProp.opensOn);\n this.wireEvents(newProp.opensOn);\n break;\n case 'position':\n this.formatPosition();\n if (this.tooltipEle && targetElement) {\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n arrowInnerELe.style.top = arrowInnerELe.style.left = null;\n this.reposition(targetElement);\n }\n break;\n case 'tipPointerPosition':\n if (this.tooltipEle && targetElement) {\n this.reposition(targetElement);\n }\n break;\n case 'offsetX':\n if (this.tooltipEle) {\n var x = newProp.offsetX - oldProp.offsetX;\n this.tooltipEle.style.left = (parseInt(this.tooltipEle.style.left, 10) + (x)).toString() + 'px';\n }\n break;\n case 'offsetY':\n if (this.tooltipEle) {\n var y = newProp.offsetY - oldProp.offsetY;\n this.tooltipEle.style.top = (parseInt(this.tooltipEle.style.top, 10) + (y)).toString() + 'px';\n }\n break;\n case 'cssClass':\n if (this.tooltipEle) {\n if (oldProp.cssClass) {\n removeClass([this.tooltipEle], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.tooltipEle], newProp.cssClass.split(' '));\n }\n }\n break;\n case 'enableRtl':\n if (this.tooltipEle) {\n if (this.enableRtl) {\n addClass([this.tooltipEle], RTL);\n }\n else {\n removeClass([this.tooltipEle], RTL);\n }\n }\n break;\n case 'container':\n if (!isNullOrUndefined(this.containerElement)) {\n removeClass([this.containerElement], POPUP_CONTAINER);\n }\n this.container = newProp.container;\n if (this.tooltipEle && targetElement) {\n this.appendContainer(this);\n this.reposition(targetElement);\n }\n }\n }\n };\n /**\n * It is used to show the Tooltip on the specified target with specific animation settings.\n *\n * @param {HTMLElement} element - Target element where the Tooltip is to be displayed. (It is an optional parameter)\n * @param {TooltipAnimationSettings} animation - Sets the specific animation, while showing the Tooltip on the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.open = function (element, animation) {\n if (isNullOrUndefined(animation)) {\n animation = this.animation.open;\n }\n if (isNullOrUndefined(element)) {\n element = this.element;\n }\n if (element.style.display === 'none') {\n return;\n }\n this.showTooltip(element, animation);\n };\n /**\n * It is used to hide the Tooltip with specific animation effect.\n *\n * @param {TooltipAnimationSettings} animation - Sets the specific animation when hiding Tooltip from the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.close = function (animation) {\n if (!animation) {\n animation = this.animation.close;\n }\n this.hideTooltip(animation);\n };\n /**\n * It is used to refresh the Tooltip content and its position.\n *\n * @param {HTMLElement} target - Target element where the Tooltip content or position needs to be refreshed.\n * @returns {void}\n */\n Tooltip.prototype.refresh = function (target) {\n if (this.tooltipEle) {\n this.renderContent(target);\n }\n if (this.popupObj && target) {\n this.reposition(target);\n }\n };\n /**\n * It is used to destroy the Tooltip component.\n * @method destroy\n * @returns {void}\n * @memberof Tooltip\n */\n Tooltip.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n removeClass([this.element], ROOT);\n this.unwireEvents(this.opensOn);\n this.unwireMouseEvents(this.element);\n this.tooltipEle = null;\n this.popupObj = null;\n };\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"content\", void 0);\n __decorate([\n Property('body')\n ], Tooltip.prototype, \"container\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"target\", void 0);\n __decorate([\n Property('TopCenter')\n ], Tooltip.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetY\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableHtmlParse\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"windowCollision\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"tipPointerPosition\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"opensOn\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"mouseTrail\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isSticky\", void 0);\n __decorate([\n Complex({}, Animation)\n ], Tooltip.prototype, \"animation\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"openDelay\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"closeDelay\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeRender\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeCollision\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"destroyed\", void 0);\n Tooltip = __decorate([\n NotifyPropertyChanges\n ], Tooltip);\n return Tooltip;\n}(Component));\nexport { Tooltip };\n","import { AnnotationDataFormat } from '../index';\nimport { createElement, Browser, isBlazor } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool, ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { Toast } from '@syncfusion/ej2-notifications';\n/**\n * The `NavigationPane` module is used to handle navigation pane for thumbnail and bookmark navigation of PDF viewer.\n *\n * @hidden\n */\nvar NavigationPane = /** @class */ (function () {\n /**\n * Initialize the constructor of navigationPane.\n *\n * @param { PdfViewer } viewer - Specified PdfViewer class.\n * @param { PdfViewerBase } base - The pdfViewerBase.\n */\n function NavigationPane(viewer, base) {\n var _this = this;\n this.thumbnailWidthMin = 200;\n this.contentContainerScrollWidth = 33;\n this.closeButtonLeft = 170;\n this.isTooltipCreated = false;\n this.isThumbnail = false;\n this.annotationContextMenu = [];\n this.isCommentPanelShow = false;\n this.commentPanelWidthMin = 300;\n /**\n * @private\n */\n this.isNavigationToolbarVisible = false;\n /**\n * @private\n */\n this.isBookmarkListOpen = false;\n /**\n * @private\n */\n this.isNavigationPaneResized = false;\n /**\n * @private\n */\n this.isBookmarkOpen = false;\n /**\n * @private\n */\n this.isThumbnailOpen = false;\n /**\n * @private\n */\n this.restrictUpdateZoomValue = true;\n // eslint-disable-next-line\n this.loadImportAnnotation = function (args) {\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile) {\n _this.pdfViewer.fireImportStart(uploadedFile);\n // eslint-disable-next-line\n var uploadedFileType = uploadedFile.type;\n if (uploadedFile.name.split('.json').length > 1 && uploadedFileType.includes('json')) {\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n if (e.currentTarget.result) {\n var importFile = e.currentTarget.result.split(',')[1];\n // eslint-disable-next-line\n var annotationData = atob(importFile);\n if (annotationData) {\n // eslint-disable-next-line\n var jsonData = JSON.parse(annotationData);\n _this.pdfViewerBase.importAnnotations(jsonData, AnnotationDataFormat.Json);\n }\n }\n };\n }\n else if (uploadedFile.name.split('.xfdf').length > 1 && (uploadedFileType.includes('xfdf') || args.target.accept.includes('xfdf'))) {\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n if (e.currentTarget.result) {\n var importFile = e.currentTarget.result.split(',')[1];\n // eslint-disable-next-line\n var annotationData = atob(importFile);\n if (annotationData) {\n // eslint-disable-next-line max-len\n _this.pdfViewerBase.importAnnotations(importFile, AnnotationDataFormat.Xfdf, true);\n }\n }\n };\n }\n else {\n _this.pdfViewer.fireImportFailed(uploadedFile, _this.pdfViewer.localeObj.getConstant('Import Failed'));\n if (isBlazor()) {\n var promise = _this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ImportFailed');\n promise.then(function (value) {\n _this.pdfViewerBase.openImportExportNotificationPopup(value);\n });\n }\n else {\n _this.pdfViewerBase.openImportExportNotificationPopup(_this.pdfViewer.localeObj.getConstant('Import Failed'));\n }\n }\n }\n args.target.value = \"\";\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizeIconMouseOver = function (event) {\n event.srcElement.style.cursor = 'e-resize';\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizePanelMouseDown = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.offset = [\n proxy.sideBarResizer.offsetLeft - event.clientX,\n proxy.sideBarResizer.offsetTop - event.clientY,\n proxy.sideBarResizer.offsetParent.clientWidth\n ];\n _this.previousX = event.clientX;\n proxy.isDown = true;\n proxy.isNavigationPaneResized = true;\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'e-resize';\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.cursor = 'e-resize';\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizeViewerMouseLeave = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.isDown = false;\n if (proxy.isNavigationPaneResized && proxy.sideBarContentContainer) {\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'default';\n proxy.sideBarContentContainer.style.cursor = 'default';\n proxy.isNavigationPaneResized = false;\n }\n if (proxy.commentPanelContainer && proxy.isCommentPanelShow) {\n _this.commentPanelMouseLeave(event);\n proxy.isCommentPanelShow = false;\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizePanelMouseMove = function (event) {\n var proxy = null;\n proxy = _this;\n if (!_this.pdfViewerBase.getPopupNoteVisibleStatus()) {\n var target = event.target;\n // eslint-disable-next-line max-len\n if (_this.pdfViewerBase.skipPreventDefault(target)) {\n event.preventDefault();\n }\n if (proxy.isDown && _this.sideBarContentContainer) {\n // prevent the sidebar from becoming too narrow, or from occupying more\n // than half of the available viewer width.\n if (_this.pdfViewer.enableRtl) {\n var currentWidth = _this.previousX - event.clientX;\n var width = currentWidth + proxy.offset[2];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.thumbnailWidthMin) {\n width = _this.thumbnailWidthMin;\n }\n proxy.sideBarResizer.style.right = width + 'px';\n proxy.sideBarContentContainer.style.width = width + 'px';\n proxy.sideBarContent.style.width = width + 'px';\n proxy.sideBarContentSplitter.style.width = width + 'px';\n proxy.sideBarTitleContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n }\n else {\n var width = event.clientX + proxy.offset[0];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.thumbnailWidthMin) {\n width = _this.thumbnailWidthMin;\n }\n proxy.sideBarResizer.style.left = width + 'px';\n proxy.closeDiv.style.left = width - proxy.contentContainerScrollWidth + 'px';\n proxy.sideBarContentContainer.style.width = width + 'px';\n proxy.sideBarContent.style.width = width + 'px';\n proxy.sideBarContentSplitter.style.width = width + 'px';\n proxy.sideBarTitleContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n var viewerWidth = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight());\n proxy.pdfViewerBase.viewerContainer.style.width = viewerWidth + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n proxy.pdfViewerBase.updateZoomValue();\n if (!proxy.bookmarkButton.children[0].classList.contains('e-pv-bookmark-disable-icon')) {\n proxy.pdfViewer.bookmarkViewModule.setBookmarkContentHeight();\n }\n }\n else if (proxy.isCommentPanelShow && _this.commentPanelContainer) {\n _this.updateCommentPanelContainer(event);\n }\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.sideToolbarOnClose = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.removeThumbnailSelectionIconTheme();\n proxy.removeBookmarkSelectionIconTheme();\n proxy.updateViewerContainerOnClose();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.sideToolbarOnClick = function (event) {\n _this.sideBarTitle.textContent = _this.pdfViewer.localeObj.getConstant('Page Thumbnails');\n _this.sideBarContent.setAttribute('aria-label', 'Thumbnail View Panel');\n var proxy = null;\n proxy = _this;\n var isblazor = isBlazor();\n // eslint-disable-next-line max-len\n var bookmarkPane = isblazor ? _this.pdfViewer.element.querySelector('.e-pv-bookmark-view') : document.getElementById(_this.pdfViewer.element.id + '_bookmark_view');\n if (bookmarkPane) {\n proxy.removeBookmarkSelectionIconTheme();\n bookmarkPane.style.display = 'none';\n }\n document.getElementById(_this.pdfViewer.element.id + '_thumbnail_view').style.display = 'flex';\n if (proxy.sideBarContentContainer) {\n if (proxy.sideBarContentContainer.style.display !== 'none') {\n if (proxy.isBookmarkOpen) {\n proxy.isThumbnailOpen = true;\n proxy.setThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnExpand();\n }\n else {\n proxy.isThumbnailOpen = false;\n proxy.removeThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnClose();\n }\n }\n else {\n _this.sideBarContent.focus();\n proxy.isThumbnailOpen = true;\n proxy.setThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnExpand();\n }\n }\n proxy.isBookmarkOpen = false;\n if (_this.pdfViewer.annotationModule && _this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(_this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n _this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n this.openThumbnailPane = function () {\n var proxy = null;\n proxy = _this;\n var sideBarContent = document.getElementById(_this.pdfViewer.element.id + '_sideBarContent');\n var sideBarContentContainer = document.getElementById(_this.pdfViewer.element.id + '_sideBarContentContainer');\n var viewerContainer = document.getElementById(_this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(_this.pdfViewer.element.id + '_pageViewContainer');\n document.getElementById(_this.pdfViewer.element.id + '_thumbnail_view').style.display = 'block';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarResizer').style.display = 'none';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarTitleContainer').style.display = 'none';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarContentSplitter').style.display = 'none';\n sideBarContent.classList.add('e-thumbnail');\n sideBarContentContainer.classList.add('e-thumbnail');\n if (sideBarContentContainer) {\n if (proxy.isThumbnail) {\n sideBarContentContainer.style.display = 'none';\n viewerContainer.style.width = proxy.pdfViewer.element.clientWidth + 'px';\n pageContainer.style.width = viewerContainer.clientWidth + 'px';\n viewerContainer.style.left = sideBarContentContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n proxy.isThumbnail = false;\n }\n else {\n sideBarContent.focus();\n sideBarContentContainer.style.display = 'block';\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - sideBarContentContainer.clientWidth) + 'px';\n pageContainer.style.width = viewerContainer.clientWidth + 'px';\n viewerContainer.style.left = (sideBarContentContainer.clientWidth) + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n proxy.isThumbnail = true;\n }\n }\n if (_this.pdfViewer.annotationModule && _this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(_this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n _this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.bookmarkButtonOnClick = function (event) {\n _this.openBookmarkcontentInitially();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.commentPanelMouseDown = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.offset = [\n proxy.commentPanelResizer.offsetLeft - event.clientX,\n proxy.commentPanelResizer.offsetTop - event.clientY,\n proxy.getViewerContainerRight()\n ];\n _this.isCommentPanelShow = true;\n _this.previousX = event.clientX;\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'e-resize';\n proxy.commentPanelResizer.style.cursor = 'e-resize';\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.updateCommentPanelContainer = function (event) {\n var proxy = null;\n proxy = _this;\n // prevent the commentPanel from becoming too narrow, or from occupying more\n // than half of the available viewer width.\n if (_this.pdfViewer.enableRtl) {\n var width = event.clientX + proxy.offset[0];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.commentPanelWidthMin) {\n width = _this.commentPanelWidthMin;\n }\n proxy.commentPanelResizer.style.left = width + 'px';\n proxy.commentPanelContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n }\n else {\n var currentWidth = _this.previousX - event.clientX;\n var width = currentWidth + proxy.offset[2];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.commentPanelWidthMin) {\n width = _this.commentPanelWidthMin;\n }\n proxy.commentPanelResizer.style.right = width + 'px';\n proxy.commentPanelContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n }\n _this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelTextTop();\n // eslint-disable-next-line max-len\n var viewerWidth = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight());\n proxy.pdfViewerBase.viewerContainer.style.width = viewerWidth + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.commentPanelMouseLeave = function (event) {\n var proxy = null;\n proxy = _this;\n if (proxy.commentPanelContainer) {\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'default';\n proxy.commentPanelContainer.style.cursor = 'default';\n }\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.initializeNavigationPane = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.createNavigationPane();\n }\n else {\n // eslint-disable-next-line max-len\n this.commentPanelContainer = createElement('div', { id: this.pdfViewer.element.id + '_commantPanel', className: 'e-pv-mobile-comments-container' });\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelContainer);\n if (this.pdfViewer.enableRtl) {\n this.commentPanelContainer.style.left = 0 + 'px';\n }\n else {\n this.commentPanelContainer.style.right = 0 + 'px';\n }\n this.commentPanelContainer.style.bottom = 0 + 'px';\n this.createCommentPanelTitleContainer();\n this.commentPanelContainer.style.display = 'none';\n // eslint-disable-next-line max-len\n this.commentsContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentscontentcontainer', className: 'e-pv-comments-content-container' });\n this.commentPanelContainer.appendChild(this.commentsContentContainer);\n this.createFileElement(this.commentPanelContainer);\n this.createXFdfFileElement(this.commentPanelContainer);\n }\n };\n NavigationPane.prototype.createNavigationPane = function () {\n var isblazor = isBlazor();\n if (!isblazor) {\n // eslint-disable-next-line max-len\n this.sideBarToolbar = createElement('div', { id: this.pdfViewer.element.id + '_sideBarToolbar', className: 'e-pv-sidebar-toolbar', attrs: { 'role': 'toolbar', 'aria-orientation': 'vertical', 'tabindex': '-1', 'aria-label': 'Sidebar Toolbar' } });\n // eslint-disable-next-line max-len\n this.sideBarToolbarSplitter = createElement('div', { id: this.pdfViewer.element.id + '_sideBarToolbarSplitter', className: 'e-pv-sidebar-toolbar-splitter' });\n // eslint-disable-next-line max-len\n this.sideBarContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContentContainer', className: 'e-pv-sidebar-content-container' });\n // eslint-disable-next-line max-len\n this.sideBarContentSplitter = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContentSplitter', className: 'e-pv-sidebar-content-splitter' });\n // eslint-disable-next-line max-len\n this.sideBarContent = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContent', className: 'e-pv-sidebar-content', attrs: { 'tabindex': '0' } });\n // eslint-disable-next-line max-len\n this.sideBarTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarTitleContainer', className: 'e-pv-sidebar-title-container' });\n // eslint-disable-next-line max-len\n this.sideBarTitle = createElement('div', { id: this.pdfViewer.element.id + '_sideBarTitle', className: 'e-pv-sidebar-title', attrs: { 'tabindex': '-1' } });\n // eslint-disable-next-line max-len\n this.sideBarResizer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarResizer', className: 'e-pv-sidebar-resizer' });\n }\n else {\n this.sideBarToolbar = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar');\n this.sideBarToolbarSplitter = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n this.sideBarContentContainer = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-container');\n this.sideBarContentSplitter = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-splitter');\n this.sideBarContent = this.pdfViewer.element.querySelector('.e-pv-sidebar-content');\n this.sideBarTitleContainer = this.pdfViewer.element.querySelector('.e-pv-sidebar-title-container');\n this.sideBarTitle = this.pdfViewer.element.querySelector('.e-pv-sidebar-title');\n this.sideBarResizer = this.pdfViewer.element.querySelector('.e-pv-sidebar-resizer');\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarToolbar);\n if (this.pdfViewer.enableRtl) {\n this.sideBarToolbar.style.cssFloat = 'right';\n this.sideBarToolbar.style.right = 1 + 'px';\n this.sideBarToolbar.style.position = 'relative';\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarToolbarSplitter);\n if (this.pdfViewer.enableRtl) {\n this.sideBarToolbarSplitter.classList.add('e-right');\n }\n else {\n this.sideBarToolbarSplitter.classList.add('e-left');\n }\n if (this.pdfViewer.enableRtl) {\n this.sideBarContentContainer.classList.add('e-right');\n }\n else {\n this.sideBarContentContainer.classList.add('e-left');\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarContentContainer);\n if (this.pdfViewer.enableRtl) {\n this.sideBarContentSplitter.style.right = 0 + 'px';\n }\n this.sideBarContentContainer.appendChild(this.sideBarContentSplitter);\n if (this.pdfViewer.enableRtl) {\n this.sideBarContent.style.right = 0 + 'px';\n this.sideBarContent.style.direction = 'rtl';\n }\n this.sideBarContentContainer.appendChild(this.sideBarContent);\n if (this.pdfViewer.enableRtl) {\n this.sideBarTitleContainer.style.right = 0 + 'px';\n }\n if (this.pdfViewer.enableRtl) {\n this.sideBarTitle.classList.add('e-right');\n }\n else {\n this.sideBarTitle.classList.add('e-left');\n }\n this.sideBarTitleContainer.appendChild(this.sideBarTitle);\n this.sideBarContentContainer.appendChild(this.sideBarTitleContainer);\n this.sideBarResizer.addEventListener('mousedown', this.resizePanelMouseDown);\n this.pdfViewerBase.mainContainer.addEventListener('mousemove', this.resizePanelMouseMove);\n this.pdfViewerBase.mainContainer.addEventListener('mouseup', this.resizeViewerMouseLeave);\n if (this.pdfViewer.enableRtl) {\n this.sideBarResizer.classList.add('e-right');\n }\n else {\n this.sideBarResizer.classList.add('e-left');\n }\n this.sideBarContentContainer.appendChild(this.sideBarResizer);\n this.createCommentPanel();\n var controlLeft = this.getViewerContainerLeft();\n var controlRight = this.getViewerContainerRight();\n if (!this.pdfViewer.enableRtl) {\n this.pdfViewerBase.viewerContainer.style.left = controlLeft + 'px';\n this.pdfViewerBase.viewerContainer.style.right = controlRight + 'px';\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.width = (this.pdfViewer.element.clientWidth - controlLeft - this.commentPanelContainer.clientWidth) + 'px';\n this.sideBarContentContainer.style.display = 'none';\n this.createSidebarToolBar();\n this.createSidebarTitleCloseButton();\n this.createResizeIcon();\n this.sideBarToolbar.addEventListener('mouseup', this.sideToolbarOnMouseup.bind(this));\n this.sideBarContentContainer.addEventListener('mouseup', this.sideBarTitleOnMouseup.bind(this));\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.adjustPane = function () {\n if (isBlazor()) {\n var splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n var sideToolbarElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar');\n var sideToolbarContent = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-container');\n var toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n if (toolbarHeight === 0) {\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(toolbarContainer)['height']) + 1;\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n sideToolbarElement.style.top = toolbarHeight + 'px';\n sideToolbarContent.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n sideToolbarElement.style.height = this.getSideToolbarHeight(toolbarHeight);\n sideToolbarContent.style.height = this.getSideToolbarHeight(toolbarHeight);\n splitterElement.style.height = this.getSideToolbarHeight(toolbarHeight);\n this.pdfViewerBase.viewerContainer.style.height = this.getSideToolbarHeight(toolbarHeight);\n }\n else {\n var splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n var toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n var toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n if (toolbarHeight === 0) {\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(toolbarContainer)['height']) + 1;\n }\n // eslint-disable-next-line max-len\n this.sideBarToolbar.style.top = toolbarHeight + 'px';\n this.sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n }\n };\n NavigationPane.prototype.getSideToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n NavigationPane.prototype.createCommentPanel = function () {\n // eslint-disable-next-line max-len\n this.commentPanelContainer = createElement('div', { id: this.pdfViewer.element.id + '_commantPanel', className: 'e-pv-comment-panel' });\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelContainer);\n if (this.pdfViewer.enableRtl) {\n this.commentPanelContainer.style.left = 0 + 'px';\n }\n else {\n this.commentPanelContainer.style.right = 0 + 'px';\n }\n this.commentPanelContainer.style.bottom = 0 + 'px';\n this.createCommentPanelTitleContainer();\n this.commentPanelContainer.style.display = 'none';\n // eslint-disable-next-line max-len\n this.commentsContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentscontentcontainer', className: 'e-pv-comments-content-container' });\n this.commentPanelContainer.appendChild(this.commentsContentContainer);\n // eslint-disable-next-line max-len\n this.commentPanelResizer = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelResizer', className: 'e-pv-comment-panel-resizer' });\n if (this.pdfViewer.enableRtl) {\n this.commentPanelResizer.classList.add('e-left');\n }\n else {\n this.commentPanelResizer.classList.add('e-right');\n }\n this.commentPanelResizer.style.display = 'none';\n this.commentPanelResizer.addEventListener('mousedown', this.commentPanelMouseDown);\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelResizer);\n this.createCommentPanelResizeIcon();\n this.createFileElement(this.commentPanelContainer);\n this.createXFdfFileElement(this.commentPanelContainer);\n };\n NavigationPane.prototype.createCommentPanelTitleContainer = function () {\n // eslint-disable-next-line max-len\n var commentPanelTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelTitleContainer', className: 'e-pv-comment-panel-title-container' });\n // eslint-disable-next-line max-len\n var commentpanelTilte = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelTitle', className: 'e-pv-comment-panel-title', attrs: { 'tabindex': '-1' } });\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Comments');\n promise.then(function (value) {\n commentpanelTilte.innerText = value;\n });\n }\n else {\n commentpanelTilte.innerText = this.pdfViewer.localeObj.getConstant('Comments');\n }\n var annotationButton = createElement('button', { id: this.pdfViewer.element.id + '_annotations_btn' });\n annotationButton.setAttribute('aria-label', 'annotation button');\n annotationButton.setAttribute('type', 'button');\n annotationButton.className = 'e-btn e-pv-tbar-btn e-pv-comment-panel-title-close-div e-btn';\n // eslint-disable-next-line max-len\n var moreOptionButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_annotation_more_icon', className: 'e-pv-more-icon e-pv-icon' });\n annotationButton.appendChild(moreOptionButtonSpan);\n if (Browser.isDevice && !isBlazor()) {\n var commentCloseIconDiv = createElement('button');\n commentCloseIconDiv.setAttribute('aria-label', 'annotation button');\n commentCloseIconDiv.setAttribute('type', 'button');\n commentCloseIconDiv.style.borderColor = 'transparent';\n commentCloseIconDiv.style.paddingTop = '11px';\n commentCloseIconDiv.style.paddingBottom = '11px';\n commentCloseIconDiv.style.backgroundColor = '#fafafa';\n commentCloseIconDiv.addEventListener('click', this.closeCommentPanelContainer.bind(this));\n commentpanelTilte.style.left = '37px';\n var commentCloseIcon = createElement('span', { className: 'e-pv-annotation-tools-close-icon e-pv-icon' });\n commentCloseIconDiv.appendChild(commentCloseIcon);\n commentPanelTitleContainer.appendChild(commentCloseIconDiv);\n }\n commentPanelTitleContainer.appendChild(commentpanelTilte);\n commentPanelTitleContainer.appendChild(annotationButton);\n this.commentPanelContainer.appendChild(commentPanelTitleContainer);\n this.createAnnotationContextMenu();\n annotationButton.addEventListener('click', this.openAnnotationContextMenu.bind(this));\n };\n NavigationPane.prototype.createCommentPanelResizeIcon = function () {\n // eslint-disable-next-line max-len\n this.commentPanelResizeIcon = createElement('div', { id: this.pdfViewer.element.id + '_commentPanel_resize', className: 'e-pv-resize-icon e-pv-icon' });\n this.setCommentPanelResizeIconTop();\n this.commentPanelResizeIcon.style.position = 'absolute';\n this.commentPanelResizer.appendChild(this.commentPanelResizeIcon);\n };\n // eslint-disable-next-line\n NavigationPane.prototype.openAnnotationContextMenu = function (event) {\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n this.annotationMenuObj.open(event.clientY, event.clientX, event.currentTarget);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.createAnnotationContextMenu = function () {\n // eslint-disable-next-line max-len\n this.annotationContextMenu = [\n { text: this.pdfViewer.localeObj.getConstant('Export Annotations') },\n { text: this.pdfViewer.localeObj.getConstant('Import Annotations') },\n { text: this.pdfViewer.localeObj.getConstant('Export XFDF') },\n { text: this.pdfViewer.localeObj.getConstant('Import XFDF') }\n ];\n var annotationMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_annotation_context_menu' });\n this.pdfViewer.element.appendChild(annotationMenuElement);\n this.annotationMenuObj = new Context({\n target: '#' + this.pdfViewer.element.id + '_annotations_btn', items: this.annotationContextMenu,\n select: this.annotationMenuItemSelect.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.annotationMenuObj.enableRtl = true;\n }\n this.annotationMenuObj.appendTo(annotationMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.annotationMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.annotationMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n // eslint-disable-next-line\n NavigationPane.prototype.annotationMenuItemSelect = function (args) {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (args.item) {\n switch (args.item.text) {\n case this.pdfViewer.localeObj.getConstant('Export Annotations'):\n this.pdfViewerBase.exportAnnotations(AnnotationDataFormat.Json);\n break;\n case this.pdfViewer.localeObj.getConstant('Import Annotations'):\n this.importAnnotationIconClick(args);\n break;\n case this.pdfViewer.localeObj.getConstant('Export XFDF'):\n this.pdfViewerBase.exportAnnotations(AnnotationDataFormat.Xfdf);\n break;\n case this.pdfViewer.localeObj.getConstant('Import XFDF'):\n this.importXFdfAnnotationIconClick(args);\n break;\n default:\n break;\n }\n }\n };\n NavigationPane.prototype.createFileElement = function (toolbarElement) {\n // eslint-disable-next-line max-len\n this.annotationInputElement = createElement('input', { id: this.pdfViewer.element.id + '_annotationUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file', 'aria-label': 'upload elements' } });\n this.annotationInputElement.setAttribute('accept', '.json');\n toolbarElement.appendChild(this.annotationInputElement);\n this.annotationInputElement.addEventListener('change', this.loadImportAnnotation);\n };\n NavigationPane.prototype.createXFdfFileElement = function (toolbarElement) {\n // eslint-disable-next-line max-len\n this.annotationXFdfInputElement = createElement('input', { id: this.pdfViewer.element.id + '_annotationXFdfUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file', 'aria-label': 'upload elements' } });\n this.annotationXFdfInputElement.setAttribute('accept', '.xfdf');\n toolbarElement.appendChild(this.annotationXFdfInputElement);\n this.annotationXFdfInputElement.addEventListener('change', this.loadImportAnnotation);\n };\n NavigationPane.prototype.importAnnotationIconClick = function (args) {\n this.annotationInputElement.click();\n };\n NavigationPane.prototype.importXFdfAnnotationIconClick = function (args) {\n this.annotationXFdfInputElement.click();\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.closeCommentPanelContainer = function () {\n var proxy = null;\n proxy = this;\n var viewerContainer = document.getElementById(this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(this.pdfViewer.element.id + '_pageViewContainer');\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanel) {\n commentPanel.style.display = 'none';\n if (proxy.commentPanelResizer) {\n proxy.commentPanelResizer.style.display = 'none';\n }\n if (viewerContainer) {\n if (this.pdfViewer.enableRtl) {\n viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n }\n else {\n viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight()) + 'px';\n pageContainer.style.width = (proxy.pdfViewerBase.viewerContainer.offsetWidth - proxy.getViewerContainerScrollbarWidth()) + 'px';\n }\n if (proxy.pdfViewerBase) {\n proxy.pdfViewerBase.updateZoomValue();\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (Browser.isDevice && !isBlazor()) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'block';\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display = 'block';\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {string} option - The option.\n * @returns {void}\n */\n NavigationPane.prototype.createNavigationPaneMobile = function (option) {\n var _this = this;\n this.isNavigationToolbarVisible = true;\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_navigationToolbar', className: 'e-pv-nav-toolbar' });\n this.pdfViewerBase.viewerMainContainer.insertBefore(this.toolbarElement, this.pdfViewerBase.viewerContainer);\n var items;\n if (option === 'search') {\n var searchTemplate = '
    ';\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { template: searchTemplate },\n {\n prefixIcon: 'e-pv-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_search_box-icon',\n click: function () {\n var iconElement = _this.pdfViewerBase.getElement('_search_box-icon').firstElementChild;\n if (iconElement.classList.contains('e-pv-search-close')) {\n _this.enableSearchItems(false);\n }\n _this.pdfViewer.textSearchModule.searchButtonClick(iconElement, _this.searchInput);\n }\n },\n {\n prefixIcon: 'e-pv-prev-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_prev_occurrence',\n click: function (args) {\n _this.pdfViewer.textSearchModule.searchPrevious();\n }\n },\n {\n prefixIcon: 'e-pv-next-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_next_occurrence',\n click: function (args) {\n _this.pdfViewer.textSearchModule.searchNext();\n }\n }\n ];\n }\n else {\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { text: this.pdfViewer.localeObj.getConstant('Bookmarks') }\n ];\n }\n this.toolbar = new Tool({ items: items, width: '', height: '', overflowMode: 'Popup' });\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n if (option === 'search') {\n this.initiateSearchBox();\n }\n else {\n this.initiateBookmarks();\n }\n };\n NavigationPane.prototype.initiateSearchBox = function () {\n var _this = this;\n this.searchInput = this.pdfViewerBase.getElement('_search_input');\n this.pdfViewer.textSearchModule.searchBtn = this.pdfViewerBase.getElement('_search_box-icon').firstElementChild;\n this.searchInput.addEventListener('keyup', function (event) {\n _this.enableSearchItems(true);\n var searchString = _this.searchInput.value;\n if (event.which === 13) {\n _this.initiateTextSearch();\n }\n else {\n _this.pdfViewer.textSearchModule.resetVariables();\n }\n });\n this.pdfViewer.textSearchModule.searchInput = this.searchInput;\n this.setSearchInputWidth();\n this.enableSearchItems(false);\n this.searchInput.focus();\n };\n NavigationPane.prototype.enableSearchItems = function (isEnable) {\n if (!isBlazor()) {\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_prev_occurrence').parentElement, isEnable);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_next_occurrence').parentElement, isEnable);\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableSearchItems', isEnable);\n }\n };\n NavigationPane.prototype.initiateBookmarks = function () {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.mobileScrollerContainer.style.display = 'none';\n // eslint-disable-next-line\n var mobileTool = document.querySelectorAll('.e-pv-mobile-annotation-toolbar');\n for (var i = 0; i < mobileTool.length; i++) {\n mobileTool[parseInt(i.toString(), 10)].style.display = 'none';\n }\n }\n // eslint-disable-next-line max-len\n var bookmarkContainer = createElement('div', { id: this.pdfViewer.element.id + '_bookmarks_container', className: 'e-pv-bookmark-container' });\n bookmarkContainer.style.width = '100%';\n bookmarkContainer.style.height = this.pdfViewerBase.viewerContainer.style.height;\n this.pdfViewerBase.getElement('_viewerMainContainer').appendChild(bookmarkContainer);\n this.pdfViewerBase.viewerContainer.style.display = 'none';\n this.isBookmarkListOpen = true;\n this.pdfViewer.bookmarkViewModule.renderBookmarkContentMobile();\n };\n NavigationPane.prototype.initiateTextSearch = function () {\n var inputString = this.searchInput.value;\n this.pdfViewer.textSearchModule.initiateSearch(inputString);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.goBackToToolbar = function () {\n this.isNavigationToolbarVisible = false;\n if (isBlazor() && (!Browser.isDevice || this.pdfViewer.enableDesktopMode) || !isBlazor()) {\n this.pdfViewer.textSearchModule.cancelTextSearch();\n }\n this.searchInput = null;\n if (this.pdfViewer.bookmarkViewModule.childNavigateCount !== 0) {\n this.pdfViewer.bookmarkViewModule.bookmarkList.back();\n this.pdfViewer.bookmarkViewModule.childNavigateCount--;\n }\n else {\n if (this.toolbar != null) {\n this.toolbar.destroy();\n this.toolbar = null;\n }\n var bookmarkContainer = this.pdfViewerBase.getElement('_bookmarks_container');\n if (bookmarkContainer) {\n bookmarkContainer.parentElement.removeChild(bookmarkContainer);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.mobileScrollerContainer.style.display = '';\n }\n }\n if (this.toolbarElement && this.toolbarElement.parentElement != null) {\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n this.pdfViewerBase.viewerContainer.style.display = 'block';\n this.isBookmarkListOpen = false;\n if (!isBlazor()) {\n if (!this.pdfViewer.toolbar.annotationToolbarModule.isMobileAnnotEnabled) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n else {\n this.pdfViewerBase.onWindowResize();\n }\n }\n };\n NavigationPane.prototype.setSearchInputWidth = function () {\n var searchInputParent = this.searchInput.parentElement;\n var padding = window.getComputedStyle(searchInputParent.parentElement, null).getPropertyValue('padding-left');\n if (isBlazor() && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.toolbarElement = this.pdfViewerBase.getElement('_navigationToolbar');\n }\n // eslint-disable-next-line max-len\n var width = this.toolbarElement.clientWidth - this.getParentElementSearchBox('_backward').clientWidth\n - this.getParentElementSearchBox('_search_box-icon').clientWidth - this.getParentElementSearchBox('_prev_occurrence').clientWidth\n - this.getParentElementSearchBox('_next_occurrence').clientWidth - 6;\n if (padding !== '') {\n width = width - (parseFloat(padding) * 2);\n }\n searchInputParent.style.width = width + 'px';\n };\n NavigationPane.prototype.getParentElementSearchBox = function (idString) {\n return this.pdfViewerBase.getElement(idString).parentElement;\n };\n /**\n * @private\n * @param {string} text - The text.\n * @returns {void}\n */\n NavigationPane.prototype.createTooltipMobile = function (text) {\n if (!this.isTooltipCreated) {\n //boolean to prevent again toast creation.\n this.createMobileTooltip(text);\n }\n else {\n if (this.toastObject) {\n this.toastObject.title = text;\n var tooltipElement = this.pdfViewerBase.getElement('_container_tooltip');\n var tooltipChild = tooltipElement.firstElementChild;\n if (tooltipChild) {\n tooltipChild.style.width = 'auto';\n tooltipChild.firstElementChild.firstElementChild.textContent = text;\n }\n else {\n this.isTooltipCreated = false;\n var tooltipElement_1 = this.pdfViewerBase.getElement('_container_tooltip');\n if (this.toastObject) {\n this.toastObject.destroy();\n }\n tooltipElement_1.parentElement.removeChild(tooltipElement_1);\n this.toastObject = null;\n this.createMobileTooltip(text);\n }\n }\n }\n };\n NavigationPane.prototype.createMobileTooltip = function (text) {\n // eslint-disable-next-line max-len\n var tooltipDiv = createElement('div', { className: 'e-pv-container-tooltip', id: this.pdfViewer.element.id + '_container_tooltip' });\n this.pdfViewer.element.appendChild(tooltipDiv);\n // eslint-disable-next-line max-len\n this.toastObject = new Toast({ title: text, target: this.pdfViewer.element, close: this.onTooltipClose.bind(this), position: { X: 0, Y: 0 }, animation: { hide: { duration: 200, effect: 'FadeOut' } } });\n this.toastObject.appendTo(tooltipDiv);\n var y = this.pdfViewer.element.clientHeight * 0.65;\n var x = (this.pdfViewer.element.clientWidth - tooltipDiv.clientWidth) / 2;\n this.isTooltipCreated = true;\n this.toastObject.show({ position: { X: x, Y: y } });\n var tooltipChild = tooltipDiv.firstElementChild;\n if (tooltipChild) {\n tooltipChild.style.width = 'auto';\n }\n };\n NavigationPane.prototype.onTooltipClose = function (args) {\n if (this.pdfViewer.textSearchModule) {\n this.isTooltipCreated = false;\n var tooltipElement = this.pdfViewerBase.getElement('_container_tooltip');\n this.pdfViewer.textSearchModule.isMessagePopupOpened = false;\n if (this.toastObject) {\n this.toastObject.destroy();\n }\n tooltipElement.parentElement.removeChild(tooltipElement);\n this.toastObject = null;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.toolbarResize = function () {\n if (this.searchInput) {\n this.searchInput.style.width = 'auto';\n this.setSearchInputWidth();\n }\n };\n NavigationPane.prototype.createSidebarToolBar = function () {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.thumbnailButton = createElement('button', { id: this.pdfViewer.element.id + '_thumbnail-view', attrs: { 'disabled': 'disabled', 'aria-label': 'Page Thumbnails', 'tabindex': '-1' } });\n this.thumbnailButton.className = 'e-pv-tbar-btn e-pv-thumbnail-view-button e-btn';\n this.thumbnailButton.setAttribute('type', 'button');\n // eslint-disable-next-line max-len\n var thumbnailButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_thumbnail-view' + '_icon', className: 'e-pv-thumbnail-view-disable-icon e-pv-icon' });\n this.thumbnailButton.appendChild(thumbnailButtonSpan);\n // eslint-disable-next-line max-len\n var thumbnailTooltip = new Tooltip({ content: this.pdfViewer.localeObj.getConstant('Page Thumbnails'), opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n thumbnailTooltip.appendTo(this.thumbnailButton);\n // eslint-disable-next-line max-len\n this.bookmarkButton = createElement('button', { id: this.pdfViewer.element.id + '_bookmark', attrs: { 'disabled': 'disabled', 'aria-label': 'Bookmarks', 'tabindex': '-1' } });\n this.bookmarkButton.setAttribute('type', 'button');\n this.bookmarkButton.className = 'e-pv-tbar-btn e-pv-bookmark-button e-btn';\n // eslint-disable-next-line max-len\n var buttonSpan = createElement('span', { id: this.pdfViewer.element.id + '_bookmark' + '_icon', className: 'e-pv-bookmark-disable-icon e-pv-icon' });\n this.bookmarkButton.appendChild(buttonSpan);\n // eslint-disable-next-line max-len\n var bookMarkTooltip = new Tooltip({ content: this.pdfViewer.localeObj.getConstant('Bookmarks'), opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n bookMarkTooltip.appendTo(this.bookmarkButton);\n this.sideBarToolbar.appendChild(this.thumbnailButton);\n this.sideBarToolbar.appendChild(this.bookmarkButton);\n }\n else {\n this.thumbnailButton = this.pdfViewer.element.querySelector('.e-pv-thumbnail-view-button');\n this.bookmarkButton = this.pdfViewer.element.querySelector('.e-pv-bookmark-button');\n }\n this.thumbnailButton.addEventListener('click', this.sideToolbarOnClick);\n this.bookmarkButton.addEventListener('click', this.bookmarkButtonOnClick);\n };\n NavigationPane.prototype.onTooltipBeforeOpen = function (args) {\n if (!this.pdfViewer.toolbarSettings.showTooltip) {\n args.cancel = true;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.enableThumbnailButton = function () {\n if (this.thumbnailButton) {\n this.thumbnailButton.removeAttribute('disabled');\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-disable-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.enableBookmarkButton = function () {\n if (this.bookmarkButton) {\n this.bookmarkButton.removeAttribute('disabled');\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-disable-icon');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-icon');\n }\n };\n NavigationPane.prototype.createSidebarTitleCloseButton = function () {\n this.closeDiv = createElement('button', { id: this.pdfViewer.element.id + '_close_btn' });\n this.closeDiv.setAttribute('aria-label', 'close button');\n this.closeDiv.setAttribute('type', 'button');\n this.closeDiv.className = 'e-btn e-pv-tbar-btn e-pv-title-close-div e-btn';\n if (this.pdfViewer.enableRtl) {\n this.closeDiv.style.left = 8 + 'px';\n }\n else {\n this.closeDiv.style.left = this.closeButtonLeft + 'px';\n }\n // eslint-disable-next-line max-len\n var buttonSpan = createElement('span', { id: this.pdfViewer.element.id + '_close' + '_icon', className: 'e-pv-title-close-icon e-pv-icon' });\n this.closeDiv.appendChild(buttonSpan);\n this.sideBarTitleContainer.appendChild(this.closeDiv);\n this.closeDiv.addEventListener('click', this.sideToolbarOnClose);\n };\n NavigationPane.prototype.createResizeIcon = function () {\n // eslint-disable-next-line max-len\n this.resizeIcon = createElement('div', { id: this.pdfViewer.element.id + '_resize', className: 'e-pv-resize-icon e-pv-icon' });\n this.setResizeIconTop();\n this.resizeIcon.style.position = 'absolute';\n this.resizeIcon.addEventListener('click', this.sideToolbarOnClose);\n this.resizeIcon.addEventListener('mouseover', this.resizeIconMouseOver);\n this.sideBarResizer.appendChild(this.resizeIcon);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setResizeIconTop = function () {\n // eslint-disable-next-line max-len\n if (this.sideBarToolbar && this.sideBarToolbar.clientHeight && this.resizeIcon.style.top === '') {\n this.resizeIcon.style.top = (this.sideBarToolbar.clientHeight) / 2 + 'px';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setCommentPanelResizeIconTop = function () {\n // eslint-disable-next-line max-len\n if (this.commentPanelContainer && this.commentPanelContainer.clientHeight && this.commentPanelResizeIcon && this.commentPanelResizeIcon.style.top === '') {\n this.commentPanelResizeIcon.style.top = (this.commentPanelContainer.clientHeight) / 2 + 'px';\n }\n };\n Object.defineProperty(NavigationPane.prototype, \"outerContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (!this.mainContainerWidth) {\n this.mainContainerWidth = this.pdfViewerBase.mainContainer.clientWidth;\n }\n return this.mainContainerWidth;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerScrollbarWidth = function () {\n // eslint-disable-next-line max-len\n return (this.pdfViewerBase.viewerContainer.offsetWidth + this.pdfViewerBase.viewerContainer.offsetLeft) - (this.pdfViewerBase.viewerContainer.clientWidth + this.pdfViewerBase.viewerContainer.offsetLeft);\n };\n Object.defineProperty(NavigationPane.prototype, \"sideToolbarWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.sideBarToolbar) {\n return this.sideBarToolbar.clientWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigationPane.prototype, \"sideBarContentContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.sideBarContentContainer) {\n return this.sideBarContentContainer.clientWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigationPane.prototype, \"commentPanelContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.commentPanelContainer) {\n return this.commentPanelContainer.offsetWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.updateViewerContainerOnClose = function () {\n var proxy = null;\n proxy = this;\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.display = 'none';\n if (this.pdfViewer.enableRtl) {\n proxy.pdfViewerBase.viewerContainer.style.right = (proxy.sideToolbarWidth) + 'px';\n }\n else {\n proxy.pdfViewerBase.viewerContainer.style.left = (proxy.sideToolbarWidth) + 'px';\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - proxy.sideToolbarWidth - proxy.getViewerContainerRight()) + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.pageContainer.style.width = (proxy.pdfViewerBase.viewerContainer.offsetWidth - proxy.getViewerContainerScrollbarWidth()) + 'px';\n if (this.restrictUpdateZoomValue) {\n proxy.pdfViewerBase.updateZoomValue();\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.updateViewerContainerOnExpand = function () {\n var proxy = null;\n proxy = this;\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.display = 'block';\n if (this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - this.getViewerContainerLeft() - this.getViewerContainerRight()) + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n if (proxy.pdfViewer.enableThumbnail) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n }\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerLeft = function () {\n if (this.sideToolbarWidth) {\n return (this.sideToolbarWidth + this.sideBarContentContainerWidth);\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerRight = function () {\n if (this.commentPanelResizer) {\n return (this.commentPanelContainerWidth + this.commentPanelResizer.clientWidth);\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerMainContainerWidth = function () {\n return this.pdfViewer.element.clientWidth - this.sideToolbarWidth;\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setThumbnailSelectionIconTheme = function () {\n if (this.thumbnailButton) {\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-selection-icon');\n this.thumbnailButton.classList.add('e-pv-thumbnail-view-button-selection');\n }\n };\n NavigationPane.prototype.removeThumbnailSelectionIconTheme = function () {\n if (this.thumbnailButton && this.thumbnailButton.children[0]) {\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-selection-icon');\n this.thumbnailButton.classList.remove('e-pv-thumbnail-view-button-selection');\n }\n };\n NavigationPane.prototype.resetThumbnailIcon = function () {\n if (this.thumbnailButton && this.thumbnailButton.children[0]) {\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-disable-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.resetThumbnailView = function () {\n if (this.sideBarContentContainer) {\n this.sideBarContentContainer.style.display = 'none';\n if (this.pdfViewer.enableRtl) {\n this.pdfViewerBase.viewerContainer.style.left = 1 + 'px';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.left = (this.sideToolbarWidth) + 'px';\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.width = (this.pdfViewer.element.clientWidth - this.sideToolbarWidth - this.getViewerContainerRight()) + 'px';\n if (this.pdfViewerBase.pageContainer) {\n this.pdfViewerBase.pageContainer.style.width = this.pdfViewerBase.viewerContainer.clientWidth + 'px';\n }\n this.thumbnailButton.setAttribute('disabled', 'disabled');\n this.removeThumbnailSelectionIconTheme();\n this.resetThumbnailIcon();\n }\n };\n NavigationPane.prototype.setBookmarkSelectionIconTheme = function () {\n if (this.bookmarkButton) {\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-icon');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-selection-icon');\n this.bookmarkButton.classList.add('e-pv-bookmark-button-selection');\n }\n };\n NavigationPane.prototype.removeBookmarkSelectionIconTheme = function () {\n if (this.bookmarkButton && this.bookmarkButton.children[0]) {\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-icon');\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-selection-icon');\n this.bookmarkButton.classList.remove('e-pv-bookmark-button-selection');\n }\n };\n NavigationPane.prototype.sideToolbarOnMouseup = function (event) {\n if (event.target === this.sideBarToolbar) {\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n NavigationPane.prototype.sideBarTitleOnMouseup = function (event) {\n this.pdfViewerBase.focusViewerContainer();\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.openBookmarkcontentInitially = function () {\n var proxy = null;\n proxy = this;\n if (document.getElementById(this.pdfViewer.element.id + '_thumbnail_view')) {\n document.getElementById(this.pdfViewer.element.id + '_thumbnail_view').style.display = 'none';\n }\n this.removeThumbnailSelectionIconTheme();\n this.sideBarTitle.textContent = this.pdfViewer.localeObj.getConstant('Bookmarks');\n this.sideBarContent.setAttribute('aria-label', 'Bookmark View Panel');\n this.pdfViewer.bookmarkViewModule.renderBookmarkcontent();\n if (this.sideBarContentContainer) {\n if (proxy.sideBarContentContainer.style.display !== 'none') {\n if (this.isThumbnailOpen) {\n this.setBookmarkSelectionIconTheme();\n this.isBookmarkOpen = true;\n this.updateViewerContainerOnExpand();\n }\n else {\n this.removeBookmarkSelectionIconTheme();\n this.isBookmarkOpen = false;\n this.updateViewerContainerOnClose();\n }\n }\n else {\n this.sideBarContent.focus();\n this.setBookmarkSelectionIconTheme();\n this.isBookmarkOpen = true;\n this.updateViewerContainerOnExpand();\n }\n }\n this.isThumbnailOpen = false;\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.disableBookmarkButton = function () {\n if (this.sideBarContentContainer && this.bookmarkButton && this.bookmarkButton.children[0]) {\n this.sideBarContentContainer.style.display = 'none';\n this.bookmarkButton.setAttribute('disabled', 'disabled');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-disable-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.clear = function () {\n if (!Browser.isDevice) {\n this.removeBookmarkSelectionIconTheme();\n this.removeThumbnailSelectionIconTheme();\n this.closeCommentPanelContainer();\n }\n if (this.commentsContentContainer) {\n this.commentsContentContainer.innerHTML = '';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.destroy = function () {\n var bookmarkButtonInstance = this.bookmarkButton;\n var thumbnailButtonInstance = this.thumbnailButton;\n if (bookmarkButtonInstance && bookmarkButtonInstance.ej2_instances && bookmarkButtonInstance.ej2_instances.length > 0) {\n bookmarkButtonInstance.ej2_instances[0].destroy();\n }\n if (thumbnailButtonInstance && thumbnailButtonInstance.ej2_instances && thumbnailButtonInstance.ej2_instances.length > 0) {\n thumbnailButtonInstance.ej2_instances[0].destroy();\n }\n if (this.annotationMenuObj) {\n var annotationMenuElement = this.annotationMenuObj.element;\n annotationMenuElement && annotationMenuElement.ej2_instances && annotationMenuElement.ej2_instances.length > 0 ? this.annotationMenuObj.destroy() : null;\n }\n };\n /**\n * @returns {string} - Returns the string.\n */\n NavigationPane.prototype.getModuleName = function () {\n return 'NavigationPane';\n };\n return NavigationPane;\n}());\nexport { NavigationPane };\n","/**\n * enum module defines the public enumerations\n */\n/**\n * Defines the container/canvas transform\n * Self - Sets the transform type as Self\n * Parent - Sets the transform type as Parent\n */\nexport var RotateTransform;\n(function (RotateTransform) {\n /** Self - Sets the transform type as Self */\n RotateTransform[RotateTransform[\"Self\"] = 1] = \"Self\";\n /** Parent - Sets the transform type as Parent */\n RotateTransform[RotateTransform[\"Parent\"] = 2] = \"Parent\";\n})(RotateTransform || (RotateTransform = {}));\n/** Enables/Disables The element actions\n * None - Diables all element actions are none\n * ElementIsPort - Enable element action is port\n * ElementIsGroup - Enable element action as Group\n * @private\n */\nexport var ElementAction;\n(function (ElementAction) {\n /** Disables all element actions are none */\n ElementAction[ElementAction[\"None\"] = 0] = \"None\";\n /** Enable the element action is Port */\n ElementAction[ElementAction[\"ElementIsPort\"] = 2] = \"ElementIsPort\";\n /** Enable the element action as Group */\n ElementAction[ElementAction[\"ElementIsGroup\"] = 4] = \"ElementIsGroup\";\n})(ElementAction || (ElementAction = {}));\n/**\n * Defines the constraints to enable/disable certain features of connector.\n * * None - Interaction of the connectors cannot be done.\n * * Select - Selects the connector.\n * * Delete - Delete the connector.\n * * Drag - Drag the connector.\n * * DragSourceEnd - Drag the source end of the connector.\n * * DragTargetEnd - Drag the target end of the connector.\n * * DragSegmentThump - Drag the segment thumb of the connector.\n * * AllowDrop - Allow to drop a node.\n * * Bridging - Creates bridge on intersection of two connectors.\n * * BridgeObstacle -\n * * InheritBridging - Creates bridge on intersection of two connectors.\n * * PointerEvents - Sets the pointer events.\n * * Tooltip - Displays a tooltip for the connectors.\n * * InheritToolTip - Displays a tooltip for the connectors.\n * * Interaction - Features of the connector used for interaction.\n * * ReadOnly - Enables ReadOnly\n * * Default - Default features of the connector.\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var ConnectorConstraints;\n(function (ConnectorConstraints) {\n /** Disable all connector Constraints. */\n ConnectorConstraints[ConnectorConstraints[\"None\"] = 1] = \"None\";\n /** Enables connector to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables connector to be Deleted. */\n ConnectorConstraints[ConnectorConstraints[\"Delete\"] = 4] = \"Delete\";\n /** Enables connector to be Dragged. */\n ConnectorConstraints[ConnectorConstraints[\"Drag\"] = 8] = \"Drag\";\n /** Enables connectors source end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragSourceEnd\"] = 16] = \"DragSourceEnd\";\n /** Enables connectors target end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragTargetEnd\"] = 32] = \"DragTargetEnd\";\n /** Enables control point and end point of every segment in a connector for editing. */\n ConnectorConstraints[ConnectorConstraints[\"DragSegmentThumb\"] = 64] = \"DragSegmentThumb\";\n /** Enables AllowDrop constraints to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"AllowDrop\"] = 128] = \"AllowDrop\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"Bridging\"] = 256] = \"Bridging\";\n /** Enables or Disables Bridge Obstacles with overlapping of connectors. */\n ConnectorConstraints[ConnectorConstraints[\"BridgeObstacle\"] = 512] = \"BridgeObstacle\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritBridging\"] = 1024] = \"InheritBridging\";\n /** Used to set the pointer events. */\n ConnectorConstraints[ConnectorConstraints[\"PointerEvents\"] = 2048] = \"PointerEvents\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"Tooltip\"] = 4096] = \"Tooltip\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"InheritTooltip\"] = 8192] = \"InheritTooltip\";\n /** Enables Interaction. */\n ConnectorConstraints[ConnectorConstraints[\"Interaction\"] = 4218] = \"Interaction\";\n /** Enables ReadOnly */\n ConnectorConstraints[ConnectorConstraints[\"ReadOnly\"] = 16384] = \"ReadOnly\";\n /** Enables all constraints. */\n ConnectorConstraints[ConnectorConstraints[\"Default\"] = 11838] = \"Default\";\n})(ConnectorConstraints || (ConnectorConstraints = {}));\n/** Enables/Disables the handles of the selector\n * Rotate - Enable Rotate Thumb\n * ConnectorSource - Enable Connector source point\n * ConnectorTarget - Enable Connector target point\n * ResizeNorthEast - Enable ResizeNorthEast Resize\n * ResizeEast - Enable ResizeEast Resize\n * ResizeSouthEast - Enable ResizeSouthEast Resize\n * ResizeSouth - Enable ResizeSouth Resize\n * ResizeSouthWest - Enable ResizeSouthWest Resize\n * ResizeWest - Enable ResizeWest Resize\n * ResizeNorthWest - Enable ResizeNorthWest Resize\n * ResizeNorth - Enable ResizeNorth Resize\n * Default - Enables all constraints\n * @private\n */\nexport var ThumbsConstraints;\n(function (ThumbsConstraints) {\n /** Enable Rotate Thumb */\n ThumbsConstraints[ThumbsConstraints[\"Rotate\"] = 2] = \"Rotate\";\n /** Enable Connector source point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorSource\"] = 4] = \"ConnectorSource\";\n /** Enable Connector target point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorTarget\"] = 8] = \"ConnectorTarget\";\n /** Enable ResizeNorthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthEast\"] = 16] = \"ResizeNorthEast\";\n /** Enable ResizeEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeEast\"] = 32] = \"ResizeEast\";\n /** Enable ResizeSouthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthEast\"] = 64] = \"ResizeSouthEast\";\n /** Enable ResizeSouth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouth\"] = 128] = \"ResizeSouth\";\n /** Enable ResizeSouthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthWest\"] = 256] = \"ResizeSouthWest\";\n /** Enable ResizeWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeWest\"] = 512] = \"ResizeWest\";\n /** Enable ResizeNorthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthWest\"] = 1024] = \"ResizeNorthWest\";\n /** Enable ResizeNorth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorth\"] = 2048] = \"ResizeNorth\";\n /** Enables all constraints */\n ThumbsConstraints[ThumbsConstraints[\"Default\"] = 4094] = \"Default\";\n})(ThumbsConstraints || (ThumbsConstraints = {}));\n/**\n * Defines the visibility of the selector handles\n * None - Hides all the selector elements\n * ConnectorSourceThumb - Shows/hides the source thumb of the connector\n * ConnectorTargetThumb - Shows/hides the target thumb of the connector\n * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector\n * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector\n * ResizeNorthEast - Shows/hides the top right resize handle of the selector\n * ResizeNorthWest - Shows/hides the top left resize handle of the selector\n * ResizeEast - Shows/hides the middle right resize handle of the selector\n * ResizeWest - Shows/hides the middle left resize handle of the selector\n * ResizeSouth - Shows/hides the bottom center resize handle of the selector\n * ResizeNorth - Shows/hides the top center resize handle of the selector\n * Rotate - Shows/hides the rotate handle of the selector\n * UserHandles - Shows/hides the user handles of the selector\n * Resize - Shows/hides all resize handles of the selector\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var SelectorConstraints;\n(function (SelectorConstraints) {\n /** Hides all the selector elements */\n SelectorConstraints[SelectorConstraints[\"None\"] = 1] = \"None\";\n /** Shows/hides the source thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorSourceThumb\"] = 2] = \"ConnectorSourceThumb\";\n /** Shows/hides the target thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorTargetThumb\"] = 4] = \"ConnectorTargetThumb\";\n /** Shows/hides the bottom right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthEast\"] = 8] = \"ResizeSouthEast\";\n /** Shows/hides the bottom left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthWest\"] = 16] = \"ResizeSouthWest\";\n /** Shows/hides the top right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthEast\"] = 32] = \"ResizeNorthEast\";\n /** Shows/hides the top left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthWest\"] = 64] = \"ResizeNorthWest\";\n /** Shows/hides the middle right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeEast\"] = 128] = \"ResizeEast\";\n /** Shows/hides the middle left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeWest\"] = 256] = \"ResizeWest\";\n /** Shows/hides the bottom center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouth\"] = 512] = \"ResizeSouth\";\n /** Shows/hides the top center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorth\"] = 1024] = \"ResizeNorth\";\n /** Shows/hides the rotate handle of the selector */\n SelectorConstraints[SelectorConstraints[\"Rotate\"] = 2048] = \"Rotate\";\n /** Shows/hides the user handles of the selector */\n SelectorConstraints[SelectorConstraints[\"UserHandle\"] = 4096] = \"UserHandle\";\n /** Shows/hides the default tooltip of nodes and connectors */\n SelectorConstraints[SelectorConstraints[\"ToolTip\"] = 8192] = \"ToolTip\";\n /** Shows/hides all resize handles of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeAll\"] = 2046] = \"ResizeAll\";\n /** Shows all handles of the selector */\n SelectorConstraints[SelectorConstraints[\"All\"] = 16382] = \"All\";\n})(SelectorConstraints || (SelectorConstraints = {}));\n/** @private */\nexport var NoOfSegments;\n(function (NoOfSegments) {\n NoOfSegments[NoOfSegments[\"Zero\"] = 0] = \"Zero\";\n NoOfSegments[NoOfSegments[\"One\"] = 1] = \"One\";\n NoOfSegments[NoOfSegments[\"Two\"] = 2] = \"Two\";\n NoOfSegments[NoOfSegments[\"Three\"] = 3] = \"Three\";\n NoOfSegments[NoOfSegments[\"Four\"] = 4] = \"Four\";\n NoOfSegments[NoOfSegments[\"Five\"] = 5] = \"Five\";\n})(NoOfSegments || (NoOfSegments = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Property, Event, Browser, L10n, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, detach, closest } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getValue, formatUnit, setValue, merge } from '@syncfusion/ej2-base';\nimport { Internationalization, getNumericObject } from '@syncfusion/ej2-base';\nimport { Input } from '../input/input';\nvar ROOT = 'e-control-wrapper e-numeric';\nvar SPINICON = 'e-input-group-icon';\nvar SPINUP = 'e-spin-up';\nvar SPINDOWN = 'e-spin-down';\nvar ERROR = 'e-error';\nvar INCREMENT = 'increment';\nvar DECREMENT = 'decrement';\nvar INTREGEXP = new RegExp('^(-)?(\\\\d*)$');\nvar DECIMALSEPARATOR = '.';\nvar COMPONENT = 'e-numerictextbox';\nvar CONTROL = 'e-control';\nvar NUMERIC_FOCUS = 'e-input-focus';\nvar HIDDENELEMENT = 'e-numeric-hidden';\nvar wrapperAttributes = ['title', 'style', 'class'];\nvar selectionTimeOut = 0;\n/**\n * Represents the NumericTextBox component that allows the user to enter only numeric values.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar NumericTextBox = /** @class */ (function (_super) {\n __extends(NumericTextBox, _super);\n /**\n *\n * @param {NumericTextBoxModel} options - Specifies the NumericTextBox model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function NumericTextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isVue = false;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.isDynamicChange = false;\n _this.numericOptions = options;\n return _this;\n }\n NumericTextBox.prototype.preRender = function () {\n this.isPrevFocused = false;\n this.decimalSeparator = '.';\n // eslint-disable-next-line no-useless-escape\n this.intRegExp = new RegExp('/^(-)?(\\d*)$/');\n this.isCalled = false;\n var ejInstance = getValue('ej2_instances', this.element);\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']);\n this.angularTagName = null;\n this.formEle = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\n this.angularTagName = this.element.tagName;\n var input = this.createElement('input');\n var index = 0;\n for (index; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (attributeName !== 'id' && attributeName !== 'class') {\n input.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue);\n input.innerHTML = this.element.innerHTML;\n }\n else if (attributeName === 'class') {\n input.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' '));\n }\n }\n if (this.element.hasAttribute('name')) {\n this.element.removeAttribute('name');\n }\n this.element.classList.remove('e-control', 'e-numerictextbox');\n this.element.appendChild(input);\n this.element = input;\n setValue('ej2_instances', ejInstance, this.element);\n }\n attributes(this.element, { 'role': 'spinbutton', 'tabindex': '0', 'autocomplete': 'off' });\n var localeText = {\n incrementTitle: 'Increment value', decrementTitle: 'Decrement value', placeholder: this.placeholder\n };\n this.l10n = new L10n('numerictextbox', localeText, this.locale);\n if (this.l10n.getConstant('placeholder') !== '') {\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n if (!this.element.hasAttribute('id')) {\n this.element.setAttribute('id', getUniqueID('numerictextbox'));\n }\n this.isValidState = true;\n this.inputStyle = null;\n this.inputName = null;\n this.cultureInfo = {};\n this.initCultureInfo();\n this.initCultureFunc();\n this.prevValue = this.value;\n this.updateHTMLAttrToElement();\n this.checkAttributes(false);\n if (this.formEle) {\n this.inputEleValue = this.value;\n }\n this.validateMinMax();\n this.validateStep();\n if (this.placeholder === null) {\n this.updatePlaceholder();\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n NumericTextBox.prototype.render = function () {\n if (this.element.tagName.toLowerCase() === 'input') {\n this.createWrapper();\n if (this.showSpinButton) {\n this.spinBtnCreation();\n }\n this.setElementWidth(this.width);\n if (!this.container.classList.contains('e-input-group')) {\n this.container.classList.add('e-input-group');\n }\n this.changeValue(this.value === null || isNaN(this.value) ?\n null : this.strictMode ? this.trimValue(this.value) : this.value);\n this.wireEvents();\n if (this.value !== null && !isNaN(this.value)) {\n if (this.decimals) {\n this.setProperties({ value: this.roundNumber(this.value, this.decimals) }, true);\n }\n }\n if (this.element.getAttribute('value') || this.value) {\n this.element.setAttribute('value', this.element.value);\n this.hiddenInput.setAttribute('value', this.hiddenInput.value);\n }\n this.elementPrevValue = this.element.value;\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n }\n };\n NumericTextBox.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['value', 'min', 'max', 'step', 'disabled', 'readonly', 'style', 'name', 'placeholder'];\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.element.getAttribute(prop) === 'disabled' || this.element.getAttribute(prop) === ''\n || this.element.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.element.getAttribute(prop) === 'readonly' || this.element.getAttribute(prop) === ''\n || this.element.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['value'] === undefined)) || isDynamic) {\n var setNumber = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n this.setProperties(setValue(prop, setNumber, {}), !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['min'] === undefined)) || isDynamic) {\n var minValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (minValue !== null && !isNaN(minValue)) {\n this.setProperties(setValue(prop, minValue, {}), !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['max'] === undefined)) || isDynamic) {\n var maxValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (maxValue !== null && !isNaN(maxValue)) {\n this.setProperties(setValue(prop, maxValue, {}), !isDynamic);\n }\n }\n break;\n case 'step':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['step'] === undefined)) || isDynamic) {\n var stepValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (stepValue !== null && !isNaN(stepValue)) {\n this.setProperties(setValue(prop, stepValue, {}), !isDynamic);\n }\n }\n break;\n case 'style':\n this.inputStyle = this.element.getAttribute(prop);\n break;\n case 'name':\n this.inputName = this.element.getAttribute(prop);\n break;\n default:\n {\n var value = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if ((value !== null && !isNaN(value)) || (prop === 'value')) {\n this.setProperties(setValue(prop, value, {}), true);\n }\n }\n break;\n }\n }\n }\n };\n NumericTextBox.prototype.updatePlaceholder = function () {\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n };\n NumericTextBox.prototype.initCultureFunc = function () {\n this.instance = new Internationalization(this.locale);\n };\n NumericTextBox.prototype.initCultureInfo = function () {\n this.cultureInfo.format = this.format;\n if (getValue('currency', this) !== null) {\n setValue('currency', this.currency, this.cultureInfo);\n this.setProperties({ currencyCode: this.currency }, true);\n }\n };\n /* Wrapper creation */\n NumericTextBox.prototype.createWrapper = function () {\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = this.getNumericValidClassList(this.cssClass);\n }\n var inputObj = Input.createInput({\n element: this.element,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValue,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n enabled: this.enabled\n }\n }, this.createElement);\n this.inputWrapper = inputObj;\n this.container = inputObj.container;\n this.container.setAttribute('class', ROOT + ' ' + this.container.getAttribute('class'));\n this.updateHTMLAttrToWrapper();\n if (this.readonly) {\n attributes(this.element, { 'aria-readonly': 'true' });\n }\n this.hiddenInput = (this.createElement('input', { attrs: { type: 'text',\n 'validateHidden': 'true', 'class': HIDDENELEMENT } }));\n this.inputName = this.inputName !== null ? this.inputName : this.element.id;\n this.element.removeAttribute('name');\n attributes(this.hiddenInput, { 'name': this.inputName });\n this.container.insertBefore(this.hiddenInput, this.container.childNodes[1]);\n this.updateDataAttribute(false);\n if (this.inputStyle !== null) {\n attributes(this.container, { 'style': this.inputStyle });\n }\n };\n NumericTextBox.prototype.updateDataAttribute = function (isDynamic) {\n var attr = {};\n if (!isDynamic) {\n for (var a = 0; a < this.element.attributes.length; a++) {\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\n }\n }\n else {\n attr = this.htmlAttributes;\n }\n for (var _i = 0, _a = Object.keys(attr); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key.indexOf('data') === 0) {\n this.hiddenInput.setAttribute(key, attr[\"\" + key]);\n }\n }\n };\n NumericTextBox.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttributes.indexOf(pro) < 0) {\n this.element.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n };\n NumericTextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getNumericValidClassList(newClass), [this.container], this.getNumericValidClassList(oldClass));\n };\n NumericTextBox.prototype.getNumericValidClassList = function (numericClassName) {\n var result = numericClassName;\n if (!isNullOrUndefined(numericClassName) && numericClassName !== '') {\n result = (numericClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n NumericTextBox.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttributes.indexOf(pro) > -1) {\n if (pro === 'class') {\n var updatedClassValue = this.getNumericValidClassList(this.htmlAttributes[\"\" + pro]);\n if (updatedClassValue !== '') {\n addClass([this.container], updatedClassValue.split(' '));\n }\n }\n else if (pro === 'style') {\n var numericStyle = this.container.getAttribute(pro);\n numericStyle = !isNullOrUndefined(numericStyle) ? (numericStyle + this.htmlAttributes[\"\" + pro]) :\n this.htmlAttributes[\"\" + pro];\n this.container.setAttribute(pro, numericStyle);\n }\n else {\n this.container.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n }\n };\n NumericTextBox.prototype.setElementWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n /* Spinner creation */\n NumericTextBox.prototype.spinBtnCreation = function () {\n this.spinDown = Input.appendSpan(SPINICON + ' ' + SPINDOWN, this.container, this.createElement);\n attributes(this.spinDown, {\n 'title': this.l10n.getConstant('decrementTitle')\n });\n this.spinUp = Input.appendSpan(SPINICON + ' ' + SPINUP, this.container, this.createElement);\n attributes(this.spinUp, {\n 'title': this.l10n.getConstant('incrementTitle')\n });\n this.wireSpinBtnEvents();\n };\n NumericTextBox.prototype.validateMinMax = function () {\n if (!(typeof (this.min) === 'number' && !isNaN(this.min))) {\n this.setProperties({ min: -(Number.MAX_VALUE) }, true);\n }\n if (!(typeof (this.max) === 'number' && !isNaN(this.max))) {\n this.setProperties({ max: Number.MAX_VALUE }, true);\n }\n if (this.decimals !== null) {\n if (this.min !== -(Number.MAX_VALUE)) {\n this.setProperties({ min: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.min)) }, true);\n }\n if (this.max !== (Number.MAX_VALUE)) {\n this.setProperties({ max: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.max)) }, true);\n }\n }\n this.setProperties({ min: this.min > this.max ? this.max : this.min }, true);\n if (this.min !== -(Number.MAX_VALUE)) {\n attributes(this.element, { 'aria-valuemin': this.min.toString() });\n }\n if (this.max !== (Number.MAX_VALUE)) {\n attributes(this.element, { 'aria-valuemax': this.max.toString() });\n }\n };\n NumericTextBox.prototype.formattedValue = function (decimals, value) {\n return this.instance.getNumberFormat({\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals, useGrouping: false\n })(value);\n };\n NumericTextBox.prototype.validateStep = function () {\n if (this.decimals !== null) {\n this.setProperties({ step: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.step)) }, true);\n }\n };\n NumericTextBox.prototype.action = function (operation, event) {\n this.isInteract = true;\n var value = this.isFocused ? this.instance.getNumberParser({ format: 'n' })(this.element.value) : this.value;\n this.changeValue(this.performAction(value, this.step, operation));\n this.raiseChangeEvent(event);\n };\n NumericTextBox.prototype.checkErrorClass = function () {\n if (this.isValidState) {\n removeClass([this.container], ERROR);\n }\n else {\n addClass([this.container], ERROR);\n }\n attributes(this.element, { 'aria-invalid': this.isValidState ? 'false' : 'true' });\n };\n NumericTextBox.prototype.bindClearEvent = function () {\n if (this.showClearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\n }\n };\n NumericTextBox.prototype.resetHandler = function (e) {\n e.preventDefault();\n if (!(this.inputWrapper.clearButton.classList.contains('e-clear-icon-hide')) || this.inputWrapper.container.classList.contains('e-static-clear')) {\n this.clear(e);\n }\n this.isInteract = true;\n this.raiseChangeEvent(e);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n NumericTextBox.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n this.setElementValue('');\n this.hiddenInput.value = '';\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.resetFormHandler = function () {\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\n this.updateValue(null);\n }\n else {\n this.updateValue(this.inputEleValue);\n }\n };\n NumericTextBox.prototype.setSpinButton = function () {\n if (!isNullOrUndefined(this.spinDown)) {\n attributes(this.spinDown, {\n 'title': this.l10n.getConstant('decrementTitle'),\n 'aria-label': this.l10n.getConstant('decrementTitle')\n });\n }\n if (!isNullOrUndefined(this.spinUp)) {\n attributes(this.spinUp, {\n 'title': this.l10n.getConstant('incrementTitle'),\n 'aria-label': this.l10n.getConstant('incrementTitle')\n });\n }\n };\n NumericTextBox.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'blur', this.focusOutHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyDownHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'input', this.inputHandler, this);\n EventHandler.add(this.element, 'keypress', this.keyPressHandler, this);\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n EventHandler.add(this.element, 'paste', this.pasteHandler, this);\n if (this.enabled) {\n this.bindClearEvent();\n if (this.formEle) {\n EventHandler.add(this.formEle, 'reset', this.resetFormHandler, this);\n }\n }\n };\n NumericTextBox.prototype.wireSpinBtnEvents = function () {\n /* bind spin button events */\n EventHandler.add(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\n EventHandler.add(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\n EventHandler.add(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\n };\n NumericTextBox.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'blur', this.focusOutHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n EventHandler.remove(this.element, 'input', this.inputHandler);\n EventHandler.remove(this.element, 'keydown', this.keyDownHandler);\n EventHandler.remove(this.element, 'keypress', this.keyPressHandler);\n EventHandler.remove(this.element, 'change', this.changeHandler);\n EventHandler.remove(this.element, 'paste', this.pasteHandler);\n if (this.formEle) {\n EventHandler.remove(this.formEle, 'reset', this.resetFormHandler);\n }\n };\n NumericTextBox.prototype.unwireSpinBtnEvents = function () {\n /* unbind spin button events */\n EventHandler.remove(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner);\n EventHandler.remove(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner);\n EventHandler.remove(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner);\n };\n NumericTextBox.prototype.changeHandler = function (event) {\n event.stopPropagation();\n if (!this.element.value.length) {\n this.setProperties({ value: null }, true);\n }\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput, event);\n };\n NumericTextBox.prototype.raiseChangeEvent = function (event) {\n if (this.prevValue !== this.value) {\n var eventArgs = {};\n this.changeEventArgs = { value: this.value, previousValue: this.prevValue, isInteracted: this.isInteract,\n isInteraction: this.isInteract, event: event };\n if (event) {\n this.changeEventArgs.event = event;\n }\n if (this.changeEventArgs.event === undefined) {\n this.changeEventArgs.isInteracted = false;\n this.changeEventArgs.isInteraction = false;\n }\n merge(eventArgs, this.changeEventArgs);\n this.prevValue = this.value;\n this.isInteract = false;\n this.elementPrevValue = this.element.value;\n this.preventChange = false;\n this.trigger('change', eventArgs);\n }\n };\n NumericTextBox.prototype.pasteHandler = function () {\n var _this = this;\n if (!this.enabled || this.readonly) {\n return;\n }\n var beforeUpdate = this.element.value;\n setTimeout(function () {\n if (!_this.numericRegex().test(_this.element.value)) {\n _this.setElementValue(beforeUpdate);\n }\n });\n };\n NumericTextBox.prototype.preventHandler = function () {\n var _this = this;\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n setTimeout(function () {\n if (_this.element.selectionStart > 0) {\n var currentPos = _this.element.selectionStart;\n var prevPos = _this.element.selectionStart - 1;\n var start = 0;\n var valArray = _this.element.value.split('');\n var numericObject = getNumericObject(_this.locale);\n var decimalSeparator = getValue('decimal', numericObject);\n var ignoreKeyCode = decimalSeparator.charCodeAt(0);\n if (_this.element.value[prevPos] === ' ' && _this.element.selectionStart > 0 && !iOS) {\n if (isNullOrUndefined(_this.prevVal)) {\n _this.element.value = _this.element.value.trim();\n }\n else if (prevPos !== 0) {\n _this.element.value = _this.prevVal;\n }\n else if (prevPos === 0) {\n _this.element.value = _this.element.value.trim();\n }\n _this.element.setSelectionRange(prevPos, prevPos);\n }\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) &&\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== 45) {\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 1]) !==\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 1]) &&\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === ignoreKeyCode) ||\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== ignoreKeyCode) {\n _this.element.value = _this.element.value.substring(0, prevPos) +\n _this.element.value.substring(currentPos, _this.element.value.length);\n _this.element.setSelectionRange(prevPos, prevPos);\n if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) && _this.element.selectionStart > 0\n && _this.element.value.length) {\n _this.preventHandler();\n }\n }\n }\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 2])) && _this.element.selectionStart > 1 &&\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== 45) {\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 2]) !==\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 2]) &&\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) === ignoreKeyCode) ||\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== ignoreKeyCode) {\n _this.element.setSelectionRange(prevPos, prevPos);\n _this.nextEle = _this.element.value[_this.element.selectionStart];\n _this.cursorPosChanged = true;\n _this.preventHandler();\n }\n }\n if (_this.cursorPosChanged === true && _this.element.value[_this.element.selectionStart] === _this.nextEle &&\n isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1]))) {\n _this.element.setSelectionRange(_this.element.selectionStart + 1, _this.element.selectionStart + 1);\n _this.cursorPosChanged = false;\n _this.nextEle = null;\n }\n if (_this.element.value.trim() === '') {\n _this.element.setSelectionRange(start, start);\n }\n if (_this.element.selectionStart > 0) {\n if ((_this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === 45) && _this.element.selectionStart > 1) {\n if (isNullOrUndefined(_this.prevVal)) {\n // eslint-disable-next-line no-self-assign\n _this.element.value = _this.element.value;\n }\n else {\n _this.element.value = _this.prevVal;\n }\n _this.element.setSelectionRange(_this.element.selectionStart, _this.element.selectionStart);\n }\n if (_this.element.value[_this.element.selectionStart - 1] === decimalSeparator && _this.decimals === 0 && _this.validateDecimalOnType) {\n _this.element.value = _this.element.value.substring(0, prevPos) +\n _this.element.value.substring(currentPos, _this.element.value.length);\n }\n }\n _this.prevVal = _this.element.value;\n }\n });\n };\n NumericTextBox.prototype.keyUpHandler = function () {\n if (!this.enabled || this.readonly) {\n return;\n }\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n if (!iOS && Browser.isDevice) {\n this.preventHandler();\n }\n var parseValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n parseValue = parseValue === null || isNaN(parseValue) ? null : parseValue;\n this.hiddenInput.value = parseValue || parseValue === 0 ? parseValue.toString() : null;\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.inputHandler = function (event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\n var numerictextboxObj = this;\n if (!this.enabled || this.readonly) {\n return;\n }\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n var fireFox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n if ((fireFox || iOS) && Browser.isDevice) {\n this.preventHandler();\n }\n /* istanbul ignore next */\n if (this.isAngular\n && this.element.value !== getValue('decimal', getNumericObject(this.locale))\n && this.element.value !== getValue('minusSign', getNumericObject(this.locale))) {\n var parsedValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n parsedValue = isNaN(parsedValue) ? null : parsedValue;\n numerictextboxObj.localChange({ value: parsedValue });\n this.preventChange = true;\n }\n if (this.isVue) {\n var current = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n var previous = this.instance.getNumberParser({ format: 'n' })(this.elementPrevValue);\n //EJ2-54963-if type \".\" or \".0\" or \"-.0\" it converts to \"0\" automatically when binding v-model\n var nonZeroRegex = new RegExp('[^0-9]+$');\n if (nonZeroRegex.test(this.element.value) || ((this.elementPrevValue.indexOf('.') !== -1 || this.elementPrevValue.indexOf('-') !== -1) && this.element.value[this.element.value.length - 1] === '0')) {\n current = this.value;\n }\n var eventArgs = {\n event: event,\n value: (current === null || isNaN(current) ? null : current),\n previousValue: (previous === null || isNaN(previous) ? null : previous)\n };\n this.preventChange = true;\n this.elementPrevValue = this.element.value;\n this.trigger('input', eventArgs);\n }\n };\n NumericTextBox.prototype.keyDownHandler = function (event) {\n if (!this.readonly) {\n switch (event.keyCode) {\n case 38:\n event.preventDefault();\n this.action(INCREMENT, event);\n break;\n case 40:\n event.preventDefault();\n this.action(DECREMENT, event);\n break;\n default: break;\n }\n }\n };\n NumericTextBox.prototype.performAction = function (value, step, operation) {\n if (value === null || isNaN(value)) {\n value = 0;\n }\n var updatedValue = operation === INCREMENT ? value + step : value - step;\n updatedValue = this.correctRounding(value, step, updatedValue);\n return this.strictMode ? this.trimValue(updatedValue) : updatedValue;\n };\n NumericTextBox.prototype.correctRounding = function (value, step, result) {\n var floatExp = new RegExp('[,.](.*)');\n var floatValue = floatExp.test(value.toString());\n var floatStep = floatExp.test(step.toString());\n if (floatValue || floatStep) {\n var valueCount = floatValue ? floatExp.exec(value.toString())[0].length : 0;\n var stepCount = floatStep ? floatExp.exec(step.toString())[0].length : 0;\n var max = Math.max(valueCount, stepCount);\n return value = this.roundValue(result, max);\n }\n return result;\n };\n NumericTextBox.prototype.roundValue = function (result, precision) {\n precision = precision || 0;\n var divide = Math.pow(10, precision);\n return result *= divide, result = Math.round(result) / divide;\n };\n NumericTextBox.prototype.updateValue = function (value, event) {\n if (event) {\n this.isInteract = true;\n }\n if (value !== null && !isNaN(value)) {\n if (this.decimals) {\n value = this.roundNumber(value, this.decimals);\n }\n }\n this.changeValue(value === null || isNaN(value) ? null : this.strictMode ? this.trimValue(value) : value);\n /* istanbul ignore next */\n if (!this.isDynamicChange) {\n this.raiseChangeEvent(event);\n }\n };\n NumericTextBox.prototype.updateCurrency = function (prop, propVal) {\n setValue(prop, propVal, this.cultureInfo);\n this.updateValue(this.value);\n };\n NumericTextBox.prototype.changeValue = function (value) {\n if (!(value || value === 0)) {\n value = null;\n this.setProperties({ value: value }, true);\n }\n else {\n var numberOfDecimals = this.getNumberOfDecimals(value);\n this.setProperties({ value: this.roundNumber(value, numberOfDecimals) }, true);\n }\n this.modifyText();\n if (!this.strictMode) {\n this.validateState();\n }\n };\n NumericTextBox.prototype.modifyText = function () {\n if (this.value || this.value === 0) {\n var value = this.formatNumber();\n var elementValue = this.isFocused ? value : this.instance.getNumberFormat(this.cultureInfo)(this.value);\n this.setElementValue(elementValue);\n attributes(this.element, { 'aria-valuenow': value });\n this.hiddenInput.value = this.value.toString();\n if (this.value !== null && this.serverDecimalSeparator) {\n this.hiddenInput.value = this.hiddenInput.value.replace('.', this.serverDecimalSeparator);\n }\n }\n else {\n this.setElementValue('');\n this.element.removeAttribute('aria-valuenow');\n this.hiddenInput.value = null;\n }\n };\n NumericTextBox.prototype.setElementValue = function (val, element) {\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton);\n };\n NumericTextBox.prototype.validateState = function () {\n this.isValidState = true;\n if (this.value || this.value === 0) {\n this.isValidState = !(this.value > this.max || this.value < this.min);\n }\n this.checkErrorClass();\n };\n NumericTextBox.prototype.getNumberOfDecimals = function (value) {\n var numberOfDecimals;\n // eslint-disable-next-line no-useless-escape\n var EXPREGEXP = new RegExp('[eE][\\-+]?([0-9]+)');\n var valueString = value.toString();\n if (EXPREGEXP.test(valueString)) {\n var result = EXPREGEXP.exec(valueString);\n if (!isNullOrUndefined(result)) {\n valueString = value.toFixed(Math.min(parseInt(result[1], 10), 20));\n }\n }\n var decimalPart = valueString.split('.')[1];\n numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\n if (this.decimals !== null) {\n numberOfDecimals = numberOfDecimals < this.decimals ? numberOfDecimals : this.decimals;\n }\n return numberOfDecimals;\n };\n NumericTextBox.prototype.formatNumber = function () {\n var numberOfDecimals = this.getNumberOfDecimals(this.value);\n return this.instance.getNumberFormat({\n maximumFractionDigits: numberOfDecimals,\n minimumFractionDigits: numberOfDecimals, useGrouping: false\n })(this.value);\n };\n NumericTextBox.prototype.trimValue = function (value) {\n if (value > this.max) {\n return this.max;\n }\n if (value < this.min) {\n return this.min;\n }\n return value;\n };\n NumericTextBox.prototype.roundNumber = function (value, precision) {\n var result = value;\n var decimals = precision || 0;\n var result1 = result.toString().split('e');\n result = Math.round(Number(result1[0] + 'e' + (result1[1] ? (Number(result1[1]) + decimals) : decimals)));\n var result2 = result.toString().split('e');\n result = Number(result2[0] + 'e' + (result2[1] ? (Number(result2[1]) - decimals) : -decimals));\n return Number(result.toFixed(decimals));\n };\n NumericTextBox.prototype.cancelEvent = function (event) {\n event.preventDefault();\n return false;\n };\n NumericTextBox.prototype.keyPressHandler = function (event) {\n if (!this.enabled || this.readonly) {\n return true;\n }\n if (!Browser.isDevice && Browser.info.version === '11.0' && event.keyCode === 13) {\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput, event);\n return true;\n }\n if (event.which === 0 || event.metaKey || event.ctrlKey || event.keyCode === 8 || event.keyCode === 13) {\n return true;\n }\n var currentChar = String.fromCharCode(event.which);\n var decimalSeparator = getValue('decimal', getNumericObject(this.locale));\n var isAlterNumPadDecimalChar = event.code === \"NumpadDecimal\" && currentChar !== decimalSeparator;\n //EJ2-59813-replace the culture decimal separator value with numberpad decimal separator value when culture decimal separator and numberpad decimal separator are different\n if (isAlterNumPadDecimalChar) {\n currentChar = decimalSeparator;\n }\n var text = this.element.value;\n text = text.substring(0, this.element.selectionStart) + currentChar + text.substring(this.element.selectionEnd);\n if (!this.numericRegex().test(text)) {\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n else {\n //EJ2-59813-update the numberpad decimal separator and update the cursor position\n if (isAlterNumPadDecimalChar) {\n var start = this.element.selectionStart + 1;\n this.element.value = text;\n this.element.setSelectionRange(start, start);\n event.preventDefault();\n event.stopPropagation();\n }\n return true;\n }\n };\n NumericTextBox.prototype.numericRegex = function () {\n var numericObject = getNumericObject(this.locale);\n var decimalSeparator = getValue('decimal', numericObject);\n var fractionRule = '*';\n if (decimalSeparator === DECIMALSEPARATOR) {\n decimalSeparator = '\\\\' + decimalSeparator;\n }\n if (this.decimals === 0 && this.validateDecimalOnType) {\n return INTREGEXP;\n }\n if (this.decimals && this.validateDecimalOnType) {\n fractionRule = '{0,' + this.decimals + '}';\n }\n // eslint-disable-next-line detect-non-literal-regexp\n return new RegExp('^(-)?(((\\\\d+(' + decimalSeparator + '\\\\d' + fractionRule +\n ')?)|(' + decimalSeparator + '\\\\d' + fractionRule + ')))?$');\n };\n NumericTextBox.prototype.mouseWheel = function (event) {\n event.preventDefault();\n var delta;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rawEvent = event;\n if (rawEvent.wheelDelta) {\n delta = rawEvent.wheelDelta / 120;\n }\n else if (rawEvent.detail) {\n delta = -rawEvent.detail / 3;\n }\n if (delta > 0) {\n this.action(INCREMENT, event);\n }\n else if (delta < 0) {\n this.action(DECREMENT, event);\n }\n this.cancelEvent(event);\n };\n NumericTextBox.prototype.focusHandler = function (event) {\n var _this = this;\n clearTimeout(selectionTimeOut);\n this.focusEventArgs = { event: event, value: this.value, container: this.container };\n this.trigger('focus', this.focusEventArgs);\n if (!this.enabled || this.readonly) {\n return;\n }\n this.isFocused = true;\n removeClass([this.container], ERROR);\n this.prevValue = this.value;\n if ((this.value || this.value === 0)) {\n var formatValue_1 = this.formatNumber();\n this.setElementValue(formatValue_1);\n if (!this.isPrevFocused) {\n if (!Browser.isDevice && Browser.info.version === '11.0') {\n this.element.setSelectionRange(0, formatValue_1.length);\n }\n else {\n var delay = (Browser.isDevice && Browser.isIos) ? 600 : 0;\n selectionTimeOut = setTimeout(function () {\n _this.element.setSelectionRange(0, formatValue_1.length);\n }, delay);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.add(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel, this);\n }\n };\n NumericTextBox.prototype.focusOutHandler = function (event) {\n var _this = this;\n this.blurEventArgs = { event: event, value: this.value, container: this.container };\n this.trigger('blur', this.blurEventArgs);\n if (!this.enabled || this.readonly) {\n return;\n }\n if (this.isPrevFocused) {\n event.preventDefault();\n if (Browser.isDevice) {\n var value_1 = this.element.value;\n this.element.focus();\n this.isPrevFocused = false;\n var ele_1 = this.element;\n setTimeout(function () {\n _this.setElementValue(value_1, ele_1);\n }, 200);\n }\n }\n else {\n this.isFocused = false;\n if (!this.element.value.length) {\n this.setProperties({ value: null }, true);\n }\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput);\n if (!Browser.isDevice) {\n EventHandler.remove(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel);\n }\n }\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var focusEvent = document.createEvent('FocusEvent');\n focusEvent.initEvent('focusout', false, true);\n element.dispatchEvent(focusEvent);\n }\n };\n NumericTextBox.prototype.mouseDownOnSpinner = function (event) {\n var _this = this;\n if (this.isFocused) {\n this.isPrevFocused = true;\n event.preventDefault();\n }\n if (!this.getElementData(event)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var result = this.getElementData(event);\n var target = event.currentTarget;\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\n EventHandler.add(target, 'mouseleave', this.mouseUpClick, this);\n this.timeOut = setInterval(function () {\n _this.isCalled = true;\n _this.action(action, event);\n }, 150);\n EventHandler.add(document, 'mouseup', this.mouseUpClick, this);\n };\n NumericTextBox.prototype.touchMoveOnSpinner = function (event) {\n var target;\n if (event.type === \"touchmove\") {\n var touchEvent = event.touches;\n target = touchEvent.length && document.elementFromPoint(touchEvent[0].pageX, touchEvent[0].pageY);\n }\n else {\n target = document.elementFromPoint(event.clientX, event.clientY);\n }\n if (!(target.classList.contains(SPINICON))) {\n clearInterval(this.timeOut);\n }\n };\n NumericTextBox.prototype.mouseUpOnSpinner = function (event) {\n this.prevValue = this.value;\n if (this.isPrevFocused) {\n this.element.focus();\n if (!Browser.isDevice) {\n this.isPrevFocused = false;\n }\n }\n if (!Browser.isDevice) {\n event.preventDefault();\n }\n if (!this.getElementData(event)) {\n return;\n }\n var target = event.currentTarget;\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\n EventHandler.remove(target, 'mouseleave', this.mouseUpClick);\n if (!this.isCalled) {\n this.action(action, event);\n }\n this.isCalled = false;\n EventHandler.remove(document, 'mouseup', this.mouseUpClick);\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.getElementData = function (event) {\n if ((event.which && event.which === 3) || (event.button && event.button === 2)\n || !this.enabled || this.readonly) {\n return false;\n }\n clearInterval(this.timeOut);\n return true;\n };\n NumericTextBox.prototype.floatLabelTypeUpdate = function () {\n Input.removeFloating(this.inputWrapper);\n var hiddenInput = this.hiddenInput;\n this.hiddenInput.remove();\n Input.addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement);\n this.container.insertBefore(hiddenInput, this.container.childNodes[1]);\n };\n NumericTextBox.prototype.mouseUpClick = function (event) {\n event.stopPropagation();\n clearInterval(this.timeOut);\n this.isCalled = false;\n EventHandler.remove(this.spinUp, 'mouseleave', this.mouseUpClick);\n EventHandler.remove(this.spinDown, 'mouseleave', this.mouseUpClick);\n };\n /**\n * Increments the NumericTextBox value with the specified step value.\n *\n * @param {number} step - Specifies the value used to increment the NumericTextBox value.\n * if its not given then numeric value will be incremented based on the step property value.\n * @returns {void}\n */\n NumericTextBox.prototype.increment = function (step) {\n if (step === void 0) { step = this.step; }\n this.isInteract = false;\n this.changeValue(this.performAction(this.value, step, INCREMENT));\n this.raiseChangeEvent();\n };\n /**\n * Decrements the NumericTextBox value with specified step value.\n *\n * @param {number} step - Specifies the value used to decrement the NumericTextBox value.\n * if its not given then numeric value will be decremented based on the step property value.\n * @returns {void}\n */\n NumericTextBox.prototype.decrement = function (step) {\n if (step === void 0) { step = this.step; }\n this.isInteract = false;\n this.changeValue(this.performAction(this.value, step, DECREMENT));\n this.raiseChangeEvent();\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n NumericTextBox.prototype.destroy = function () {\n this.unwireEvents();\n detach(this.hiddenInput);\n if (this.showSpinButton) {\n this.unwireSpinBtnEvents();\n detach(this.spinUp);\n detach(this.spinDown);\n }\n var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly',\n 'aria-disabled', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'tabindex',\n 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'aria-invalid'];\n for (var i = 0; i < attrArray.length; i++) {\n this.element.removeAttribute(attrArray[i]);\n }\n this.element.classList.remove('e-input');\n this.container.insertAdjacentElement('afterend', this.element);\n detach(this.container);\n this.spinUp = null;\n this.spinDown = null;\n this.container = null;\n this.hiddenInput = null;\n this.changeEventArgs = null;\n this.blurEventArgs = null;\n this.focusEventArgs = null;\n this.inputWrapper = null;\n Input.destroy();\n _super.prototype.destroy.call(this);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\n /**\n * Returns the value of NumericTextBox with the format applied to the NumericTextBox.\n *\n */\n NumericTextBox.prototype.getText = function () {\n return this.element.value;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n NumericTextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.element && this.enabled) {\n this.element.focus();\n addClass([this.container], [NUMERIC_FOCUS]);\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n NumericTextBox.prototype.focusOut = function () {\n if (document.activeElement === this.element && this.enabled) {\n this.element.blur();\n removeClass([this.container], [NUMERIC_FOCUS]);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n * @returns {string}\n */\n NumericTextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {NumericTextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {NumericTextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n NumericTextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n this.setElementWidth(newProp.width);\n Input.calculateWidth(this.element, this.container);\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'enabled':\n Input.setEnabled(newProp.enabled, this.element);\n this.bindClearEvent();\n break;\n case 'enableRtl':\n Input.setEnableRtl(newProp.enableRtl, [this.container]);\n break;\n case 'readonly':\n Input.setReadonly(newProp.readonly, this.element);\n if (this.readonly) {\n attributes(this.element, { 'aria-readonly': 'true' });\n }\n else {\n this.element.removeAttribute('aria-readonly');\n }\n break;\n case 'htmlAttributes':\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.updateDataAttribute(true);\n this.checkAttributes(true);\n Input.validateInputType(this.container, this.element);\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.element);\n Input.calculateWidth(this.element, this.container);\n break;\n case 'step':\n this.step = newProp.step;\n this.validateStep();\n break;\n case 'showSpinButton':\n this.updateSpinButton(newProp);\n break;\n case 'showClearButton':\n this.updateClearButton(newProp);\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n this.floatLabelTypeUpdate();\n break;\n case 'value':\n this.isDynamicChange = (this.isAngular || this.isVue) && this.preventChange;\n this.updateValue(newProp.value);\n if (this.isDynamicChange) {\n this.preventChange = false;\n this.isDynamicChange = false;\n }\n break;\n case 'min':\n case 'max':\n setValue(prop, getValue(prop, newProp), this);\n this.validateMinMax();\n this.updateValue(this.value);\n break;\n case 'strictMode':\n this.strictMode = newProp.strictMode;\n this.updateValue(this.value);\n this.validateState();\n break;\n case 'locale':\n this.initCultureFunc();\n this.l10n.setLocale(this.locale);\n this.setSpinButton();\n this.updatePlaceholder();\n Input.setPlaceholder(this.placeholder, this.element);\n this.updateValue(this.value);\n break;\n case 'currency':\n {\n var propVal = getValue(prop, newProp);\n this.setProperties({ currencyCode: propVal }, true);\n this.updateCurrency(prop, propVal);\n }\n break;\n case 'currencyCode':\n {\n var propValue = getValue(prop, newProp);\n this.setProperties({ currency: propValue }, true);\n this.updateCurrency('currency', propValue);\n }\n break;\n case 'format':\n setValue(prop, getValue(prop, newProp), this);\n this.initCultureInfo();\n this.updateValue(this.value);\n break;\n case 'decimals':\n this.decimals = newProp.decimals;\n this.updateValue(this.value);\n }\n }\n };\n NumericTextBox.prototype.updateClearButton = function (newProp) {\n Input.setClearButton(newProp.showClearButton, this.element, this.inputWrapper, undefined, this.createElement);\n this.bindClearEvent();\n };\n NumericTextBox.prototype.updateSpinButton = function (newProp) {\n if (newProp.showSpinButton) {\n this.spinBtnCreation();\n }\n else {\n detach(this.spinUp);\n detach(this.spinDown);\n }\n };\n /**\n * Gets the component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n NumericTextBox.prototype.getModuleName = function () {\n return 'numerictextbox';\n };\n __decorate([\n Property('')\n ], NumericTextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"value\", void 0);\n __decorate([\n Property(-(Number.MAX_VALUE))\n ], NumericTextBox.prototype, \"min\", void 0);\n __decorate([\n Property(Number.MAX_VALUE)\n ], NumericTextBox.prototype, \"max\", void 0);\n __decorate([\n Property(1)\n ], NumericTextBox.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property({})\n ], NumericTextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"showSpinButton\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('n2')\n ], NumericTextBox.prototype, \"format\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"decimals\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"currency\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"currencyCode\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"strictMode\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"validateDecimalOnType\", void 0);\n __decorate([\n Property('Never')\n ], NumericTextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"blur\", void 0);\n NumericTextBox = __decorate([\n NotifyPropertyChanges\n ], NumericTextBox);\n return NumericTextBox;\n}(Component));\nexport { NumericTextBox };\n","/**\n * @hidden\n */\nvar AjaxHandler = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n * @param {PdfViewer} pdfviewer - The pdfviewer.\n * @private\n */\n function AjaxHandler(pdfviewer) {\n /**\n * Specifies the URL to which request to be sent.\n *\n * @default 'POST'\n */\n this.type = 'POST';\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n * @private\n */\n this.mode = true;\n /**\n * Specifies the ContentType to which request to be sent\n *\n * @default null\n * @private\n */\n this.contentType = 'application/json;charset=UTF-8';\n this.pdfViewer = pdfviewer;\n this.retryCount = pdfviewer.retryCount;\n this.retryStatusCodes = pdfviewer.retryStatusCodes;\n }\n /**\n * Send the request to server\n *\n * @param {object} jsonObj - To send to service\n * @returns {void}\n * @private\n */\n AjaxHandler.prototype.send = function (jsonObj) {\n var _this = this;\n this.httpRequest = new XMLHttpRequest();\n if (!this.mode) {\n setTimeout(function () {\n _this.sendRequest(jsonObj);\n });\n }\n else {\n this.sendRequest(jsonObj);\n }\n this.httpRequest.onreadystatechange = function () {\n var isSkip = false;\n // eslint-disable-next-line\n var viewerBase = _this.pdfViewer.viewerBase;\n if (viewerBase && viewerBase.isPasswordAvailable && viewerBase.passwordData === '') {\n isSkip = true;\n _this.retryCount = 0;\n }\n if (_this.retryCount > 0) {\n isSkip = _this.resendRequest(_this, jsonObj);\n }\n if (!isSkip) {\n _this.stateChange(_this);\n }\n };\n this.httpRequest.onerror = function () {\n _this.error(_this);\n };\n };\n /**\n * Clear the http request\n * @returns {void}\n * @private\n */\n AjaxHandler.prototype.clear = function () {\n this.httpRequest && this.httpRequest.abort();\n this.onSuccess = null;\n this.onFailure = null;\n this.onError = null;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.resendRequest = function (proxy, jsonObj) {\n var isSkip = false;\n var status = proxy.httpRequest.status;\n var statusString = this.retryStatusCodes.indexOf(status) !== -1;\n if (proxy.httpRequest.readyState === 4 && status === 200) {\n // eslint-disable-next-line\n var data = void 0;\n if (this.responseType !== null) {\n data = proxy.httpRequest.response;\n }\n else {\n data = proxy.httpRequest.responseText;\n }\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // eslint-disable-next-line max-len\n if (data === 'Document stream does not exist in the cache' || data === 'Document Reference pointer does not exist in the cache') {\n isSkip = true;\n }\n }\n }\n }\n }\n if (statusString || isSkip) {\n isSkip = true;\n this.retryCount--;\n proxy.pdfViewer.fireAjaxRequestFailed(status, proxy.httpRequest.statusText, jsonObj.action, true);\n proxy.send(jsonObj);\n }\n return isSkip;\n };\n AjaxHandler.prototype.sendRequest = function (jsonObj) {\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n this.httpRequest.open(this.type, this.url, this.mode);\n this.httpRequest.withCredentials = this.pdfViewer.ajaxRequestSettings.withCredentials;\n this.httpRequest.setRequestHeader('Content-Type', this.contentType);\n jsonObj = this.addExtraData(jsonObj);\n this.setCustomAjaxHeaders();\n if (this.responseType !== null) {\n this.httpRequest.responseType = this.responseType;\n }\n this.httpRequest.send(JSON.stringify(jsonObj)); // jshint ignore:line\n };\n AjaxHandler.prototype.addExtraData = function (jsonObject) {\n this.pdfViewer.viewerBase.ajaxData = '';\n this.pdfViewer.fireAjaxRequestInitiate(jsonObject);\n if (this.pdfViewer.viewerBase.ajaxData && this.pdfViewer.viewerBase.ajaxData !== '') {\n jsonObject = this.pdfViewer.viewerBase.ajaxData;\n }\n return jsonObject;\n };\n AjaxHandler.prototype.stateChange = function (proxy) {\n var status = proxy.httpRequest.status;\n var statusString = status.toString().split('')[0];\n if (proxy.httpRequest.readyState === 4 && status === 200) {\n // eslint-disable-next-line\n var data = void 0;\n if (this.responseType !== null) {\n data = proxy.httpRequest.response;\n }\n else {\n data = proxy.httpRequest.responseText;\n }\n // eslint-disable-next-line\n var result = {\n name: 'onSuccess',\n data: data,\n readyState: proxy.httpRequest.readyState,\n status: proxy.httpRequest.status\n };\n proxy.successHandler(result);\n }\n else if (proxy.httpRequest.readyState === 4 && (statusString === '4' || statusString === '5')) { // jshint ignore:line)\n // For handling 4xx and 5xx errors.\n // eslint-disable-next-line\n var result = {\n name: 'onFailure',\n status: proxy.httpRequest.status,\n statusText: proxy.httpRequest.statusText\n };\n proxy.failureHandler(result);\n }\n };\n AjaxHandler.prototype.error = function (proxy) {\n // eslint-disable-next-line\n var result = {\n name: 'onError',\n status: this.httpRequest.status,\n statusText: this.httpRequest.statusText\n };\n proxy.errorHandler(result);\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.successHandler = function (response) {\n if (this.onSuccess) {\n this.onSuccess(response);\n }\n return response;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.failureHandler = function (response) {\n if (this.onFailure) {\n this.onFailure(response);\n }\n return response;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.errorHandler = function (response) {\n if (this.onError) {\n this.onError(response);\n }\n return response;\n };\n AjaxHandler.prototype.setCustomAjaxHeaders = function () {\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n this.httpRequest.setRequestHeader(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n };\n return AjaxHandler;\n}());\nexport { AjaxHandler };\n","/**\n * Rect defines and processes rectangular regions\n */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, width, height) {\n /**\n * Sets the x-coordinate of the starting point of a rectangular region\n * @default 0\n */\n this.x = Number.MAX_VALUE;\n /**\n * Sets the y-coordinate of the starting point of a rectangular region\n * @default 0\n */\n this.y = Number.MAX_VALUE;\n /**\n * Sets the width of a rectangular region\n * @default 0\n */\n this.width = 0;\n /**\n * Sets the height of a rectangular region\n * @default 0\n */\n this.height = 0;\n if (x === undefined || y === undefined) {\n x = y = Number.MAX_VALUE;\n width = height = 0;\n }\n else {\n if (width === undefined) {\n width = 0;\n }\n if (height === undefined) {\n height = 0;\n }\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n Object.defineProperty(Rect.prototype, \"left\", {\n /** @private */\n get: function () {\n return this.x;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"right\", {\n /** @private */\n get: function () {\n return this.x + this.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"top\", {\n /** @private */\n get: function () {\n return this.y;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottom\", {\n /** @private */\n get: function () {\n return this.y + this.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topCenter\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomCenter\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"center\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n Rect.prototype.equals = function (rect1, rect2) {\n return rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height;\n };\n /** @private */\n Rect.prototype.uniteRect = function (rect) {\n var right = Math.max(Number.NaN === this.right || this.x === Number.MAX_VALUE ? rect.right : this.right, rect.right);\n var bottom = Math.max(Number.NaN === this.bottom || this.y === Number.MAX_VALUE ? rect.bottom : this.bottom, rect.bottom);\n this.x = Math.min(this.left, rect.left);\n this.y = Math.min(this.top, rect.top);\n this.width = right - this.x;\n this.height = bottom - this.y;\n return this;\n };\n /** @private */\n Rect.prototype.unitePoint = function (point) {\n if (this.x === Number.MAX_VALUE) {\n this.x = point.x;\n this.y = point.y;\n return;\n }\n var x = Math.min(this.left, point.x);\n var y = Math.min(this.top, point.y);\n var right = Math.max(this.right, point.x);\n var bottom = Math.max(this.bottom, point.y);\n this.x = x;\n this.y = y;\n this.width = right - this.x;\n this.height = bottom - this.y;\n };\n Rect.prototype.intersection = function (rect) {\n if (this.intersects(rect)) {\n var left = Math.max(this.left, rect.left);\n var top_1 = Math.max(this.top, rect.top);\n var right = Math.min(this.right, rect.right);\n var bottom = Math.min(this.bottom, rect.bottom);\n return new Rect(left, top_1, right - left, bottom - top_1);\n }\n return Rect.empty;\n };\n /** @private */\n Rect.prototype.Inflate = function (padding) {\n this.x -= padding;\n this.y -= padding;\n this.width += padding * 2;\n this.height += padding * 2;\n return this;\n };\n // public Inflate(size: Size): Rect {\n // this.x -= size.Width;\n // this.y -= size.Height;\n // this.width += size.Width * 2;\n // this.height += size.Height * 2;\n // return this;\n // }\n // public inflate(width: number, height: number): void {\n // this.x -= width;\n // this.y -= height;\n // this.width += width * 2;\n // this.height += height * 2;\n // }\n /** @private */\n Rect.prototype.intersects = function (rect) {\n if (this.right < rect.left || this.left > rect.right || this.top > rect.bottom || this.bottom < rect.top) {\n return false;\n }\n return true;\n };\n /** @private */\n Rect.prototype.containsRect = function (rect) {\n return this.left <= rect.left && this.right >= rect.right && this.top <= rect.top && this.bottom >= rect.bottom;\n };\n /** @private */\n Rect.prototype.containsPoint = function (point, padding) {\n if (padding === void 0) { padding = 0; }\n return this.left - padding <= point.x && this.right + padding >= point.x\n && this.top - padding <= point.y && this.bottom + padding >= point.y;\n };\n Rect.prototype.toPoints = function () {\n var points = [];\n points.push(this.topLeft);\n points.push(this.topRight);\n points.push(this.bottomLeft);\n points.push(this.bottomRight);\n return points;\n };\n /** @private */\n Rect.toBounds = function (points) {\n var rect = new Rect();\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var pt = points_1[_i];\n rect.unitePoint(pt);\n }\n return rect;\n };\n Rect.prototype.scale = function (scaleX, scaleY) {\n this.width *= scaleX;\n this.height *= scaleY;\n };\n Rect.prototype.offset = function (offsetX, offsetY) {\n this.x += offsetX;\n this.y += offsetY;\n };\n /** @private */\n Rect.empty = new Rect(Number.MAX_VALUE, Number.MIN_VALUE, 0, 0);\n return Rect;\n}());\nexport { Rect };\n","import { identityMatrix, rotateMatrix, transformPointByMatrix } from './../primitives/matrix';\nimport { Container } from './../core/containers/container';\nimport { StrokeStyle } from './../core/appearance';\nimport { Point } from './../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { rotatePoint } from './base-util';\n/**\n * Implements the drawing functionalities\n */\n/** @private */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/** @private */\nexport function findElementUnderMouse(obj, position, padding) {\n return findTargetElement(obj.wrapper, position, padding);\n}\n/** @private */\nexport function findTargetElement(container, position, padding) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var element = container.children[i];\n if (element && element.bounds.containsPoint(position, 0)) {\n if (element instanceof Container) {\n var target = this.findTargetElement(element, position);\n if (target) {\n return target;\n }\n }\n if (element.bounds.containsPoint(position, 0)) {\n return element;\n }\n }\n }\n if (container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n return container;\n }\n return null;\n}\n/** @private */\nexport function intersect3(lineUtil1, lineUtil2) {\n var point = { x: 0, y: 0 };\n var l1 = lineUtil1;\n var l2 = lineUtil2;\n var d = (l2.y2 - l2.y1) * (l1.x2 - l1.x1) - (l2.x2 - l2.x1) * (l1.y2 - l1.y1);\n var na = (l2.x2 - l2.x1) * (l1.y1 - l2.y1) - (l2.y2 - l2.y1) * (l1.x1 - l2.x1);\n var nb = (l1.x2 - l1.x1) * (l1.y1 - l2.y1) - (l1.y2 - l1.y1) * (l1.x1 - l2.x1);\n if (d === 0) {\n return { enabled: false, intersectPt: point };\n }\n var ua = na / d;\n var ub = nb / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n point.x = l1.x1 + (ua * (l1.x2 - l1.x1));\n point.y = l1.y1 + (ua * (l1.y2 - l1.y1));\n return { enabled: true, intersectPt: point };\n }\n return { enabled: false, intersectPt: point };\n}\n/** @private */\nexport function intersect2(start1, end1, start2, end2) {\n var point = { x: 0, y: 0 };\n var lineUtil1 = getLineSegment(start1.x, start1.y, end1.x, end1.y);\n var lineUtil2 = getLineSegment(start2.x, start2.y, end2.x, end2.y);\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n return line3.intersectPt;\n }\n else {\n return point;\n }\n}\n/** @private */\nexport function getLineSegment(x1, y1, x2, y2) {\n return { 'x1': Number(x1) || 0, 'y1': Number(y1) || 0, 'x2': Number(x2) || 0, 'y2': Number(y2) || 0 };\n}\n/** @private */\nexport function getPoints(element, corners, padding) {\n var line = [];\n padding = padding || 0;\n var left = { x: corners.topLeft.x - padding, y: corners.topLeft.y };\n var right = { x: corners.topRight.x + padding, y: corners.topRight.y };\n var top = { x: corners.bottomRight.x, y: corners.bottomRight.y - padding };\n var bottom = { x: corners.bottomLeft.x, y: corners.bottomLeft.y + padding };\n line.push(left);\n line.push(right);\n line.push(top);\n line.push(bottom);\n return line;\n}\n/** @private */\nexport function getBezierDirection(src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'right' : 'left';\n }\n else {\n return src.y < tar.y ? 'bottom' : 'top';\n }\n}\n/** @private */\nexport function updateStyle(changedObject, target) {\n //since text style model is the super set of shape style model, we used text style model\n var style = target.style;\n var textElement = target;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'fill':\n style.fill = changedObject.fill;\n if (style instanceof StrokeStyle) {\n /* tslint:disable:no-string-literal */\n style['fill'] = 'transparent';\n }\n break;\n case 'textOverflow':\n style.textOverflow = changedObject.textOverflow;\n break;\n case 'opacity':\n style.opacity = changedObject.opacity;\n break;\n case 'strokeColor':\n style.strokeColor = changedObject.strokeColor;\n break;\n case 'strokeDashArray':\n style.strokeDashArray = changedObject.strokeDashArray;\n break;\n case 'strokeWidth':\n style.strokeWidth = changedObject.strokeWidth;\n break;\n case 'bold':\n style.bold = changedObject.bold;\n break;\n case 'color':\n style.color = changedObject.color;\n break;\n case 'textWrapping':\n style.textWrapping = changedObject.textWrapping;\n break;\n case 'fontFamily':\n style.fontFamily = changedObject.fontFamily;\n break;\n case 'fontSize':\n style.fontSize = changedObject.fontSize;\n break;\n case 'italic':\n style.italic = changedObject.italic;\n break;\n case 'textAlign':\n style.textAlign = changedObject.textAlign;\n break;\n case 'whiteSpace':\n style.whiteSpace = changedObject.whiteSpace;\n break;\n case 'textDecoration':\n style.textDecoration = changedObject.textDecoration;\n break;\n }\n }\n if (target instanceof TextElement) {\n textElement.refreshTextElement();\n }\n}\n/** @private */\nexport function scaleElement(element, sw, sh, refObject) {\n if (element.width !== undefined && element.height !== undefined) {\n element.width *= sw;\n element.height *= sh;\n }\n if (element instanceof Container) {\n var matrix = identityMatrix();\n var width = refObject.width || refObject.actualSize.width;\n var height = refObject.height || refObject.actualSize.height;\n if (width !== undefined && height !== undefined) {\n var x = refObject.offsetX - width * refObject.pivot.x;\n var y = refObject.offsetY - height * refObject.pivot.y;\n var refPoint = {\n x: x + width * refObject.pivot.x,\n y: y + height * refObject.pivot.y\n };\n refPoint = rotatePoint(refObject.rotateAngle, refObject.offsetX, refObject.offsetY, refPoint);\n rotateMatrix(matrix, -refObject.rotateAngle, refPoint.x, refPoint.y);\n // scaleMatrix(matrix, sw, sh, refPoint.x, refPoint.y);\n rotateMatrix(matrix, refObject.rotateAngle, refPoint.x, refPoint.y);\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.width !== undefined && child.height !== undefined) {\n var newPosition = transformPointByMatrix(matrix, { x: child.offsetX, y: child.offsetY });\n child.offsetX = newPosition.x;\n child.offsetY = newPosition.y;\n scaleElement(child, sw, sh, refObject);\n }\n }\n }\n }\n}\n/** @private */\nexport function contains(mousePosition, corner, padding) {\n if (mousePosition.x >= corner.x - padding && mousePosition.x <= corner.x + padding) {\n if (mousePosition.y >= corner.y - padding && mousePosition.y <= corner.y + padding) {\n return true;\n }\n }\n return false;\n}\n/** @private */\nexport function getPoint(x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivot = { x: 0, y: 0 };\n var trans = identityMatrix();\n rotateMatrix(trans, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 0:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n case 1:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivot.x, y: pivot.y };\n}\n","import { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { whiteSpaceToString, wordBreakToString, textAlignToString, bBoxText } from './base-util';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { createElement, Browser } from '@syncfusion/ej2-base';\n/**\n * Defines the functionalities that need to access DOM\n */\nexport function getChildNode(node) {\n var child;\n var collection = [];\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n for (var i = 0; i < node.childNodes.length; i++) {\n child = node.childNodes[i];\n if (child.nodeType === 1) {\n collection.push(child);\n }\n }\n }\n else {\n collection = node.children;\n }\n return collection;\n}\nexport function translatePoints(element, points) {\n var translatedPts = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n var pt1 = {\n x: element.offsetX - element.actualSize.width * element.pivot.x + point.x,\n y: element.offsetY - element.actualSize.height * element.pivot.y + point.y\n };\n var matrix = void 0;\n var angle = element.rotateAngle + element.parentTransform;\n if (angle) {\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n }\n if (matrix) {\n pt1 = transformPointByMatrix(matrix, pt1);\n }\n translatedPts.push(pt1);\n }\n return translatedPts;\n}\n/** @private */\nexport function measurePath(data) {\n var path = 'pathTable';\n if (!window[path]) {\n window[path] = {};\n }\n if (data) {\n var measureElement = 'measureElement';\n window[measureElement].style.visibility = 'visible';\n var svg = window[measureElement].children[2];\n var element = getChildNode(svg)[0];\n element.setAttribute('d', data);\n //let bounds: SVGRect = element.getBBox();\n var bounds = void 0;\n if (window[path][data]) {\n bounds = window[path][data];\n }\n else {\n window[path][data] = bounds = element.getBBox();\n if ((bounds.x === 0 || bounds.y === 0) && (bounds.width === 0 || bounds.height === 0)) {\n window[path][data] = bounds = getBBox(data);\n }\n }\n var svgBounds = new Rect(bounds.x, bounds.y, bounds.width, bounds.height);\n window[measureElement].style.visibility = 'hidden';\n return svgBounds;\n }\n return new Rect(0, 0, 0, 0);\n}\n// tslint:disable-next-line\nfunction getBBox(path) {\n var xmin = 0;\n var xmax = 0;\n var ymin = 0;\n var ymax = 0;\n // tslint:disable-next-line\n var currentValue;\n // tslint:disable-next-line\n var currentpath = path;\n currentpath = currentpath.replace(/[a-z].*/g, ' ').replace(/[\\sA-Z]+/gi, ' ').trim().split(' ');\n for (var i = 0; i < currentpath.length; i++) {\n if (currentpath[i].length > 1) {\n currentValue = currentpath[i].split(',');\n xmin = xmax = currentValue[0];\n ymin = ymax = currentValue[1];\n }\n }\n for (var i = 0; i < currentpath.length; i++) {\n currentValue = currentpath[i].split(',');\n if (!currentValue[1]) {\n currentValue[0] = xmin;\n currentValue[1] = ymin;\n }\n xmin = Math.min(xmin, currentValue[0]);\n xmax = Math.max(xmax, currentValue[0]);\n ymin = Math.min(ymin, currentValue[1]);\n ymax = Math.max(ymax, currentValue[1]);\n }\n return { x: xmin, y: ymin, width: xmax - xmin, height: ymax - ymin };\n}\nfunction getTextOptions(element, maxWidth) {\n var options = {\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray, opacity: element.style.opacity,\n visible: element.visible, id: element.id,\n width: maxWidth || element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5\n };\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.textWrapping = element.style.textWrapping;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = '';\n return options;\n}\nfunction wrapSvgText(text, textValue) {\n var childNodes = [];\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || text.content;\n if (text.whiteSpace !== 'nowrap' && text.whiteSpace !== 'pre') {\n if (text.breakWord === 'breakall') {\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, text);\n if (bounds1 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n // if (txtValue.indexOf('\\n') > -1) {\n // txtValue = txtValue.replace('\\n', '');\n // }\n var width = bBoxText(txtValue, text);\n if ((Math.ceil(width) + 2 >= text.width && txtValue.length > 0) || (txtValue.indexOf('\\n') > -1)) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n }\n else {\n childNodes = wordWrapping(text, textValue);\n }\n }\n else {\n childNodes[childNodes.length] = { text: content, x: 0, dy: 0, width: bBoxText(content, text) };\n }\n return childNodes;\n}\nfunction wordWrapping(text, textValue) {\n var childNodes = [];\n var txtValue = '';\n var j = 0;\n var i = 0;\n var wrap = text.whiteSpace !== 'nowrap' ? true : false;\n var content = textValue || text.content;\n var bounds1;\n var eachLine = content.split('\\n');\n var txt;\n var words;\n var newText;\n var existingWidth;\n var existingText;\n for (j = 0; j < eachLine.length; j++) {\n txt = '';\n words = text.textWrapping !== 'NoWrap' ? eachLine[j].split(' ') : eachLine;\n for (i = 0; i < words.length; i++) {\n bounds1 = bBoxText(words[i], text);\n if (bounds1 > text.width && words[i].length > 0) {\n if (eachLine.length > 1) {\n words[i] = words[i] + '\\n';\n }\n text.content = words[i];\n childNodes = wrapText(text, txtValue, childNodes);\n }\n else {\n txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[i];\n newText = txtValue + (words[i + 1] || '');\n var width = bBoxText(newText, text);\n if (eachLine.length > 1 && i === words.length - 1) {\n txtValue = txtValue + '\\n';\n }\n if (Math.floor(width) > text.width - 2 && txtValue.length > 0) {\n childNodes[childNodes.length] = {\n text: (txtValue.indexOf('\\n') === -1) ? txtValue + ' ' : textValue, x: 0, dy: 0,\n width: newText === txtValue ? width : (txtValue === existingText) ? existingWidth : bBoxText(txtValue, text)\n };\n txtValue = '';\n }\n else {\n if (i === words.length - 1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n existingText = newText;\n existingWidth = width;\n }\n }\n }\n return childNodes;\n}\nfunction wrapText(txt, textValue, childNode) {\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || txt.content;\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, txt);\n if (bounds1 >= txt.width && txtValue.length > 0) {\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n var width = bBoxText(txtValue, txt);\n if ((Math.ceil(width) + 2 >= txt.width && txtValue.length > 0) || (txtValue.indexOf('\\n') > -1)) {\n txtValue = txtValue.slice(0, -1);\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = content[k + 1] || '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n return childNode;\n}\nfunction wrapSvgTextAlign(text, childNodes) {\n var wrapBounds = { x: 0, width: 0 };\n var k = 0;\n var txtWidth;\n var width;\n for (k = 0; k < childNodes.length; k++) {\n txtWidth = childNodes[k].width;\n width = txtWidth;\n if (text.textAlign === 'left') {\n txtWidth = 0;\n }\n else if (text.textAlign === 'center') {\n if (txtWidth > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n txtWidth = 0;\n }\n else {\n txtWidth = -txtWidth / 2;\n }\n }\n else if (text.textAlign === 'right') {\n txtWidth = -txtWidth;\n }\n else {\n txtWidth = childNodes.length > 1 ? 0 : -txtWidth / 2;\n }\n childNodes[k].dy = text.fontSize * 1.2;\n childNodes[k].x = txtWidth;\n if (!wrapBounds) {\n wrapBounds = {\n x: txtWidth,\n width: width\n };\n }\n else {\n wrapBounds.x = Math.min(wrapBounds.x, txtWidth);\n wrapBounds.width = Math.max(wrapBounds.width, width);\n }\n }\n return wrapBounds;\n}\n/** @private */\nexport function measureText(text, style, content, maxWidth, textValue) {\n var bounds = new Size(0, 0);\n var childNodes;\n var wrapBounds;\n var options = getTextOptions(text, maxWidth);\n text.childNodes = childNodes = wrapSvgText(options, textValue);\n text.wrapBounds = wrapBounds = wrapSvgTextAlign(options, childNodes);\n bounds.width = wrapBounds.width;\n if (text.wrapBounds.width >= maxWidth && options.textOverflow !== 'Wrap') {\n bounds.width = maxWidth;\n }\n bounds.height = childNodes.length * text.style.fontSize * 1.2;\n return bounds;\n}\n/** @private */\nexport function getDiagramElement(elementId, contentId) {\n var diagramElement;\n var element;\n if (contentId) {\n element = document.getElementById(contentId);\n }\n diagramElement = (element) ? element.querySelector('#' + elementId) : document.getElementById(elementId);\n return diagramElement;\n}\n/** @private */\nexport function createHtmlElement(elementType, attribute) {\n var element = createElement(elementType);\n setAttributeHtml(element, attribute);\n return element;\n}\n/** @private */\nexport function setAttributeHtml(element, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n element.setAttribute(keys[i], attributes[keys[i]]);\n }\n}\n/**\n * @private\n */\nexport function getAdornerLayerSvg(diagramId, index) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId + index + '_diagramAdornerLayer');\n var elementcoll;\n if (diagramElement) {\n elementcoll = diagramElement.getElementsByClassName('e-adorner-layer' + index);\n adornerLayerSvg = elementcoll[0];\n }\n return adornerLayerSvg;\n}\n/** @private */\nexport function getSelectorElement(diagramId, index) {\n var adornerLayer = null;\n var adornerSvg = getAdornerLayerSvg(diagramId, index);\n if (adornerSvg) {\n adornerLayer = adornerSvg.getElementById(diagramId + '_SelectorElement');\n }\n return adornerLayer;\n}\n/** @private */\nexport function createMeasureElements() {\n var measureElement = 'measureElement';\n if (!window[measureElement]) {\n var divElement = createHtmlElement('div', {\n id: 'measureElement',\n style: 'visibility:hidden ; height: 0px ; width: 0px; overflow: hidden;'\n });\n var text = createHtmlElement('span', { 'style': 'display:inline-block ; line-height: normal' });\n divElement.appendChild(text);\n var imageElement = void 0;\n imageElement = createHtmlElement('img', {});\n divElement.appendChild(imageElement);\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xlink', 'http://www.w3.org/1999/xlink');\n divElement.appendChild(svg);\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(element);\n var data = document.createTextNode('');\n var tSpan = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n svg.appendChild(tSpan);\n window[measureElement] = divElement;\n window[measureElement].usageCount = 1;\n document.body.appendChild(divElement);\n }\n else {\n window[measureElement].usageCount += 1;\n }\n}\n/** @private */\nexport function measureImage(source, contentSize) {\n var measureElement = 'measureElement';\n window[measureElement].style.visibility = 'visible';\n var imageElement = window[measureElement].children[1];\n imageElement.setAttribute('src', source);\n var bounds = imageElement.getBoundingClientRect();\n var width = bounds.width;\n var height = bounds.height;\n contentSize = new Size(width, height);\n window[measureElement].style.visibility = 'hidden';\n return contentSize;\n}\n","import { Rect } from '../primitives/rect';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getChildNode } from './dom-util';\nimport { Size } from '../primitives/size';\n/**\n * Implements the basic functionalities\n */\n/** @private */\nexport function randomId() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';\n var id = '';\n var num;\n for (var i = 0; i < 5; i++) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var count = new Uint16Array(1);\n // tslint:disable-next-line:no-any\n var intCrypto = window.msCrypto || window.crypto;\n num = intCrypto.getRandomValues(count)[0] % (chars.length - 1);\n }\n else {\n num = Math.floor(Math.random() * chars.length);\n }\n if (i === 0 && num < 10) {\n i--;\n continue;\n }\n id += chars.substring(num, num + 1);\n }\n return id;\n}\n/** @private */\nexport function cornersPointsBeforeRotation(ele) {\n var bounds = new Rect();\n var top = ele.offsetY - ele.actualSize.height * ele.pivot.y;\n var bottom = ele.offsetY + ele.actualSize.height * (1 - ele.pivot.y);\n var left = ele.offsetX - ele.actualSize.width * ele.pivot.x;\n var right = ele.offsetX + ele.actualSize.width * (1 - ele.pivot.x);\n var topLeft = { x: left, y: top };\n var topCenter = { x: (left + right) / 2, y: top };\n var topRight = { x: right, y: top };\n var middleLeft = { x: left, y: (top + bottom) / 2 };\n var middleRight = { x: right, y: (top + bottom) / 2 };\n var bottomLeft = { x: left, y: bottom };\n var bottomCenter = { x: (left + right) / 2, y: bottom };\n var bottomRight = { x: right, y: bottom };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n return bounds;\n}\n/** @private */\nexport function rotateSize(size, angle) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, 0, 0);\n var topLeft = transformPointByMatrix(matrix, { x: 0, y: 0 });\n var topRight = transformPointByMatrix(matrix, { x: size.width, y: 0 });\n var bottomLeft = transformPointByMatrix(matrix, { x: 0, y: size.height });\n var bottomRight = transformPointByMatrix(matrix, { x: size.width, y: size.height });\n var minX = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var minY = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n var maxX = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var maxY = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n return new Size(maxX - minX, maxY - minY);\n}\n/** @private */\nexport function getBounds(element) {\n var bounds = new Rect();\n var corners;\n corners = cornersPointsBeforeRotation(element);\n var middleLeft = corners.middleLeft;\n var topCenter = corners.topCenter;\n var bottomCenter = corners.bottomCenter;\n var middleRight = corners.middleRight;\n var topLeft = corners.topLeft;\n var topRight = corners.topRight;\n var bottomLeft = corners.bottomLeft;\n var bottomRight = corners.bottomRight;\n element.corners = {\n topLeft: topLeft, topCenter: topCenter, topRight: topRight, middleLeft: middleLeft,\n middleRight: middleRight, bottomLeft: bottomLeft, bottomCenter: bottomCenter, bottomRight: bottomRight\n };\n if (element.rotateAngle !== 0 || element.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n element.corners.topLeft = topLeft = transformPointByMatrix(matrix, topLeft);\n element.corners.topCenter = topCenter = transformPointByMatrix(matrix, topCenter);\n element.corners.topRight = topRight = transformPointByMatrix(matrix, topRight);\n element.corners.middleLeft = middleLeft = transformPointByMatrix(matrix, middleLeft);\n element.corners.middleRight = middleRight = transformPointByMatrix(matrix, middleRight);\n element.corners.bottomLeft = bottomLeft = transformPointByMatrix(matrix, bottomLeft);\n element.corners.bottomCenter = bottomCenter = transformPointByMatrix(matrix, bottomCenter);\n element.corners.bottomRight = bottomRight = transformPointByMatrix(matrix, bottomRight);\n //Set corners based on rotate angle\n }\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n element.corners.left = bounds.left;\n element.corners.right = bounds.right;\n element.corners.top = bounds.top;\n element.corners.bottom = bounds.bottom;\n element.corners.center = bounds.center;\n element.corners.width = bounds.width;\n element.corners.height = bounds.height;\n return bounds;\n}\n/** @private */\nexport function textAlignToString(value) {\n var state = '';\n switch (value) {\n case 'Center':\n state = 'center';\n break;\n case 'Left':\n state = 'left';\n break;\n case 'Right':\n state = 'right';\n break;\n }\n return state;\n}\n/** @private */\nexport function wordBreakToString(value) {\n var state = '';\n switch (value) {\n case 'Wrap':\n state = 'breakall';\n break;\n case 'NoWrap':\n state = 'keepall';\n break;\n case 'WrapWithOverflow':\n state = 'normal';\n break;\n case 'LineThrough':\n state = 'line-through';\n break;\n }\n return state;\n}\nexport function bBoxText(textContent, options) {\n var measureElement = 'measureElement';\n window[measureElement].style.visibility = 'visible';\n var svg = window[measureElement].children[2];\n var text = getChildNode(svg)[1];\n text.textContent = textContent;\n text.setAttribute('style', 'font-size:' + options.fontSize + 'px; font-family:'\n + options.fontFamily + ';font-weight:' + (options.bold ? 'bold' : 'normal'));\n var bBox = text.getBBox().width;\n window[measureElement].style.visibility = 'hidden';\n return bBox;\n}\n/** @private */\nexport function middleElement(i, j) {\n var m = 0;\n m = (i + j) / 2;\n return m;\n}\n/** @private */\nexport function whiteSpaceToString(value, wrap) {\n if (wrap === 'NoWrap' && value === 'PreserveAll') {\n return 'pre';\n }\n var state = '';\n switch (value) {\n case 'CollapseAll':\n state = 'nowrap';\n break;\n case 'CollapseSpace':\n state = 'pre-line';\n break;\n case 'PreserveAll':\n state = 'pre-wrap';\n break;\n }\n return state;\n}\n/** @private */\nexport function rotatePoint(angle, pivotX, pivotY, point) {\n if (angle !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivotX, pivotY);\n return transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/** @private */\nexport function getOffset(topLeft, obj) {\n var offX = topLeft.x + obj.desiredSize.width * obj.pivot.x;\n var offY = topLeft.y + obj.desiredSize.height * obj.pivot.y;\n return {\n x: offX, y: offY\n };\n}\n","import { RotateTransform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { getBounds } from '../../utility/base-util';\n/**\n * DiagramElement module defines the basic unit of diagram\n */\nvar DrawingElement = /** @class */ (function () {\n function DrawingElement() {\n /**\n * Sets/Gets the reference point of the element\n * ```html\n *
    \n * ```\n * ```typescript\n * let stackPanel: StackPanel = new StackPanel();\n * stackPanel.offsetX = 300; stackPanel.offsetY = 200;\n * stackPanel.width = 100; stackPanel.height = 100;\n * stackPanel.style.fill = 'red';\n * stackPanel.pivot = { x: 0.5, y: 0.5 };\n * let diagram: Diagram = new Diagram({\n * ...\n * basicElements: [stackPanel],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n this.pivot = { x: 0.5, y: 0.5 };\n this.rotateValue = { x: 0, y: 0, angle: 0 };\n /**\n * Sets or gets whether the content of the element needs to be measured\n */\n this.isDirt = true;\n /**\n * Sets/Gets the x-coordinate of the element\n */\n this.offsetX = 0;\n /**\n * Sets/Gets the y-coordinate of the element\n */\n this.offsetY = 0;\n /**\n * Set the corner of the element\n */\n this.cornerRadius = 0;\n /**\n * Sets/Gets the minimum height of the element\n */\n this.minHeight = undefined;\n /**\n * Sets/Gets the minimum width of the element\n */\n this.minWidth = undefined;\n /**\n * Sets/Gets the maximum width of the element\n */\n this.maxWidth = undefined;\n /**\n * Sets/Gets the maximum height of the element\n */\n this.maxHeight = undefined;\n /**\n * Sets/Gets the width of the element\n */\n this.width = undefined;\n /**\n * Sets/Gets the height of the element\n */\n this.height = undefined;\n /**\n * Sets/Gets how the element has to be horizontally arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Left - Aligns the diagram element at the left of its immediate parent\n * * Right - Aligns the diagram element at the right of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.horizontalAlignment = 'Auto';\n /**\n * Sets/Gets how the element has to be vertically arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Top - Aligns the diagram element at the top of its immediate parent\n * * Bottom - Aligns the diagram element at the bottom of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.verticalAlignment = 'Auto';\n /**\n * Sets or gets whether the content of the element to be visible\n */\n this.visible = true;\n /**\n * Sets/Gets the rotate angle of the element\n */\n this.rotateAngle = 0;\n /**\n * Sets/Gets the margin of the element\n */\n this.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n /**\n * Sets whether the element has to be aligned with respect to a point/with respect to its immediate parent\n * * Point - Diagram elements will be aligned with respect to a point\n * * Object - Diagram elements will be aligned with respect to its immediate parent\n */\n this.relativeMode = 'Point';\n /**\n * Sets whether the element has to be transformed based on its parent or not\n * * Self - Sets the transform type as Self\n * * Parent - Sets the transform type as Parent\n */\n /** @private */\n this.transform = RotateTransform.Self | RotateTransform.Parent;\n /**\n * Sets the style of the element\n */\n this.style = { fill: 'white', strokeColor: 'black', opacity: 1, strokeWidth: 1 };\n /**\n * Gets the minimum size that is required by the element\n */\n this.desiredSize = new Size();\n /**\n * Gets the size that the element will be rendered\n */\n this.actualSize = new Size();\n /**\n * Gets the rotate angle that is set to the immediate parent of the element\n */\n this.parentTransform = 0;\n /** @private */\n this.preventContainer = false;\n /**\n * Gets/Sets the boundary of the element\n */\n this.bounds = new Rect(0, 0, 0, 0);\n /**\n * Defines whether the element has to be measured or not\n */\n this.staticSize = false;\n /**\n * check whether the element is rect or not\n */\n /** @private */\n this.isRectElement = false;\n /** @private */\n this.isCalculateDesiredSize = true;\n /**\n * Defines whether the element is group or port\n */\n /** @private */\n this.elementActions = ElementAction.None;\n //private variables\n this.position = undefined;\n this.unitMode = undefined;\n /** @private */\n this.float = false;\n this.floatingBounds = undefined;\n }\n // public constructor() {\n // this.id = randomId();\n // }\n /**\n * Sets the offset of the element with respect to its parent\n * @param x\n * @param y\n * @param mode\n */\n DrawingElement.prototype.setOffsetWithRespectToBounds = function (x, y, mode) {\n this.unitMode = mode;\n this.position = { x: x, y: y };\n };\n /**\n * Gets the position of the element with respect to its parent\n * @param size\n */\n DrawingElement.prototype.getAbsolutePosition = function (size) {\n if (this.position !== undefined) {\n if (this.unitMode === 'Absolute') {\n return this.position;\n }\n else {\n return {\n x: this.position.x * size.width, y: this.position.y * size.height\n };\n }\n }\n return undefined;\n };\n Object.defineProperty(DrawingElement.prototype, \"outerBounds\", {\n get: function () {\n return this.floatingBounds || this.bounds;\n },\n /**\n * used to set the outer bounds value\n * @private\n */\n set: function (bounds) {\n this.floatingBounds = bounds;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that the element requires\n * @param availableSize\n */\n DrawingElement.prototype.measure = function (availableSize) {\n var width = this.width !== undefined ? this.width : (availableSize.width || 0) - this.margin.left - this.margin.right;\n var height = this.height !== undefined ? this.height : (availableSize.height || 0) - this.margin.top - this.margin.bottom;\n this.desiredSize = new Size(width, height);\n if (this.isCalculateDesiredSize) {\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n }\n return this.desiredSize;\n };\n /**\n * Arranges the element\n * @param desiredSize\n */\n DrawingElement.prototype.arrange = function (desiredSize) {\n this.actualSize = desiredSize;\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Updates the bounds of the element\n */\n DrawingElement.prototype.updateBounds = function () {\n this.bounds = getBounds(this);\n };\n /**\n * Validates the size of the element with respect to its minimum and maximum size\n * @param desiredSize\n * @param availableSize\n */\n DrawingElement.prototype.validateDesiredSize = function (desiredSize, availableSize) {\n //Empty canvas\n if (this.isRectElement && !this.width && !this.minWidth && !this.maxWidth) {\n desiredSize.width = 50;\n }\n if (this.isRectElement && !this.height && !this.minHeight && !this.maxHeight) {\n desiredSize.height = 50;\n }\n if (desiredSize === undefined || this.width !== undefined &&\n this.height !== undefined) {\n desiredSize = desiredSize || new Size();\n desiredSize.width = this.width === undefined ? (availableSize.width || 0)\n - this.margin.left - this.margin.right : this.width;\n desiredSize.height = this.height === undefined ? (availableSize.height || 0)\n - this.margin.top - this.margin.bottom : this.height;\n }\n //Considering min values\n if (this.minWidth !== undefined) {\n desiredSize.width = Math.max(desiredSize.width, this.minWidth);\n }\n if (this.minHeight !== undefined) {\n desiredSize.height = Math.max(desiredSize.height, this.minHeight);\n }\n //Considering max values\n if (this.maxWidth !== undefined) {\n desiredSize.width = Math.min(desiredSize.width, this.maxWidth);\n }\n if (this.maxHeight !== undefined) {\n desiredSize.height = Math.min(desiredSize.height, this.maxHeight);\n }\n return desiredSize;\n };\n return DrawingElement;\n}());\nexport { DrawingElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { measureText } from './../../utility/dom-util';\n/**\n * TextElement is used to display text/annotations\n */\nvar TextElement = /** @class */ (function (_super) {\n __extends(TextElement, _super);\n /**\n * set the id for each element\n */\n function TextElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.textContent = '';\n /** @private */\n _this.canMeasure = true;\n /** @private */\n _this.canConsiderBounds = true;\n /** @private */\n _this.doWrap = true;\n _this.textNodes = [];\n /**\n * Defines the appearance of the text element\n */\n _this.style = {\n color: 'black', fill: 'transparent', strokeColor: 'black',\n strokeWidth: 1, fontFamily: 'Arial', fontSize: 12, whiteSpace: 'CollapseSpace',\n textWrapping: 'WrapWithOverflow', textAlign: 'Center', italic: false, bold: false,\n textDecoration: 'None', strokeDashArray: '', opacity: 1,\n textOverflow: 'Wrap'\n };\n _this.style.fill = 'transparent';\n _this.style.strokeColor = 'transparent';\n return _this;\n }\n Object.defineProperty(TextElement.prototype, \"content\", {\n /**\n * gets the content for the text element\n */\n get: function () {\n return this.textContent;\n },\n /**\n * sets the content for the text element\n */\n set: function (value) {\n if (this.textContent !== value) {\n this.textContent = value;\n this.isDirt = true;\n this.doWrap = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"childNodes\", {\n /**\n * sets the content for the text element\n */\n get: function () {\n return this.textNodes;\n },\n /**\n * gets the content for the text element\n */\n set: function (value) {\n this.textNodes = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"wrapBounds\", {\n /**\n * gets the wrapBounds for the text\n */\n get: function () {\n return this.textWrapBounds;\n },\n /**\n * sets the wrapBounds for the text\n */\n set: function (value) {\n this.textWrapBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n TextElement.prototype.refreshTextElement = function () {\n this.isDirt = true;\n };\n /**\n * Measures the minimum size that is required for the text element\n * @param availableSize\n */\n TextElement.prototype.measure = function (availableSize) {\n var size;\n if (this.isDirt && this.canMeasure) {\n size = measureText(this, this.style, this.content, this.width || availableSize.width);\n }\n else {\n size = this.desiredSize;\n }\n if (this.width === undefined || this.height === undefined) {\n this.desiredSize = new Size(size.width, size.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the text element\n * @param desiredSize\n */\n TextElement.prototype.arrange = function (desiredSize) {\n if (desiredSize.width !== this.actualSize.width || desiredSize.height !== this.actualSize.height || this.isDirt) {\n this.doWrap = true;\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n return TextElement;\n}(DrawingElement));\nexport { TextElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DrawingElement } from '../elements/drawing-element';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { rotatePoint, getOffset } from '../../utility/base-util';\n/**\n * Container module is used to group related objects\n */\nvar Container = /** @class */ (function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n //private members \n _this.desiredBounds = undefined;\n /** @private */\n _this.measureChildren = true;\n /** @private */\n _this.prevRotateAngle = 0;\n return _this;\n }\n /**\n * returns whether the container has child elements or not\n */\n Container.prototype.hasChildren = function () {\n if (this.children !== undefined && this.children.length > 0) {\n return true;\n }\n return false;\n };\n /**\n * Measures the minimum space that the container requires\n *\n * @param availableSize\n */\n Container.prototype.measure = function (availableSize) {\n // measure the element and find the desired size\n this.desiredBounds = undefined;\n var desired = undefined;\n var child;\n var center = { x: 0, y: 0 };\n var y;\n var x;\n var childBounds;\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n if (child.horizontalAlignment === 'Stretch' && !availableSize.width) {\n availableSize.width = child.bounds.width;\n }\n if (child.verticalAlignment === 'Stretch' && !availableSize.height) {\n availableSize.height = child.bounds.height;\n }\n var force = child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch';\n if (this.measureChildren || force || (child instanceof Container && child.measureChildren !== undefined)) {\n child.measure(availableSize);\n }\n childBounds = this.GetChildrenBounds(child);\n if (child.horizontalAlignment !== 'Stretch' && child.verticalAlignment !== 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = childBounds;\n }\n else {\n this.desiredBounds.uniteRect(childBounds);\n }\n }\n else if (this.actualSize && !this.actualSize.width && !this.actualSize.height &&\n !child.preventContainer && child.horizontalAlignment === 'Stretch' && child.verticalAlignment === 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = child.bounds;\n }\n else {\n this.desiredBounds.uniteRect(child.bounds);\n }\n }\n }\n if (this.desiredBounds !== undefined && this.rotateAngle !== 0) {\n var offsetPt = {\n x: this.desiredBounds.x + this.desiredBounds.width * this.pivot.x,\n y: this.desiredBounds.y + this.desiredBounds.height * this.pivot.y\n };\n var newPoint = rotatePoint(this.rotateAngle, undefined, undefined, offsetPt);\n this.desiredBounds.x = newPoint.x - this.desiredBounds.width * this.pivot.x;\n this.desiredBounds.y = newPoint.y - this.desiredBounds.height * this.pivot.y;\n }\n if (this.desiredBounds) {\n desired = new Size(this.desiredBounds.width, this.desiredBounds.height);\n }\n }\n desired = this.validateDesiredSize(desired, availableSize);\n this.stretchChildren(desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the container and its children\n * @param desiredSize\n */\n Container.prototype.arrange = function (desiredSize) {\n var child;\n var bounds;\n var childBounds = this.desiredBounds;\n if (childBounds) {\n var x = this.offsetX;\n var y = this.offsetY;\n this.offsetX = childBounds.x + childBounds.width * this.pivot.x;\n this.offsetY = childBounds.y + childBounds.height * this.pivot.y;\n // container has rotateAngle\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n var arrange = false;\n if (child.horizontalAlignment === 'Stretch') {\n child.offsetX = this.offsetX;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (child.verticalAlignment === 'Stretch') {\n child.offsetY = this.offsetY;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (arrange || this.measureChildren || (child instanceof Container && child.measureChildren !== undefined)) {\n child.arrange(child.desiredSize);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.prevRotateAngle = this.rotateAngle;\n return desiredSize;\n };\n //protected methods\n /**\n * Stretches the child elements based on the size of the container\n * @param size\n */\n Container.prototype.stretchChildren = function (size) {\n if (this.hasChildren()) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.horizontalAlignment === 'Stretch' || child.desiredSize.width === undefined) {\n child.desiredSize.width = size.width - child.margin.left - child.margin.right;\n }\n if (child.verticalAlignment === 'Stretch' || child.desiredSize.height === undefined) {\n child.desiredSize.height = size.height - child.margin.top - child.margin.bottom;\n }\n if (child instanceof Container) {\n child.stretchChildren(child.desiredSize);\n }\n }\n }\n };\n /**\n * Finds the offset of the child element with respect to the container\n * @param child\n * @param center\n */\n Container.prototype.findChildOffsetFromCenter = function (child, center) {\n var topLeft = { x: center.x - child.desiredSize.width / 2, y: center.y - child.desiredSize.height / 2 };\n var offset = getOffset(topLeft, child);\n //Rotate based on child rotate angle\n offset = rotatePoint(child.rotateAngle, center.x, center.y, offset);\n //Rotate based on parent pivot\n offset = rotatePoint(this.rotateAngle + this.parentTransform, this.offsetX, this.offsetY, offset);\n child.offsetX = offset.x;\n child.offsetY = offset.y;\n };\n //private methods - check its need\n Container.prototype.GetChildrenBounds = function (child) {\n var childBounds;\n var childSize;\n childSize = child.desiredSize.clone();\n var diffAngle = child.rotateAngle - this.rotateAngle;\n var refPoint = { x: child.offsetX, y: child.offsetY };\n var left = refPoint.x - childSize.width * child.pivot.x;\n var top = refPoint.y - childSize.height * child.pivot.y;\n var right = left + childSize.width;\n var bottom = top + childSize.height;\n var topLeft = { x: left, y: top };\n var topRight = { x: right, y: top };\n var bottomLeft = { x: left, y: bottom };\n var bottomRight = { x: right, y: bottom };\n topLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topLeft);\n topRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topRight);\n bottomLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomLeft);\n bottomRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomRight);\n if (this.rotateAngle !== 0) {\n topLeft = rotatePoint(-this.rotateAngle, undefined, undefined, topLeft);\n topRight = rotatePoint(-this.rotateAngle, undefined, undefined, topRight);\n bottomLeft = rotatePoint(-this.rotateAngle, undefined, undefined, bottomLeft);\n bottomRight = rotatePoint(-this.rotateAngle, undefined, undefined, bottomRight);\n }\n return Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n };\n return Container;\n}(DrawingElement));\nexport { Container };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Collection, Complex, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Container } from '@syncfusion/ej2-drawings';\nimport { Point } from '@syncfusion/ej2-drawings';\nimport { PdfAnnotationBase, PdfFormFieldBase } from './pdf-annotation';\n/**\n * Defines the size and position of selected items and defines the appearance of selector\n *\n * @hidden\n */\nvar Selector = /** @class */ (function (_super) {\n __extends(Selector, _super);\n function Selector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Initializes the UI of the container\n *\n * @param {any} diagram - diagram element.\n * @returns {Container} - Returns the container element.\n */\n // eslint-disable-next-line\n Selector.prototype.init = function (diagram) {\n var container = new Container();\n container.measureChildren = false;\n container.children = [];\n if (this.formFields && this.formFields.length > 0) {\n for (var i = 0; i < this.formFields.length; i++) {\n var node = diagram.pdfViewer.nameTable[this.formFields[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n container.children.push(wrapper);\n }\n }\n else if (this.annotations) {\n for (var i = 0; i < this.annotations.length; i++) {\n if (!isNullOrUndefined(this.annotations[parseInt(i.toString(), 10)])) {\n var node = diagram.pdfViewer.nameTable[this.annotations[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n container.children.push(wrapper);\n }\n }\n }\n this.wrapper = container;\n return container;\n };\n __decorate([\n Property(null)\n ], Selector.prototype, \"wrapper\", void 0);\n __decorate([\n Collection([], PdfAnnotationBase)\n ], Selector.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PdfFormFieldBase)\n ], Selector.prototype, \"formFields\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetY\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Selector.prototype, \"pivot\", void 0);\n return Selector;\n}(ChildProperty));\nexport { Selector };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { Rect } from '../../primitives/rect';\nimport { measurePath } from './../../utility/dom-util';\nimport { processPathData, splitArrayCollection, transformPath, getPathString } from '../../utility/path-util';\n/**\n * PathElement takes care of how to align the path based on offsetX and offsetY\n */\nvar PathElement = /** @class */ (function (_super) {\n __extends(PathElement, _super);\n /**\n * set the id for each element\n */\n function PathElement() {\n var _this = _super.call(this) || this;\n /**\n * Gets or sets the geometry of the path element\n */\n _this.pathData = '';\n /**\n * Gets/Sets whether the path has to be transformed to fit the given x,y, width, height\n */\n _this.transformPath = true;\n /**\n * Gets/Sets the equivalent path, that will have the origin as 0,0\n */\n _this.absolutePath = '';\n /** @private */\n _this.canMeasurePath = false;\n //Private variables\n /** @private */\n _this.absoluteBounds = new Rect();\n return _this;\n }\n Object.defineProperty(PathElement.prototype, \"data\", {\n /**\n * Gets the geometry of the path element\n */\n get: function () {\n return this.pathData;\n },\n /**\n * Sets the geometry of the path element\n */\n set: function (value) {\n if (this.pathData !== value) {\n this.pathData = value;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that is required to render the element\n * @param availableSize\n */\n PathElement.prototype.measure = function (availableSize) {\n //Performance issue - Avoiding measuring the connector path\n if (this.staticSize && this.width !== undefined && this.height !== undefined) {\n this.absoluteBounds = new Rect(this.offsetX - this.width * this.pivot.x, this.offsetY - this.height * this.pivot.y, this.width, this.height);\n }\n else if (this.isDirt && (this.transformPath || (this.width === undefined || this.height === undefined))\n && (!this.absoluteBounds || this.absoluteBounds.height === 0) || this.canMeasurePath) {\n //Measure the element only whent the path data is changed/ size is not specified\n this.absoluteBounds = measurePath(this.data ? this.data : '');\n }\n if (this.width === undefined) {\n this.desiredSize = new Size(this.absoluteBounds.width, this.height || this.absoluteBounds.height);\n }\n else if (this.height === undefined) {\n this.desiredSize = new Size(this.width || this.absoluteBounds.width, this.absoluteBounds.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n this.canMeasurePath = false;\n return this.desiredSize;\n };\n /**\n * Arranges the path element\n * @param desiredSize\n */\n PathElement.prototype.arrange = function (desiredSize) {\n if (this.isDirt || this.actualSize.width !== desiredSize.width || this.actualSize.height !== desiredSize.height) {\n this.isDirt = true;\n this.absolutePath = this.updatePath(this.data, this.absoluteBounds, desiredSize);\n if (!this.staticSize) {\n this.points = null;\n }\n }\n this.actualSize = this.desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n /**\n * Translates the path to 0,0 and scales the path based on the actual size\n * @param pathData\n * @param bounds\n * @param actualSize\n */\n PathElement.prototype.updatePath = function (pathData, bounds, actualSize) {\n var isScale = false;\n var newPathString = '';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n if (actualSize.width !== bounds.width || actualSize.height !== bounds.height) {\n scaleX = actualSize.width / Number(bounds.width ? bounds.width : 1);\n scaleY = actualSize.height / Number(bounds.height ? bounds.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(pathData);\n arrayCollection = splitArrayCollection(arrayCollection);\n if ((isScale || this.isDirt) && this.transformPath) {\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bounds.x, bounds.y, 0, 0);\n }\n else {\n newPathString = getPathString(arrayCollection);\n }\n isScale = false;\n return newPathString;\n };\n return PathElement;\n}(DrawingElement));\nexport { PathElement };\n","import { PathElement, Rect, Point, Size, RotateTransform, TextElement, randomId, identityMatrix, rotateMatrix, transformPointByMatrix, intersect3 } from '@syncfusion/ej2-drawings';\nimport { setElementStype, findPointsLength } from './drawing-util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation points.\n * @returns {PointModel[]} - Returns the annotation points model array.\n */\nexport function getConnectorPoints(obj, points) {\n points = obj.vertexPoints;\n var newPoints = points.slice(0);\n if (newPoints && newPoints.length > 0) {\n obj.sourcePoint = newPoints[0];\n obj.targetPoint = newPoints[newPoints.length - 1];\n }\n return newPoints;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PointModel[]} points - Specified the annotation points.\n * @returns {string} - Returns the annotation path value.\n */\nexport function getSegmentPath(connector, points) {\n var path = '';\n var getPt;\n var pts = [];\n var j = 0;\n while (j < points.length) {\n pts.push({ x: points[parseInt(j.toString(), 10)].x, y: points[parseInt(j.toString(), 10)].y });\n j++;\n }\n pts = clipDecorators(connector, pts);\n for (var k = 0; k < pts.length; k++) {\n getPt = pts[parseInt(k.toString(), 10)];\n if (k === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n if (k > 0) {\n path += ' ' + 'L' + getPt.x + ' ' + getPt.y;\n }\n }\n return path;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PointModel[]} points - Specified the annotation points.\n * @param {PathElement} element - Specified the annotation element.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function updateSegmentElement(connector, points, element) {\n var bounds = new Rect();\n var segmentPath = getSegmentPath(connector, points);\n bounds = Rect.toBounds(points);\n element.width = bounds.width;\n element.height = bounds.height;\n element.offsetX = bounds.x + element.width / 2;\n element.offsetY = bounds.y + element.height / 2;\n element.data = segmentPath;\n if (connector.wrapper) {\n connector.wrapper.offsetX = element.offsetX;\n connector.wrapper.offsetY = element.offsetY;\n connector.wrapper.width = bounds.width;\n connector.wrapper.height = bounds.height;\n }\n return element;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PathElement} segmentElement - Specified the annotation segment element.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function getSegmentElement(connector, segmentElement) {\n var points = [];\n points = getConnectorPoints(connector);\n segmentElement.staticSize = true;\n segmentElement = updateSegmentElement(connector, points, segmentElement);\n setElementStype(connector, segmentElement);\n return segmentElement;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {DrawingElement} element - Specified the annotation drawing element.\n * @param {PointModel} pt - Specified the annotation point.\n * @param {PointModel} adjacentPoint - Specified the annotation adjacent point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {void}\n */\nexport function updateDecoratorElement(obj, element, pt, adjacentPoint, isSource) {\n element.offsetX = pt.x;\n element.offsetY = pt.y;\n var angle = Point.findAngle(pt, adjacentPoint);\n var getPath = getDecoratorShape(isSource ? obj.sourceDecoraterShapes : obj.taregetDecoraterShapes);\n var thickness = 0;\n var size;\n if (obj.shapeAnnotationType === 'LineWidthArrowHead') {\n thickness = obj.thickness;\n size = new Size(thickness * 12, thickness * 12);\n }\n else {\n thickness = obj.thickness <= 5 ? 5 : obj.thickness;\n size = new Size(thickness * 2, thickness * 2);\n }\n element.transform = RotateTransform.Self;\n setElementStype(obj, element);\n element.style.fill = (obj.fillColor !== 'tranparent') ? obj.fillColor : 'white';\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n if (obj.sourceDecoraterShapes === 'Butt') {\n element.width = size.width - 10;\n element.height = size.height + 10;\n }\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel} offsetPoint - Specified the annotation offset point.\n * @param {PointModel} adjacentPoint - Specified the annotation adjacent point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function getDecoratorElement(obj, offsetPoint, adjacentPoint, isSource) {\n var decEle = new PathElement();\n updateDecoratorElement(obj, decEle, offsetPoint, adjacentPoint, isSource);\n return decEle;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation object.\n * @param {PointModel[]} pts - Specified the annotation point model array.\n * @returns {PointModel[]} - Returns the annotation point model array.\n */\nexport function clipDecorators(connector, pts) {\n pts[0] = clipDecorator(connector, pts, true);\n pts[pts.length - 1] = clipDecorator(connector, pts, false);\n return pts;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector object.\n * @param {PointModel[]} points - Specified the annotation offset point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {PointModel} - Returns the annotation point model.\n */\nexport function clipDecorator(connector, points, isSource) {\n var point = { x: 0, y: 0 };\n var start = { x: 0, y: 0 };\n var end = { x: 0, y: 0 };\n var length = points.length;\n start = !isSource ? points[length - 1] : points[0];\n end = !isSource ? points[length - 2] : points[1];\n var len = Point.distancePoints(start, end);\n len = (len === 0) ? 1 : len;\n var width = connector.thickness;\n point.x = (Math.round(start.x + width * (end.x - start.x) / len));\n point.y = (Math.round(start.y + width * (end.y - start.y) / len));\n var strokeWidth = 1;\n point = Point.adjustPoint(point, end, true, (strokeWidth / 2));\n return point;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @param {PdfViewer} pdfviewer - Specified the pdfviewer element.\n * @hidden\n * @returns {TextElement[]} - Returns the text element collections.\n */\n// eslint-disable-next-line max-len\nexport function initDistanceLabel(obj, points, measure, pdfviewer) {\n var labels = [];\n var angle = Point.findAngle(points[0], points[1]);\n var textele = textElement(obj, angle);\n if (!pdfviewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = measure.setConversion(findPointsLength([points[0], points[1]]) * measure.pixelToPointFactor, obj);\n }\n textele.rotateValue = { y: -10, angle: angle };\n if (obj.enableShapeLabel === true) {\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n }\n labels.push(textele);\n return labels;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the distance value.\n */\nexport function updateDistanceLabel(obj, points, measure) {\n var distance;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_1 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_1 && !isNullOrUndefined(textElement_1.content)) {\n distance = measure.setConversion(findPointsLength([points[0], points[1]]) * measure.pixelToPointFactor, obj);\n textElement_1.content = distance;\n textElement_1.childNodes[0].text = textElement_1.content;\n textElement_1.refreshTextElement();\n }\n }\n return distance;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the radius label value.\n */\nexport function updateRadiusLabel(obj, measure) {\n var radius;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_2 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_2 && !isNullOrUndefined(textElement_2.content)) {\n radius = measure.setConversion((obj.bounds.width / 2) * measure.pixelToPointFactor, obj);\n textElement_2.content = radius;\n if (textElement_2.childNodes.length === 2) {\n textElement_2.childNodes[0].text = radius;\n textElement_2.childNodes.splice(textElement_2.childNodes.length - 1, 1);\n }\n else {\n textElement_2.childNodes[0].text = radius;\n }\n textElement_2.refreshTextElement();\n }\n }\n return radius;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @param {PdfViewer} pdfviewer - Specified the pdfviewer element.\n * @hidden\n * @returns {TextElement[]} - Returns the text element collections.\n */\n// eslint-disable-next-line max-len\nexport function initPerimeterLabel(obj, points, measure, pdfviewer) {\n var labels = [];\n var angle = Point.findAngle(points[0], points[1]);\n var textele = textElement(obj, angle);\n if (!pdfviewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = measure.calculatePerimeter(obj);\n }\n if (obj.enableShapeLabel === true) {\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n }\n textele.rotateValue = { y: -10, angle: angle };\n labels.push(textele);\n return labels;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the perimeter label value.\n */\nexport function updatePerimeterLabel(obj, points, measure) {\n var perimeter;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_3 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_3 && !isNullOrUndefined(textElement_3.content)) {\n perimeter = measure.calculatePerimeter(obj);\n textElement_3.content = perimeter;\n textElement_3.childNodes[0].text = textElement_3.content;\n textElement_3.refreshTextElement();\n }\n }\n return perimeter;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @hidden\n * @returns {void}\n */\nexport function removePerimeterLabel(obj) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_4 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_4 && !isNullOrUndefined(textElement_4.content)) {\n obj.wrapper.children.splice(i, 1);\n }\n }\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @hidden\n * @returns {void}\n */\nexport function updateCalibrateLabel(obj) {\n if (obj.wrapper && obj.wrapper.children) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_5 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_5 && !isNullOrUndefined(textElement_5.content)) {\n textElement_5.content = obj.notes;\n textElement_5.childNodes[0].text = textElement_5.content;\n textElement_5.refreshTextElement();\n }\n }\n }\n}\n/**\n * Used to find the path for polygon shapes\n *\n * @param {PointModel[]} collection - Specified the polygon annotaion points collection.\n * @hidden\n * @returns {string} - Returns the polygon annotation path.\n */\nexport function getPolygonPath(collection) {\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n path += 'Z';\n return path;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {number} angle - Specified the annotaion rotation angle.\n * @hidden\n * @returns {TextElement} - Returns the annotation text element.\n */\nexport function textElement(obj, angle) {\n var textele = new TextElement();\n setElementStype(obj, textele);\n textele.style.fill = 'transparent';\n textele.id = randomId();\n textele.horizontalAlignment = 'Center';\n textele.rotateValue = { y: 10, angle: angle };\n textele.verticalAlignment = 'Top';\n textele.relativeMode = 'Object';\n textele.setOffsetWithRespectToBounds(.5, .5, 'Absolute');\n // eslint-disable-next-line\n textele.offsetX;\n textele.style.textWrapping = 'NoWrap';\n return textele;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotaion leader points.\n * @hidden\n * @returns {PathElement[]} - Returns the annotation path elements.\n */\nexport function initLeaders(obj, points) {\n var leaders = [];\n var leader = initLeader(obj, points[0], points[1]);\n leaders.push(leader);\n leader = initLeader(obj, points[1], points[0], true);\n leaders.push(leader);\n return leaders;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel} point1 - Specified the annotaion leader point1.\n * @param {PointModel} point2 - Specified the annotaion leader point2.\n * @param {boolean} isSecondLeader - Specified the is second leader or not.\n * @hidden\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function initLeader(obj, point1, point2, isSecondLeader) {\n var element = new PathElement();\n element.offsetX = point1.x;\n element.offsetY = point1.y;\n var angle = Point.findAngle(point1, point2);\n var center = { x: (point1.x + point2.x) / 2, y: (point1.y + point2.y) / 2 };\n var matrix = identityMatrix();\n rotateMatrix(matrix, 0 - angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, point1);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y - obj.leaderHeight };\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n rotatedPoint = transformPointByMatrix(matrix, newPoint1);\n var finalPoint = { x: point1.x, y: point1.y };\n element.offsetX = finalPoint.x;\n element.offsetY = finalPoint.y;\n element.transform = RotateTransform.Self;\n var getPath = 'M' + point1.x + ',' + point1.y + ',L' + rotatedPoint.x + ',' + rotatedPoint.y + 'Z';\n var size = new Size(0, obj.leaderHeight);\n element.pivot.x = .5;\n if (isSecondLeader) {\n element.id = 'leader2_' + randomId();\n element.pivot.y = 0;\n }\n else {\n element.id = 'leader1_' + randomId();\n element.pivot.y = 1;\n }\n setElementStype(obj, element);\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n return element;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector object.\n * @param {PointModel} reference - Specified the pointer reference value.\n * @returns {boolean} - Returns true or false.\n */\nexport function isPointOverConnector(connector, reference) {\n var vertexPoints = connector.vertexPoints;\n if (!isNullOrUndefined(vertexPoints)) {\n for (var i = 0; i < vertexPoints.length - 1; i++) {\n var start = vertexPoints[parseInt(i.toString(), 10)];\n var end = vertexPoints[i + 1];\n var rect = Rect.toBounds([start, end]);\n rect.Inflate(10);\n if (rect.containsPoint(reference)) {\n var intersectinPt = findNearestPoint(reference, start, end);\n var segment1 = { x1: start.x, x2: end.x, y1: start.y, y2: end.y };\n var segment2 = { x1: reference.x, x2: intersectinPt.x, y1: reference.y, y2: intersectinPt.y };\n var intersectDetails = intersect3(segment1, segment2);\n if (intersectDetails.enabled) {\n var distance = Point.findLength(reference, intersectDetails.intersectPt);\n if (Math.abs(distance) < 10) {\n return true;\n }\n }\n else {\n var rect_1 = Rect.toBounds([reference, reference]);\n rect_1.Inflate(3);\n if (rect_1.containsPoint(start) || rect_1.containsPoint(end)) {\n return true;\n }\n }\n if (Point.equals(reference, intersectinPt)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n/**\n * @param {PointModel} reference - Specified the pointer reference value.\n * @param {PointModel} start - Specified the pointer start value.\n * @param {PointModel} end - Specified the pointer end value.\n * @private\n * @returns {PointModel} - Returns annotation point model.\n */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/**\n * @param {DecoratorShapes} shape - Specified the annotation decorator shapes.\n * @hidden\n * @returns {string} - Returns the annotation decorator shape value.\n */\nexport function getDecoratorShape(shape) {\n // eslint-disable-next-line\n return decoratorShapes[shape];\n}\nvar decoratorShapes = {\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Fletch': 'M14.8,10c0,0-3.5,6,0.2,12c0,0-2.5-6-10.9-6C4.1,16,11.3,16,14.8,10z',\n 'OpenFetch': 'M6,17c-0.6,0-1-0.4-1-1s0.4-1,1-1c10.9,0,11-5,11-5' +\n 'c0-0.6,0.4-1,1-1s1,0.4,1,1C19,10.3,18.9,17,6,17C6,17,6,17,6,17z ' +\n 'M18,23c-0.5,0-1-0.4-1-1c0-0.2-0.3-5-11-5c-0.6,0-1-0.5-1-1s0.4-1,1-1c0,0,0,0,0,0' +\n 'c12.9,0,13,6.7,13,7 C19,22.6,18.6,23,18,23z',\n 'IndentedArrow': 'M17,10c0,0-4.5,5.5,0,12L5,16L17,10z',\n 'OutdentedArrow': 'M14.6,10c0,0,5.4,6,0,12L5,16L14.6,10z',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M12,23l-7-7l7-7l6.9,7L12,23z',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z',\n 'Butt': 'M0,0 L0,90'\n};\n","import { contains } from '@syncfusion/ej2-drawings';\nimport { Rect } from '@syncfusion/ej2-drawings';\nimport { Point, identityMatrix, rotateMatrix } from '@syncfusion/ej2-drawings';\nimport { Container, transformPointByMatrix } from '@syncfusion/ej2-drawings';\nimport { isPointOverConnector } from './connector-util';\nimport { LineTool, NodeDrawingTool, StampTool } from './tools';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n * @param {MouseEvent | TouchEvent} event - Specified the annotaion event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @param {boolean} isOverlapped - Specified the overlapped element or not.\n * @returns {any} - Returns the active element.\n */\n// eslint-disable-next-line\nexport function findActiveElement(event, pdfBase, pdfViewer, isOverlapped) {\n if (pdfViewer && pdfBase.activeElements.activePageID > -1) {\n var objects = findObjectsUnderMouse(pdfBase, pdfViewer, event);\n var object = findObjectUnderMouse(objects, event, pdfBase, pdfViewer);\n if (isOverlapped) {\n return objects;\n }\n return object;\n }\n return undefined;\n}\n/**\n * @private\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @param {MouseEvent} event - Specified the annotaion event.\n * @returns {IElement[]} - Returns the annotaion elements.\n */\nexport function findObjectsUnderMouse(pdfBase, pdfViewer, event) {\n var pt = pdfBase.currentPosition || { x: event.offsetX, y: event.offsetY };\n pt = { x: pt.x / pdfBase.getZoomFactor(), y: pt.y / pdfBase.getZoomFactor() };\n var pageTable = pdfViewer.getPageTable(pdfBase.activeElements.activePageID);\n var objArray = findObjects(pt, pageTable.objects, pdfViewer.touchPadding);\n return objArray;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel[]} objects - Specified the annotaion object model.\n * @param {any} event - Specified the annotaion event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @returns {IElement} - Returns the annotaion element.\n */\nexport function findObjectUnderMouse(\n// eslint-disable-next-line\nobjects, event, pdfBase, pdfViewer) {\n var actualTarget = null;\n var touchArg;\n var offsetX;\n var offsetY;\n if (event && event.type && event.type.indexOf('touch') !== -1) {\n touchArg = event;\n if (pdfViewer.annotation) {\n var pageDiv = pdfBase.getElement('_pageDiv_' + pdfViewer.annotation.getEventPageNumber(event));\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = touchArg.changedTouches[0].clientX - pageCurrentRect.left;\n offsetY = touchArg.changedTouches[0].clientY - pageCurrentRect.top;\n }\n }\n // eslint-disable-next-line\n }\n else if (event && event.target && event.path && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.path[4].getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n }\n else if (event.target && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (event.target && event.target.parentElement && event.target.parentElement.parentElement && event.target.parentElement.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.target.offsetParent.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else {\n offsetX = !isNaN(event.offsetX) ? event.offsetX : (event.position ? event.position.x : 0);\n offsetY = !isNaN(event.offsetY) ? event.offsetY : (event.position ? event.position.y : 0);\n }\n //EJ2-63562 - Reduced the offset selector by half to improve selection of fields in mobile devices\n var offsetForSelector = pdfViewer.touchPadding / 2;\n var boundsDiff = 0;\n for (var i = 0; i < objects.length; i++) {\n if (!(objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Distance' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Line' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'LineWidthArrowHead' || pdfBase.tool instanceof LineTool)) {\n var bounds = objects[parseInt(i.toString(), 10)].wrapper.bounds;\n var rotationValue = 0;\n if (objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Stamp' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Image') {\n rotationValue = 25;\n }\n // eslint-disable-next-line max-len\n if ((((bounds.x - offsetForSelector) * pdfBase.getZoomFactor()) < offsetX) && (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) > offsetX) &&\n // eslint-disable-next-line max-len\n (((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor()) < offsetY) && (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) > offsetY)) {\n if (pdfBase.tool instanceof NodeDrawingTool || pdfBase.tool instanceof StampTool) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n else {\n if (!boundsDiff) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n boundsDiff = (offsetX - ((bounds.x - offsetForSelector) * pdfBase.getZoomFactor())) + (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) - offsetX) +\n // eslint-disable-next-line max-len\n (offsetY - ((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor())) + (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) - offsetY);\n }\n else {\n // eslint-disable-next-line max-len\n var objectBounds = (offsetX - ((bounds.x - offsetForSelector) * pdfBase.getZoomFactor())) + (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) - offsetX) +\n // eslint-disable-next-line max-len\n (offsetY - ((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor())) + (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) - offsetY);\n if (boundsDiff > objectBounds) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n boundsDiff = objectBounds;\n }\n else if (boundsDiff === objectBounds) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n boundsDiff = objectBounds;\n }\n else if ((objects[parseInt(i.toString(), 10)].shapeAnnotationType === \"Image\") || (objects[parseInt(i.toString(), 10)].shapeAnnotationType === \"Stamp\")) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n }\n else {\n var pt = { x: offsetX / pdfBase.getZoomFactor(), y: offsetY / pdfBase.getZoomFactor() };\n var obj = findElementUnderMouse(objects[parseInt(i.toString(), 10)], pt, offsetForSelector);\n var isOver = isPointOverConnector(objects[parseInt(i.toString(), 10)], pt);\n if (obj && !isOver) {\n var newpoint = CalculateLeaderPoints(objects[parseInt(i.toString(), 10)], obj);\n if (newpoint) {\n var rect = Rect.toBounds([newpoint, newpoint]);\n rect.Inflate(10);\n if (rect.containsPoint(pt)) {\n isOver = true;\n }\n }\n }\n if (obj && isOver) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n }\n }\n return actualTarget;\n}\n/**\n * @private\n * @param {any} selector - Specified the annotaion selctor.\n * @param {any} currentobject - Specified the current annotaion object.\n * @returns {any} - Returns the leader points.\n */\n// eslint-disable-next-line\nexport function CalculateLeaderPoints(selector, currentobject) {\n var leaderCount = 0;\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n if (selector.shapeAnnotationType === 'Distance') {\n var segment = currentobject;\n var newPoint1 = void 0;\n var angle = Point.findAngle(selector.sourcePoint, selector.targetPoint);\n if (segment.id.indexOf('leader') > -1) {\n var center = selector.wrapper.children[0].bounds.center;\n if (leaderCount === 0 && segment.id.indexOf('leader1') > -1) {\n newPoint1 = { x: selector.sourcePoint.x, y: selector.sourcePoint.y - selector.leaderHeight };\n center = sourcePoint;\n }\n else {\n newPoint1 = { x: selector.targetPoint.x, y: selector.targetPoint.y - selector.leaderHeight };\n center = targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n return rotatedPoint;\n }\n }\n}\n/**\n * @private\n * @param {IElement} obj - Specified the annotation element.\n * @param {PointModel} position - Specified the annotation position value.\n * @param {number} padding - Specified the annotation padding.\n * @returns {DrawingElement} - Returns the annotation drawing element.\n */\nexport function findElementUnderMouse(obj, position, padding) {\n return findTargetShapeElement(obj.wrapper, position, padding);\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object model.\n * @param {string} key - Specified the annotation key value.\n * @param {Object[]} collection - Specified the annotation collection.\n * @returns {void}\n */\nexport function insertObject(obj, key, collection) {\n if (collection.length === 0) {\n collection.push(obj);\n }\n else if (collection.length === 1) {\n // eslint-disable-next-line\n if (collection[0][key] > obj[key]) {\n collection.splice(0, 0, obj);\n }\n else {\n collection.push(obj);\n }\n }\n else if (collection.length > 1) {\n var low = 0;\n var high = collection.length - 1;\n var mid = Math.floor((low + high) / 2);\n while (mid !== low) {\n // eslint-disable-next-line\n if (collection[mid][key] < obj[key]) {\n low = mid;\n mid = Math.floor((low + high) / 2);\n // eslint-disable-next-line\n }\n else if (collection[mid][key] > obj[key]) {\n high = mid;\n mid = Math.floor((low + high) / 2);\n }\n }\n // eslint-disable-next-line\n if (collection[high][key] < obj[key]) {\n collection.push(obj);\n // eslint-disable-next-line\n }\n else if (collection[low][key] > obj[key]) {\n collection.splice(low, 0, obj);\n // eslint-disable-next-line\n }\n else if ((collection[low][key] < obj[key]) && collection[high][key] > obj[key]) {\n collection.splice(high, 0, obj);\n }\n }\n}\n/**\n * @private\n * @param {Container} container - Specified the annotaion container.\n * @param {PointModel} position - Specified the annotation position.\n * @param {number} padding - Specified the annotaion padding value.\n * @returns {DrawingElement} - Returns the annotation drawing element.\n */\nexport function findTargetShapeElement(container, position, padding) {\n if (container && container.children) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var shapeElement = container.children[parseInt(i.toString(), 10)];\n var touchPadding = padding;\n // eslint-disable-next-line\n if (!isNullOrUndefined(shapeElement.children) && shapeElement.children.length > 0) {\n // eslint-disable-next-line\n for (var j = shapeElement.children.length - 1; j >= 0; j--) {\n // eslint-disable-next-line\n var currentTarget = shapeElement.children[j];\n if (currentTarget && currentTarget.bounds.containsPoint(position, touchPadding)) {\n if (currentTarget instanceof Container) {\n var targetElement = this.findTargetElement(currentTarget, position);\n if (targetElement) {\n return targetElement;\n }\n }\n if (currentTarget.bounds.containsPoint(position, touchPadding)) {\n return currentTarget;\n }\n }\n }\n }\n else {\n if (shapeElement && shapeElement.bounds.containsPoint(position, touchPadding)) {\n if (shapeElement instanceof Container) {\n var targetElement = this.findTargetElement(shapeElement, position);\n if (targetElement) {\n return targetElement;\n }\n }\n if (shapeElement.bounds.containsPoint(position, touchPadding)) {\n return shapeElement;\n }\n }\n }\n }\n }\n if (container && container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n var element = container;\n var paddingValue = 10;\n var rotateThumbDistance = 30;\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.parentTransform, element.offsetX, element.offsetY);\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - rotateThumbDistance\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n if (contains(position, rotateThumb, paddingValue)) {\n return container;\n }\n }\n return null;\n}\n/**\n * @private\n * @param {PointModel} region - Specified the annotation region point model.\n * @param {PdfAnnotationBaseModel[]} objCollection - Specified the annotation object collections.\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation object collections.\n */\nexport function findObjects(region, objCollection, touchPadding) {\n var objects = [];\n for (var _i = 0, objCollection_1 = objCollection; _i < objCollection_1.length; _i++) {\n var obj = objCollection_1[_i];\n if (findElementUnderMouse(obj, region, touchPadding) || ((obj.shapeAnnotationType === 'Stamp') && findElementUnderMouse(obj, region, 40))) {\n insertObject(obj, 'zIndex', objects);\n }\n }\n return objects;\n}\n/**\n * @private\n * @param {MouseEvent} event - Specified the annotaion mouse event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfBase element.\n * @returns {number} - Returns the active page Id.\n */\nexport function findActivePage(event, pdfBase) {\n var activePageID = undefined;\n if (event.target && event.target.wrapper) {\n return event.target.pageIndex;\n }\n if (event.target) {\n var elementIdColl = event.target.id.split('_');\n if (elementIdColl.length > 0) {\n // eslint-disable-next-line radix\n activePageID = parseInt(elementIdColl[elementIdColl.length - 1]);\n }\n }\n return activePageID;\n}\n/**\n * @hidden\n */\nvar ActiveElements = /** @class */ (function () {\n function ActiveElements() {\n this.activePage = undefined;\n this.activePageID = undefined;\n }\n Object.defineProperty(ActiveElements.prototype, \"activePageID\", {\n /**\n * @private\n * @returns {number} - Returns the active page Id.\n */\n get: function () {\n return this.activePage;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.activePage = offset;\n // eslint-disable-next-line\n if (offset !== this.activePage) { }\n },\n enumerable: true,\n configurable: true\n });\n return ActiveElements;\n}());\nexport { ActiveElements };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { randomId, Point } from '@syncfusion/ej2-drawings';\nimport { rotatePoint } from '@syncfusion/ej2-drawings';\nimport { Rect } from '@syncfusion/ej2-drawings';\nimport { transformPointByMatrix, rotateMatrix, identityMatrix } from '@syncfusion/ej2-drawings';\nimport { TextElement } from '@syncfusion/ej2-drawings';\nimport { Selector } from './selector';\nimport { findActiveElement } from './action';\nimport { cloneObject, isLineShapes } from './drawing-util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { updatePerimeterLabel } from './connector-util';\nimport { Browser } from '@syncfusion/ej2-base';\n/**\n * Defines the interactive tools\n *\n * @hidden\n */\nvar ToolBase = /** @class */ (function () {\n /**\n * Initializes the tool\n *\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer component.\n * @param {PdfViewerBase} pdfViewerBase - Specified the pdfViewer base component.\n * @param {boolean} protectChange - Set the default value as false.\n */\n function ToolBase(pdfViewer, pdfViewerBase, protectChange) {\n if (protectChange === void 0) { protectChange = false; }\n /**\n * Command that is corresponding to the current action\n */\n this.commandHandler = null;\n /**\n * Sets/Gets whether the interaction is being done\n */\n this.inAction = false;\n /**\n * Sets/Gets the protect change\n */\n this.pdfViewerBase = null;\n /**\n * Sets/Gets the current element that is under mouse\n */\n /** @private */\n this.currentElement = null;\n /** @private */\n this.blocked = false;\n this.isTooltipVisible = false;\n /** @private */\n this.childTable = {};\n /** @private */\n this.helper = undefined;\n /**\n * Sets/Gets the previous object when mouse down\n */\n this.undoElement = { annotations: [] };\n this.undoParentElement = { annotations: [] };\n this.commandHandler = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param {IElement} currentElement - Specified the current element.\n * @returns {void}\n */\n ToolBase.prototype.startAction = function (currentElement) {\n this.currentElement = currentElement;\n this.inAction = true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseDown = function (args) {\n this.currentElement = args.source;\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.isTooltipVisible = true;\n this.startAction(args.source);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ToolBase.prototype.mouseMove = function (args) {\n this.currentPosition = args.position;\n //this.currentElement = currentElement;\n this.prevPageId = this.pdfViewerBase.activeElements.activePageID;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseUp = function (args) {\n this.currentPosition = args.position;\n // this.currentElement = currentElement;\n this.isTooltipVisible = false;\n //At the end\n this.endAction();\n this.helper = null;\n };\n ToolBase.prototype.endAction = function () {\n //remove helper\n if (this.commandHandler) {\n this.commandHandler.tool = '';\n if (this.helper) {\n this.commandHandler.remove(this.helper);\n }\n }\n this.commandHandler = null;\n this.currentElement = null;\n this.currentPosition = null;\n this.inAction = false;\n this.blocked = false;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse wheel event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseWheel = function (args) {\n this.currentPosition = args.position;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse leave event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n // eslint-disable-next-line\n ToolBase.prototype.updateSize = function (shape, startPoint, endPoint, corner, initialBounds, angle, isMouseUp) {\n var zoom = this.commandHandler.viewerBase.getZoomFactor();\n var difx = this.currentPosition.x / zoom - this.startPosition.x / zoom;\n var dify = this.currentPosition.y / zoom - this.startPosition.y / zoom;\n var rotateAngle = (shape instanceof TextElement) ? angle : shape.rotateAngle;\n var matrix = identityMatrix();\n rotateMatrix(matrix, -rotateAngle, 0, 0);\n var deltaWidth = 0;\n var deltaHeight = 0;\n var diff;\n var width = (shape instanceof TextElement) ? shape.actualSize.width : shape.wrapper.bounds.width;\n var height = (shape instanceof TextElement) ? shape.actualSize.height : shape.wrapper.bounds.height;\n // eslint-disable-next-line\n var obj = shape;\n if (!shape.formFieldAnnotationType) {\n if (!shape.annotName && !shape.shapeAnnotationType) {\n if (shape) {\n // eslint-disable-next-line\n obj = shape.annotations[0];\n }\n }\n }\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n var isAnnotationSet = false;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n isAnnotationSet = true;\n }\n if (isAnnotationSet && isMouseUp) {\n // eslint-disable-next-line\n var size = this.getPositions(corner, difx, dify);\n var newWidth = width + size.x;\n var newHeight = height + size.y;\n // eslint-disable-next-line max-len\n if ((newHeight > annotationMinHeight && newHeight < annotationMaxHeight) && (newWidth > annotationMinWidth && newWidth < annotationMaxWidth)) {\n // eslint-disable-next-line\n difx = difx;\n // eslint-disable-next-line\n dify = dify;\n }\n else {\n if (newHeight < annotationMinHeight || newHeight > annotationMaxHeight) {\n if (newHeight < annotationMinHeight) {\n dify = annotationMinHeight - height;\n }\n else {\n dify = annotationMaxHeight - height;\n }\n }\n if (newWidth < annotationMinWidth || newWidth > annotationMaxWidth) {\n if (newWidth < annotationMinWidth) {\n difx = annotationMinWidth - width;\n }\n else {\n difx = annotationMaxWidth - width;\n }\n }\n }\n }\n switch (corner) {\n case 'ResizeWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n deltaHeight = 1;\n // eslint-disable-next-line\n difx = difx;\n dify = 0;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n break;\n case 'ResizeEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = 0;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n }\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = 1;\n break;\n case 'ResizeNorth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n case 'ResizeNorthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeNorthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height + dify) / height;\n deltaWidth = (initialBounds.width + difx) / width;\n break;\n case 'ResizeSouthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n }\n return { width: deltaWidth, height: deltaHeight };\n };\n ToolBase.prototype.getPivot = function (corner) {\n switch (corner) {\n case 'ResizeWest':\n return { x: 1, y: 0.5 };\n case 'ResizeEast':\n return { x: 0, y: 0.5 };\n case 'ResizeNorth':\n return { x: 0.5, y: 1 };\n case 'ResizeSouth':\n return { x: 0.5, y: 0 };\n case 'ResizeNorthEast':\n return { x: 0, y: 1 };\n case 'ResizeNorthWest':\n return { x: 1, y: 1 };\n case 'ResizeSouthEast':\n return { x: 0, y: 0 };\n case 'ResizeSouthWest':\n return { x: 1, y: 0 };\n }\n return { x: 0.5, y: 0.5 };\n };\n ToolBase.prototype.getPositions = function (corner, x, y) {\n switch (corner) {\n case 'ResizeEast':\n return { x: x, y: 0 };\n case 'ResizeSouthEast':\n return { x: x, y: y };\n case 'ResizeSouth':\n return { x: 0, y: y };\n case 'ResizeNorth':\n return { x: 0, y: -y };\n case 'ResizeNorthEast':\n return { x: x, y: -y };\n case 'ResizeNorthWest':\n return { x: -x, y: -y };\n case 'ResizeWest':\n return { x: -x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -x, y: y };\n }\n return { x: x, y: y };\n };\n return ToolBase;\n}());\nexport { ToolBase };\n/**\n * Helps to select the objects\n *\n * @hidden\n */\nvar SelectTool = /** @class */ (function (_super) {\n __extends(SelectTool, _super);\n function SelectTool(commandHandler, base) {\n return _super.call(this, commandHandler, base, true) || this;\n // this.action = action;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse down event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.mouseEventHelper(args);\n _super.prototype.mouseDown.call(this, args);\n };\n SelectTool.prototype.mouseEventHelper = function (args) {\n if (this.commandHandler && this.commandHandler.annotationModule) {\n // eslint-disable-next-line\n this.commandHandler.annotationModule.overlappedCollections = findActiveElement(args, this.pdfViewerBase, this.commandHandler, true);\n }\n // eslint-disable-next-line\n var object = findActiveElement(args, this.pdfViewerBase, this.commandHandler);\n // if (!isNullOrUndefined(object) && (object as any).shapeAnnotationType != 'Path'){\n var isLock = false;\n // eslint-disable-next-line\n if (object && object.shapeAnnotationType === 'StickyNotes') {\n // eslint-disable-next-line\n if (object.annotationSettings && object.annotationSettings.isLock) {\n if (this.commandHandler.annotationModule.checkAllowedInteractions('Select', object)) {\n isLock = false;\n }\n else {\n isLock = true;\n }\n }\n }\n if (!isLock) {\n // eslint-disable-next-line\n var currentSelctor = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelctor = args.source.annotationSelectorSettings;\n }\n else {\n currentSelctor = '';\n }\n if (this.commandHandler) {\n var selectedObject = this.commandHandler.selectedItems;\n if (selectedObject) {\n // eslint-disable-next-line\n var annotation = selectedObject.annotations[0];\n // eslint-disable-next-line\n var formField = selectedObject.formFields[0];\n var currentAnnot = this.commandHandler.selectedItems.annotations[0];\n var currentSource = args.source;\n if ((selectedObject.annotations.length) && args.info && !args.info.ctrlKey\n // eslint-disable-next-line\n && this.commandHandler.annotationModule && this.commandHandler.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === false) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n else if (args.info && args.info.ctrlKey && ((currentSource && currentSource.shapeAnnotationType === 'FreeText') || (currentAnnot && currentAnnot.shapeAnnotationType === 'FreeText'))) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n else if (isNullOrUndefined(object) && this.commandHandler.formDesignerModule && !((currentSource && currentSource.shapeAnnotationType === 'FreeText') || (currentAnnot && (currentAnnot.shapeAnnotationType === 'FreeText' || currentAnnot.shapeAnnotationType === 'Image' || currentAnnot.shapeAnnotationType === 'StickyNotes')))) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n if (object) {\n if (!isNullOrUndefined(this.pdfViewerBase.isFreeTextSelected) && !this.pdfViewerBase.isFreeTextSelected) {\n this.commandHandler.select([object.id], currentSelctor);\n this.commandHandler.viewerBase.isAnnotationMouseDown = true;\n }\n this.pdfViewerBase.isFreeTextSelected = false;\n this.commandHandler.viewerBase.isFormFieldMouseDown = true;\n }\n if (selectedObject.annotations.length === 0 && annotation && annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage' && annotation.shapeAnnotationType !== 'Path' && !annotation.formFieldAnnotationType) {\n if (this.commandHandler.enableToolbar && Browser.isDevice && !this.commandHandler.enableDesktopMode) {\n this.commandHandler.toolbarModule.showToolbar(true);\n }\n this.commandHandler.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n // eslint-disable-next-line max-len\n if (selectedObject.formFields.length === 0 && this.commandHandler.formDesignerModule && formField && formField.formFieldAnnotationType) {\n // eslint-disable-next-line\n var field = { name: formField.name, id: formField.id, value: formField.value, fontFamily: formField.fontFamily, fontSize: formField.fontSize, fontStyle: formField.fontStyle,\n // eslint-disable-next-line\n color: formField.color, backgroundColor: formField.backgroundColor, alignment: formField.alignment, isReadonly: formField.isReadOnly, visibility: formField.visibility,\n // eslint-disable-next-line\n maxLength: formField.maxLength, isRequired: formField.isRequired, isPrint: formField.isPrint, rotation: formField.rotation, tooltip: formField.tooltip,\n // eslint-disable-next-line\n options: formField.options, isChecked: formField.isChecked, isSelected: formField.isSelected };\n this.commandHandler.fireFormFieldUnselectEvent('formFieldUnselect', field, formField.pageIndex);\n }\n else if (this.pdfViewerBase.currentTarget && this.pdfViewerBase.currentTarget.id && this.commandHandler.formFields && event.type === 'mousedown') {\n for (var i = 0; i < this.commandHandler.formFields.length; i++) {\n var formField_1 = this.commandHandler.formFields[parseInt(i.toString(), 10)];\n if (this.pdfViewerBase.currentTarget && this.pdfViewerBase.currentTarget.id === formField_1.id) {\n // eslint-disable-next-line\n var field = {\n value: formField_1.value, fontFamily: formField_1.fontFamily, fontSize: formField_1.fontSize, fontStyle: formField_1.fontStyle,\n // eslint-disable-next-line\n color: formField_1.color, backgroundColor: formField_1.backgroundColor, alignment: formField_1.alignment, isReadonly: formField_1.isReadonly, visibility: formField_1.visibility,\n // eslint-disable-next-line\n maxLength: formField_1.maxLength, isRequired: formField_1.isRequired, isPrint: formField_1.isPrint, rotation: formField_1.rotateAngle, tooltip: formField_1.tooltip,\n // eslint-disable-next-line\n options: formField_1.options, isChecked: formField_1.isChecked, isSelected: formField_1.isSelected\n };\n if (!object) {\n this.commandHandler.fireFocusOutFormField(field, formField_1.pageIndex);\n this.pdfViewerBase.currentTarget = null;\n }\n else {\n if (this.pdfViewerBase.currentTarget.id != event.target.id && event.target.className != 'e-pv-text-layer') {\n this.commandHandler.fireFocusOutFormField(field, formField_1.pageIndex);\n this.pdfViewerBase.currentTarget = null;\n }\n }\n }\n }\n }\n }\n }\n }\n // } else {\n // if (!isNullOrUndefined(this.commandHandler))\n // this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n // }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse move event arguments.\n * @returns {boolean} - Returns true or false.\n */\n SelectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n //draw selected region\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseUp = function (args) {\n this.mouseEventHelper(args);\n this.inAction = false;\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse leave event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return SelectTool;\n}(ToolBase));\nexport { SelectTool };\n/** @hidden */\nvar MoveTool = /** @class */ (function (_super) {\n __extends(MoveTool, _super);\n function MoveTool(commandHandler, base) {\n var _this = _super.call(this, commandHandler, base) || this;\n /** @private */\n _this.currentTarget = null;\n /** @private */\n _this.prevNode = null;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse down event arguments.\n * @returns {void}\n */\n MoveTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.offset = { x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY };\n this.startPosition = args.position;\n var nodeMouseDown = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: nodeMouseDown.wrapper.offsetX, y: nodeMouseDown.wrapper.offsetY,\n width: nodeMouseDown.wrapper.actualSize.width, height: nodeMouseDown.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(nodeMouseDown)) {\n this.redoElement.vertexPoints = nodeMouseDown.vertexPoints;\n this.redoElement.leaderHeight = nodeMouseDown.leaderHeight;\n }\n this.inAction = true;\n };\n /**\n * @private\n * @param {any} args - Specified the mouse event arguments.\n * @returns {void}\n */\n // eslint-disable-next-line\n MoveTool.prototype.mouseUp = function (args) {\n if (this.commandHandler && args.source) {\n this.checkisAnnotationMove(args);\n var currentSelctor = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([args.source.id], currentSelctor);\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.activeElements.activePageID == args.source.pageIndex) {\n this.commandHandler.dragSelectedObjects(this.calculateMouseActionXDiff(args), this.calculateMouseActionYDiff(args), this.pdfViewerBase.activeElements.activePageID, currentSelctor, null);\n }\n if (args.source && (args.source.formFieldAnnotationType === 'Textbox' || args.source.formFieldAnnotationType === 'Checkbox'\n || args.source.formFieldAnnotationType === 'RadioButton' || args.source.formFieldAnnotationType === 'ListBox'\n || args.source.formFieldAnnotationType === 'SignatureField' || args.source.formFieldAnnotationType === 'InitialField' || args.source.formFieldAnnotationType === 'DropdownList'\n || args.source.formFieldAnnotationType === 'PasswordField')) {\n this.commandHandler.formDesignerModule.updateHTMLElement(args.source);\n }\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n this.commandHandler.viewerBase.isAnnotationMouseMove = false;\n this.commandHandler.viewerBase.isFormFieldMouseMove = false;\n // eslint-disable-next-line\n var newShapeObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }, modifiedDate: args.source.modifiedDate\n };\n if (isLineShapes(args.source)) {\n newShapeObject.vertexPoints = args.source.vertexPoints;\n newShapeObject.leaderHeight = args.source.leaderHeight;\n }\n if (args.target && args.target.formFieldAnnotationType) {\n var node = args.target;\n var field = {\n // eslint-disable-next-line\n value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, borderColor: node.borderColor,\n // eslint-disable-next-line\n thickness: node.thickness, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip, options: node.options,\n // eslint-disable-next-line\n isChecked: node.isChecked, isSelected: node.isSelected\n };\n // eslint-disable-next-line max-len\n var currentPosition = { X: args.source.wrapper.offsetX, Y: args.source.wrapper.offsetY, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n // eslint-disable-next-line max-len\n var previousPosition = { X: this.offset.x, Y: this.offset.y, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n this.commandHandler.fireFormFieldMoveEvent('formFieldMove', field, node.pageIndex, previousPosition, currentPosition);\n }\n if (this.commandHandler.annotation) {\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, args.source, 'Drag', '', this.redoElement, newShapeObject);\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, null, 'Drag');\n this.commandHandler.annotation.stickyNotesAnnotationModule.updateStickyNotes(args.source, null);\n }\n }\n var shapeAnnotationType = this.commandHandler && this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].shapeAnnotationType : null;\n if (shapeAnnotationType && shapeAnnotationType !== 'Image' && shapeAnnotationType !== 'SignatureImage') {\n _super.prototype.mouseUp.call(this, args);\n }\n else if (this.commandHandler && this.commandHandler.selectedItems && this.commandHandler.selectedItems.formFields && this.commandHandler.selectedItems.formFields.length > 0) {\n _super.prototype.mouseUp.call(this, args);\n }\n };\n MoveTool.prototype.calculateMouseXDiff = function () {\n if (this.currentPosition && this.startPosition) {\n return this.currentPosition.x - this.startPosition.x;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseYDiff = function () {\n if (this.currentPosition && this.startPosition) {\n return this.currentPosition.y - this.startPosition.y;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseActionXDiff = function (args) {\n var x = this.calculateMouseXDiff() / this.commandHandler.viewerBase.getZoomFactor();\n // let y: number = this.calculateMouseYDiff() / this.commandHandler.magnification.zoomFactor;\n if (this.offset) {\n var requiredX = this.offset.x + x;\n // let requiredY: number = this.offset.y + y;\n return requiredX - args.source.wrapper.offsetX;\n //let diffY: number = requiredY - args.source.wrapper.offsetY;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseActionYDiff = function (args) {\n // let x: number = this.calculateMouseXDiff() / this.commandHandler.magnification.zoomFactor;\n var y = this.calculateMouseYDiff() / this.commandHandler.viewerBase.getZoomFactor();\n if (this.offset) {\n // let requiredX: number = this.offset.x + x;\n var requiredY = this.offset.y + y;\n // let diffX: number = requiredX - args.source.wrapper.offsetX;\n return requiredY - args.source.wrapper.offsetY;\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isStamp - Specified the stamp annotation or not.\n * @param {boolean} isSkip - Specified the annotation skip or not.\n * @returns {boolean} - Returns the true or false.\n */\n MoveTool.prototype.mouseMove = function (args, isStamp, isSkip) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.currentPosition = args.position;\n this.currentTarget = args.target;\n var currentSelctor = args.source.annotationSelectorSettings;\n var x = this.calculateMouseXDiff() / this.commandHandler.viewerBase.getZoomFactor();\n var y = this.calculateMouseYDiff() / this.commandHandler.viewerBase.getZoomFactor();\n var requiredX = this.offset.x + x;\n var requiredY = this.offset.y + y;\n var diffX = this.calculateMouseActionXDiff(args);\n var diffY = this.calculateMouseActionYDiff(args);\n var selectedItem = this.commandHandler.selectedItems.annotations[0];\n var cobject = void 0;\n if (!this.helper) {\n // eslint-disable-next-line\n cobject = this.commandHandler.selectedItems.annotations.length > 0 ? cloneObject(this.commandHandler.selectedItems.annotations[0]) : cloneObject(this.commandHandler.selectedItems.formFields[0]);\n if (cobject.wrapper) {\n diffX = requiredX - cobject.wrapper.offsetX;\n diffY = requiredY - cobject.wrapper.offsetY;\n // eslint-disable-next-line max-len\n cobject.bounds = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].wrapper.bounds : this.commandHandler.selectedItems.formFields[0].wrapper.bounds;\n }\n cobject.wrapper = undefined;\n cobject.id = 'diagram_helper';\n if (cobject.shapeAnnotationType === 'Stamp') {\n cobject.strokeColor = '';\n cobject.borderDashArray = '';\n cobject.fillColor = 'transparent';\n cobject.stampFillColor = 'transparent';\n cobject.data = '';\n }\n else if (cobject.shapeAnnotationType === 'FreeText') {\n cobject.strokeColor = 'blue';\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.dynamicText = '';\n }\n else if (cobject.shapeAnnotationType === 'SignatureText') {\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n cobject.data = '';\n }\n else {\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n }\n if (cobject.enableShapeLabel === true) {\n cobject.labelContent = '';\n }\n var shapeAnnotationType = cobject.shapeAnnotationType;\n if (!isStamp && shapeAnnotationType !== 'Image' && shapeAnnotationType !== 'SignatureImage') {\n this.helper = cobject = this.commandHandler.add(cobject);\n }\n else {\n cobject = this.helper = args.source;\n }\n if (this.commandHandler.selectedItems.annotations.length > 0) {\n this.commandHandler.selectedItems.annotations = [cobject];\n }\n else {\n this.commandHandler.selectedItems.formFields = [cobject];\n }\n }\n else {\n diffX = requiredX - this.helper.wrapper.offsetX;\n diffY = requiredY - this.helper.wrapper.offsetY;\n }\n if (this.helper && this.helper.shapeAnnotationType === 'Stamp') {\n isStamp = true;\n }\n // eslint-disable-next-line max-len\n if (this.commandHandler.checkBoundaryConstraints(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, this.helper.wrapper.bounds, isStamp, isSkip)) {\n var shapeAnnotationType = this.helper.shapeAnnotationType;\n if (this.helper && (shapeAnnotationType === 'Image' || shapeAnnotationType === 'SignatureImage')) {\n this.checkisAnnotationMove(args);\n // eslint-disable-next-line max-len\n var currentSelctor_1 = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([args.source.id], currentSelctor_1);\n // eslint-disable-next-line max-len\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, currentSelctor_1, this.helper);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor_1);\n }\n else {\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, currentSelctor, this.helper);\n }\n this.prevNode = this.helper;\n this.prevPosition = this.currentPosition;\n }\n else {\n this.currentPosition = this.prevPosition;\n }\n if (selectedItem && selectedItem.annotName) {\n this.commandHandler.annotation.triggerAnnotationMove(selectedItem, true);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n MoveTool.prototype.mouseLeave = function (args) {\n var currentSelctor = args.source.annotationSelectorSettings;\n var requiredX = this.offset.x + this.calculateMouseXDiff();\n var requiredY = this.offset.y + this.calculateMouseYDiff();\n var diffX = requiredX - args.source.wrapper.offsetX;\n var diffY = requiredY - args.source.wrapper.offsetY;\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.prevPageId, currentSelctor, null);\n this.commandHandler.renderSelector(this.prevPageId, currentSelctor);\n _super.prototype.mouseLeave.call(this, args);\n };\n /**\n * @private\n * @returns {void}\n */\n MoveTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.currentTarget = null;\n this.prevPosition = null;\n };\n MoveTool.prototype.checkisAnnotationMove = function (args) {\n // eslint-disable-next-line max-len\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0) {\n if (this.commandHandler.selectedItems.annotations[0].annotName === args.source.annotName) {\n this.commandHandler.viewerBase.isAnnotationMouseMove = true;\n }\n }\n else {\n this.commandHandler.viewerBase.isAnnotationMouseMove = false;\n }\n // eslint-disable-next-line max-len\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.formFields && this.commandHandler.selectedItems.formFields.length > 0) {\n if (this.commandHandler.selectedItems.formFields[0].name === args.source.name) {\n this.commandHandler.viewerBase.isFormFieldMouseMove = true;\n }\n }\n else {\n this.commandHandler.viewerBase.isFormFieldMouseMove = false;\n }\n };\n return MoveTool;\n}(ToolBase));\nexport { MoveTool };\n/** @hidden */\nvar StampTool = /** @class */ (function (_super) {\n __extends(StampTool, _super);\n function StampTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {any} - Returns the mouse up event.\n */\n // eslint-disable-next-line\n StampTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns the true or false.\n */\n StampTool.prototype.mouseMove = function (args) {\n // eslint-disable-next-line\n var newObject;\n if (!this.inAction) {\n var pageIndex = this.pdfViewerBase.activeElements.activePageID;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n // eslint-disable-next-line max-len\n var nodeElement = this.commandHandler.annotation.stampAnnotationModule.moveStampElement(args.position.x, args.position.y, pageIndex);\n if (nodeElement.shapeAnnotationType === 'SignatureText') {\n var textWidth = this.getTextWidth(nodeElement.data, nodeElement.fontSize, nodeElement.fontFamily);\n var widthRatio = 1;\n if (textWidth > nodeElement.bounds.width)\n widthRatio = nodeElement.bounds.width / textWidth;\n nodeElement.fontSize = this.getFontSize(Math.floor((nodeElement.fontSize * widthRatio)));\n var defaultFontSize = 32; // default font size.\n nodeElement.bounds.height = nodeElement.fontSize < defaultFontSize ? nodeElement.fontSize * 2 : nodeElement.bounds.height;\n nodeElement.thickness = 0;\n }\n newObject = this.commandHandler.add(nodeElement);\n args.source = this.commandHandler.annotations[this.commandHandler.annotations.length - 1];\n args.sourceWrapper = args.source.wrapper;\n this.inAction = true;\n // eslint-disable-next-line\n var currentSource = args.source;\n if (currentSource && (currentSource.shapeAnnotationType === 'HandWrittenSignature' || currentSource.shapeAnnotationType === 'SignatureText' || currentSource.shapeAnnotationType === 'SignatureImage')) {\n this['offset'] = { x: args.source.wrapper.offsetX - (args.source.wrapper.bounds.width / 2), y: args.source.wrapper.offsetY - (args.source.wrapper.bounds.height / 2) };\n }\n else {\n this['offset'] = { x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY };\n }\n this.startPosition = args.position;\n this.commandHandler.select([newObject.id]);\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n _super.prototype.mouseMove.call(this, args, true, true);\n this.commandHandler.renderSelector(args.source.pageIndex, currentSelctor);\n return this.inAction;\n };\n StampTool.prototype.getTextWidth = function (text, font, fontFamily) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var fontName;\n if (font) {\n fontName = font + 'px' + ' ' + fontFamily;\n }\n context.font = fontName || getComputedStyle(document.body).font;\n return context.measureText(text).width;\n };\n /**\n * @param {number} fontSize - Font size.\n * @returns {number} - Returns the font size.\n */\n StampTool.prototype.getFontSize = function (fontSize) {\n return (fontSize % 2 === 0) ? fontSize : --fontSize;\n };\n return StampTool;\n}(MoveTool));\nexport { StampTool };\n/**\n * Draws a node that is defined by the user\n *\n * @hidden\n */\nvar InkDrawingTool = /** @class */ (function (_super) {\n __extends(InkDrawingTool, _super);\n function InkDrawingTool(commandHandler, base, sourceObject) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n InkDrawingTool.prototype.mouseDown = function (args) {\n this.pdfViewerBase.disableTextSelectionMode();\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n // eslint-disable-next-line\n var node = { currentPosition: this.currentPosition, prevPosition: this.prevPosition };\n this.commandHandler.annotation.inkAnnotationModule.drawInkInCanvas(node, this.pdfViewerBase.activeElements.activePageID);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n InkDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n // eslint-disable-next-line\n var node = { currentPosition: this.currentPosition, prevPosition: this.pdfViewerBase.prevPosition };\n this.commandHandler.annotation.inkAnnotationModule.drawInkInCanvas(node, this.pdfViewerBase.activeElements.activePageID);\n }\n return this.inAction;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true.\n */\n InkDrawingTool.prototype.mouseUp = function (args) {\n this.commandHandler.annotation.inkAnnotationModule.storePathData();\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n InkDrawingTool.prototype.mouseLeave = function (args) {\n //this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n InkDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return InkDrawingTool;\n}(ToolBase));\nexport { InkDrawingTool };\n/**\n * Helps to edit the selected connectors\n *\n * @hidden\n */\nvar ConnectTool = /** @class */ (function (_super) {\n __extends(ConnectTool, _super);\n function ConnectTool(commandHandler, base, endPoint) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = undefined;\n _super.prototype.mouseDown.call(this, args);\n var oldValue;\n var connectors;\n if (args.source && args.source.annotations) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n connectors = args.source.annotations[0];\n }\n this.initialPosition = args.position;\n this.prevSource = this.commandHandler.selectedItems.annotations[0];\n var nodeElement = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: nodeElement.wrapper.offsetX, y: nodeElement.wrapper.offsetY,\n width: nodeElement.wrapper.actualSize.width, height: nodeElement.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(nodeElement)) {\n this.redoElement.vertexPoints = nodeElement.vertexPoints;\n this.redoElement.leaderHeight = nodeElement.leaderHeight;\n if (nodeElement.measureType === 'Distance' || nodeElement.measureType === 'Perimeter' || nodeElement.measureType === 'Area' || nodeElement.measureType === 'Volume') {\n this.redoElement.notes = nodeElement.notes;\n }\n }\n this.currentPosition = args.position;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseUp = function (args) {\n if (this.commandHandler) {\n var node = this.commandHandler.selectedItems.annotations[0];\n if (node) {\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule.findAnnotationSettings(node);\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n // eslint-disable-next-line max-len\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (node.vertexPoints.length > 3) {\n // eslint-disable-next-line\n var sizeObject = this.commandHandler.viewerBase.checkAnnotationWidth(node.vertexPoints);\n var width = sizeObject.width;\n var height = sizeObject.height;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n // eslint-disable-next-line max-len\n if ((height > annotationMinHeight && height < annotationMaxHeight) || (width > annotationMinWidth && width < annotationMaxWidth)) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n if (node.shapeAnnotationType === 'Line' || node.shapeAnnotationType === 'Distance' || node.shapeAnnotationType === 'LineWidthArrowHead') {\n var x = 0;\n var y = 0;\n if (node.vertexPoints[0].x > node.vertexPoints[1].x) {\n x = node.vertexPoints[0].x - node.vertexPoints[1].x;\n }\n else {\n x = node.vertexPoints[1].x - node.vertexPoints[0].x;\n }\n if (node.vertexPoints[0].y > node.vertexPoints[1].y) {\n y = node.vertexPoints[0].y - node.vertexPoints[1].y;\n }\n else {\n y = node.vertexPoints[1].y - node.vertexPoints[0].y;\n }\n var diff = (x > y) ? x : y;\n if (diff < (annotationMaxHeight || annotationMaxWidth) && diff > (annotationMinHeight || annotationMinWidth)) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([this.prevSource.id], currentSelctor);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n // eslint-disable-next-line\n var newShapeElementObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }\n };\n if (node.measureType === 'Distance' || node.measureType === 'Perimeter' || node.measureType === 'Area' || node.measureType === 'Volume') {\n this.commandHandler.annotation.updateCalibrateValues(this.commandHandler.selectedItems.annotations[0]);\n newShapeElementObject.notes = args.source.notes;\n }\n if (isLineShapes(args.source)) {\n newShapeElementObject.vertexPoints = args.source.vertexPoints;\n newShapeElementObject.leaderHeight = args.source.leaderHeight;\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.prevSource, 'Resize', '', this.redoElement, newShapeElementObject);\n }\n }\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ConnectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var connector;\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var newValue = void 0;\n var oldValue = void 0;\n if (args.source && args.source.annotations) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n newValue = {\n x: this.currentPosition.x, y: this.currentPosition.y\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n oldValue = {\n x: this.prevPosition.x, y: this.prevPosition.y\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n connector = args.source.annotations[0];\n }\n if (this.inAction && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n if (!this.helper) {\n // eslint-disable-next-line\n var cloneShapebject = cloneObject(this.commandHandler.selectedItems.annotations[0]);\n cloneShapebject.id = 'diagram_helper';\n cloneShapebject.strokeColor = 'red';\n cloneShapebject.borderDashArray = '5,5';\n cloneShapebject.fillColor = 'transparent';\n cloneShapebject.thickness = 2;\n cloneShapebject.opacity = 1;\n if (cloneShapebject.enableShapeLabel === true) {\n cloneShapebject.labelContent = '';\n }\n this.helper = cloneShapebject = this.commandHandler.add(cloneShapebject);\n this.commandHandler.selectedItems.annotations = [cloneShapebject];\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, this.helper, this.currentPosition, this.selectedSegment, args.target, null, currentSelctor);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n ConnectTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return ConnectTool;\n}(ToolBase));\nexport { ConnectTool };\n/**\n * Scales the selected objects\n *\n * @hidden\n */\nvar ResizeTool = /** @class */ (function (_super) {\n __extends(ResizeTool, _super);\n function ResizeTool(commandHandler, base, corner) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n /** @private */\n _this.initialBounds = new Rect();\n _this.corner = corner;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void} - Returns true or false.\n */\n ResizeTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.initialBounds.x = args.source.wrapper.offsetX;\n this.initialBounds.y = args.source.wrapper.offsetY;\n this.initialBounds.height = args.source.wrapper.actualSize.height;\n this.initialBounds.width = args.source.wrapper.actualSize.width;\n this.initialPosition = args.position;\n var node = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: node.wrapper.offsetX, y: node.wrapper.offsetY,\n width: node.wrapper.actualSize.width, height: node.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(node)) {\n this.redoElement.vertexPoints = node.vertexPoints;\n this.redoElement.leaderHeight = node.leaderHeight;\n }\n if (node.measureType === 'Radius') {\n this.redoElement.notes = node.notes;\n }\n // eslint-disable-next-line max-len\n this.prevSource = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0] : this.commandHandler.selectedItems.formFields[0];\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isPreventHistory - Specified the prevent history value.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.mouseUp = function (args, isPreventHistory) {\n var object = args.source;\n var oldObject = cloneObject(args.source);\n if (this.commandHandler && this.prevSource) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.viewerBase.isAnnotationSelect = true;\n this.commandHandler.viewerBase.isFormFieldSelect = true;\n this.commandHandler.select([this.prevSource.id], this.prevSource.annotationSelectorSettings);\n // eslint-disable-next-line max-len\n var deltaValues = this.updateSize(this.prevSource, this.currentPosition, this.initialPosition, this.corner, this.initialBounds, null, true);\n this.blocked = this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.currentPosition, this.initialPosition, this.prevSource, args.info.ctrlKey);\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations &&\n this.commandHandler.selectedItems.annotations[0] && this.commandHandler.selectedItems.annotations[0].shapeAnnotationType === 'Stamp') {\n if (this.commandHandler.stampSettings.minHeight || this.commandHandler.stampSettings.minWidth) {\n this.commandHandler.select([this.prevSource.id], this.prevSource.annotationSelectorSettings);\n }\n }\n if (this.commandHandler.selectedItems.formFields.length > 0 && (this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'Textbox' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'Checkbox'\n || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'RadioButton' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'InitialField' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'SignatureField'\n || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'DropdownList' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'ListBox' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'PasswordField')) {\n if (this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'SignatureField') {\n this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings = this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings ? this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings : { opacity: 1, backgroundColor: 'rgba(255, 228, 133, 0.35)', width: 19, height: 10, fontSize: 10, text: null, color: 'black' };\n }\n this.commandHandler.formDesignerModule.updateHTMLElement(this.commandHandler.selectedItems.formFields[0]);\n }\n this.commandHandler.renderSelector(this.prevPageId, this.prevSource.annotationSelectorSettings);\n if (this.commandHandler.annotation && args.source.wrapper) {\n // eslint-disable-next-line\n var newObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }\n };\n if (isLineShapes(args.source)) {\n newObject.vertexPoints = args.source.vertexPoints;\n newObject.leaderHeight = args.source.leaderHeight;\n }\n if (this.prevSource.measureType === 'Radius') {\n newObject.notes = args.source.notes;\n this.commandHandler.annotation.updateCalibrateValues(this.prevSource);\n }\n if (this.prevSource.shapeAnnotationType === 'SignatureText') {\n var boundsRatio = newObject.bounds.width / oldObject.width;\n newObject.fontSize = this.prevSource.wrapper.children[1].style.fontSize * boundsRatio;\n if (args.target != null) {\n args.target.fontSize = newObject.fontSize;\n // eslint-disable-next-line\n args.target.wrapper.children[1].style.fontSize = newObject.fontSize;\n args.target.wrapper.children[1].horizontalAlignment = 'Center';\n args.target.wrapper.children[1].verticalAlignment = 'Center';\n args.target.wrapper.children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n // eslint-disable-next-line\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].style.fontSize = newObject.fontSize;\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].horizontalAlignment = 'Center';\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].verticalAlignment = 'Center';\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n this.commandHandler.selectedItems.annotations[0].fontSize = newObject.fontSize;\n }\n }\n if ((this.prevSource.shapeAnnotationType === 'SignatureText') && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.commandHandler.selectedItems.annotations[0], { fontSize: newObject.fontSize });\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.prevSource, 'Resize', '', this.redoElement, newObject);\n }\n if (args.target && args.target.formFieldAnnotationType) {\n var node = args.target;\n // eslint-disable-next-line\n var field = { value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected };\n // eslint-disable-next-line max-len\n var currentPosition = { X: args.source.wrapper.offsetX, Y: args.source.wrapper.offsetY, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n // eslint-disable-next-line max-len\n var previousPosition = { X: this.initialBounds.x, Y: this.initialBounds.y, Width: this.initialBounds.width, Height: this.initialBounds.height };\n this.commandHandler.fireFormFieldResizeEvent('formFieldResize', field, node.pageIndex, previousPosition, currentPosition);\n }\n if (this.commandHandler.annotation && this.commandHandler.annotation.stampAnnotationModule) {\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, this.prevSource.id, 'Resize');\n }\n }\n _super.prototype.mouseUp.call(this, args);\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object = args.source;\n this.currentPosition = args.position;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n x = x / this.commandHandler.viewerBase.getZoomFactor();\n y = y / this.commandHandler.viewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annotationElement = args.source;\n // eslint-disable-next-line\n var size = this.getPoints(x, y);\n var width = annotationElement.width + size.x;\n var height = annotationElement.height + size.y;\n // eslint-disable-next-line\n var obj = object;\n if (object && object.annotations) {\n // eslint-disable-next-line\n obj = object.annotations[0];\n }\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n // eslint-disable-next-line max-len\n if ((height >= annotationMinHeight && height <= annotationMaxHeight) && (width >= annotationMinWidth && width <= annotationMaxWidth)) {\n // eslint-disable-next-line\n x = x;\n // eslint-disable-next-line\n y = y;\n }\n else {\n if (height < annotationMinHeight || height > annotationMaxHeight) {\n if (height < annotationMinHeight) {\n y = annotationMinHeight - annotationElement.height;\n }\n else {\n y = annotationMaxHeight - annotationElement.height;\n }\n }\n if (width < annotationMinWidth || width > annotationMaxWidth) {\n if (width < annotationMinWidth) {\n x = annotationMinWidth - annotationElement.width;\n }\n else {\n x = annotationMaxWidth - annotationElement.width;\n }\n }\n }\n }\n var changes = { x: x, y: y };\n if (this.currentElement.wrapper) {\n changes = rotatePoint(-this.currentElement.wrapper.rotateAngle, undefined, undefined, changes);\n }\n changes = this.getChanges(changes);\n this.commandHandler.renderSelector(this.prevPageId, this.prevSource.annotationSelectorSettings);\n if (!this.helper) {\n // eslint-disable-next-line\n var cobject = this.commandHandler.selectedItems.annotations.length > 0 ? cloneObject(this.commandHandler.selectedItems.annotations[0]) : cloneObject(this.commandHandler.selectedItems.formFields[0]);\n cobject.id = 'diagram_helper';\n if (cobject.shapeAnnotationType === 'Stamp') {\n cobject.strokeColor = '';\n cobject.borderDashArray = '';\n cobject.fillColor = 'transparent';\n cobject.stampFillColor = 'transparent';\n cobject.data = '';\n }\n else if (cobject.shapeAnnotationType === 'FreeText') {\n cobject.strokeColor = 'blue';\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.dynamicText = '';\n }\n else {\n // eslint-disable-next-line max-len\n cobject.bounds = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].wrapper.bounds : this.commandHandler.selectedItems.formFields[0].wrapper.bounds;\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n }\n if (cobject.enableShapeLabel === true) {\n cobject.labelContent = '';\n }\n if (cobject.shapeAnnotationType === 'SignatureText') {\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.data = '';\n }\n this.helper = cobject = this.commandHandler.add(cobject);\n if (this.commandHandler.selectedItems.annotations.length > 0) {\n this.commandHandler.selectedItems.annotations = [cobject];\n }\n else {\n this.commandHandler.selectedItems.formFields = [cobject];\n }\n }\n var deltaValues = this.updateSize(this.helper, this.startPosition, this.currentPosition, this.corner, this.initialBounds);\n // eslint-disable-next-line max-len\n this.blocked = !(this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.startPosition, this.currentPosition, this.helper, args.info.ctrlKey));\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ResizeTool.prototype.getTooltipContent = function (pdfAnnotationBaseModel) {\n return 'W:' + Math.round(pdfAnnotationBaseModel.wrapper.bounds.width) + ' ' + 'H:' + Math.round(pdfAnnotationBaseModel.wrapper.bounds.height);\n };\n ResizeTool.prototype.getChanges = function (change) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: change.x, y: 0 };\n case 'ResizeSouthEast':\n return change;\n case 'ResizeSouth':\n return { x: 0, y: change.y };\n case 'ResizeNorth':\n return { x: 0, y: -change.y };\n case 'ResizeNorthEast':\n return { x: change.x, y: -change.y };\n case 'ResizeNorthWest':\n return { x: -change.x, y: -change.y };\n case 'ResizeWest':\n return { x: -change.x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -change.x, y: change.y };\n }\n return change;\n };\n ResizeTool.prototype.getPoints = function (x, y) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: x, y: 0 };\n case 'ResizeSouthEast':\n return { x: x, y: y };\n case 'ResizeSouth':\n return { x: 0, y: y };\n case 'ResizeNorth':\n return { x: 0, y: -y };\n case 'ResizeNorthEast':\n return { x: x, y: -y };\n case 'ResizeNorthWest':\n return { x: -x, y: -y };\n case 'ResizeWest':\n return { x: -x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -x, y: y };\n }\n return { x: x, y: y };\n };\n /**\n * Updates the size with delta width and delta height using scaling.\n * Aspect ratio used to resize the width or height based on resizing the height or width.\n *\n * @param {number} deltaWidth - Specified the delta width.\n * @param {number} deltaHeight - Specified the delta height.\n * @param {string} corner - Specified the corner value.\n * @param {PointModel} startPoint - Specified the start point of the annotation.\n * @param {PointModel} endPoint - Specified the end point of the annotation.\n * @param {SelectorModel | PdfAnnotationBaseModel} source - Specified the annotation object.\n * @param {boolean} isCtrlKeyPressed - becomes true when ctrl Key is pressed.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.scaleObjects = function (deltaWidth, deltaHeight, corner, startPoint, endPoint, source, isCtrlKeyPressed) {\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(source) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n x = x / this.commandHandler.viewerBase.getZoomFactor();\n y = y / this.commandHandler.viewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annotationElement = source;\n // eslint-disable-next-line\n var size = this.getPoints(x, y);\n var width = annotationElement.bounds.width + size.x;\n var height = annotationElement.bounds.height + size.y;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (source instanceof Selector && source.annotations.length === 1 &&\n (source.annotations[0].shapeAnnotationType === 'Perimeter' || source.annotations[0].shapeAnnotationType === 'Radius' || source.shapeAnnotationType === 'Stamp')) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n else if (startPoint !== endPoint) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n else {\n deltaHeight = deltaWidth = 0;\n }\n }\n else if (source.shapeAnnotationType === 'Image' || (source.shapeAnnotationType === 'HandWrittenSignature' || source.shapeAnnotationType === 'SignatureText' || source.shapeAnnotationType === 'SignatureImage')) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n if (isCtrlKeyPressed) {\n if (width >= annotationMaxWidth && height < annotationMaxHeight) {\n deltaHeight = Math.max(deltaHeight, deltaWidth);\n }\n if (height >= annotationMaxHeight && width < annotationMaxWidth) {\n deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n if (width < annotationMaxWidth && height < annotationMaxHeight) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n }\n if (!isCtrlKeyPressed) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n else {\n if (source.shapeAnnotationType === 'Perimeter' || source.shapeAnnotationType === 'Radius'\n || source.shapeAnnotationType === 'Stamp') {\n if (source.shapeAnnotationType === 'Stamp') {\n if (!annotationMaxHeight && !deltaHeight) {\n deltaHeight = Math.max(deltaHeight === 1 ? 0 : deltaHeight);\n }\n if (!annotationMaxWidth && !deltaWidth) {\n deltaWidth = Math.max(deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n else {\n if (!annotationMaxHeight || !annotationMaxWidth) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n }\n }\n }\n this.blocked = this.commandHandler.scaleSelectedItems(deltaWidth, deltaHeight, this.getPivot(this.corner));\n return this.blocked;\n };\n return ResizeTool;\n}(ToolBase));\nexport { ResizeTool };\n/**\n * Draws a node that is defined by the user\n *\n * @hidden\n */\nvar NodeDrawingTool = /** @class */ (function (_super) {\n __extends(NodeDrawingTool, _super);\n function NodeDrawingTool(commandHandler, base, sourceObject) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n NodeDrawingTool.prototype.mouseDown = function (args) {\n if (!isNaN(this.pdfViewerBase.activeElements.activePageID) && event.target.className != 'e-pv-page-container') {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n var node = { bounds: { x: 100, y: 300, width: 100, height: 100 }, pageIndex: 0, strokeColor: 'red', thickness: 3 };\n node.id = randomId();\n this.sourceObject.pageIndex = node.pageIndex = this.pdfViewerBase.activeElements.activePageID || 0;\n this.sourceObject.enableShapeLabel = this.commandHandler.enableShapeLabel;\n this.pdfViewerBase.updateFreeTextProperties(this.sourceObject);\n this.isFormDesign = false;\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (formFieldElement) {\n formFieldElement.remove();\n }\n // eslint-disable-next-line\n this.commandHandler.drawingObject = this.drawingObject = this.commandHandler.add(this.sourceObject || node);\n if (this.drawingObject.formFieldAnnotationType === 'Textbox' || this.drawingObject.formFieldAnnotationType === 'SignatureField' || this.drawingObject.formFieldAnnotationType === 'InitialField' ||\n this.drawingObject.formFieldAnnotationType === 'Checkbox' || this.drawingObject.formFieldAnnotationType === 'ListBox' || this.drawingObject.formFieldAnnotationType === 'RadioButton' ||\n this.drawingObject.formFieldAnnotationType === 'DropdownList' || this.drawingObject.formFieldAnnotationType === 'PasswordField') {\n this.inAction = false;\n // eslint-disable-next-line\n this.drawingObject.pageNumber = this.pdfViewerBase.getActivePage(true);\n // eslint-disable-next-line\n var bounds = this.commandHandler.formDesignerModule.updateFormFieldInitialSize(this.drawingObject.wrapper.children[0], this.drawingObject.formFieldAnnotationType);\n var pageWidth = this.pdfViewerBase.pageContainer.firstElementChild.clientWidth - bounds.width;\n var pageHeight = this.pdfViewerBase.pageContainer.firstElementChild.clientHeight - bounds.height;\n // eslint-disable-next-line\n var left = this.pdfViewerBase.pageContainer.firstElementChild.offsetLeft;\n var offsetX = void 0;\n // eslint-disable-next-line\n if (this.currentPosition.y >= pageHeight && event.target && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.path[3].getBoundingClientRect();\n // eslint-disable-next-line\n offsetX = event.clientX - targetParentRect.left;\n }\n else {\n offsetX = this.currentPosition.x - left;\n }\n // eslint-disable-next-line\n var rect = void 0;\n if (this.currentPosition.x >= pageWidth && this.currentPosition.y >= pageHeight) {\n // eslint-disable-next-line max-len\n rect = { x: pageWidth, y: pageHeight, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else if (this.currentPosition.x >= pageWidth) {\n // eslint-disable-next-line max-len\n rect = { x: pageWidth, y: this.currentPosition.y, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else if (this.currentPosition.y >= pageHeight) {\n // eslint-disable-next-line max-len\n rect = { x: offsetX, y: pageHeight, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else {\n // eslint-disable-next-line max-len\n rect = { x: this.currentPosition.x, y: this.currentPosition.y, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n this.updateNodeDimension(this.drawingObject, rect);\n this.drawingObject.bounds.x = this.drawingObject.bounds.x - (this.drawingObject.bounds.width / 2);\n this.drawingObject.bounds.y = this.drawingObject.bounds.y - (this.drawingObject.bounds.height / 2);\n this.commandHandler.formFieldCollection.push(this.drawingObject);\n var drawingObject = this.drawingObject;\n // eslint-disable-next-line max-len\n var formField = {\n id: drawingObject.id, name: drawingObject.name, value: drawingObject.value,\n // eslint-disable-next-line max-len\n type: drawingObject.formFieldAnnotationType, isReadOnly: drawingObject.isReadonly, fontFamily: drawingObject.fontFamily,\n // eslint-disable-next-line max-len\n fontSize: drawingObject.fontSize, fontStyle: drawingObject.fontStyle, color: drawingObject.color, backgroundColor: drawingObject.backgroundColor,\n // eslint-disable-next-line max-len\n alignment: drawingObject.alignment, visibility: drawingObject.visibility, maxLength: drawingObject.maxLength, isRequired: drawingObject.isRequired,\n // eslint-disable-next-line max-len\n isPrint: drawingObject.isPrint, isSelected: drawingObject.isSelected, isChecked: drawingObject.isChecked, tooltip: drawingObject.tooltip, bounds: drawingObject.bounds, thickness: drawingObject.thickness, borderColor: drawingObject.borderColor,\n signatureIndicatorSettings: drawingObject.signatureIndicatorSettings, pageIndex: drawingObject.pageIndex\n };\n this.commandHandler.formFieldCollections.push(formField);\n // eslint-disable-next-line max-len\n this.commandHandler.formDesignerModule.drawHTMLContent(this.drawingObject.formFieldAnnotationType, this.drawingObject.wrapper.children[0], this.drawingObject, this.drawingObject.pageIndex, this.commandHandler);\n this.commandHandler.select([this.commandHandler.drawingObject.id], this.commandHandler.annotationSelectorSettings);\n if (this.commandHandler.annotation) {\n this.commandHandler.annotation.addAction(this.pdfViewerBase.getActivePage(true), null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n }\n this.endAction();\n this.pdfViewerBase.tool = null;\n this.pdfViewerBase.action = 'Select';\n this.drawingObject = null;\n this.pdfViewerBase.isMouseDown = false;\n this.pdfViewerBase.pdfViewer.drawingObject = null;\n this.isFormDesign = true;\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n NodeDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.dragging = true;\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.updateNodeDimension(this.drawingObject, rect);\n if (this.drawingObject.shapeAnnotationType === 'Radius') {\n this.updateRadiusLinePosition(this.drawingObject.wrapper.children[1], this.drawingObject);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n NodeDrawingTool.prototype.mouseUp = function (args) {\n if (this.drawingObject && this.dragging) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([this.drawingObject.id], this.commandHandler.annotationSelectorSettings);\n var drawnAnnotation = this.commandHandler.selectedItems.annotations[0];\n this.commandHandler.nodePropertyChange(drawnAnnotation, { bounds: { x: drawnAnnotation.wrapper.offsetX, y: drawnAnnotation.wrapper.offsetY } });\n this.commandHandler.annotation.updateCalibrateValues(this.drawingObject, true);\n if (this.commandHandler && !this.isFormDesign) {\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n }\n this.dragging = false;\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n }\n else {\n _super.prototype.mouseUp.call(this, args);\n }\n this.drawingObject = null;\n };\n /**\n * @private\n * @returns {void}\n */\n NodeDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {Rect} rect - Specified the annotation rect element.\n * @returns {void}\n */\n NodeDrawingTool.prototype.updateNodeDimension = function (obj, rect) {\n var zoom = this.commandHandler.viewerBase.getZoomFactor();\n obj.bounds.x = (rect.x / zoom) + rect.width / zoom;\n obj.bounds.y = (rect.y / zoom) + rect.height / zoom;\n obj.bounds.width = rect.width / zoom;\n obj.bounds.height = rect.height / zoom;\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n if (annotationSettings.maxWidth || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n if (obj.bounds.width > annotationMaxWidth) {\n obj.bounds.width = annotationMaxWidth;\n }\n if (obj.bounds.height > annotationMaxHeight) {\n obj.bounds.height = annotationMaxHeight;\n }\n if (obj.bounds.height <= annotationMaxHeight && obj.bounds.width <= annotationMaxWidth) {\n this.commandHandler.nodePropertyChange(obj, { bounds: obj.bounds });\n }\n }\n else {\n this.commandHandler.nodePropertyChange(obj, { bounds: obj.bounds });\n }\n };\n /**\n * @private\n * @param {DrawingElement} obj - Specified the drawing element.\n * @param {PdfAnnotationBaseModel} node - Specified the annotation object.\n * @returns {void}\n */\n NodeDrawingTool.prototype.updateRadiusLinePosition = function (obj, node) {\n var trasPoint = { x: node.bounds.x + (node.bounds.width / 4), y: node.bounds.y };\n var center = { x: (node.bounds.x + (node.bounds.width / 2)), y: (node.bounds.y + (node.bounds.height / 2)) };\n var matrix = identityMatrix();\n rotateMatrix(matrix, node.rotateAngle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, trasPoint);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y };\n obj.offsetX = newPoint1.x;\n obj.offsetY = newPoint1.y;\n obj.width = node.bounds.width / 2;\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule.findAnnotationSettings(node);\n var annotationMaxWidth = 0;\n if (annotationSettings.maxWidth) {\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n if (node.bounds.width > annotationMaxWidth) {\n node.bounds.width = annotationMaxWidth;\n obj.width = node.bounds.width / 2;\n }\n }\n this.commandHandler.renderDrawing(undefined, node.pageIndex);\n };\n return NodeDrawingTool;\n}(ToolBase));\nexport { NodeDrawingTool };\n/**\n * Draws a Polygon shape node dynamically using polygon Tool\n *\n * @hidden\n */\nvar PolygonDrawingTool = /** @class */ (function (_super) {\n __extends(PolygonDrawingTool, _super);\n function PolygonDrawingTool(commandHandler, base, action) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.action = action;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var nodeAnnotElement = {\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPoint.x / this.pdfViewerBase.getZoomFactor(), y: this.startPoint.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n shapeAnnotationType: 'Line', fillColor: this.commandHandler.drawingObject.fillColor,\n strokeColor: this.commandHandler.drawingObject.strokeColor, pageIndex: this.pdfViewerBase.activeElements.activePageID,\n // eslint-disable-next-line max-len\n notes: this.commandHandler.drawingObject.notes, thickness: this.commandHandler.drawingObject.thickness, author: this.commandHandler.drawingObject.author,\n subject: this.commandHandler.drawingObject.subject, borderDashArray: this.commandHandler.drawingObject.borderDashArray,\n modifiedDate: this.commandHandler.drawingObject.modifiedDate, borderStyle: this.commandHandler.drawingObject.borderStyle,\n // eslint-disable-next-line max-len\n measureType: this.commandHandler.drawingObject.measureType, enableShapeLabel: this.commandHandler.enableShapeLabel, opacity: this.commandHandler.drawingObject.opacity\n };\n this.pdfViewerBase.updateFreeTextProperties(nodeAnnotElement);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(nodeAnnotElement);\n }\n else {\n var pt = void 0;\n var obj = (this.drawingObject);\n pt = obj.vertexPoints[obj.vertexPoints.length - 1];\n pt = { x: pt.x, y: pt.y };\n var lastPoint = this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1];\n if (!(lastPoint.x === pt.x && lastPoint.x === pt.y)) {\n this.drawingObject.vertexPoints.push(pt);\n }\n this.commandHandler.nodePropertyChange(obj, { vertexPoints: obj.vertexPoints });\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n PolygonDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.dragging = true;\n var obj = (this.drawingObject);\n if (this.drawingObject && this.currentPosition) {\n obj.vertexPoints[obj.vertexPoints.length - 1].x = this.currentPosition.x / this.pdfViewerBase.getZoomFactor();\n obj.vertexPoints[obj.vertexPoints.length - 1].y = this.currentPosition.y / this.pdfViewerBase.getZoomFactor();\n this.commandHandler.nodePropertyChange(obj, { vertexPoints: obj.vertexPoints });\n }\n if (obj.measureType === 'Perimeter') {\n updatePerimeterLabel(obj, obj.vertexPoints, this.commandHandler.annotation.measureAnnotationModule);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isDoubleClineck - Specified the double click event or not.\n * @param {boolean} isMouseLeave - Specified the mouse leave event or not.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseUp = function (args, isDoubleClineck, isMouseLeave) {\n _super.prototype.mouseMove.call(this, args);\n // eslint-disable-next-line\n var currentSelector;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n if (this.drawingObject) {\n // eslint-disable-next-line max-len\n var bounds = new Rect(this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1].x - 20, this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1].y - 20, 40, 40);\n var point = { x: this.drawingObject.vertexPoints[0].x, y: this.drawingObject.vertexPoints[0].y };\n if ((bounds.containsPoint(point) || isDoubleClineck) && this.dragging) {\n if (this.inAction) {\n this.inAction = false;\n if (this.drawingObject) {\n if (!isMouseLeave) {\n if (this.drawingObject.vertexPoints.length > 2) {\n this.drawingObject.vertexPoints.splice(this.drawingObject.vertexPoints.length - 1, 1);\n }\n }\n if (this.action === 'Polygon') {\n if (!isMouseLeave) {\n // eslint-disable-next-line max-len\n this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1] = this.drawingObject.vertexPoints[0];\n }\n else {\n // eslint-disable-next-line max-len\n this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length] = this.drawingObject.vertexPoints[0];\n }\n this.commandHandler.nodePropertyChange(this.drawingObject, { vertexPoints: this.drawingObject.vertexPoints });\n var cobject = cloneObject(this.drawingObject);\n cobject.shapeAnnotationType = 'Polygon';\n cobject.bounds.width = cobject.wrapper.actualSize.width;\n cobject.bounds.height = cobject.wrapper.actualSize.height;\n cobject.bounds.x = this.drawingObject.wrapper.bounds.x;\n cobject.bounds.y = this.drawingObject.wrapper.bounds.y;\n this.commandHandler.add(cobject);\n this.commandHandler.remove(this.drawingObject);\n this.commandHandler.select([cobject.id], currentSelector);\n var drawingObject = this.commandHandler.selectedItems.annotations[0];\n if (drawingObject) {\n if (this.commandHandler.enableShapeAnnotation && (isNullOrUndefined(drawingObject.measureType) || drawingObject.measureType === '')) {\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.shapeAnnotationModule.renderShapeAnnotations(drawingObject, drawingObject.pageIndex);\n }\n if (this.commandHandler.enableMeasureAnnotation && (drawingObject.measureType === 'Area' || drawingObject.measureType === 'Volume')) {\n if (drawingObject.measureType === 'Area') {\n // eslint-disable-next-line max-len\n drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculateArea(drawingObject.vertexPoints);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(drawingObject.annotName, drawingObject.notes);\n }\n else if (drawingObject.measureType === 'Volume') {\n // eslint-disable-next-line max-len\n drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculateVolume(drawingObject.vertexPoints);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(drawingObject.annotName, drawingObject.notes);\n }\n if (drawingObject.enableShapeLabel) {\n drawingObject.labelContent = drawingObject.notes;\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(drawingObject, { vertexPoints: drawingObject.vertexPoints, notes: drawingObject.notes });\n }\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.measureAnnotationModule.renderMeasureShapeAnnotations(drawingObject, drawingObject.pageIndex);\n }\n }\n }\n else {\n if (!isMouseLeave) {\n if (isDoubleClineck) {\n this.drawingObject.vertexPoints.splice(this.drawingObject.vertexPoints.length - 1, 1);\n }\n }\n this.commandHandler.nodePropertyChange(this.drawingObject, {\n // eslint-disable-next-line max-len\n vertexPoints: this.drawingObject.vertexPoints, sourceDecoraterShapes: this.commandHandler.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.commandHandler.drawingObject.taregetDecoraterShapes\n });\n this.commandHandler.select([this.drawingObject.id], currentSelector);\n if (this.commandHandler.enableMeasureAnnotation && this.drawingObject.measureType === 'Perimeter') {\n this.commandHandler.renderDrawing(null, this.drawingObject.pageIndex);\n // eslint-disable-next-line max-len\n this.drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculatePerimeter(this.drawingObject);\n if (this.drawingObject.enableShapeLabel) {\n this.drawingObject.labelContent = this.drawingObject.notes;\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.drawingObject, { vertexPoints: this.drawingObject.vertexPoints, notes: this.drawingObject.notes });\n }\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(this.drawingObject.annotName, this.drawingObject.notes);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.measureAnnotationModule.renderMeasureShapeAnnotations(this.drawingObject, this.drawingObject.pageIndex);\n }\n }\n var annotationObject = this.commandHandler.selectedItems.annotations[0];\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, annotationObject, 'Addition', '', annotationObject, annotationObject);\n this.drawingObject = null;\n }\n }\n this.endAction();\n }\n else if (this.inAction && !this.dragging) {\n this.commandHandler.remove(this.drawingObject);\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args, true, true);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /**\n * @private\n * @returns {void}\n */\n PolygonDrawingTool.prototype.endAction = function () {\n this.inAction = false;\n this.drawingObject = null;\n this.commandHandler.tool = '';\n };\n return PolygonDrawingTool;\n}(ToolBase));\nexport { PolygonDrawingTool };\n/**\n * Helps to edit the selected connectors\n *\n * @hidden\n */\nvar LineTool = /** @class */ (function (_super) {\n __extends(LineTool, _super);\n function LineTool(commandHandler, base, endPoint, drawingObject) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n _this.endPoint = endPoint;\n _this.drawingObject = drawingObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = undefined;\n _super.prototype.mouseDown.call(this, args);\n var oldPointValue;\n var connectorsShape;\n if (args.source && args.source.annotations) {\n oldPointValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectorsShape = this.drawingObject;\n }\n this.initialPosition = args.position;\n this.prevSource = this.drawingObject;\n this.currentPosition = args.position;\n if (!this.drawingObject) {\n var measureModule = this.commandHandler.annotation.measureAnnotationModule;\n var annotationNode = {\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.startPosition.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n sourceDecoraterShapes: this.commandHandler.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.commandHandler.drawingObject.taregetDecoraterShapes, measureType: 'Distance',\n // eslint-disable-next-line max-len\n fillColor: this.commandHandler.drawingObject.fillColor, notes: this.commandHandler.drawingObject.notes, strokeColor: this.commandHandler.drawingObject.strokeColor,\n // eslint-disable-next-line max-len\n opacity: this.commandHandler.drawingObject.opacity, thickness: this.commandHandler.drawingObject.thickness, borderDashArray: this.commandHandler.drawingObject.borderDashArray,\n shapeAnnotationType: 'Distance', pageIndex: this.pdfViewerBase.activeElements.activePageID,\n author: this.commandHandler.drawingObject.author, subject: this.commandHandler.drawingObject.subject,\n enableShapeLabel: this.commandHandler.enableShapeLabel, leaderHeight: measureModule.leaderLength\n };\n this.pdfViewerBase.updateFreeTextProperties(annotationNode);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(annotationNode);\n }\n else if (!this.dragging) {\n var nodeAnnot = {\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.startPosition.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n // eslint-disable-next-line max-len\n shapeAnnotationType: this.drawingObject.shapeAnnotationType, sourceDecoraterShapes: this.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.drawingObject.taregetDecoraterShapes, fillColor: this.drawingObject.fillColor,\n strokeColor: this.drawingObject.strokeColor, pageIndex: this.pdfViewerBase.activeElements.activePageID,\n // eslint-disable-next-line max-len\n opacity: this.drawingObject.opacity || 1, borderDashArray: this.drawingObject.borderDashArray, thickness: this.drawingObject.thickness,\n modifiedDate: this.drawingObject.modifiedDate, author: this.drawingObject.author, subject: this.drawingObject.subject,\n lineHeadEnd: this.drawingObject.lineHeadEnd, lineHeadStart: this.drawingObject.lineHeadStart,\n measureType: this.commandHandler.drawingObject.measureType, enableShapeLabel: this.commandHandler.enableShapeLabel\n };\n this.pdfViewerBase.updateFreeTextProperties(nodeAnnot);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(nodeAnnot);\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseUp = function (args) {\n if (this.dragging) {\n _super.prototype.mouseMove.call(this, args);\n if (this.commandHandler) {\n // eslint-disable-next-line\n var currentSelector = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n else {\n currentSelector = '';\n }\n // eslint-disable-next-line\n var node = this.drawingObject;\n this.commandHandler.nodePropertyChange(node, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([node.id], currentSelector);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n }\n if (this.endPoint && this.endPoint.indexOf('ConnectorSegmentPoint') > -1 && this.dragging) {\n this.commandHandler.annotation.updateCalibrateValues(this.drawingObject);\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n this.drawingObject = null;\n this.dragging = false;\n _super.prototype.mouseUp.call(this, args);\n }\n if (this.drawingObject) {\n this.endPoint = 'ConnectorSegmentPoint_1';\n }\n }\n else {\n if (this.drawingObject) {\n this.commandHandler.remove(this.drawingObject);\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n LineTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.currentPosition = args.position;\n this.dragging = true;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n // eslint-disable-next-line\n var currentSelector = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n else {\n currentSelector = '';\n }\n // eslint-disable-next-line max-len\n if (this.inAction && this.commandHandler && this.drawingObject && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n // eslint-disable-next-line max-len\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, this.drawingObject, this.currentPosition, this.selectedSegment, args.target, null, currentSelector);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n }\n }\n this.prevPosition = this.currentPosition;\n }\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n LineTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return LineTool;\n}(ToolBase));\nexport { LineTool };\n/**\n * Rotates the selected objects\n *\n * @hidden\n */\nvar RotateTool = /** @class */ (function (_super) {\n __extends(RotateTool, _super);\n function RotateTool(commandHandler, base) {\n return _super.call(this, commandHandler, base, true) || this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseDown = function (args) {\n var nodeMouseDown = cloneObject(args.source);\n this.undoElement = {\n bounds: {\n x: nodeMouseDown.wrapper.offsetX, y: nodeMouseDown.wrapper.offsetY,\n width: nodeMouseDown.wrapper.actualSize.width, height: nodeMouseDown.wrapper.actualSize.height\n }, rotateAngle: nodeMouseDown.rotateAngle\n // eslint-disable-next-line\n };\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseUp = function (args) {\n var object = args.source;\n // eslint-disable-next-line\n var newShapeObject;\n if (this.undoElement.rotateAngle !== object.wrapper.rotateAngle) {\n // eslint-disable-next-line\n var currentSelector = args.source.annotations[0].annotationSelectorSettings;\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n newShapeObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }, rotateAngle: args.source.wrapper.rotateAngle\n };\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, args.source, 'Rotate', '', this.undoElement, newShapeObject);\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, null, 'Rotate');\n this.commandHandler.annotation.stickyNotesAnnotationModule.updateStickyNotes(args.source, null);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n RotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object = args.source;\n // eslint-disable-next-line\n var currentSelector = args.source.annotations[0].annotationSelectorSettings;\n this.currentPosition = args.position;\n if (object.wrapper) {\n var refPoint = { x: object.wrapper.offsetX, y: object.wrapper.offsetY };\n var angle = Point.findAngle(refPoint, this.currentPosition) + 90;\n angle = (angle + 360) % 360;\n this.blocked = !(this.commandHandler.rotate(angle - object.wrapper.rotateAngle, currentSelector));\n }\n return !this.blocked;\n };\n RotateTool.prototype.getTooltipContent = function (node) {\n return Math.round((node.rotateAngle % 360)).toString() + '\\xB0';\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n RotateTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return RotateTool;\n}(ToolBase));\nexport { RotateTool };\n","import { Size } from './../primitives/size';\nimport { pathSegmentCollection, getRectanglePath, processPathData } from './../utility/path-util';\n// import { overFlow } from './../utility/base-util';\nimport { createHtmlElement } from './../utility/dom-util';\n/**\n * Canvas Renderer\n */\n/** @private */\nvar CanvasRenderer = /** @class */ (function () {\n function CanvasRenderer() {\n }\n /** @private */\n CanvasRenderer.getContext = function (canvas) {\n return canvas.getContext('2d');\n };\n CanvasRenderer.prototype.setStyle = function (canvas, style) {\n var ctx = CanvasRenderer.getContext(canvas);\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n ctx.strokeStyle = style.stroke;\n ctx.lineWidth = style.strokeWidth;\n if (style.strokeWidth === 0) {\n ctx.strokeStyle = 'transparent';\n }\n ctx.globalAlpha = style.opacity;\n var dashArray = [];\n if (style.dashArray) {\n dashArray = this.parseDashArray(style.dashArray);\n }\n ctx.setLineDash(dashArray);\n ctx.fillStyle = style.fill;\n };\n CanvasRenderer.prototype.rotateContext = function (canvas, angle, x, y) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.translate(x, y);\n ctx.rotate(angle * Math.PI / 180);\n ctx.translate(-x, -y);\n };\n CanvasRenderer.prototype.setFontStyle = function (canvas, text) {\n var ctx = CanvasRenderer.getContext(canvas);\n var font = '';\n if (text.italic) {\n font += 'italic ';\n }\n if (text.bold) {\n font += 'bold ';\n }\n font += (text.fontSize) + 'px ';\n font += text.fontFamily;\n ctx.font = font;\n };\n /** @private */\n CanvasRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n var separator = dashArray.indexOf(' ') !== -1 ? ' ' : ',';\n var splittedDashes = dashArray.split(separator);\n for (var _i = 0, splittedDashes_1 = splittedDashes; _i < splittedDashes_1.length; _i++) {\n var i = splittedDashes_1[_i];\n dashes.push(Number(i));\n }\n return dashes;\n };\n //Rendering Part\n /** @private */\n CanvasRenderer.prototype.drawRectangle = function (canvas, options) {\n if (options.visible === true) {\n if (options.cornerRadius) {\n options.data = getRectanglePath(options.cornerRadius, options.height, options.width);\n this.drawPath(canvas, options);\n }\n else {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var cornerRadius = options.cornerRadius;\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setStyle(canvas, options);\n ctx.rect(options.x, options.y, options.width, options.height);\n ctx.fillRect(options.x, options.y, options.width, options.height);\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n }\n }\n };\n /** @private */\n CanvasRenderer.prototype.drawPath = function (canvas, options) {\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var pivotY = options.y + options.height * options.pivotY;\n var pivotX = options.x + options.width * options.pivotX;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setStyle(canvas, options);\n ctx.translate(options.x, options.y);\n this.renderPath(canvas, options, collection);\n ctx.fill();\n ctx.translate(-options.x, -options.y);\n ctx.stroke();\n ctx.restore();\n };\n /** @private */\n CanvasRenderer.prototype.renderPath = function (canvas, options, collection) {\n if (options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n var x0 = void 0;\n var y0 = void 0;\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x = void 0;\n var y = void 0;\n var length_1;\n var i = void 0;\n var newSeg = void 0;\n var segs = collection;\n for (x = 0, y = 0, i = 0, length_1 = segs.length; i < length_1; ++i) {\n var obj = segs[i];\n var seg = obj;\n var char = seg.command;\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n switch (char) {\n case 'M':\n ctx.moveTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'L':\n ctx.lineTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'C':\n ctx.bezierCurveTo(x1, y1, x2, y2, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n seg.x2 = x2;\n seg.y2 = y2;\n break;\n case 'Q':\n ctx.quadraticCurveTo(x1, y1, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n break;\n case 'A':\n var curr = { x: x0, y: y0 };\n var rx = seg.r1;\n var ry = seg.r2;\n var xAxisRotation = seg.angle * (Math.PI / 180.0);\n var largeArc = seg.largeArc;\n var sweep = seg.sweep;\n var cp = { x: x, y: y };\n var currp = {\n x: Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,\n y: -Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0\n };\n var l = Math.pow(currp.x, 2) / Math.pow(rx, 2) + Math.pow(currp.y, 2) / Math.pow(ry, 2);\n if (l > 1) {\n rx *= Math.sqrt(l);\n ry *= Math.sqrt(l);\n }\n var k = (Math.pow(ry, 2) * Math.pow(currp.x, 2));\n var s = (largeArc === sweep ? -1 : 1) * Math.sqrt(((Math.pow(rx, 2) * Math.pow(ry, 2)) - (Math.pow(rx, 2) * Math.pow(currp.y, 2)) - k) /\n (Math.pow(rx, 2) * Math.pow(currp.y, 2) + Math.pow(ry, 2) * Math.pow(currp.x, 2)));\n if (isNaN(s)) {\n s = 0;\n }\n var cpp = { x: s * rx * currp.y / ry, y: s * -ry * currp.x / rx };\n var centp = {\n x: (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\n y: (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\n };\n var a1 = this.a([1, 0], [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]);\n var u = [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry];\n var v = [(-currp.x - cpp.x) / rx, (-currp.y - cpp.y) / ry];\n var ad = this.a(u, v);\n if (this.r(u, v) <= -1) {\n ad = Math.PI;\n }\n if (this.r(u, v) >= 1) {\n ad = 0;\n }\n var dir = !sweep ? -1.0 : 1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = {\n x: centp.x + rx * Math.cos(ah),\n y: centp.y + ry * Math.sin(ah)\n };\n seg.centp = centp;\n seg.xAxisRotation = xAxisRotation;\n seg.rx = rx;\n seg.ry = ry;\n seg.a1 = a1;\n seg.ad = ad;\n seg.sweep = sweep;\n if (ctx != null) {\n var ra = rx > ry ? rx : ry;\n var sx = rx > ry ? 1 : rx / ry;\n var sy = rx > ry ? ry / rx : 1;\n ctx.save();\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, ra, a1, a1 + ad, !sweep);\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n ctx.restore();\n }\n break;\n case 'Z':\n case 'z':\n ctx.closePath();\n x = x0;\n y = y0;\n break;\n }\n x0 = x;\n y0 = y;\n }\n }\n };\n /** @private */\n CanvasRenderer.prototype.drawText = function (canvas, options) {\n if (options.content && options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n this.setStyle(canvas, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setFontStyle(canvas, options);\n var i = 0;\n var childNodes = [];\n childNodes = options.childNodes;\n var wrapBounds = options.wrapBounds;\n ctx.fillStyle = options.color;\n if (wrapBounds) {\n var position = this.labelAlign(options, wrapBounds, childNodes);\n for (i = 0; i < childNodes.length; i++) {\n var child = childNodes[i];\n var offsetX = position.x + child.x - wrapBounds.x;\n var offsetY = position.y + child.dy * i + ((options.fontSize) * 0.8);\n // if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap') {\n // child.text = overFlow(child.text, options);\n // }\n ctx.fillText(child.text, offsetX, offsetY);\n if (options.textDecoration === 'Underline'\n || options.textDecoration === 'Overline'\n || options.textDecoration === 'LineThrough') {\n var startPointX = offsetX;\n var startPointY = void 0;\n var textlength = ctx.measureText(child.text).width;\n var endPointX = offsetX + textlength;\n var endPointY = void 0;\n switch (options.textDecoration) {\n case 'Underline':\n startPointY = offsetY + 2;\n endPointY = offsetY + 2;\n break;\n case 'Overline':\n startPointY = (position.y + child.dy * i);\n endPointY = (position.y + child.dy * i);\n break;\n case 'LineThrough':\n startPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n endPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n }\n ctx.beginPath();\n ctx.moveTo(startPointX, startPointY);\n ctx.lineTo(endPointX, endPointY);\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.fontSize * .08;\n ctx.globalAlpha = options.opacity;\n ctx.stroke();\n }\n }\n }\n ctx.restore();\n }\n };\n //end region\n // vector magnitude\n CanvasRenderer.prototype.m = function (v) { return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2)); };\n // ratio between two vectors\n CanvasRenderer.prototype.r = function (u, v) { return (u[0] * v[0] + u[1] * v[1]) / (this.m(u) * this.m(v)); };\n // angle between two vectors\n CanvasRenderer.prototype.a = function (u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(this.r(u, v)); };\n CanvasRenderer.prototype.getMeetOffset = function (arg, res, dest) {\n var max = Math.max(res, dest);\n var min = Math.min(res, dest);\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (max - min) / 2;\n case 'max': return max - min;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.getSliceOffset = function (arg, res, dest, src) {\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (res - dest) / 2 * src / res;\n case 'max': return (res - dest) * src / res;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.image = function (ctx, image, x, y, width, height, alignOptions) {\n ctx.beginPath();\n var srcWidth = image.width;\n var srcHeight = image.height;\n var destinationW = width;\n var destinationH = height;\n var resultWidth = 0;\n var resultHeight = 0;\n ctx.globalAlpha = alignOptions.opacity;\n if (alignOptions && alignOptions.alignment !== 'None') {\n var xalign = alignOptions.alignment.toLowerCase().substr(1, 3);\n var yalign = alignOptions.alignment.toLowerCase().substr(5, 3);\n if (alignOptions.scale === 'Slice') {\n var a = function () {\n resultWidth = destinationW;\n resultHeight = srcHeight * destinationW / srcWidth;\n };\n var b = function () {\n resultWidth = srcWidth * destinationH / srcHeight;\n resultHeight = destinationH;\n };\n if (destinationW > destinationH) {\n a();\n if (destinationH > resultHeight) {\n b();\n }\n }\n else if (destinationW === destinationH) {\n if (srcWidth > srcHeight) {\n b();\n }\n else {\n a();\n }\n }\n else {\n b();\n if (destinationW > resultWidth) {\n a();\n }\n }\n var x1 = this.getSliceOffset(xalign, resultWidth, destinationW, srcWidth);\n var y1 = this.getSliceOffset(yalign, resultHeight, destinationH, srcHeight);\n var sWidth = srcWidth - x1;\n var sHeight = srcHeight - y1;\n var dWidth = resultWidth - (x1 * (resultWidth / srcWidth));\n var dHeight = resultHeight - (y1 * (resultHeight / srcHeight));\n var canvas1 = createHtmlElement('canvas', { 'width': width.toString(), 'height': height.toString() });\n var ctx1 = canvas1.getContext('2d');\n ctx1.drawImage(image, x1, y1, sWidth, sHeight, 0, 0, dWidth, dHeight);\n ctx.drawImage(canvas1, x, y, width, height);\n }\n else if (alignOptions.scale === 'Meet') {\n var srcRatio = (srcHeight / srcWidth);\n var destRatio = (destinationH / destinationW);\n resultWidth = destRatio > srcRatio ? destinationW : destinationH / srcRatio;\n resultHeight = destRatio > srcRatio ? destinationW * srcRatio : destinationH;\n x += this.getMeetOffset(xalign, resultWidth, destinationW);\n y += this.getMeetOffset(yalign, resultHeight, destinationH);\n ctx.drawImage(image, 0, 0, srcWidth, srcHeight, x, y, resultWidth, resultHeight);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n }\n else {\n if (image.complete) {\n ctx.drawImage(image, x, y, width, height);\n }\n else {\n var transform_1 = ctx.getTransform();\n image.onload = function () {\n ctx.setTransform(transform_1.a, transform_1.b, transform_1.c, transform_1.d, transform_1.e, transform_1.f);\n ctx.drawImage(image, x, y, width, height);\n };\n }\n }\n ctx.closePath();\n };\n // text utility\n CanvasRenderer.prototype.loadImage = function (ctx, obj, canvas, pivotX, pivotY) {\n this.rotateContext(canvas, obj.angle, pivotX, pivotY);\n var image;\n if (window.customStampCollection && window.customStampCollection.get(obj.printID)) {\n image = window.customStampCollection.get(obj.printID);\n }\n else {\n image = new Image();\n image.src = obj.source;\n }\n this.image(ctx, image, obj.x, obj.y, obj.width, obj.height, obj);\n };\n /** @private */\n CanvasRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n var _this = this;\n if (obj.visible) {\n var ctx_1 = CanvasRenderer.getContext(canvas);\n ctx_1.save();\n var pivotX_1 = obj.x + obj.width * obj.pivotX;\n var pivotY_1 = obj.y + obj.height * obj.pivotY;\n var imageObj = new Image();\n imageObj.src = obj.source;\n var id = ctx_1.canvas.id.split('_');\n var value = id[id.length - 1] === ('diagram' || 'diagramLayer') ? true : false;\n /**\n * Since Clipping portion for node with slice option is not calculated properly\n * if (obj.sourceX !== undefined && obj.sourceY !== undefined && obj.sourceWidth !== undefined\n * && obj.sourceHeight !== undefined) {\n * ctx.drawImage(imageObj, obj.sourceX, obj.sourceY, obj.sourceWidth, obj.sourceHeight, obj.x, obj.y, obj.width, obj.height);\n * } else {\n * ctx.drawImage(imageObj, obj.x, obj.y, obj.width, obj.height);\n * }\n */\n if (!fromPalette) {\n this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n }\n else {\n imageObj.onload = function () {\n _this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n };\n }\n ctx_1.restore();\n }\n };\n /** @private */\n CanvasRenderer.prototype.labelAlign = function (text, wrapBounds, childNodes) {\n var bounds = new Size(wrapBounds.width, childNodes.length * (text.fontSize * 1.2));\n var position = { x: 0, y: 0 };\n var labelX = text.x;\n var labelY = text.y;\n var offsetx = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointx = offsetx;\n var pointy = offsety;\n if (text.textAlign === 'left') {\n pointx = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBounds.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n pointx = 0;\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointx = (text.width * 1);\n }\n position.x = labelX + pointx + (wrapBounds ? wrapBounds.x : 0);\n position.y = labelY + pointy - bounds.height / 2;\n return position;\n };\n return CanvasRenderer;\n}());\nexport { CanvasRenderer };\nexport function refreshDiagramElements(canvas, drawingObjects, renderer) {\n for (var i = 0; i < drawingObjects.length; i++) {\n renderer.renderElement(drawingObjects[i], canvas, undefined);\n }\n}\n","import { Size } from './../primitives/size';\nimport { CanvasRenderer } from './../rendering/canvas-renderer';\nimport { processPathData, pathSegmentCollection } from '../utility/path-util';\n/**\n * SVG Renderer\n */\n/** @private */\nvar SvgRenderer = /** @class */ (function () {\n function SvgRenderer() {\n }\n /** @private */\n SvgRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n return dashes;\n };\n /** @private */\n SvgRenderer.prototype.drawRectangle = function (svg, options, diagramId, onlyRect, isSelector, parentSvg, ariaLabel) {\n var id;\n if (options.id === svg.id) {\n id = options.id + '_container';\n }\n else {\n id = options.id;\n }\n var rect;\n if (!rect || isSelector) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n svg.appendChild(rect);\n }\n var attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity,\n 'aria-label': ariaLabel ? ariaLabel : ''\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n var poiterEvents = 'pointer-events';\n if (!ariaLabel) {\n attr[poiterEvents] = 'none';\n }\n setAttributeSvg(rect, attr);\n this.setSvgStyle(rect, options, diagramId);\n };\n /** @private */\n SvgRenderer.prototype.updateSelectionRegion = function (gElement, options) {\n var rect;\n rect = gElement.parentNode.getElementById(options.id);\n var attr;\n attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n class: 'e-diagram-selected-region'\n };\n if (!rect) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n gElement.appendChild(rect);\n }\n this.setSvgStyle(rect, options);\n setAttributeSvg(rect, attr);\n };\n /** @private */\n SvgRenderer.prototype.createGElement = function (elementType, attribute) {\n var gElement = createSvgElement(elementType, attribute);\n return gElement;\n };\n /** @private */\n SvgRenderer.prototype.drawCircle = function (gElement, options, enableSelector, ariaLabel) {\n var circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n this.setSvgStyle(circle, options);\n var classval = options.class || '';\n if (!enableSelector) {\n classval += ' e-disabled';\n }\n var attr = {\n 'id': options.id,\n 'cx': options.centerX,\n 'cy': options.centerY,\n 'r': options.radius,\n 'visibility': options.visible ? 'visible' : 'hidden',\n 'class': classval,\n 'aria-label': ariaLabel ? ariaLabel['aria-label'] : ''\n };\n var pointerEvents = 'pointer-events';\n if (attr['aria-label'] === '') {\n attr[pointerEvents] = 'none';\n }\n circle.style.display = options.visible ? 'block' : 'none';\n setAttributeSvg(circle, attr);\n gElement.appendChild(circle);\n };\n /** @private */\n SvgRenderer.prototype.setSvgStyle = function (svg, style, diagramId) {\n if (style.canApplyStyle || style.canApplyStyle === undefined) {\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n var dashArray = [];\n var fill = void 0;\n if (style.dashArray !== undefined) {\n var canvasRenderer = new CanvasRenderer();\n dashArray = canvasRenderer.parseDashArray(style.dashArray);\n }\n fill = style.fill;\n if (style.stroke) {\n svg.setAttribute('stroke', style.stroke);\n }\n if (style.strokeWidth !== undefined && style.strokeWidth !== null) {\n svg.setAttribute('stroke-width', style.strokeWidth.toString());\n }\n if (dashArray) {\n svg.setAttribute('stroke-dasharray', dashArray.toString());\n }\n if (fill) {\n svg.setAttribute('fill', fill);\n }\n }\n };\n //end region\n // text utility\n /** @private */\n SvgRenderer.prototype.svgLabelAlign = function (text, wrapBound, childNodes) {\n var bounds = new Size(wrapBound.width, childNodes.length * (text.fontSize * 1.2));\n var pos = { x: 0, y: 0 };\n var x = 0;\n var y = 1.2;\n var offsetX = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointX = offsetX;\n var pointY = offsety;\n if (text.textAlign === 'left') {\n pointX = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBound.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n pointX = 0;\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointX = (text.width * 1);\n }\n pos.x = x + pointX + (wrapBound ? wrapBound.x : 0);\n pos.y = y + pointY - bounds.height / 2;\n return pos;\n };\n /** @private */\n SvgRenderer.prototype.drawLine = function (gElement, options) {\n var line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.setSvgStyle(line, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n var kk = '';\n var attr = {\n 'id': options.id,\n 'x1': options.startPoint.x + options.x,\n 'y1': options.startPoint.y + options.y,\n 'x2': options.endPoint.x + options.x,\n 'y2': options.endPoint.y + options.y,\n 'stroke': options.stroke,\n 'stroke-width': options.strokeWidth.toString(), 'opacity': options.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ' ' + pivotX + ' ' + pivotY + ')',\n 'visibility': options.visible ? 'visible' : 'hidden',\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(line, attr);\n gElement.appendChild(line);\n };\n /** @private */\n SvgRenderer.prototype.drawPath = function (svg, options, diagramId, isSelector, parentSvg, ariaLabel) {\n var id;\n var x = Math.floor((Math.random() * 10) + 1);\n id = svg.id + '_shape' + x.toString();\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n var shadowElement;\n if (parentSvg) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var path;\n if (parentSvg) {\n path = parentSvg.getElementById(options.id);\n }\n if (!path || isSelector) {\n path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(path);\n }\n this.renderPath(path, options, collection);\n var attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity,\n 'aria-label': ariaLabel ? ariaLabel : ''\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(path, attr);\n this.setSvgStyle(path, options, diagramId);\n };\n /** @private */\n SvgRenderer.prototype.renderPath = function (svg, options, collection) {\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var segments = collection;\n var d = '';\n for (x = 0, y = 0, i = 0, length = segments.length; i < length; ++i) {\n var obj = segments[i];\n var segment = obj;\n var char = segment.command;\n if ('x1' in segment) {\n x1 = segment.x1;\n }\n if ('x2' in segment) {\n x2 = segment.x2;\n }\n if ('y1' in segment) {\n y1 = segment.y1;\n }\n if ('y2' in segment) {\n y2 = segment.y2;\n }\n if ('x' in segment) {\n x = segment.x;\n }\n if ('y' in segment) {\n y = segment.y;\n }\n switch (char) {\n case 'M':\n d = d + 'M' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'L':\n d = d + 'L' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'C':\n d = d + 'C' + x1.toString() + ',' + y1.toString() + ',' + x2.toString() + ',' + y2.toString() + ',';\n d += x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Q':\n d = d + 'Q' + x1.toString() + ',' + y1.toString() + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'A':\n d = d + 'A' + segment.r1.toString() + ',' + segment.r2.toString() + ',' + segment.angle.toString() + ',';\n d += segment.largeArc.toString() + ',' + segment.sweep + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Z':\n case 'z':\n d = d + 'Z' + ' ';\n break;\n }\n }\n svg.setAttribute('d', d);\n };\n return SvgRenderer;\n}());\nexport { SvgRenderer };\n/** @private */\nexport function setAttributeSvg(svg, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n svg.setAttribute(keys[i], attributes[keys[i]]);\n }\n}\n/** @private */\nexport function createSvgElement(elementType, attribute) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', elementType);\n setAttributeSvg(element, attribute);\n return element;\n}\n/** @private */\nexport function createSvg(id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n}\nexport function getParentSvg(element, targetElement, canvas) {\n if (element && element.id) {\n if (targetElement && targetElement === 'selector') {\n return this.pdfViewer.adornerSvgLayer;\n }\n }\n return canvas;\n}\n","import { createHtmlElement, getDiagramElement } from '@syncfusion/ej2-drawings';\nimport { setAttributeSvg, createSvgElement } from '@syncfusion/ej2-drawings';\n/**\n * @param {ClientRect} bounds - Specified the bounds of the annotation.\n * @param {string} commonStyle - Specified the annotation styles.\n * @param {HTMLElement} cavas - Specified the annotation canvas element.\n * @param {number} index - Specified the page index value.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @hidden\n * @returns {void}\n */\nexport function renderAdornerLayer(bounds, commonStyle, cavas, index, pdfViewer) {\n var divElement = createHtmlElement('div', {\n 'id': pdfViewer.element.id + index + '_diagramAdornerLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n if (!getDiagramElement(divElement.id)) {\n var nextElement = pdfViewer.viewerBase.getElement('_pageDiv_' + index);\n var pageBound = nextElement.getBoundingClientRect();\n var svgAdornerSvg = createSvg(pdfViewer.element.id + index + '_diagramAdorner_svg', pageBound.width, pageBound.height);\n svgAdornerSvg.setAttribute('class', 'e-adorner-layer' + index);\n svgAdornerSvg.setAttribute('style', 'pointer-events:none;');\n pdfViewer.adornerSvgLayer = createSvgElement('g', { 'id': pdfViewer.element.id + index + '_diagramAdorner' });\n pdfViewer.adornerSvgLayer.setAttribute('style', ' pointer-events: all; ');\n svgAdornerSvg.appendChild(pdfViewer.adornerSvgLayer);\n divElement.appendChild(svgAdornerSvg);\n divElement.style.width = pageBound.width + 'px';\n divElement.style.height = pageBound.height + 'px';\n if (nextElement) {\n nextElement.insertBefore(divElement, nextElement.childNodes[0]);\n }\n else {\n cavas.parentElement.appendChild(divElement);\n }\n var svgSelector = createSvgElement('g', { 'id': pdfViewer.element.id + index + '_SelectorElement' });\n pdfViewer.adornerSvgLayer.appendChild(svgSelector);\n setAttributeSvg(svgAdornerSvg, { style: 'pointer-events:none;' });\n }\n pdfViewer.viewerBase.applyElementStyles(divElement, index);\n}\n/**\n * @param {string} id - Specified the Id of the svg element.\n * @param {string | number} width - Specified the width of the svg element.\n * @param {string | number} height - Specified the height of the svg element.\n * @hidden\n * @returns {SVGElement} - Returns the svg element.\n */\nexport function createSvg(id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n}\n","/**\n * ContextMenu module is used to handle the context menus used in the control.\n *\n * @hidden\n */\nvar BlazorContextMenu = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorcontext\n *\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function BlazorContextMenu(pdfViewer, pdfViewerBase) {\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * Create the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.createContextMenu = function () {\n var htmlCollection = document.getElementsByClassName(this.pdfViewer.element.id + '_context_menu');\n if (htmlCollection) {\n this.contextMenuElement = htmlCollection[0];\n if (this.contextMenuElement.children && this.contextMenuElement.children.length > 0) {\n var htmlElement = this.contextMenuElement.children[0];\n htmlElement.className = htmlElement.className + ' ' + 'e-pv-context-menu';\n }\n }\n };\n /**\n * open the context menu.\n * @param {number} top - The top.\n * @param {number} left - The left.\n * @param {HTMLElement} target - The target.\n * @returns {void}\n */\n BlazorContextMenu.prototype.open = function (top, left, target) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenContextMenu', top, left);\n };\n /**\n * close the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.close = function () {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('CloseContextMenu');\n };\n /**\n * destroy the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.destroy = function () {\n this.previousAction = '';\n this.contextMenuElement = null;\n };\n // eslint-disable-next-line\n BlazorContextMenu.prototype.OnItemSelected = function (selectedMenu) {\n if (typeof selectedMenu === 'string') {\n this.pdfViewerBase.OnItemSelected(selectedMenu);\n }\n else {\n this.pdfViewerBase.OnItemSelected(selectedMenu[0]);\n }\n };\n return BlazorContextMenu;\n}());\nexport { BlazorContextMenu };\n","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\nvar globalTimeOut = {};\nvar spinTemplate = null;\nvar spinCSSClass = null;\nvar DEFT_MAT_WIDTH = 30;\nvar DEFT_FAB_WIDTH = 30;\nvar DEFT_BOOT_WIDTH = 30;\nvar DEFT_BOOT4_WIDTH = 36;\nvar CLS_SHOWSPIN = 'e-spin-show';\nvar CLS_HIDESPIN = 'e-spin-hide';\nvar CLS_MATERIALSPIN = 'e-spin-material';\nvar CLS_FABRICSPIN = 'e-spin-fabric';\nvar CLS_BOOTSPIN = 'e-spin-bootstrap';\nvar CLS_BOOT4SPIN = 'e-spin-bootstrap4';\nvar CLS_BOOT5SPIN = 'e-spin-bootstrap5';\nvar CLS_TAILWIND = 'e-spin-tailwind';\nvar CLS_Fluent = 'e-spin-fluent';\nvar CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast';\nvar CLS_SPINWRAP = 'e-spinner-pane';\nvar CLS_SPININWRAP = 'e-spinner-inner';\nvar CLS_SPINCIRCLE = 'e-path-circle';\nvar CLS_SPINARC = 'e-path-arc';\nvar CLS_SPINLABEL = 'e-spin-label';\nvar CLS_SPINTEMPLATE = 'e-spin-template';\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : blazorSpinner({ action: \"Create\", options: {target: targetElement}, type: \"\" });\n * ```\n *\n * @private\n * @param {string} action - The action.\n * @param {CreateArgs} options - The options\n * @param {string} target - The target\n * @param {string} type - the type\n * @returns {void}\n */\nexport function Spinner(action, options, target, type) {\n switch (action) {\n case 'Create':\n // eslint-disable-next-line\n var element = document.querySelector(options.target);\n // eslint-disable-next-line\n var args = { type: type, target: element, cssClass: options.cssClass,\n label: options.label, width: options.width };\n createSpinner(args);\n break;\n case 'Show':\n showSpinner(document.querySelector(target));\n break;\n case 'Hide':\n hideSpinner(document.querySelector(target));\n break;\n case 'Set':\n // eslint-disable-next-line\n var setArgs = { cssClass: options.cssClass, type: type };\n setSpinner(setArgs);\n break;\n }\n}\n/**\n * Create a spinner for the specified target element.\n * ```\n * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' });\n * ```\n * @private\n * @param {SpinnerArgs} args - The SpinnerArgs.\n * @param {createElementParams} internalCreateElement - The internalCreateElement\n * @returns {void}\n */\nexport function createSpinner(args, internalCreateElement) {\n if (!args.target) {\n return;\n }\n var radius;\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container = createSpinnerContainer(args.target, makeElement);\n if (!isNullOrUndefined(args.cssClass)) {\n container.wrap.classList.add(args.cssClass);\n }\n if (!isNullOrUndefined(args.template) || !isNullOrUndefined(spinTemplate)) {\n var template = !isNullOrUndefined(args.template) ? args.template : spinTemplate;\n container.wrap.classList.add(CLS_SPINTEMPLATE);\n replaceContent(container.wrap, template, spinCSSClass);\n }\n else {\n var theme = !isNullOrUndefined(args.type) ? args.type : getTheme(container.wrap);\n var width = !isNullOrUndefined(args.width) ? args.width : undefined;\n radius = calculateRadius(width, theme);\n setTheme(theme, container.wrap, radius, makeElement);\n if (!isNullOrUndefined(args.label)) {\n createLabel(container.innerWrap, args.label, makeElement);\n }\n }\n container.wrap.classList.add(CLS_HIDESPIN);\n container = null;\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} label - The label.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {HTMLElement} - Returns HTMLElement.\n */\nfunction createLabel(container, label, makeElement) {\n var labelEle = makeElement('div', {});\n labelEle.classList.add(CLS_SPINLABEL);\n labelEle.textContent = label;\n container.appendChild(labelEle);\n return labelEle;\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createMaterialSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_MATERIALSPIN);\n matCalculateAttributes(radius, container, 'Material', CLS_MATERIALSPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrap4Spinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_BOOT4SPIN);\n matCalculateAttributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrap5Spinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_BOOT5SPIN);\n matCalculateAttributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createTailwindSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius };\n createFabricElement(container, uniqueID, CLS_TAILWIND, makeElement);\n fbCalculateAttributes(radius, container, CLS_TAILWIND);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFluentSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fluent', radius: radius };\n createFabricElement(container, uniqueID, CLS_Fluent, makeElement);\n fbCalculateAttributes(radius, container, CLS_Fluent);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {string} uniqueID - The uniqueID.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction startMatAnimate(container, uniqueID, radius) {\n var globalObject = {};\n var timeOutVar = 0;\n globalTimeOut[\"\" + uniqueID].timeOut = 0;\n globalObject[\"\" + uniqueID] = globalVariables(uniqueID, radius, 0, 0);\n var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar };\n animateMaterial(spinnerInfo);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFabricSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius };\n createFabricElement(container, uniqueID, CLS_FABRICSPIN, makeElement);\n fbCalculateAttributes(radius, container, CLS_FABRICSPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createHighContrastSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius };\n createFabricElement(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement);\n fbCalculateAttributes(radius, container, CLS_HIGHCONTRASTSPIN);\n}\n/**\n * @param {HTMLElement} container - The container\n * @returns {string} - Returns the string\n */\nfunction getTheme(container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n}\n/**\n * @param {string} theme - The theme.\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction setTheme(theme, container, radius, makeElement) {\n var innerContainer = container.querySelector('.' + CLS_SPININWRAP);\n var svg = innerContainer.querySelector('svg');\n if (!isNullOrUndefined(svg)) {\n innerContainer.removeChild(svg);\n }\n switch (theme) {\n case 'Material':\n createMaterialSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fabric':\n createFabricSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap':\n createBootstrapSpinner(innerContainer, radius, makeElement);\n break;\n case 'HighContrast':\n createHighContrastSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap4':\n createBootstrap4Spinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap5':\n createBootstrap5Spinner(innerContainer, radius, makeElement);\n break;\n case 'Tailwind':\n createTailwindSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fluent':\n createFluentSpinner(innerContainer, radius, makeElement);\n break;\n }\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrapSpinner(innerContainer, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius };\n createBootstrapElement(innerContainer, uniqueID, makeElement);\n bootCalculateAttributes(innerContainer, radius);\n}\n/**\n * @param {HTMLElement} innerContainer - The HTMLElement.\n * @param {string} uniqueID - The uniqueID.\n * @param {createElementParams} makeElement - The createElementParams.\n * @returns {void}\n */\nfunction createBootstrapElement(innerContainer, uniqueID, makeElement) {\n var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var viewBoxValue = 64;\n var trans = 32;\n var defaultRadius = 2;\n svgBoot.setAttribute('id', uniqueID);\n svgBoot.setAttribute('class', CLS_BOOTSPIN);\n svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue);\n innerContainer.insertBefore(svgBoot, innerContainer.firstChild);\n for (var item = 0; item <= 7; item++) {\n var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item);\n bootCircle.setAttribute('r', defaultRadius + '');\n bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')');\n svgBoot.appendChild(bootCircle);\n }\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction bootCalculateAttributes(innerContainer, radius) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n svg.style.width = svg.style.height = radius + 'px';\n var x = 0;\n var y = 0;\n var rad = 24;\n var startArc = 90;\n for (var item = 0; item <= 7; item++) {\n var start = defineArcPoints(x, y, rad, startArc);\n var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item);\n circleEle.setAttribute('cx', start.x + '');\n circleEle.setAttribute('cy', start.y + '');\n startArc = startArc >= 360 ? 0 : startArc;\n startArc = startArc + 45;\n }\n}\n/**\n * @param {number} begin - The begin.\n * @param {number} stop - The stop.\n * @returns {number[]} - Returns the number.\n */\nfunction generateSeries(begin, stop) {\n var series = [];\n var start = begin;\n var end = stop;\n var increment = false;\n var count = 1;\n formSeries(start);\n /**\n * @param {number} i - The number\n * @returns {void}\n */\n function formSeries(i) {\n series.push(i);\n if (i !== end || count === 1) {\n if (i <= start && i > 1 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n else if (i === 1) {\n i = 7;\n i = parseFloat((i + 0.2).toFixed(2));\n increment = true;\n }\n else if (i < 8 && increment) {\n i = parseFloat((i + 0.2).toFixed(2));\n if (i === 8) {\n increment = false;\n }\n }\n else if (i <= 8 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n ++count;\n formSeries(i);\n }\n }\n return series;\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @returns {void}\n */\nfunction animateBootstrap(innerContainer) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var id = svg.getAttribute('id');\n for (var i = 1; i <= 8; i++) {\n var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' +\n (i === 8 ? 0 : i))[0]);\n rotation(circleEle, i, i, generateSeries(i, i), id);\n }\n /**\n * @param {SVGCircleElement} circle - The circle.\n * @param {number} start - The start.\n * @param {number} end - The end.\n * @param {number[]} series - The series\n * @param {string} id - The id.\n * @returns {void}\n */\n function rotation(circle, start, end, series, id) {\n var count = 0;\n bootAnimate(start);\n /**\n * @param {number} radius - The radisu.\n * @returns {void}\n */\n function bootAnimate(radius) {\n if (globalTimeOut[\"\" + id].isAnimate) {\n ++count;\n circle.setAttribute('r', radius + '');\n if (count >= series.length) {\n count = 0;\n }\n globalTimeOut[\"\" + id].timeOut = setTimeout(bootAnimate.bind(null, series[parseInt(count.toString(), 10)]), 18);\n }\n }\n }\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {string} template - The template.\n * @param {string} cssClass - The cssClass.\n * @returns {void}\n */\nfunction replaceContent(container, template, cssClass) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var inner = container.querySelector('.e-spinner-inner');\n inner.innerHTML = template;\n}\n/**\n * @param {string | number} width - The width\n * @param {string} theme - The theme.\n * @returns {number} - Returns the number.\n */\nfunction calculateRadius(width, theme) {\n var defaultSize;\n switch (theme) {\n case 'Material':\n defaultSize = DEFT_MAT_WIDTH;\n break;\n case 'Fabric':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Bootstrap4':\n defaultSize = DEFT_BOOT4_WIDTH;\n break;\n default:\n defaultSize = DEFT_BOOT_WIDTH;\n }\n width = width ? parseFloat(width + '') : defaultSize;\n return theme === 'Bootstrap' ? width : width / 2;\n}\n/**\n * @param {string} id - The id.\n * @param {number} radius - The radius.\n * @param {number} count - The count.\n * @param {number} previousId - The previousId.\n * @returns {GlobalVariables} - Returns GlobalVariables.\n */\nfunction globalVariables(id, radius, count, previousId) {\n return {\n radius: radius,\n count: count,\n previousId: previousId\n };\n}\n/**\n * @returns {string} - Returns string.\n */\nfunction randomGenerator() {\n var random = '';\n var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 5; i++) {\n random += combine.charAt(Math.floor(Math.random() * combine.length));\n }\n return random;\n}\n/**\n * @param {HTMLElement} innerCon - The innerContainer.\n * @param {string} uniqueID - The uniqueID.\n * @param {string} themeClass - The themeClass\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFabricElement(innerCon, uniqueID, themeClass, makeElement) {\n var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgFabric.setAttribute('id', uniqueID);\n svgFabric.setAttribute('class', themeClass);\n var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCircleArc.setAttribute('class', CLS_SPINARC);\n innerCon.insertBefore(svgFabric, innerCon.firstChild);\n svgFabric.appendChild(fabricCirclePath);\n svgFabric.appendChild(fabricCircleArc);\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {string} uniqueID - The uniqueID.\n * @param {createElementParams} makeElement - The makeElement.\n * @param {string} cls - The class\n * @returns {void}\n */\nfunction createMaterialElement(innerContainer, uniqueID, makeElement, cls) {\n var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgMaterial.setAttribute('class', cls);\n svgMaterial.setAttribute('id', uniqueID);\n var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n matCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n innerContainer.insertBefore(svgMaterial, innerContainer.firstChild);\n svgMaterial.appendChild(matCirclePath);\n}\n/**\n * @param {HTMLElement} target - The target.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {HTMLElement;HTMLElement} - Retruns the HTMLElement.\n */\nfunction createSpinnerContainer(target, makeElement) {\n var spinnerContainer = makeElement('div', {});\n spinnerContainer.classList.add(CLS_SPINWRAP);\n var spinnerInnerContainer = makeElement('div', {});\n spinnerInnerContainer.classList.add(CLS_SPININWRAP);\n target.appendChild(spinnerContainer);\n spinnerContainer.appendChild(spinnerInnerContainer);\n return { wrap: spinnerContainer, innerWrap: spinnerInnerContainer };\n}\n/**\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\nfunction animateMaterial(spinnerInfo) {\n var start = 1;\n var end = 149;\n var duration = 1333;\n var max = 75;\n createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo);\n spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4;\n}\n/**\n * @param {number} start - The start.\n * @param {number} end - The end.\n * @param {Function} easing - The easing.\n * @param {number} duration - The duration.\n * @param {number} count - The count.\n * @param {number} max - The max.\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\nfunction createCircle(start, end, easing, duration, count, max, spinnerInfo) {\n var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId;\n var startTime = new Date().getTime();\n var change = end - start;\n var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + '');\n var strokeSize = getStrokeSize(diameter);\n var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0);\n matAnimation(spinnerInfo);\n /**\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\n function matAnimation(spinnerInfo) {\n var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration));\n updatePath(easing(currentTime, start, change, duration), spinnerInfo.container);\n if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) {\n globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(matAnimation.bind(null, spinnerInfo), 1);\n }\n else {\n animateMaterial(spinnerInfo);\n }\n }\n /**\n * @param {number} value - The value.\n * @param {HTMLElement} container - The container.\n * @returns {void}\n */\n function updatePath(value, container) {\n if ((!isNullOrUndefined(container.querySelector('svg.e-spin-material')))\n && (!isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle')))) {\n var svg = container.querySelector('svg.e-spin-material');\n var path = svg.querySelector('path.e-path-circle');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + '');\n path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')');\n }\n }\n}\n/**\n * @param {number} radius - The radius.\n * @param {HTMLElement} container - The container.\n * @param {string} type - The type.\n * @param {string} cls - The class\n * @returns {void}\n */\nfunction matCalculateAttributes(radius, container, type, cls) {\n var diameter = radius * 2;\n var svg = container.querySelector('svg.' + cls);\n var path = svg.querySelector('path.e-path-circle');\n var strokeSize = getStrokeSize(diameter);\n var transformOrigin = (diameter / 2) + 'px';\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.width = svg.style.height = diameter + 'px';\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n path.setAttribute('d', drawArc(diameter, strokeSize));\n if (type === 'Material') {\n path.setAttribute('stroke-width', strokeSize + '');\n path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + '');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + '');\n }\n}\n/**\n * @param {string} value - The value.\n * @returns {number} - Returns number.\n */\nfunction getSize(value) {\n var parsed = parseFloat(value);\n return parsed;\n}\n/**\n * @param {number} diameter - The diameter.\n * @param {number} strokeSize - The strokeSize.\n * @returns {string} - Returns string.\n */\nfunction drawArc(diameter, strokeSize) {\n var radius = diameter / 2;\n var offset = strokeSize / 2;\n return 'M' + radius + ',' + offset\n + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius;\n}\n/**\n * @param {number} diameter - The diameter.\n * @returns {number} - Returns number.\n */\nfunction getStrokeSize(diameter) {\n return 10 / 100 * diameter;\n}\n/**\n * @param {number} diameter - The diameter.\n * @param {number} strokeSize - The strokeSize.\n * @param {number} value - The value.\n * @param {number} max - The max.\n * @returns {number} - Returns number.\n */\nfunction getDashOffset(diameter, strokeSize, value, max) {\n return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100));\n}\n/**\n * @param {number} current - The current.\n * @param {number} start - The start.\n * @param {number} change - The change.\n * @param {number} duration - The duration\n * @returns {number} - Returns number.\n */\nfunction easeAnimation(current, start, change, duration) {\n var timestamp = (current /= duration) * current;\n var timecount = timestamp * current;\n return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount);\n}\n/**\n * @param {number} radius - The radius.\n * @param {HTMLElement} innerConainer - The innerConainer.\n * @param {string} trgClass - The trgClass.\n * @returns {void}\n */\nfunction fbCalculateAttributes(radius, innerConainer, trgClass) {\n var centerX = radius;\n var centerY = radius;\n var diameter = radius * 2;\n var startArc = 315;\n var endArc = 45;\n var svg = innerConainer.querySelector('.' + trgClass);\n var circle = svg.querySelector('.e-path-circle');\n var path = svg.querySelector('.e-path-arc');\n var transformOrigin = (diameter / 2) + 'px';\n circle.setAttribute('d', defineCircle(centerX, centerY, radius));\n path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc));\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n svg.style.width = svg.style.height = diameter + 'px';\n}\n/**\n * @param {number} centerX - The centerX.\n * @param {number} centerY - The centerY.\n * @param {number} radius - The radius.\n * @param {number} angle - The angle.\n * @returns {number;number} - Returns number.\n */\nfunction defineArcPoints(centerX, centerY, radius, angle) {\n var radians = (angle - 90) * Math.PI / 180.0;\n return {\n x: centerX + (radius * Math.cos(radians)),\n y: centerY + (radius * Math.sin(radians))\n };\n}\n/**\n * @param {number} x - The x.\n * @param {number} y - The y.\n * @param {number} radius - The radius.\n * @param {number} startArc - The startArc.\n * @param {number} endArc - The endArc.\n * @returns {string} - Returns string.\n */\nfunction defineArc(x, y, radius, startArc, endArc) {\n var start = defineArcPoints(x, y, radius, endArc);\n var end = defineArcPoints(x, y, radius, startArc);\n var d = [\n 'M', start.x, start.y,\n 'A', radius, radius, 0, 0, 0, end.x, end.y\n ].join(' ');\n return d;\n}\n/**\n * @param {number} x - The x.\n * @param {number} y - The y.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction defineCircle(x, y, radius) {\n var d = [\n 'M', x, y,\n 'm', -radius, 0,\n 'a', radius, radius, 0, 1, 0, radius * 2, 0,\n 'a', radius, radius, 0, 1, 0, -radius * 2, 0\n ].join(' ');\n return d;\n}\n/**\n * Function to show the Spinner.\n * @private\n * @param {HTMLElement} container - The container.\n * @returns {void}\n */\nexport function showSpinner(container) {\n showHideSpinner(container, false);\n container = null;\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {boolean} isHide - To show or hide.\n * @returns {void}\n */\nfunction showHideSpinner(container, isHide) {\n var spinnerWrap;\n if (container) {\n spinnerWrap = container.classList.contains(CLS_SPINWRAP) ? container :\n container.querySelector('.' + CLS_SPINWRAP);\n }\n if (container && spinnerWrap) {\n var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP);\n // eslint-disable-next-line max-len\n var spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) :\n !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN);\n if (spinCheck) {\n var svgEle = spinnerWrap.querySelector('svg');\n if (isNullOrUndefined(svgEle)) {\n return;\n }\n var id = svgEle.getAttribute('id');\n globalTimeOut[\"\" + id].isAnimate = !isHide;\n switch (globalTimeOut[\"\" + id].type) {\n case 'Material':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius);\n break;\n case 'Bootstrap':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner);\n break;\n }\n }\n // eslint-disable-next-line\n isHide ? classList(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : classList(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]);\n container = null;\n }\n}\n/**\n * Function to hide the Spinner.\n * @private\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n */\nexport function hideSpinner(container) {\n showHideSpinner(container, true);\n container = null;\n}\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' });\n * ```\n * @private\n * @param {SetSpinnerArgs} args - The args.\n * @param {createElementParams} internalCreateElement - The internalCreateElement.\n * @returns {void}\n */\nexport function setSpinner(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.template !== undefined) {\n spinTemplate = args.template;\n if (args.template !== undefined) {\n spinCSSClass = args.cssClass;\n }\n }\n var container = document.querySelectorAll('.' + CLS_SPINWRAP);\n for (var index = 0; index < container.length; index++) {\n ensureTemplate(args.template, container[parseInt(index.toString(), 10)], args.type, args.cssClass, makeElement);\n }\n}\n/**\n * @param {string} template - The template.\n * @param {HTMLElement} container - The container.\n * @param {string} theme - The theme.\n * @param {string} cssClass - The cssClass.\n * @param {createElementParams} makeEle - The makeEle.\n * @returns {void}\n */\nfunction ensureTemplate(template, container, theme, cssClass, makeEle) {\n if (isNullOrUndefined(template) && !container.classList.contains(CLS_SPINTEMPLATE)) {\n replaceTheme(container, theme, cssClass, makeEle);\n if (container.classList.contains(CLS_SHOWSPIN)) {\n container.classList.remove(CLS_SHOWSPIN);\n showSpinner(container);\n }\n else {\n container.classList.remove(CLS_HIDESPIN);\n hideSpinner(container);\n }\n }\n else {\n spinTemplate = template;\n if (!isNullOrUndefined(cssClass)) {\n spinCSSClass = cssClass;\n }\n }\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {string} theme - The theme.\n * @param {string} cssClass - The cssClass.\n * @param {createElementParams} makeEle - The makeEle.\n * @returns {void}\n */\nfunction replaceTheme(container, theme, cssClass, makeEle) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var svgElement = container.querySelector('svg');\n var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2;\n var classNames = svgElement.getAttribute('class');\n var svgClassList = classNames.split(/\\s/);\n if (svgClassList.indexOf('e-spin-material') >= 0) {\n var id = svgElement.getAttribute('id');\n clearTimeout(globalTimeOut[\"\" + id].timeOut);\n }\n setTheme(theme, container, radius, makeEle);\n}\n","/**\n * The `BlazorUIAdaptor` module is used to handle the UI update of native components.\n * @hidden\n */\nvar BlazorUiAdaptor = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorUIadapater.\n *\n * @param { PdfViewer } pdfviewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function BlazorUiAdaptor(pdfviewer, pdfViewerBase) {\n this.pdfViewer = null;\n this.pdfViewerBase = null;\n /**\n * @private\n */\n this.totalPageElement = null;\n this.currentPageBoxElementContainer = null;\n this.currentPageBoxElement = null;\n this.firstPageElement = null;\n this.previousPageElement = null;\n this.nextPageElement = null;\n this.lastPageElement = null;\n this.zommOutElement = null;\n this.zoomInElement = null;\n this.zoomDropDownElement = null;\n this.selectToolElement = null;\n this.handToolElement = null;\n this.undoElement = null;\n this.redoElement = null;\n this.commentElement = null;\n this.submitFormButton = null;\n this.searchElement = null;\n this.annotationElement = null;\n this.printElement = null;\n this.downloadElement = null;\n this.highlightElement = null;\n this.underlineElement = null;\n this.strikeThroughElement = null;\n this.shapeElement = null;\n this.calibrateElement = null;\n this.stampElement = null;\n this.freeTextElement = null;\n this.signatureElement = null;\n this.inkElement = null;\n this.annotationFontSizeInputElement = null;\n this.annotationFontFamilyInputElement = null;\n this.annotationColorElement = null;\n this.annotationStrokeColorElement = null;\n this.annotationThicknessElement = null;\n this.annotationOpacityElement = null;\n this.annotationFontColorElement = null;\n this.annotationFontFamilyElement = null;\n this.annotationFontSizeElement = null;\n this.annotationTextAlignElement = null;\n this.annotationTextColorElement = null;\n this.annotationTextPropertiesElement = null;\n this.annotationDeleteElement = null;\n this.annotationCloseElement = null;\n this.annotationCommentPanelElement = null;\n this.mobileToolbarContainerElement = null;\n this.mobileSearchPreviousOccurenceElement = null;\n this.mobileSearchNextOccurenceElement = null;\n this.cssClass = 'e-overlay';\n this.disableClass = ' e-overlay';\n this.editAnnotationButtonElement = null;\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n this.findToolbarElements();\n }\n BlazorUiAdaptor.prototype.findToolbarElements = function () {\n this.totalPageElement = this.pdfViewerBase.getElement('_totalPage').children[0];\n this.currentPageBoxElementContainer = this.pdfViewerBase.getElement('_currentPageInput');\n this.currentPageBoxElement = this.pdfViewerBase.getElement('_currentPageInput').children[0].children[0];\n this.firstPageElement = this.pdfViewerBase.getElement('_firstPage');\n this.previousPageElement = this.pdfViewerBase.getElement('_previousPage');\n this.nextPageElement = this.pdfViewerBase.getElement('_nextPage');\n this.lastPageElement = this.pdfViewerBase.getElement('_lastPage');\n this.zommOutElement = this.pdfViewerBase.getElement('_zoomOut');\n this.zoomInElement = this.pdfViewerBase.getElement('_zoomIn');\n this.zoomDropDownElement = this.pdfViewerBase.getElement('_zoomDropDown');\n this.selectToolElement = this.pdfViewerBase.getElement('_selectTool');\n this.handToolElement = this.pdfViewerBase.getElement('_handTool');\n this.undoElement = this.pdfViewerBase.getElement('_undo');\n this.redoElement = this.pdfViewerBase.getElement('_redo');\n this.commentElement = this.pdfViewerBase.getElement('_comment');\n this.submitFormButton = this.pdfViewerBase.getElement('_submitFormButton');\n this.searchElement = this.pdfViewerBase.getElement('_search');\n this.annotationElement = this.pdfViewerBase.getElement('_annotation');\n this.editAnnotationButtonElement = this.annotationElement.children[0];\n this.editAnnotationButtonElement.classList.add('e-pv-tbar-btn');\n this.printElement = this.pdfViewerBase.getElement('_print');\n this.downloadElement = this.pdfViewerBase.getElement('_download');\n this.highlightElement = this.pdfViewerBase.getElement('_highLight');\n this.underlineElement = this.pdfViewerBase.getElement('_underline');\n this.strikeThroughElement = this.pdfViewerBase.getElement('_strikethrough');\n this.shapeElement = this.pdfViewerBase.getElement('_annotation_shapes');\n this.calibrateElement = this.pdfViewerBase.getElement('_annotation_calibrate');\n this.stampElement = this.pdfViewerBase.getElement('_annotation_stamp');\n this.freeTextElement = this.pdfViewerBase.getElement('_annotation_freeTextEdit');\n this.signatureElement = this.pdfViewerBase.getElement('_annotation_signature');\n this.inkElement = this.pdfViewerBase.getElement('_annotation_ink');\n // tslint:disable-next-line:max-line-length\n this.annotationFontSizeInputElement = this.pdfViewerBase.getElement('_annotation_fontsize').children[0].children[0];\n // tslint:disable-next-line:max-line-length\n this.annotationFontFamilyInputElement = this.pdfViewerBase.getElement('_annotation_fontname').children[0].children[0];\n this.annotationColorElement = this.pdfViewerBase.getElement('_annotation_color');\n this.annotationStrokeColorElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.annotationThicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n this.annotationOpacityElement = this.pdfViewerBase.getElement('_annotation_opacity');\n this.annotationFontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.annotationFontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.annotationFontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.annotationTextAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.annotationTextColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.annotationTextPropertiesElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.annotationDeleteElement = this.pdfViewerBase.getElement('_annotation_delete');\n this.annotationCommentPanelElement = this.pdfViewerBase.getElement('_annotation_commentPanel');\n this.annotationCloseElement = this.pdfViewerBase.getElement('_annotation_close');\n this.mobileToolbarContainerElement = this.pdfViewerBase.getElement('_mobileToolbarContainer');\n this.mobileSearchPreviousOccurenceElement = this.pdfViewerBase.getElement('_prev_occurrence');\n this.mobileSearchNextOccurenceElement = this.pdfViewerBase.getElement('_next_occurrence');\n };\n /**\n * Update the total page.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateTotalPage = function () {\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n };\n /**\n * Update current page.\n * @param {number} pageNumber - The pageNumber.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateCurrentPage = function (pageNumber) {\n this.currentPageBoxElement.value = pageNumber.toString();\n };\n /**\n * Load the PDF document.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.loadDocument = function () {\n if (this.pdfViewer.enableNavigation) {\n this.currentPageBoxElementContainer.classList.remove(this.cssClass);\n this.currentPageBoxElement.value = '1';\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n if (this.pdfViewerBase.pageCount === 1) {\n if (!this.nextPageElement.classList.contains(this.cssClass)) {\n this.nextPageElement.className += this.disableClass;\n }\n if (!this.lastPageElement.classList.contains(this.cssClass)) {\n this.lastPageElement.className += this.disableClass;\n }\n }\n }\n if (this.pdfViewer.enableMagnification) {\n this.zoomInElement.classList.remove(this.cssClass);\n this.zommOutElement.classList.remove(this.cssClass);\n this.zoomDropDownElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableTextSelection) {\n this.selectToolElement.classList.remove(this.cssClass);\n this.selectItem(this.pdfViewer.toolbar.SelectToolElement);\n }\n this.handToolElement.classList.remove(this.cssClass);\n if (this.pdfViewer.enableStickyNotesAnnotation) {\n this.commentElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableTextSearch) {\n this.searchElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.isFormFieldDocument) {\n this.submitFormButton.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableAnnotationToolbar) {\n this.annotationElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enablePrint) {\n this.printElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableDownload) {\n this.downloadElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableTextMarkupAnnotation) {\n this.highlightElement.classList.remove(this.cssClass);\n this.underlineElement.classList.remove(this.cssClass);\n this.strikeThroughElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableShapeAnnotation) {\n this.shapeElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableMeasureAnnotation) {\n this.calibrateElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableStampAnnotations) {\n this.stampElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableFreeText) {\n this.freeTextElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableHandwrittenSignature) {\n this.signatureElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableInkAnnotation) {\n this.inkElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableCommentPanel) {\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n };\n BlazorUiAdaptor.prototype.selectItem = function (element) {\n if (element) {\n element.classList.add(\"e-pv-select\");\n }\n };\n BlazorUiAdaptor.prototype.deselectItem = function (element) {\n if (element) {\n element.classList.remove(\"e-pv-select\");\n }\n };\n BlazorUiAdaptor.prototype.showAnnotationToolbar = function (isToolbarVisible) {\n this.pdfViewer.toolbar.annotationToolbarModule.adjustViewer(isToolbarVisible[0]);\n if (isToolbarVisible[0]) {\n this.pdfViewer.toolbar.selectItem(this.editAnnotationButtonElement);\n }\n else {\n this.pdfViewer.toolbar.deSelectItem(this.editAnnotationButtonElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n BlazorUiAdaptor.prototype.closeAnnotationToolbar = function () {\n this.pdfViewer.toolbar.annotationToolbarModule.adjustViewer(false);\n this.pdfViewer.toolbar.deSelectItem(this.editAnnotationButtonElement);\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n };\n /**\n * Reset the toolbar.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.resetToolbar = function () {\n if (this.pdfViewer.enableToolbar) {\n this.currentPageBoxElement.value = '0';\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + '0';\n if (!this.isEnabled(this.currentPageBoxElementContainer)) {\n this.currentPageBoxElementContainer.className += this.disableClass;\n }\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.nextPageElement)) {\n this.nextPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.lastPageElement)) {\n this.lastPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zoomInElement)) {\n this.zoomInElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zommOutElement)) {\n this.zommOutElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zoomDropDownElement)) {\n this.zoomDropDownElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.selectToolElement)) {\n this.selectToolElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.handToolElement)) {\n this.handToolElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.commentElement)) {\n this.commentElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.searchElement)) {\n this.searchElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.submitFormButton)) {\n this.submitFormButton.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationElement)) {\n this.annotationElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.printElement)) {\n this.printElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.downloadElement)) {\n this.downloadElement.className += this.disableClass;\n }\n }\n if (this.pdfViewer.enableAnnotationToolbar) {\n if (!this.isEnabled(this.highlightElement)) {\n this.highlightElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.underlineElement)) {\n this.underlineElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.strikeThroughElement)) {\n this.strikeThroughElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.shapeElement)) {\n this.shapeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.calibrateElement)) {\n this.calibrateElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.stampElement)) {\n this.stampElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.freeTextElement)) {\n this.freeTextElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.signatureElement)) {\n this.signatureElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.inkElement)) {\n this.inkElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextColorElement)) {\n this.annotationTextColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n };\n /**\n * When annotation selection changed.\n * @param {boolean} currentPageNumber - The current page number.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.EnableDeleteOption = function (isEnable) {\n if (this.annotationDeleteElement !== null) {\n if (isEnable) {\n this.annotationDeleteElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * when the page changes.\n * @param {number} currentPageNumber - The current page number.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.pageChanged = function (currentPageNumber) {\n if (this.pdfViewer.enableNavigation) {\n this.currentPageBoxElement.value = currentPageNumber.toString();\n }\n if (currentPageNumber === this.pdfViewer.pageCount) {\n if (!this.isEnabled(this.nextPageElement)) {\n this.nextPageElement.className += this.disableClass;\n }\n this.previousPageElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.lastPageElement)) {\n this.lastPageElement.className += this.disableClass;\n }\n this.firstPageElement.classList.remove(this.cssClass);\n }\n if (currentPageNumber < this.pdfViewer.pageCount && currentPageNumber !== 1) {\n this.firstPageElement.classList.remove(this.cssClass);\n this.previousPageElement.classList.remove(this.cssClass);\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n }\n if (currentPageNumber === 1) {\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n }\n };\n /**\n * @param {string} item - The current item.\n * @param {boolean} enable - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateUndoRedoButton = function (item, enable) {\n if (item === 'undo') {\n if (enable) {\n this.undoElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n }\n }\n if (item === 'redo') {\n if (enable) {\n this.redoElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.disableUndoRedoButton = function () {\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableTextMarkupAnnotationPropertiesTools = function (isEnable) {\n if (isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableAnnotationPropertiesTool = function (isEnable, isProperitiesChange) {\n if (isProperitiesChange) {\n if (isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (this.pdfViewer.enableShapeLabel) {\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n else {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableFreeTextAnnotationPropertiesTools = function (isEnable, isProperitiesChange) {\n if (isProperitiesChange && isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n this.annotationTextAlignElement.classList.remove(this.cssClass);\n this.annotationTextPropertiesElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isPropertiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableStampAnnotationPropertiesTools = function (isEnable, isPropertiesChange) {\n if (isEnable) {\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableSignaturePropertiesTools = function (isEnable, isProperitiesChange) {\n if (isEnable) {\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationAdd = function () {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationUnSelect = function () {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n };\n /**\n * @param {string} annotationType - The annotationType.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationSelect = function (annotationType) {\n if (annotationType === 'FreeText') {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n this.annotationTextAlignElement.classList.remove(this.cssClass);\n this.annotationTextPropertiesElement.classList.remove(this.cssClass);\n }\n if (annotationType === 'Shape' || annotationType === 'Measure') {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n if (annotationType === 'TextMarkup') {\n this.annotationColorElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n };\n /**\n * @param {string} fontFamily - The fontFamily.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateFontFamilyInIcon = function (fontFamily) {\n this.annotationFontFamilyInputElement.value = fontFamily;\n };\n /**\n * @param {number} fontSize - The fontSize.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateFontSizeInIcon = function (fontSize) {\n var fontValue = fontSize.toString() + 'px';\n this.annotationFontSizeInputElement.value = fontValue;\n };\n /**\n * @param {boolean} isEnable - To enable or disable.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableSearchItems = function (isEnable) {\n if (isEnable) {\n this.mobileSearchPreviousOccurenceElement.classList.remove(this.cssClass);\n this.mobileSearchNextOccurenceElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.mobileSearchPreviousOccurenceElement)) {\n this.mobileSearchPreviousOccurenceElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.mobileSearchNextOccurenceElement)) {\n this.mobileSearchNextOccurenceElement.className += this.disableClass;\n }\n }\n };\n /**\n * @param {boolean} isTapHidden - To enable or disable.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.tapOnMobileDevice = function (isTapHidden) {\n if (this.mobileToolbarContainerElement != null) {\n if (isTapHidden) {\n this.mobileToolbarContainerElement.style.display = 'none';\n }\n else {\n this.mobileToolbarContainerElement.style.display = 'block';\n }\n }\n };\n /**\n * @param {HTMLElement} element - The HTMLElement.\n * @returns {boolean} - Returns trur or false.\n */\n BlazorUiAdaptor.prototype.isEnabled = function (element) {\n return element.classList.contains(this.cssClass);\n };\n return BlazorUiAdaptor;\n}());\nexport { BlazorUiAdaptor };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { createElement, Browser, isNullOrUndefined, isBlazor, Internationalization } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { TextLayer, ContextMenu, Signature, PdfFormFieldBase } from '../index';\nimport { NavigationPane } from './navigation-pane';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { AjaxHandler } from '../index';\nimport { Point, Rect, identityMatrix, transformPointByMatrix, contains, rotateMatrix } from '@syncfusion/ej2-drawings';\nimport { SelectTool, MoveTool, ResizeTool, ConnectTool, NodeDrawingTool, PolygonDrawingTool, LineTool, RotateTool, StampTool, InkDrawingTool } from '../drawing/tools';\nimport { Selector } from '../drawing/selector';\nimport { ActiveElements, findActiveElement } from '../drawing/action';\nimport { renderAdornerLayer } from '../drawing/dom-util';\nimport { AnnotationDataFormat } from './types';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { BlazorContextMenu } from './blazor-context-menu';\nimport { createSpinner, showSpinner, hideSpinner } from './spinner';\nimport { BlazorUiAdaptor } from './blazor-ui-adaptor';\n/**\n * The `PdfViewerBase` module is used to handle base methods of PDF viewer.\n *\n * @hidden\n */\nvar PdfViewerBase = /** @class */ (function () {\n /**\n * Initialize the constructor of PDFViewerBase\n *\n * @param { PdfViewer } viewer - Specified PdfViewer class.\n */\n function PdfViewerBase(viewer) {\n var _this = this;\n /**\n * @private\n */\n this.pageSize = [];\n /**\n * @private\n */\n this.pageCount = 0;\n /**\n * @private\n */\n this.isReRenderRequired = true;\n /**\n * @private\n */\n this.currentPageNumber = 0;\n /**\n * @private\n */\n this.activeElements = new ActiveElements();\n /**\n * @private\n */\n this.mouseDownEvent = null;\n /**\n * @private\n */\n this.isDocumentLoaded = false;\n /**\n * @private\n */\n this.renderedPagesList = [];\n /**\n * @private\n */\n this.pageGap = 8;\n /**\n * @private\n */\n this.signatureAdded = false;\n /**\n * @private\n */\n this.isFreeTextSelected = false;\n this.pageLeft = 5;\n this.sessionLimit = 1000;\n this.pageStopValue = 300;\n /**\n * @private\n */\n this.toolbarHeight = 56;\n this.pageLimit = 0;\n this.previousPage = 0;\n this.isViewerMouseDown = false;\n this.isViewerMouseWheel = false;\n this.scrollPosition = 0;\n this.sessionStorage = [];\n /**\n * @private\n */\n this.isLoadedFormFieldAdded = false;\n this.pointerCount = 0;\n this.pointersForTouch = [];\n /**\n * @private\n */\n this.isPasswordAvailable = false;\n /**\n * @private\n */\n this.passwordData = '';\n /**\n * @private\n */\n this.reRenderedCount = 0;\n this.mouseX = 0;\n this.mouseY = 0;\n /**\n * @private\n */\n this.mouseLeft = 0;\n /**\n * @private\n */\n this.mouseTop = 0;\n this.touchClientX = 0;\n this.touchClientY = 0;\n this.previousTime = 0;\n this.currentTime = 0;\n this.isTouchScrolled = false;\n this.isLongTouchPropagated = false;\n // eslint-disable-next-line\n this.longTouchTimer = null;\n this.isViewerContainerDoubleClick = false;\n // eslint-disable-next-line\n this.dblClickTimer = null;\n /**\n * @private\n */\n this.pinchZoomStorage = [];\n /**\n * @private\n */\n this.isTextSelectionDisabled = false;\n /**\n * @private\n */\n this.isPanMode = false;\n this.dragX = 0;\n this.dragY = 0;\n this.isScrollbarMouseDown = false;\n this.scrollX = 0;\n this.scrollY = 0;\n this.ispageMoved = false;\n this.isThumb = false;\n this.isTapHidden = false;\n // eslint-disable-next-line\n this.singleTapTimer = null;\n this.tapCount = 0;\n this.inputTapCount = 0;\n /**\n * @private\n */\n this.isInitialLoaded = false;\n this.annotationPageList = [];\n this.importPageList = [];\n /**\n * @private\n */\n this.isImportAction = false;\n this.isImportedAnnotation = false;\n /**\n * @private\n */\n this.isAnnotationCollectionRemoved = false;\n /**\n * @private\n */\n this.tool = null;\n // eslint-disable-next-line\n this.action = 'Select';\n /**\n * @private\n */\n this.eventArgs = null;\n /**\n * @private\n */\n this.inAction = false;\n /**\n * @private\n */\n this.isMouseDown = false;\n /**\n * @private\n */\n this.isStampMouseDown = false;\n /**\n * @private\n */\n this.stampAdded = false;\n /**\n * @private\n */\n this.customStampCount = 0;\n /**\n * @private\n */\n this.isDynamicStamp = false;\n /**\n * @private\n */\n this.isMixedSizeDocument = false;\n /**\n * @private\n */\n this.highestWidth = 0;\n /**\n * @private\n */\n this.highestHeight = 0;\n /**\n * @private\n */\n this.customStampCollection = [];\n /**\n * @private\n */\n this.isAlreadyAdded = false;\n /**\n * @private\n */\n this.isWebkitMobile = false;\n /**\n * @private\n */\n this.isFreeTextContextMenu = false;\n /**\n * @private\n */\n this.isSelection = false;\n /**\n * @private\n */\n this.isAddAnnotation = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationComments = null;\n /**\n * @private\n */\n this.isToolbarSignClicked = false;\n /**\n * @private\n */\n this.signatureCount = 0;\n /**\n * @private\n */\n this.isSignatureAdded = false;\n /**\n * @private\n */\n this.isNewSignatureAdded = false;\n /**\n * @private\n */\n this.isInitialPageMode = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.documentAnnotationCollections = null;\n /**\n * @private\n */\n this.annotationRenderredList = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationStorage = {};\n /**\n * @private\n */\n // eslint-disable-next-line\n this.formFieldStorage = {};\n /**\n * @private\n */\n this.isStorageExceed = false;\n /**\n * @private\n */\n this.isFormStorageExceed = false;\n /**\n * @private\n */\n this.isNewStamp = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.downloadCollections = {};\n /**\n * @private\n */\n this.isAnnotationAdded = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationEvent = null;\n /**\n * @private\n */\n this.isAnnotationDrawn = false;\n /**\n * @private\n */\n this.isAnnotationSelect = false;\n /**\n * @private\n */\n this.isAnnotationMouseDown = false;\n /**\n * @private\n */\n this.isAnnotationMouseMove = false;\n /**\n * @private\n */\n this.validateForm = false;\n /**\n * @private\n */\n this.isMinimumZoom = false;\n /**\n * @private\n */\n this.documentLoaded = false;\n this.tileRenderCount = 0;\n this.tileRequestCount = 0;\n /**\n * @private\n */\n this.isTileImageRendered = false;\n this.isDataExits = false;\n this.requestLists = [];\n this.tilerequestLists = [];\n this.textrequestLists = [];\n this.renderThumbnailImages = false;\n /**\n * @private\n */\n this.isInkAdded = false;\n /**\n * @private\n */\n this.inkCount = 0;\n /**\n * @private\n */\n this.isAddedSignClicked = false;\n /**\n * @private\n */\n this.imageCount = 0;\n /**\n * @private\n */\n this.isMousedOver = false;\n /**\n * @private\n */\n this.isFormFieldSelect = false;\n /**\n * @private\n */\n this.isFormFieldMouseDown = false;\n /**\n * @private\n */\n this.isFormFieldMouseMove = false;\n /**\n * @private\n */\n this.isFormFieldMousedOver = false;\n /**\n * @private\n */\n this.isPassword = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.digitalSignaturePages = [];\n this.isDrawnCompletely = false;\n /**\n * @private\n */\n this.isAddComment = false;\n /**\n * @private\n */\n this.drawSignatureWithTool = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.formFieldCollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.nonFillableFields = {};\n /**\n * @private\n */\n this.isInitialField = false;\n /**\n * @private\n */\n this.isTouchDesignerMode = false;\n /**\n * @private\n */\n this.isPrint = false;\n /**\n * @private\n */\n this.isJsonImported = false;\n /**\n * @private\n */\n this.isJsonExported = false;\n /**\n * @private\n */\n this.isPageRotated = false;\n this.downloadFileName = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isFocusField = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isTouchPad = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isMacGestureActive = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.macGestureStartScale = 0;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.zoomInterval = 5;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.focusField = [];\n /**\n * EJ2CORE-813 - This flag is represent current device is 'iPad' or 'iPhone' or'iPod' device.\n * @private\n */\n // eslint-disable-next-line\n this.isDeviceiOS = (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document));\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isMacSafari = navigator.userAgent.indexOf(\"Safari\") > -1 && navigator.userAgent.indexOf(\"Chrome\") === -1 && !this.isDeviceiOS;\n /**\n * @returns {void}\n */\n this.clearSessionStorage = function () {\n var documentId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n documentId = decodeURI(window.sessionStorage.getItem('hashId'));\n }\n else {\n documentId = window.sessionStorage.getItem('hashId');\n }\n var documentLiveCount = window.sessionStorage.getItem('documentLiveCount');\n if (documentId !== null) {\n // eslint-disable-next-line max-len\n var jsonObject = { hashId: documentId, documentLiveCount: documentLiveCount, action: 'Unload', elementId: _this.pdfViewer.element.id };\n var actionName = window.sessionStorage.getItem('unload');\n var serviceUrl = window.sessionStorage.getItem('serviceURL');\n if (serviceUrl && serviceUrl !== 'undefined') {\n // eslint-disable-next-line\n var browserSupportsKeepalive = 'keepalive' in new Request('');\n if (browserSupportsKeepalive) {\n // eslint-disable-next-line\n var headerValue = _this.setUnloadRequestHeaders();\n var credentialsData = _this.pdfViewer.ajaxRequestSettings.withCredentials ? 'include' : 'omit';\n fetch(serviceUrl + '/' + actionName, {\n method: 'POST',\n credentials: credentialsData,\n headers: headerValue,\n body: JSON.stringify(jsonObject)\n });\n }\n }\n else if (isBlazor()) {\n _this.clearCache(actionName, jsonObject, _this);\n }\n }\n window.sessionStorage.removeItem(_this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(_this.documentId + '_formfields');\n window.sessionStorage.removeItem(_this.documentId + '_formDesigner');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(_this.documentId + '_pagedata');\n window.sessionStorage.removeItem('hashId');\n window.sessionStorage.removeItem('documentLiveCount');\n window.sessionStorage.removeItem('currentDocument');\n window.sessionStorage.removeItem('serviceURL');\n window.sessionStorage.removeItem('unload');\n };\n /**\n * @private\n * @param {MouseEvent} event - Mouse event.\n * @returns {void}\n */\n this.onWindowResize = function (event) {\n var proxy = null;\n proxy = _this;\n if (_this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.right = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px';\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.left = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.left = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px';\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.right = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px';\n }\n // eslint-disable-next-line\n var viewerElementWidth = (proxy.pdfViewer.element.clientWidth > 0 ? proxy.pdfViewer.element.clientWidth : proxy.pdfViewer.element.style.width);\n // eslint-disable-next-line\n var viewerWidth = (viewerElementWidth - (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) - (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.getViewerContainerRight() : 0));\n proxy.viewerContainer.style.width = viewerWidth + 'px';\n if (proxy.pdfViewer.toolbarModule) {\n // eslint-disable-next-line\n var toolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-toolbar') : proxy.getElement('_toolbarContainer');\n var toolbarHeight = 0;\n var formDesignerToolbarHeight = 0;\n if (toolbarContainer) {\n toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n }\n if (proxy.isAnnotationToolbarHidden() || (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n if (toolbarHeight === 0) {\n if (_this.navigationPane.isNavigationToolbarVisible) {\n // eslint-disable-next-line\n var navigationToolbar = proxy.getElement('_navigationToolbar');\n toolbarHeight = navigationToolbar.getBoundingClientRect().height;\n }\n }\n if (!proxy.isFormDesignerToolbarHidded()) {\n var formDesignerToolbar = proxy.getElement('_formdesigner_toolbar');\n formDesignerToolbarHeight = formDesignerToolbar ? formDesignerToolbar.getBoundingClientRect().height : 0;\n }\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + formDesignerToolbarHeight);\n }\n else {\n // eslint-disable-next-line\n var annotationToolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-annotation-toolbar') : proxy.getElement('_annotation_toolbar');\n var annotationToolbarHeight = 0;\n if (annotationToolbarContainer) {\n annotationToolbarHeight = annotationToolbarContainer.getBoundingClientRect().height;\n }\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + annotationToolbarHeight);\n }\n }\n else {\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n if (proxy.pdfViewer.bookmarkViewModule && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n var bookmarkContainer = proxy.getElement('_bookmarks_container');\n if (bookmarkContainer) {\n bookmarkContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n }\n if (proxy.viewerContainer.style.height === '0px') {\n if (proxy.pdfViewer.height.toString() === 'auto') {\n proxy.pdfViewer.height = 500;\n proxy.viewerContainer.style.height = proxy.pdfViewer.height + 'px';\n }\n else {\n proxy.viewerContainer.style.height = proxy.pdfViewer.element.style.height;\n }\n }\n if (proxy.viewerContainer.style.width === '0px') {\n if (proxy.pdfViewer.width.toString() === 'auto') {\n proxy.pdfViewer.width = 500;\n proxy.viewerContainer.style.width = proxy.pdfViewer.width + 'px';\n }\n else {\n proxy.viewerContainer.style.width = proxy.pdfViewer.element.style.width;\n }\n }\n proxy.pageContainer.style.width = proxy.viewerContainer.clientWidth + 'px';\n if (proxy.viewerContainer.clientWidth === 0) {\n proxy.pageContainer.style.width = proxy.pdfViewer.element.style.width;\n }\n if (!isBlazor()) {\n if (proxy.pdfViewer.toolbarModule) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.toolbarModule.onToolbarResize((proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerMainContainerWidth() : proxy.pdfViewer.element.clientWidth));\n }\n }\n if (_this.pdfViewer.enableToolbar && _this.pdfViewer.thumbnailViewModule) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.currentPageNumber - 1);\n }\n if (proxy.pdfViewer.textSearchModule && (!Browser.isDevice || _this.pdfViewer.enableDesktopMode)) {\n proxy.pdfViewer.textSearchModule.textSearchBoxOnResize();\n }\n if (viewerWidth !== 0) {\n if (!proxy.navigationPane.isBookmarkListOpen) {\n proxy.updateZoomValue();\n }\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n proxy.mobileScrollerContainer.style.left = (viewerWidth - parseFloat(proxy.mobileScrollerContainer.style.width)) + 'px';\n proxy.mobilePageNoContainer.style.left = (viewerWidth / 2) - (parseFloat(proxy.mobilePageNoContainer.style.width) / 2) + 'px';\n proxy.mobilePageNoContainer.style.top = (proxy.pdfViewer.element.clientHeight / 2) + 'px';\n proxy.updateMobileScrollerPosition();\n }\n else {\n proxy.navigationPane.setResizeIconTop();\n proxy.navigationPane.setCommentPanelResizeIconTop();\n if (event && event.type === 'resize') {\n proxy.signatureModule.updateCanvasSize();\n }\n }\n if (proxy.navigationPane.sideBarToolbar) {\n proxy.navigationPane.sideBarToolbar.style.height = proxy.viewerContainer.style.height;\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMousedown = function (event) {\n _this.isFreeTextContextMenu = false;\n var isUpdate = false;\n _this.isSelection = true;\n var target = event.target;\n if (event.button === 0 && !_this.getPopupNoteVisibleStatus() && !_this.isClickedOnScrollBar(event, false)) {\n _this.isViewerMouseDown = true;\n // eslint-disable-next-line\n if (event.detail === 1 && target.className !== 'e-pdfviewer-formFields' && target.className !== 'free-text-input') {\n isUpdate = true;\n _this.focusViewerContainer(true);\n }\n _this.scrollPosition = _this.viewerContainer.scrollTop / _this.getZoomFactor();\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n _this.mouseLeft = event.clientX;\n _this.mouseTop = event.clientY;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (_this.pdfViewer.textSelectionModule && !_this.isClickedOnScrollBar(event, true) && !_this.isTextSelectionDisabled) {\n if (!isIE && target.className !== 'e-pdfviewer-formFields' && target.className !== 'e-pdfviewer-ListBox' && target.className !== 'e-pv-formfield-dropdown'\n && target.className !== 'e-pv-formfield-listbox') {\n event.preventDefault();\n }\n if (target.className !== 'e-pv-droplet') {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n }\n }\n if (_this.isClickedOnScrollBar(event, false)) {\n _this.isViewerMouseDown = true;\n }\n if (_this.isPanMode) {\n _this.dragX = event.pageX;\n _this.dragY = event.pageY;\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) {\n _this.viewerContainer.style.cursor = 'grabbing';\n }\n }\n if (_this.isShapeBasedAnnotationsEnabled() && (_this.isAnnotationDrawn || !(target.className === 'e-pv-page-container' || (target.className === 'foreign-object' && isNaN(_this.activeElements.activePageID))))) {\n _this.diagramMouseDown(event);\n }\n if (_this.pdfViewer.annotation && _this.pdfViewer.annotation.stickyNotesAnnotationModule.accordionContainer) {\n if (!isUpdate) {\n _this.pdfViewer.annotationModule.stickyNotesAnnotationModule.isEditableElement = false;\n _this.updateCommentPanel();\n isUpdate = true;\n }\n }\n if (isBlazor()) {\n _this.mouseDownHandler(event);\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseup = function (event) {\n if (!_this.getPopupNoteVisibleStatus()) {\n if (_this.isViewerMouseDown) {\n if (_this.scrollHoldTimer) {\n clearTimeout(_this.scrollHoldTimer);\n _this.scrollHoldTimer = null;\n }\n if ((_this.scrollPosition * _this.getZoomFactor()) !== _this.viewerContainer.scrollTop) {\n _this.pageViewScrollChanged(_this.currentPageNumber);\n }\n }\n var isSignatureFieldReadOnly = false;\n if (event.target) {\n if (event.target.className == 'e-pv-show-designer-name' && event.target.id.split('_', 1) != '') {\n isSignatureFieldReadOnly = document.getElementById(event.target.id.split('_', 1)).disabled;\n }\n if (event.target.className == 'foreign-object' && event.target.children[0]) {\n isSignatureFieldReadOnly = event.target.children[0].disabled;\n }\n }\n if (isSignatureFieldReadOnly && _this.pdfViewer.annotation) {\n _this.pdfViewer.annotation.clearSelection();\n }\n if (_this.isShapeBasedAnnotationsEnabled() && !isSignatureFieldReadOnly && (_this.isAnnotationDrawn || _this.action !== \"DrawTool\")) {\n _this.diagramMouseUp(event);\n if (_this.pdfViewer.annotation) {\n _this.pdfViewer.annotation.onAnnotationMouseUp();\n }\n }\n if (_this.pdfViewer.selectedItems.formFields.length > 0) {\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) {\n _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) {\n _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(false);\n }\n }\n _this.isSelection = false;\n // eslint-disable-next-line max-len\n var commentElement = document.getElementById(_this.pdfViewer.element.id + '_commantPanel');\n if (commentElement && commentElement.style.display === 'block') {\n if (_this.pdfViewer.selectedItems) {\n if (_this.pdfViewer.selectedItems.annotations.length !== 0) {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(_this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n }\n if (event.button === 0 && !_this.isClickedOnScrollBar(event, false)) {\n // 0 is for left button.\n var eventTarget_1 = event.target;\n var offsetX = event.clientX;\n var offsetY = event.clientY;\n var zoomFactor = _this.getZoomFactor();\n var pageIndex = _this.currentPageNumber;\n if (eventTarget_1) {\n // eslint-disable-next-line\n var pageString = eventTarget_1.id.split('_text_')[1] || eventTarget_1.id.split('_textLayer_')[1] || eventTarget_1.id.split('_annotationCanvas_')[1] || eventTarget_1.id.split('_pageDiv_')[1] || eventTarget_1.id.split('_freeText_')[1] || eventTarget_1.id.split('_')[1];\n // eslint-disable-next-line\n pageIndex = parseInt(pageString);\n if (isNaN(pageIndex)) {\n var formFieldsTargetId = _this.pdfViewer.formFieldCollection.filter(function (targetFormField) { return (targetFormField.id == eventTarget_1.id) || (targetFormField.id == eventTarget_1.id.split('_')[0]); });\n if (formFieldsTargetId.length > 0) {\n pageIndex = formFieldsTargetId[0].pageIndex;\n }\n }\n }\n var pageDiv = _this.getElement('_pageDiv_' + pageIndex);\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = (event.clientX - pageCurrentRect.left) / zoomFactor;\n offsetY = (event.clientY - pageCurrentRect.top) / zoomFactor;\n }\n // eslint-disable-next-line max-len\n if (eventTarget_1 && eventTarget_1.classList && !eventTarget_1.classList.contains('e-pv-hyperlink') && !eventTarget_1.classList.contains('e-pv-page-container')) {\n // eslint-disable-next-line\n _this.pdfViewer.firePageClick(offsetX, offsetY, pageIndex + 1);\n if (_this.pdfViewer.formFieldsModule && !_this.pdfViewer.formDesignerModule) {\n _this.pdfViewer.formFieldsModule.removeFocus();\n }\n }\n if (_this.isTextMarkupAnnotationModule() && !_this.isToolbarInkClicked) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationMouseUp(event);\n }\n if (_this.pdfViewer.formDesignerModule && !_this.pdfViewer.annotationModule) {\n _this.pdfViewer.formDesignerModule.updateCanvas(pageIndex);\n }\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) {\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grab';\n _this.viewerContainer.style.cursor = '-moz-grab';\n _this.viewerContainer.style.cursor = 'grab';\n }\n }\n _this.isViewerMouseDown = false;\n }\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.detectTouchPad = function (event) {\n // eslint-disable-next-line max-len\n _this.isTouchPad = event.wheelDeltaY ? (event.wheelDeltaY === (event.deltaY * -3) ? true : Math.abs(event.deltaY) < 60) : (event.deltaMode === 0);\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureStart = function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this.macGestureStartScale = _this.pdfViewer.magnification.zoomFactor;\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureChange = function (event) {\n event.preventDefault();\n event.stopPropagation();\n var macX = event.clientX;\n var macY = event.clientY;\n var scale = Number((_this.macGestureStartScale * event.scale).toFixed(2));\n if (!_this.isMacGestureActive) {\n _this.isMacGestureActive = true;\n _this.pdfViewer.magnification.initiateMouseZoom(macX, macY, scale * 100);\n setTimeout(function () {\n _this.isMacGestureActive = false;\n }, 50);\n }\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureEnd = function (event) {\n event.preventDefault();\n event.stopPropagation();\n };\n /**\n * @param {WheelEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseWheel = function (event) {\n _this.isViewerMouseWheel = true;\n if (_this.getRerenderCanvasCreated()) {\n event.preventDefault();\n }\n if (event.ctrlKey) {\n var zoomDifference = 25;\n if (_this.pdfViewer.magnification.zoomFactor < 1) {\n zoomDifference = 10;\n }\n if (_this.pdfViewer.magnification.zoomFactor >= 2) {\n zoomDifference = 50;\n }\n if (_this.isTouchPad && !_this.isMacSafari) {\n zoomDifference = zoomDifference / _this.zoomInterval;\n }\n // eslint-disable-next-line\n if (event.wheelDelta > 0) {\n _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) + zoomDifference);\n }\n else {\n _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) - zoomDifference);\n }\n _this.isTouchPad = false;\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pageRerenderOnMouseWheel();\n if (event.ctrlKey) {\n event.preventDefault();\n }\n _this.pdfViewer.magnificationModule.fitPageScrollMouseWheel(event);\n }\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n if (_this.isViewerMouseDown) {\n if (!event.target.classList.contains('e-pv-text')) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseWheel(_this.currentPageNumber - 1);\n }\n }\n }\n };\n /**\n * @param {KeyboardEvent} event - The KeyboardEvent.\n * @returns {void}\n */\n this.onWindowKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n if ((_this.isFreeTextAnnotationModule() && _this.pdfViewer.annotationModule\n && (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === true\n || _this.pdfViewer.annotationModule.inputElementModule.isInFocus === true))) {\n return;\n }\n if (!event.ctrlKey || !isCommandKey) {\n switch (event.keyCode) {\n case 46:\n _this.DeleteKeyPressed(event);\n break;\n case 27:\n if (_this.pdfViewer.toolbar) {\n _this.pdfViewer.toolbar.addInkAnnotation();\n _this.pdfViewer.toolbar.deSelectCommentAnnotation();\n _this.pdfViewer.toolbar.updateStampItems();\n if (_this.pdfViewer.toolbar.annotationToolbarModule) {\n if (isBlazor()) {\n _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItemsInBlazor();\n }\n else {\n _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItems();\n }\n }\n if (_this.pdfViewer.isFormDesignerToolbarVisible && document.getElementById('FormField_helper_html_element')) {\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (formFieldElement) {\n formFieldElement.remove();\n }\n }\n _this.pdfViewer.tool = '';\n _this.focusViewerContainer();\n }\n break;\n case 13:\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.type === 'keydown' && event.keyCode === 13)) {\n if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) {\n var fieldId = void 0;\n var currentTarget = event.target;\n if ((event.target.tabIndex && !event.target.id)) {\n currentTarget = event.target.parentElement;\n fieldId = currentTarget.id.split(\"_content_html_element\")[0];\n }\n else {\n currentTarget = event.target;\n fieldId = currentTarget.id.split(\"_\")[0];\n }\n for (var i = 0; i < _this.pdfViewer.formFieldCollections.length; i++) {\n var formfield = _this.pdfViewer.formFieldCollections[i];\n if (fieldId === formfield.id && (formfield.type === 'SignatureField' || formfield.type === 'InitialField')) {\n _this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', _this.pdfViewer.formFieldCollections[i]);\n event.preventDefault();\n }\n }\n }\n }\n }\n break;\n case 32:\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.type === 'keydown' && event.keyCode === 32)) {\n if (event.target && event.target.id && _this.pdfViewer.formFields) {\n for (var i = 0; i < _this.pdfViewer.formFields.length; i++) {\n var formField = _this.pdfViewer.formFields[i];\n if (event.target.id.split(\"_\")[0] === formField.id && (formField.formFieldAnnotationType === \"Checkbox\")) {\n _this.pdfViewer.formDesignerModule.setCheckBoxState(event);\n event.preventDefault();\n break;\n }\n }\n }\n }\n }\n break;\n case 9:\n if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) {\n {\n var nextField = void 0;\n var fieldIndex = void 0;\n var currentTarget_1 = event.target;\n var id_1;\n if ((event.target.tabIndex && !event.target.id)) {\n currentTarget_1 = event.target.parentElement;\n id_1 = currentTarget_1.id.split(\"_content_html_element\")[0];\n }\n else {\n currentTarget_1 = event.target;\n id_1 = currentTarget_1.id.split(\"_input\")[0];\n }\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.shiftKey && event.key === \"Tab\")) {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; });\n nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1];\n }\n else {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; });\n nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0];\n }\n _this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n if (!_this.pdfViewer.formDesigner) {\n if (!(currentTarget_1.className === 'e-pdfviewer-formFields')) {\n if ((event.shiftKey && event.key === \"Tab\")) {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget_1.id; });\n nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1];\n }\n else {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget_1.id; });\n nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0];\n }\n _this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n }\n }\n }\n if (event.target && event.target.id && _this.pdfViewer.formFields) {\n for (var i = 0; i < _this.pdfViewer.formFields.length; i++) {\n var formField_1 = _this.pdfViewer.formFields[parseInt(i.toString(), 10)];\n if (event.target.id === formField_1.id) {\n // eslint-disable-next-line\n var field = {\n value: formField_1.value, fontFamily: formField_1.fontFamily, fontSize: formField_1.fontSize, fontStyle: formField_1.fontStyle,\n // eslint-disable-next-line\n color: formField_1.color, backgroundColor: formField_1.backgroundColor, alignment: formField_1.alignment, isReadonly: formField_1.isReadonly, visibility: formField_1.visibility,\n // eslint-disable-next-line\n maxLength: formField_1.maxLength, isRequired: formField_1.isRequired, isPrint: formField_1.isPrint, rotation: formField_1.rotateAngle, tooltip: formField_1.tooltip,\n // eslint-disable-next-line\n options: formField_1.options, isChecked: formField_1.isChecked, isSelected: formField_1.isSelected\n };\n _this.pdfViewer.fireFocusOutFormField(field, formField_1.pageIndex);\n }\n }\n }\n break;\n }\n }\n };\n /**\n * @param {KeyboardEvent} event - The KeyboardEvent.\n * @returns {void}\n */\n this.viewerContainerOnKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n if ((_this.isFreeTextAnnotationModule() && _this.pdfViewer.annotationModule\n && (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === true\n || _this.pdfViewer.annotationModule.inputElementModule.isInFocus === true))) {\n return;\n }\n if (event.ctrlKey || isCommandKey) {\n // add keycodes if shift key is used.\n if ((event.shiftKey && !isMac) || (isMac && !event.shiftKey)) {\n switch (event.keyCode) {\n case 38: // up arrow\n case 33: // page up\n event.preventDefault();\n if (_this.currentPageNumber !== 1) {\n _this.updateScrollTop(0);\n }\n break;\n case 40: // down arrow\n case 34: // page down\n event.preventDefault();\n if (_this.currentPageNumber !== _this.pageCount) {\n _this.updateScrollTop(_this.pageCount - 1);\n }\n break;\n default:\n break;\n }\n }\n switch (event.keyCode) {\n case 79: // o key\n if (_this.pdfViewer.toolbarModule && _this.pdfViewer.enableToolbar) {\n _this.pdfViewer.toolbarModule.openFileDialogBox(event);\n }\n break;\n case 67: // c key\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.enableTextSelection && !_this.isTextSelectionDisabled) {\n event.preventDefault();\n _this.pdfViewer.textSelectionModule.copyText();\n }\n if (_this.pdfViewer.selectedItems.annotations.length || _this.pdfViewer.selectedItems.formFields.length) {\n _this.pdfViewer.copy();\n _this.contextMenuModule.previousAction = 'Copy';\n }\n break;\n case 70: // f key\n if (_this.pdfViewer.textSearchModule && _this.pdfViewer.enableTextSearch) {\n event.preventDefault();\n _this.pdfViewer.toolbarModule.textSearchButtonHandler();\n }\n break;\n case 80: // p key\n if (_this.pdfViewer.printModule && _this.pdfViewer.enablePrint) {\n event.preventDefault();\n _this.pdfViewer.print.print();\n }\n break;\n case 90: //z key\n if (_this.pdfViewer.annotationModule) {\n _this.pdfViewer.annotationModule.undo();\n }\n break;\n case 88: //x key\n if (_this.pdfViewer.selectedItems.annotations.length || _this.pdfViewer.selectedItems.formFields.length) {\n _this.pdfViewer.cut();\n _this.contextMenuModule.previousAction = 'Cut';\n }\n break;\n case 89: //y key\n if (_this.pdfViewer.annotationModule) {\n _this.pdfViewer.annotationModule.redo();\n }\n break;\n case 86: //v key\n // eslint-disable-next-line max-len\n if ((_this.pdfViewer.annotation && _this.pdfViewer.annotation.isShapeCopied) || (_this.pdfViewer.formFields && _this.pdfViewer.formDesigner && _this.pdfViewer.formDesigner.isShapeCopied)) {\n var isSearchboxDialogOpen = void 0;\n var searchBoxId = document.getElementById(_this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (!isSearchboxDialogOpen && _this.pdfViewer.formDesigner && !_this.pdfViewer.formDesigner.isPropertyDialogOpen) {\n _this.pdfViewer.paste();\n _this.contextMenuModule.previousAction = 'Paste';\n }\n }\n break;\n default:\n break;\n }\n }\n else {\n switch (event.keyCode) {\n case 46:\n _this.DeleteKeyPressed(event);\n break;\n }\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.magnifyBehaviorKeyDown(event);\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMousemove = function (event) {\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n var target = event.target;\n if (_this.action === 'Drag') {\n event.preventDefault();\n }\n // eslint-disable-next-line max-len\n if (_this.isViewerMouseDown && !(_this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'Line' || _this.action === 'DrawTool' || _this.action === 'Distance')) {\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.enableTextSelection && !_this.isTextSelectionDisabled && !_this.getPopupNoteVisibleStatus()) {\n // text selection won't perform if we start the selection from hyperlink content by commenting this line.\n // this region block the toc/hyperlink navigation on sometimes.\n // if ((event.target as HTMLElement).classList.contains('e-pv-hyperlink') && this.pdfViewer.linkAnnotationModule) {\n // this.pdfViewer.linkAnnotationModule.modifyZindexForHyperlink((event.target as HTMLElement), true);\n // }\n if (!isIE) {\n if (event.target.className != 'e-pdfviewer-formFields')\n event.preventDefault();\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n // eslint-disable-next-line\n var annotationModule = _this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isDropletClicked && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n annotationModule.textMarkupAnnotationModule.textSelect(event.target, _this.mouseX, _this.mouseY);\n }\n else {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseMove(event.target, _this.mouseX, _this.mouseY);\n }\n }\n else {\n var selection = window.getSelection();\n if (!selection.type && !selection.isCollapsed && selection.anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.isTextSelection = true;\n }\n }\n }\n else if (_this.skipPreventDefault(target)) {\n event.preventDefault();\n }\n }\n if (_this.isTextMarkupAnnotationModule() && !_this.getPopupNoteVisibleStatus()) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationMouseMove(event);\n }\n if (_this.isPanMode) {\n _this.panOnMouseMove(event);\n }\n if (_this.isShapeBasedAnnotationsEnabled()) {\n var canvas = void 0;\n // eslint-disable-next-line max-len\n if (event.target && (event.target.id.indexOf('_text') > -1 || (event.target.parentElement.classList.contains('foreign-object')) || event.target.id.indexOf('_annotationCanvas') > -1 || event.target.classList.contains('e-pv-hyperlink')) && _this.pdfViewer.annotation || event.target.classList.contains('e-pdfviewer-formFields')) {\n var pageIndex = _this.pdfViewer.annotation.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_1 = canvas1.y ? canvas1.y : canvas1.top;\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation && _this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation.shapeAnnotationType === 'Image') {\n canvas = new Rect(left, top_1, canvas1.width - 10, canvas1.height - 10);\n }\n else {\n canvas = new Rect(left + 1, top_1 + 1, canvas1.width - 3, canvas1.height - 3);\n }\n }\n }\n else if (!_this.pdfViewer.annotationModule && _this.pdfViewer.formDesignerModule) {\n var pageIndex = _this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_2 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + 10, top_2 + 10, canvas1.width - 10, canvas1.height - 10);\n }\n }\n // eslint-disable-next-line max-len\n var stampModule = _this.pdfViewer.annotationModule ? _this.pdfViewer.annotationModule.stampAnnotationModule : null;\n if (canvas && canvas.containsPoint({ x: _this.mouseX, y: _this.mouseY }) && !(stampModule && stampModule.isStampAnnotSelected)) {\n _this.diagramMouseMove(event);\n _this.annotationEvent = event;\n }\n else {\n _this.diagramMouseLeave(event);\n if (_this.isAnnotationDrawn) {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n }\n if (_this.pdfViewer.enableStampAnnotations) {\n if (stampModule && stampModule.isStampAnnotSelected) {\n _this.pdfViewer.tool = 'Stamp';\n _this.tool = new StampTool(_this.pdfViewer, _this);\n _this.isMouseDown = true;\n stampModule.isStampAnnotSelected = false;\n stampModule.isNewStampAnnot = true;\n }\n }\n if (_this.isSignatureAdded && _this.pdfViewer.enableHandwrittenSignature) {\n _this.pdfViewer.tool = 'Stamp';\n _this.tool = new StampTool(_this.pdfViewer, _this);\n _this.isMouseDown = true;\n _this.isSignatureAdded = false;\n _this.isNewSignatureAdded = true;\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.panOnMouseMove = function (event) {\n var isStampMode = false;\n // eslint-disable-next-line max-len\n if (_this.action === 'Ink' || _this.action === \"Line\" || _this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'DrawTool' || _this.action === 'Drag' || _this.action.indexOf('Rotate') !== -1 || _this.action.indexOf('Resize') !== -1) {\n isStampMode = true;\n }\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && !isStampMode) {\n if (_this.isViewerMouseDown) {\n var deltaX = _this.dragX - event.pageX;\n var deltaY = _this.dragY - event.pageY;\n _this.viewerContainer.scrollTop = _this.viewerContainer.scrollTop + deltaY;\n _this.viewerContainer.scrollLeft = _this.viewerContainer.scrollLeft + deltaX;\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grabbing';\n _this.viewerContainer.style.cursor = '-moz-grabbing';\n _this.viewerContainer.style.cursor = 'grabbing';\n _this.dragX = event.pageX;\n _this.dragY = event.pageY;\n }\n else {\n if (!_this.navigationPane.isNavigationPaneResized) {\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grab';\n _this.viewerContainer.style.cursor = '-moz-grab';\n _this.viewerContainer.style.cursor = 'grab';\n }\n }\n }\n else {\n if (!_this.navigationPane.isNavigationPaneResized) {\n _this.viewerContainer.style.cursor = 'auto';\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseLeave = function (event) {\n if (_this.isViewerMouseDown) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseLeave(event);\n }\n }\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.textSelectionModule.isTextSelection) {\n event.preventDefault();\n }\n if (_this.action === 'Ink') {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseEnter = function (event) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clear();\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseOver = function (event) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (_this.isViewerMouseDown) {\n if (!isIE) {\n event.preventDefault();\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnClick = function (event) {\n if (event.type === 'dblclick') {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getCurrentTextMarkupAnnotation()) {\n if (event.target.classList.contains('e-pv-text')) {\n _this.isViewerContainerDoubleClick = true;\n if (!_this.getTextMarkupAnnotationMode()) {\n var pageNumber = parseFloat(event.target.id.split('_')[2]);\n _this.pdfViewer.fireTextSelectionStart(pageNumber + 1);\n }\n _this.pdfViewer.textSelectionModule.selectAWord(event.target, event.clientX, event.clientY, false);\n if (_this.pdfViewer.contextMenuSettings.contextMenuAction === 'MouseUp') {\n _this.pdfViewer.textSelectionModule.calculateContextMenuPosition(event.clientY, event.clientX);\n }\n if (!_this.getTextMarkupAnnotationMode()) {\n _this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(true, false);\n _this.dblClickTimer = setTimeout(function () {\n _this.applySelection();\n }, 100);\n _this.pdfViewer.textSelectionModule.fireTextSelectEnd();\n }\n else if (_this.isTextMarkupAnnotationModule() && _this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations(_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode);\n }\n }\n }\n else if (_this.getCurrentTextMarkupAnnotation()) {\n // this.pdfViewer.annotationModule.showAnnotationPopup(event);\n }\n if (_this.action && (_this.action === 'Perimeter' || _this.action === 'Polygon') && _this.tool) {\n _this.eventArgs.position = _this.currentPosition;\n _this.getMouseEventArgs(_this.currentPosition, _this.eventArgs, event, _this.eventArgs.source);\n var ctrlKey = _this.isMetaKey(event);\n var info = { ctrlKey: event.ctrlKey, shiftKey: event.shiftKey };\n _this.eventArgs.info = info;\n _this.eventArgs.clickCount = event.detail;\n _this.tool.mouseUp(_this.eventArgs, true);\n }\n if (_this.pdfViewer.selectedItems ||\n (_this.pdfViewer.annotation && _this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation)) {\n if (_this.pdfViewer.selectedItems.annotations.length !== 0) {\n // eslint-disable-next-line\n var currentAnnotation = _this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.annotationModule && !currentAnnotation.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.annotationSelect(currentAnnotation.annotName, currentAnnotation.pageIndex, currentAnnotation, null, true);\n if (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === false) {\n if (_this.isFreeTextAnnotation(_this.pdfViewer.selectedItems.annotations) === true) {\n var elmtPosition = {};\n elmtPosition.x = _this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = _this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, _this.pdfViewer.selectedItems.annotations[0]);\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].enableShapeLabel === true) {\n var elmtPosition = {};\n elmtPosition.x = _this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = _this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotation.inputElementModule.editLabel(elmtPosition, _this.pdfViewer.selectedItems.annotations[0]);\n }\n else {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(_this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n var annotation = _this.pdfViewer.annotation;\n var annotationModule = _this.pdfViewer.annotationModule;\n if (annotation && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line\n var annotation_1 = _this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.annotationSelect(annotation_1.annotName, _this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage, annotation_1, null, true);\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var comments = document.getElementById(annotation_1.annotName);\n if (comments) {\n comments.firstChild.click();\n }\n }\n }\n }\n if (_this.pdfViewer.designerMode && _this.pdfViewer.selectedItems.formFields.length > 0) {\n var eventArgs = { name: \"formFieldDoubleClick\", field: _this.pdfViewer.selectedItems.formFields[0], cancel: false };\n _this.pdfViewer.fireFormFieldDoubleClickEvent(eventArgs);\n if (!eventArgs.cancel) {\n _this.pdfViewer.formDesigner.createPropertiesWindow();\n }\n }\n }\n else {\n if (event.detail === 3) {\n if (_this.isViewerContainerDoubleClick) {\n clearTimeout(_this.dblClickTimer);\n _this.isViewerContainerDoubleClick = false;\n }\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getTextMarkupAnnotationMode()) {\n _this.pdfViewer.textSelectionModule.selectEntireLine(event);\n _this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(true, false);\n _this.pdfViewer.textSelectionModule.fireTextSelectEnd();\n _this.applySelection();\n }\n }\n }\n };\n /**\n * @param {DragEvent} event - The DragEvent.\n * @returns {void}\n */\n this.viewerContainerOnDragStart = function (event) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n event.preventDefault();\n }\n };\n // eslint-disable-next-line\n this.viewerContainerOnContextMenuClick = function (event) {\n _this.isViewerMouseDown = false;\n };\n // eslint-disable-next-line\n this.onWindowMouseUp = function (event) {\n _this.isFreeTextContextMenu = false;\n _this.isNewStamp = false;\n _this.signatureAdded = false;\n // eslint-disable-next-line\n var annotationModule = _this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n // eslint-disable-next-line\n var modules = annotationModule.textMarkupAnnotationModule;\n modules.isLeftDropletClicked = false;\n modules.isDropletClicked = false;\n modules.isRightDropletClicked = false;\n if (!modules.currentTextMarkupAnnotation && window.getSelection().anchorNode === null) {\n modules.showHideDropletDiv(true);\n }\n else if (!modules.currentTextMarkupAnnotation && modules.currentTextMarkupAddMode === '') {\n modules.isTextMarkupAnnotationMode = false;\n }\n }\n if (!_this.getPopupNoteVisibleStatus()) {\n if (event.button === 0) {\n // eslint-disable-next-line max-len\n if (_this.isNewFreeTextAnnotation()) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line max-len\n if (event.detail === 1 && !_this.viewerContainer.contains(event.target) && !_this.contextMenuModule.contextMenuElement.contains(event.target)) {\n if (window.getSelection().anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseup(event);\n }\n }\n // eslint-disable-next-line\n var target = event.target;\n if (_this.viewerContainer.contains(event.target) && target.className !== 'e-pdfviewer-formFields' && target.className !== 'e-pv-formfield-input') {\n if (!_this.isClickedOnScrollBar(event, true) && !_this.isScrollbarMouseDown) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseup(event);\n }\n else {\n if (window.getSelection().anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.applySpanForSelection();\n }\n }\n }\n }\n else if (_this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line\n var viewerElement = _this.pdfViewer.element;\n // eslint-disable-next-line\n var targetElement = event.target;\n if (viewerElement && targetElement) {\n if (viewerElement.id.split('_')[0] === targetElement.id.split('_')[0]) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations(_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode);\n }\n }\n }\n }\n }\n else if (event.button === 2) {\n if (_this.viewerContainer.contains(event.target) && _this.skipPreventDefault(event.target)) {\n if (_this.checkIsNormalText()) {\n window.getSelection().removeAllRanges();\n }\n }\n }\n if (_this.isViewerMouseDown) {\n _this.isViewerMouseDown = false;\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clear();\n _this.pdfViewer.textSelectionModule.selectionStartPage = null;\n }\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n else {\n return true;\n }\n }\n };\n /**\n * @param {TouchEvent} event - The DragEvent.\n * @returns {void}\n */\n this.onWindowTouchEnd = function (event) {\n _this.signatureAdded = false;\n // eslint-disable-next-line max-len\n if (!_this.pdfViewer.element.contains(event.target) && !_this.contextMenuModule.contextMenuElement.contains(event.target)) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchStart = function (event) {\n var touchPoints = event.touches;\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.setTouchPoints(touchPoints[0].clientX, touchPoints[0].clientY);\n }\n var target = event.target;\n // eslint-disable-next-line max-len\n if (touchPoints.length === 1 && !(target.classList.contains('e-pv-hyperlink')) && _this.skipPreventDefault(target)) {\n _this.preventTouchEvent(event);\n }\n if (event.touches.length === 1 && _this.isTextMarkupAnnotationModule() && !_this.getPopupNoteVisibleStatus()) {\n if (!_this.isToolbarInkClicked) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationTouchEnd(event);\n }\n }\n _this.touchClientX = touchPoints[0].clientX;\n _this.touchClientY = touchPoints[0].clientY;\n _this.scrollY = touchPoints[0].clientY;\n _this.previousTime = new Date().getTime();\n // eslint-disable-next-line max-len\n if (touchPoints.length === 1 && !(event.target.classList.contains('e-pv-touch-select-drop') || event.target.classList.contains('e-pv-touch-ellipse'))) {\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && _this.pageCount > 0 && !_this.isThumb && !(event.target.classList.contains('e-pv-hyperlink'))) {\n _this.handleTaps(touchPoints, event);\n }\n if (!isBlazor() || !Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n _this.handleTextBoxTaps(touchPoints);\n }\n var designerMode = _this.isDesignerMode(target);\n if (designerMode) {\n _this.contextMenuModule.close();\n // event.preventDefault();\n if (!_this.isLongTouchPropagated) {\n _this.longTouchTimer = setTimeout(function () {\n if (!_this.isMoving) {\n _this.isTouchDesignerMode = true;\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n _this.contextMenuModule.open(_this.touchClientY, _this.touchClientX, _this.viewerContainer);\n }\n }, 1000);\n }\n _this.isLongTouchPropagated = true;\n _this.isMoving = false;\n }\n else if ((_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled)) {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n _this.contextMenuModule.close();\n // event.preventDefault();\n if (!_this.isLongTouchPropagated) {\n _this.longTouchTimer = setTimeout(function () {\n _this.viewerContainerOnLongTouch(event);\n }, 1000);\n }\n _this.isLongTouchPropagated = true;\n }\n }\n // eslint-disable-next-line\n var toolbarModule = _this.pdfViewer.toolbarModule ? _this.pdfViewer.toolbarModule.annotationToolbarModule : 'null';\n if (target.classList.contains('e-pv-text') && (!toolbarModule || !toolbarModule.textMarkupToolbarElement || toolbarModule.textMarkupToolbarElement.children.length === 0)) {\n target.classList.add('e-pv-text-selection-none');\n }\n _this.diagramMouseDown(event);\n // eslint-disable-next-line max-len\n if (_this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'DrawTool' || _this.action === 'Drag' || _this.action.indexOf('Rotate') !== -1 || _this.action.indexOf('Resize') !== -1) {\n event.preventDefault();\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnLongTouch = function (event) {\n _this.touchClientX = event.touches[0].clientX;\n _this.touchClientY = event.touches[0].clientY;\n event.preventDefault();\n if (_this.pdfViewer.textSelectionModule) {\n var target = event.target;\n if (target.classList.contains('e-pv-text-selection-none')) {\n target.classList.remove('e-pv-text-selection-none');\n }\n _this.pdfViewer.textSelectionModule.initiateTouchSelection(event, _this.touchClientX, _this.touchClientY);\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n clearTimeout(_this.singleTapTimer);\n _this.tapCount = 0;\n }\n }\n };\n /**\n * @param {PointerEvent} event - The PointerEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerDown = function (event) {\n if (event.pointerType === 'touch') {\n _this.pointerCount++;\n if (_this.pointerCount <= 2) {\n event.preventDefault();\n _this.pointersForTouch.push(event);\n if (_this.pointerCount === 2) {\n _this.pointerCount = 0;\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.setTouchPoints(event.clientX, event.clientY);\n }\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchMove = function (event) {\n if (_this.action === 'Drag') {\n _this.isMoving = true;\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n clearTimeout(_this.singleTapTimer);\n _this.singleTapTimer = null;\n _this.tapCount = 0;\n }\n _this.preventTouchEvent(event);\n if (_this.isToolbarInkClicked) {\n event.preventDefault();\n }\n var touchPoints = event.touches;\n if (_this.pdfViewer.magnificationModule) {\n _this.isTouchScrolled = true;\n if (touchPoints.length > 1 && _this.pageCount > 0) {\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.isTouchScrolled = false;\n }\n if (_this.pdfViewer.enablePinchZoom) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.magnificationModule.initiatePinchMove(touchPoints[0].clientX, touchPoints[0].clientY, touchPoints[1].clientX, touchPoints[1].clientY);\n }\n }\n else if (touchPoints.length === 1 && _this.getPagesPinchZoomed()) {\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.isTouchScrolled = false;\n }\n _this.pdfViewer.magnificationModule.pinchMoveScroll();\n }\n }\n _this.mouseX = touchPoints[0].clientX;\n _this.mouseY = touchPoints[0].clientY;\n var canvas;\n // eslint-disable-next-line max-len\n if (event.target && (event.target.id.indexOf('_text') > -1 || event.target.id.indexOf('_annotationCanvas') > -1 || event.target.classList.contains('e-pv-hyperlink')) && _this.pdfViewer.annotation) {\n var pageIndex = _this.pdfViewer.annotation.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_3 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + 10, top_3 + 10, canvas1.width - 10, canvas1.height - 10);\n }\n }\n if (canvas && canvas.containsPoint({ x: _this.mouseX, y: _this.mouseY }) || _this.action === 'Ink') {\n _this.diagramMouseMove(event);\n _this.annotationEvent = event;\n }\n else {\n _this.diagramMouseLeave(event);\n if (_this.isAnnotationDrawn) {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n }\n touchPoints = null;\n };\n /**\n * @param {PointerEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerMove = function (event) {\n if (event.pointerType === 'touch' && _this.pageCount > 0) {\n event.preventDefault();\n if (_this.pointersForTouch.length === 2) {\n for (var i = 0; i < _this.pointersForTouch.length; i++) {\n if (event.pointerId === _this.pointersForTouch[parseInt(i.toString(), 10)].pointerId) {\n _this.pointersForTouch[parseInt(i.toString(), 10)] = event;\n break;\n }\n }\n if (_this.pdfViewer.magnificationModule && _this.pdfViewer.enablePinchZoom) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.magnificationModule.initiatePinchMove(_this.pointersForTouch[0].clientX, _this.pointersForTouch[0].clientY, _this.pointersForTouch[1].clientX, _this.pointersForTouch[1].clientY);\n }\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchEnd = function (event) {\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pinchMoveEnd();\n }\n if (event.cancelable && !event.target.classList.contains('e-pv-touch-ellipse') && _this.pdfViewer.textSelectionModule && _this.pdfViewer.textSelectionModule.isTextSelection) {\n event.preventDefault();\n }\n _this.isLongTouchPropagated = false;\n clearInterval(_this.longTouchTimer);\n _this.longTouchTimer = null;\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && _this.isTouchScrolled) {\n _this.currentTime = new Date().getTime();\n var duration = _this.currentTime - _this.previousTime;\n // eslint-disable-next-line\n var difference = _this.scrollY - event.changedTouches[0].pageY;\n // eslint-disable-next-line\n var speed = (difference) / (duration);\n if (Math.abs(speed) > 1.5) {\n // eslint-disable-next-line\n var scrollTop = (difference) + ((duration) * speed);\n if (scrollTop > 0) {\n _this.viewerContainer.scrollTop += scrollTop;\n _this.updateMobileScrollerPosition();\n }\n }\n }\n _this.diagramMouseUp(event);\n _this.renderStampAnnotation(event);\n if (!Browser.isDevice) {\n _this.focusViewerContainer();\n }\n };\n /**\n * @param {PointerEvent} event - The PointerEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerEnd = function (event) {\n if (event.pointerType === 'touch') {\n event.preventDefault();\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pinchMoveEnd();\n }\n _this.pointersForTouch = [];\n _this.pointerCount = 0;\n }\n };\n // eslint-disable-next-line\n this.viewerContainerOnScroll = function (event) {\n var proxy = null;\n proxy = _this;\n var allowServerDataBind = proxy.pdfViewer.allowServerDataBinding;\n proxy.pdfViewer.enableServerDataBinding(false);\n var scrollposX = 0;\n var scrollposY = 0;\n if (event.touches && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line\n var ratio = (_this.viewerContainer.scrollHeight - _this.viewerContainer.clientHeight) / (_this.viewerContainer.clientHeight - _this.toolbarHeight);\n if (_this.isThumb) {\n _this.ispageMoved = true;\n event.preventDefault();\n _this.mobilePageNoContainer.style.display = 'block';\n scrollposX = event.touches[0].pageX - _this.scrollX;\n scrollposY = event.touches[0].pageY - _this.viewerContainer.offsetTop;\n _this.viewerContainer.scrollTop = scrollposY * ratio;\n // eslint-disable-next-line\n var containerValue = event.touches[0].pageY;\n // eslint-disable-next-line\n var toolbarHeight = _this.pdfViewer.toolbarModule ? 0 : 50;\n if (_this.viewerContainer.scrollTop !== 0 && ((containerValue) <= (_this.viewerContainer.clientHeight - toolbarHeight))) {\n _this.mobileScrollerContainer.style.top = containerValue + 'px';\n }\n }\n else if (event.touches[0].target.className !== 'e-pv-touch-ellipse') {\n if (!(_this.isWebkitMobile && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode))) {\n _this.mobilePageNoContainer.style.display = 'none';\n scrollposY = _this.touchClientY - event.touches[0].pageY;\n scrollposX = _this.touchClientX - event.touches[0].pageX;\n _this.viewerContainer.scrollTop = _this.viewerContainer.scrollTop + (scrollposY);\n _this.viewerContainer.scrollLeft = _this.viewerContainer.scrollLeft + (scrollposX);\n }\n // eslint-disable-next-line\n _this.updateMobileScrollerPosition();\n _this.touchClientY = event.touches[0].pageY;\n _this.touchClientX = event.touches[0].pageX;\n }\n }\n if (_this.scrollHoldTimer) {\n clearTimeout(_this.scrollHoldTimer);\n }\n var pageIndex = _this.currentPageNumber;\n _this.scrollHoldTimer = null;\n _this.contextMenuModule.close();\n var verticalScrollValue = _this.viewerContainer.scrollTop;\n // eslint-disable-next-line max-len\n for (var i = 0; i < _this.pageCount; i++) {\n if (_this.pageSize[parseInt(i.toString(), 10)] != null) {\n var pageHeight = _this.getPageHeight(i);\n if (pageHeight < 150) {\n _this.pageStopValue = 75;\n }\n else if (pageHeight >= 150 && pageHeight < 300) {\n _this.pageStopValue = 125;\n }\n else if (pageHeight >= 300 && pageHeight < 500) {\n _this.pageStopValue = 200;\n }\n else {\n _this.pageStopValue = 300;\n }\n // eslint-disable-next-line max-len\n if ((verticalScrollValue + _this.pageStopValue) <= (_this.getPageTop(i) + pageHeight)) {\n _this.currentPageNumber = i + 1;\n _this.pdfViewer.currentPageNumber = i + 1;\n break;\n }\n }\n }\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.magnificationModule && _this.pdfViewer.magnificationModule.fitType === 'fitToPage' && _this.currentPageNumber > 0) {\n if (_this.pageSize[_this.currentPageNumber - 1]) {\n if (!_this.isPanMode && (!Browser.isDevice && _this.pdfViewer.enableDesktopMode)) {\n _this.viewerContainer.scrollTop = _this.pageSize[_this.currentPageNumber - 1].top * _this.getZoomFactor();\n }\n }\n }\n _this.renderElementsVirtualScroll(_this.currentPageNumber);\n // eslint-disable-next-line max-len\n if (!_this.isViewerMouseDown && !_this.getPinchZoomed() && !_this.getPinchScrolled() && !_this.getPagesPinchZoomed() || _this.isViewerMouseWheel) {\n _this.pageViewScrollChanged(_this.currentPageNumber);\n _this.isViewerMouseWheel = false;\n }\n else {\n _this.showPageLoadingIndicator(_this.currentPageNumber - 1, false);\n }\n if (_this.pdfViewer.toolbarModule) {\n if (!isBlazor()) {\n _this.pdfViewer.toolbarModule.updateCurrentPage(_this.currentPageNumber);\n }\n _this.viewerContainer.setAttribute('aria-labelledby', _this.pdfViewer.element.id + '_pageDiv_' + (_this.currentPageNumber - 1));\n if (!isBlazor()) {\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n _this.pdfViewer.toolbarModule.updateNavigationButtons();\n }\n }\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.mobileSpanContainer.innerHTML = _this.currentPageNumber.toString();\n _this.mobilecurrentPageContainer.innerHTML = _this.currentPageNumber.toString();\n }\n if (pageIndex !== _this.currentPageNumber) {\n if (proxy.pdfViewer.thumbnailViewModule && (!Browser.isDevice || _this.pdfViewer.enableDesktopMode)) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.currentPageNumber - 1);\n proxy.pdfViewer.thumbnailViewModule.isThumbnailClicked = false;\n }\n _this.pdfViewer.firePageChange(pageIndex);\n }\n if (_this.pdfViewer.magnificationModule) {\n if (!_this.isPanMode && (!Browser.isDevice && _this.pdfViewer.enableDesktopMode)) {\n _this.pdfViewer.magnificationModule.updatePagesForFitPage(_this.currentPageNumber - 1);\n }\n }\n var currentPage = _this.getElement('_pageDiv_' + (_this.currentPageNumber - 1));\n if (currentPage) {\n currentPage.style.visibility = 'visible';\n }\n if (_this.isViewerMouseDown) {\n if (_this.getRerenderCanvasCreated() && !_this.isPanMode) {\n _this.pdfViewer.magnificationModule.clearIntervalTimer();\n }\n // eslint-disable-next-line\n var data = _this.getStoredData(_this.currentPageNumber);\n if (data) {\n _this.isDataExits = true;\n _this.initiatePageViewScrollChanged();\n _this.isDataExits = false;\n }\n else {\n // eslint-disable-next-line max-len\n var timer = _this.pdfViewer.scrollSettings.delayPageRequestTimeOnScroll ? _this.pdfViewer.scrollSettings.delayPageRequestTimeOnScroll : 100;\n _this.scrollHoldTimer = setTimeout(function () {\n _this.initiatePageViewScrollChanged();\n }, timer);\n }\n }\n if (_this.pdfViewer.annotation && _this.navigationPane.commentPanelContainer) {\n _this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelScrollTop(_this.currentPageNumber);\n }\n // eslint-disable-next-line max-len\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && event.touches && event.touches[0].target.className !== 'e-pv-touch-ellipse') {\n setTimeout(function () {\n _this.updateMobileScrollerPosition();\n }, 500);\n }\n proxy.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n this.pdfViewer = viewer;\n this.navigationPane = new NavigationPane(this.pdfViewer, this);\n this.textLayer = new TextLayer(this.pdfViewer, this);\n this.signatureModule = new Signature(this.pdfViewer, this);\n this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);\n }\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initializeComponent = function () {\n var element = document.getElementById(this.pdfViewer.element.id);\n if (element) {\n this.blazorUIAdaptor = isBlazor() ? new BlazorUiAdaptor(this.pdfViewer, this) : null;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewer.element.classList.add('e-pv-mobile-view');\n }\n var controlWidth = '100%';\n var toolbarDiv = void 0;\n this.viewerMainContainer = isBlazor() ? element.querySelector('.e-pv-viewer-main-container') : createElement('div', { id: this.pdfViewer.element.id + '_viewerMainContainer', className: 'e-pv-viewer-main-container' });\n this.viewerContainer = isBlazor() ? element.querySelector('.e-pv-viewer-container') : createElement('div', { id: this.pdfViewer.element.id + '_viewerContainer', className: 'e-pv-viewer-container', attrs: { 'aria-label': 'pdfviewer scroll view' } });\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.createMobilePageNumberContainer();\n }\n // eslint-disable-next-line\n this.viewerContainer.tabIndex = 0;\n if (this.pdfViewer.enableRtl) {\n this.viewerContainer.style.direction = 'rtl';\n }\n element.style.touchAction = 'pan-x pan-y';\n this.setMaximumHeight(element);\n this.mainContainer = isBlazor() ? element.querySelector('.e-pv-main-container') : createElement('div', { id: this.pdfViewer.element.id + '_mainContainer', className: 'e-pv-main-container' });\n this.mainContainer.appendChild(this.viewerMainContainer);\n element.appendChild(this.mainContainer);\n this.applyViewerHeight(this.mainContainer);\n if (this.pdfViewer.toolbarModule) {\n this.navigationPane.initializeNavigationPane();\n toolbarDiv = this.pdfViewer.toolbarModule.intializeToolbar(controlWidth);\n }\n else {\n if (isBlazor()) {\n this.navigationPane.initializeNavigationPane();\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n if (!this.pdfViewer.enableToolbar) {\n this.toolbarHeight = 0;\n toolbarDiv.style.display = 'none';\n }\n if (!this.pdfViewer.enableNavigationToolbar && ((Browser.isDevice && this.pdfViewer.enableDesktopMode) || (!Browser.isDevice))) {\n this.navigationPane.sideBarToolbar.style.display = 'none';\n this.navigationPane.sideBarToolbarSplitter.style.display = 'none';\n if (this.navigationPane.isBookmarkOpen || this.navigationPane.isThumbnailOpen) {\n this.navigationPane.updateViewerContainerOnClose();\n }\n }\n }\n }\n if (toolbarDiv) {\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, 56);\n }\n else {\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n var viewerWidth = this.pdfViewer.element.clientWidth;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n viewerWidth = viewerWidth - (this.navigationPane.sideBarToolbar ? this.navigationPane.getViewerContainerLeft() : 0) -\n (this.navigationPane.commentPanelContainer ? this.navigationPane.getViewerContainerRight() : 0);\n }\n this.viewerContainer.style.width = viewerWidth + 'px';\n this.viewerMainContainer.appendChild(this.viewerContainer);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.left = (viewerWidth - parseFloat(this.mobileScrollerContainer.style.width)) + 'px';\n this.mobilePageNoContainer.style.left = (viewerWidth / 2) - (parseFloat(this.mobilePageNoContainer.style.width) / 2) + 'px';\n this.mobilePageNoContainer.style.top = (this.pdfViewer.element.clientHeight / 2) + 'px';\n this.mobilePageNoContainer.style.display = 'none';\n this.mobilePageNoContainer.appendChild(this.mobilecurrentPageContainer);\n this.mobilePageNoContainer.appendChild(this.mobilenumberContainer);\n this.mobilePageNoContainer.appendChild(this.mobiletotalPageContainer);\n this.viewerContainer.appendChild(this.mobilePageNoContainer);\n this.viewerMainContainer.appendChild(this.mobileScrollerContainer);\n this.mobileScrollerContainer.appendChild(this.mobileSpanContainer);\n }\n this.pageContainer = createElement('div', { id: this.pdfViewer.element.id + '_pageViewContainer', className: 'e-pv-page-container', attrs: { 'tabindex': '0', 'aria-label': 'pdfviewer Page View' } });\n if (this.pdfViewer.enableRtl) {\n this.pageContainer.style.direction = 'ltr';\n }\n this.viewerContainer.appendChild(this.pageContainer);\n this.pageContainer.style.width = this.viewerContainer.clientWidth + 'px';\n if (toolbarDiv && this.pdfViewer.thumbnailViewModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.thumbnailViewModule.createThumbnailContainer();\n }\n this.createPrintPopup();\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.createGoToPagePopup();\n }\n var waitingPopup = createElement('div', { id: this.pdfViewer.element.id + '_loadingIndicator' });\n this.viewerContainer.appendChild(waitingPopup);\n createSpinner({ target: waitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(waitingPopup);\n if (isBlazor()) {\n this.contextMenuModule = new BlazorContextMenu(this.pdfViewer, this);\n // eslint-disable-next-line\n var spinnerElement = document.getElementsByClassName(this.pdfViewer.element.id + '_spinner');\n if (spinnerElement && spinnerElement[0] && (!spinnerElement[0].classList.contains('e-spin-hide'))) {\n spinnerElement[0].classList.remove('e-spin-show');\n spinnerElement[0].classList.add('e-spin-hide');\n }\n }\n else {\n this.contextMenuModule = new ContextMenu(this.pdfViewer, this);\n }\n this.contextMenuModule.createContextMenu();\n this.createFileInputElement();\n this.wireEvents();\n if (this.pdfViewer.textSearchModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.textSearchModule.createTextSearchBox();\n }\n if (this.pdfViewer.documentPath) {\n if (isBlazor()) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('LoadDocumentFromClient', this.pdfViewer.documentPath);\n }\n else {\n this.pdfViewer.load(this.pdfViewer.documentPath, null);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.initializeCollection();\n }\n }\n if (Browser.isDevice && this.pdfViewer.enableDesktopMode && this.pdfViewer.toolbarModule) {\n this.pdfViewer.interactionMode = 'Pan';\n }\n };\n PdfViewerBase.prototype.createMobilePageNumberContainer = function () {\n this.mobilePageNoContainer = createElement('div', { id: this.pdfViewer.element.id + '_mobilepagenoContainer', className: 'e-pv-mobilepagenoscroll-container' });\n this.mobilecurrentPageContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobilecurrentpageContainer', className: 'e-pv-mobilecurrentpage-container' });\n this.mobilenumberContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobiledashedlineContainer', className: 'e-pv-mobiledashedline-container' });\n this.mobiletotalPageContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobiletotalpageContainer', className: 'e-pv-mobiletotalpage-container' });\n this.mobileScrollerContainer = createElement('div', { id: this.pdfViewer.element.id + '_mobilescrollContainer', className: 'e-pv-mobilescroll-container' });\n this.mobileSpanContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobilespanContainer', className: 'e-pv-mobilespanscroll-container' });\n this.mobileSpanContainer.innerHTML = '1';\n this.mobilecurrentPageContainer.innerHTML = '1';\n this.mobilenumberContainer.innerHTML = '―――――';\n this.mobileScrollerContainer.style.cssFloat = 'right';\n this.mobileScrollerContainer.style.width = '40px';\n this.mobileScrollerContainer.style.height = '32px';\n this.mobileScrollerContainer.style.zIndex = '100';\n this.mobilePageNoContainer.style.width = '120px';\n this.mobilePageNoContainer.style.height = '100px';\n this.mobilePageNoContainer.style.zIndex = '100';\n this.mobilePageNoContainer.style.position = 'fixed';\n this.mobileScrollerContainer.addEventListener('touchstart', this.mobileScrollContainerDown.bind(this));\n this.mobileScrollerContainer.addEventListener('touchend', this.mobileScrollContainerEnd.bind(this));\n this.mobileScrollerContainer.style.display = 'none';\n };\n /**\n * @private\n * @param {string} documentData - file name or base64 string.\n * @param {string} password - password of the PDF document.\n * @returns {void}\n */\n PdfViewerBase.prototype.initiatePageRender = function (documentData, password) {\n this.loadedData = documentData;\n this.documentId = this.createGUID();\n if (this.viewerContainer) {\n this.viewerContainer.scrollTop = 0;\n }\n this.showLoadingIndicator(true);\n this.hashId = ' ';\n this.isFileName = false;\n this.saveDocumentInfo();\n if (this.pdfViewer.interactionMode === 'Pan') {\n this.initiatePanning();\n }\n documentData = this.checkDocumentData(documentData);\n this.setFileName();\n if (this.pdfViewer.downloadFileName) {\n this.downloadFileName = this.pdfViewer.downloadFileName;\n }\n else {\n this.downloadFileName = this.pdfViewer.fileName;\n }\n var jsonObject = this.constructJsonObject(documentData, password);\n this.createAjaxRequest(jsonObject, documentData, password);\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.initiateLoadDocument = function (documentId, isFileName, fileName) {\n if (documentId) {\n this.documentId = documentId;\n }\n if (this.viewerContainer) {\n this.viewerContainer.scrollTop = 0;\n }\n this.showLoadingIndicator(true);\n this.hashId = ' ';\n this.isFileName = isFileName;\n this.saveDocumentInfo();\n if (this.pdfViewer.interactionMode === 'Pan') {\n this.initiatePanning();\n }\n this.setFileName();\n if (this.pdfViewer.fileName === null) {\n if (isFileName && fileName) {\n this.pdfViewer.fileName = fileName;\n this.jsonDocumentId = this.pdfViewer.fileName;\n }\n else {\n this.pdfViewer.fileName = 'undefined.pdf';\n this.jsonDocumentId = null;\n }\n }\n if (this.pdfViewer.downloadFileName) {\n this.downloadFileName = this.pdfViewer.downloadFileName;\n }\n else {\n this.downloadFileName = this.pdfViewer.fileName;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.loadSuccess = function (documentDetails, password) {\n // eslint-disable-next-line\n var data = documentDetails;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n this.onControlError(500, data, this.pdfViewer.serverActionSettings.load);\n data = null;\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n // eslint-disable-next-line\n if (typeof parseInt(data) === 'number' && !isNaN(parseInt(data))) {\n // eslint-disable-next-line\n data = parseInt(data);\n break;\n }\n }\n if (data.StatusText && (data.StatusText === 'File Does not Exist')) {\n this.showLoadingIndicator(false);\n }\n // eslint-disable-next-line\n if (data.uniqueId === this.documentId || (typeof parseInt(data) === 'number' && !isNaN(parseInt(data)))) {\n this.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.load, data);\n this.requestSuccess(data, null, password);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.mobileScrollContainerDown = function (event) {\n this.ispageMoved = false;\n this.isThumb = true;\n if (this.isTextMarkupAnnotationModule()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage != null && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n var pageNumber = this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearAnnotationSelection(pageNumber);\n this.pdfViewer.toolbar.showToolbar(true);\n }\n }\n this.mobileScrollerContainer.addEventListener('touchmove', this.viewerContainerOnScroll.bind(this), true);\n };\n /**\n * @private\n * @param {MouseEvent} e - default mouse event.\n * @returns {PointModel} - retuns the bounds.\n */\n PdfViewerBase.prototype.relativePosition = function (e) {\n // eslint-disable-next-line\n var currentRect = this.viewerContainer.getBoundingClientRect();\n var left = e.clientX - currentRect.left;\n var top = e.clientY - currentRect.top;\n return { x: left, y: top };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setMaximumHeight = function (element) {\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) || (currentRect && currentRect.height === 0)) {\n element.style.minHeight = '500px';\n }\n this.updateWidth();\n this.updateHeight();\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.applyViewerHeight = function (element) {\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && currentRect && currentRect.height === 0) {\n element.style.minHeight = '500px';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateWidth = function () {\n if (this.pdfViewer.width.toString() !== 'auto') {\n // eslint-disable-next-line\n this.pdfViewer.element.style.width = this.pdfViewer.width;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateHeight = function () {\n if (this.pdfViewer.height.toString() !== 'auto') {\n // eslint-disable-next-line\n this.pdfViewer.element.style.height = this.pdfViewer.height;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateViewerContainer = function () {\n var sideBarContentContainer = this.getElement('_sideBarContentContainer');\n if (sideBarContentContainer && sideBarContentContainer.style.display === 'none') {\n this.navigationPane.updateViewerContainerOnClose();\n }\n else if (sideBarContentContainer && sideBarContentContainer.style.display === 'block') {\n this.navigationPane.updateViewerContainerOnExpand();\n }\n else {\n this.updateViewerContainerSize();\n }\n // eslint-disable-next-line\n var toolbarModule = this.pdfViewer.toolbarModule;\n if (toolbarModule) {\n if (isBlazor()) {\n if (this.pdfViewer.enableToolbar || this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('RefreshToolbarItems');\n }\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n toolbarModule.toolbar.refreshOverflow();\n }\n if (this.pdfViewer.enableAnnotationToolbar && toolbarModule.annotationToolbarModule) {\n toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n }\n }\n }\n };\n PdfViewerBase.prototype.updateViewerContainerSize = function () {\n this.viewerContainer.style.width = this.pdfViewer.element.clientWidth + 'px';\n this.pageContainer.style.width = this.viewerContainer.offsetWidth + 'px';\n this.updateZoomValue();\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.mobileScrollContainerEnd = function (event) {\n if (!this.ispageMoved) {\n this.goToPagePopup.show();\n }\n this.isThumb = false;\n this.ispageMoved = false;\n this.mobileScrollerContainer.removeEventListener('touchmove', this.viewerContainerOnScroll.bind(this), true);\n this.mobilePageNoContainer.style.display = 'none';\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAjaxRequest = function (jsonObject, documentData, password) {\n var proxy = null;\n proxy = this;\n if (this.pdfViewer.serverActionSettings) {\n this.loadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.loadRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.load;\n this.loadRequestHandler.responseType = 'json';\n this.loadRequestHandler.mode = true;\n // eslint-disable-next-line\n jsonObject['action'] = 'Load';\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n this.loadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.loadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, this.pdfViewer.serverActionSettings.load);\n data = null;\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n // eslint-disable-next-line\n if (typeof parseInt(data) === 'number' && !isNaN(parseInt(data))) {\n // eslint-disable-next-line\n data = parseInt(data);\n break;\n }\n }\n // eslint-disable-next-line\n if (data.uniqueId === proxy.documentId || (typeof parseInt(data) === 'number' && !isNaN(parseInt(data)))) {\n proxy.updateFormFieldName(data);\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.load, data);\n proxy.requestSuccess(data, documentData, password);\n }\n }\n }\n else {\n proxy.showLoadingIndicator(false);\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Import PDF Failed'));\n }\n };\n // eslint-disable-next-line\n this.loadRequestHandler.onFailure = function (result) {\n var statusString = result.status.toString().split('')[0];\n if (statusString === '4' && result.status.toString() !== \"404\") {\n proxy.openNotificationPopup('Client error');\n }\n else {\n proxy.openNotificationPopup();\n }\n proxy.showLoadingIndicator(false);\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.load);\n };\n // eslint-disable-next-line\n this.loadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.showLoadingIndicator(false);\n // eslint-disable-next-line\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.load);\n };\n }\n };\n // EJ2-60380 - As of now, in form designer the element name is taken fromfield.ActualFieldName (with hypen) but for\n // Form fields it is taken from field.FieldName (without hypen).\n // For this reason when user taken the form feilds on button click, name of the form feilds are different with and without form designer module\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateFormFieldName = function (data) {\n if (data && data.PdfRenderedFormFields && data.PdfRenderedFormFields.length > 0) {\n var field = void 0;\n for (var i = 0; i < data.PdfRenderedFormFields.length; i++) {\n field = data.PdfRenderedFormFields[parseInt(i.toString(), 10)];\n if (field) {\n if (field.ActualFieldName) {\n field.FieldName = field.ActualFieldName;\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {string} errorString - The message to be displayed.\n * @returns {void}\n */\n PdfViewerBase.prototype.openNotificationPopup = function (errorString) {\n var _this = this;\n if (this.pdfViewer.showNotificationDialog) {\n if (errorString === 'Client error') {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Clienterror');\n promise.then(function (value) {\n _this.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('Client error'));\n }\n }\n else {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Servererror');\n promise.then(function (value) {\n _this.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('Server error'));\n }\n }\n if (this.getElement('_notify')) {\n this.getElement('_notify').classList.add('e-pv-notification-large-content');\n }\n }\n };\n /**\n * @private\n * @param {string} errorString - The message to be shown.\n * @returns {void}\n */\n PdfViewerBase.prototype.showNotificationPopup = function (errorString) {\n if (!this.pdfViewer.showNotificationDialog && errorString !== '') {\n this.textLayer.createNotificationPopup(errorString);\n if (this.getElement('_notify')) {\n this.getElement('_notify').classList.add('e-pv-notification-large-content');\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.requestSuccess = function (data, documentData, password) {\n if (data && data.pageCount !== undefined) {\n if (isBlazor() && this.isPassword) {\n this.isPassword = false;\n this.isPasswordAvailable = false;\n this.pdfViewer._dotnetInstance.invokeMethodAsync('ClosePasswordDialog');\n }\n if (password && password != '') {\n this.passwordData = password;\n }\n this.pdfViewer.allowServerDataBinding = false;\n this.pageCount = data.pageCount;\n this.pdfViewer.pageCount = data.pageCount;\n this.hashId = data.hashId;\n this.documentLiveCount = data.documentLiveCount;\n this.isAnnotationCollectionRemoved = false;\n this.saveDocumentHashData();\n this.saveFormfieldsData(data);\n this.pdfViewer.allowServerDataBinding = true;\n this.digitalSignaturePages = data.digitalSignaturePages;\n this.pageRender(data);\n // eslint-disable-next-line\n var pageData = { pageCount: data.pageCount, pageSizes: data.pageSizes };\n window.sessionStorage.setItem(this.documentId + '_pagedata', JSON.stringify(pageData));\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.display = '';\n // eslint-disable-next-line\n var toolbarHeight = this.pdfViewer.toolbarModule ? this.toolbarHeight : 0;\n this.mobileScrollerContainer.style.top = (toolbarHeight) + 'px';\n }\n this.restrictionList = data.RestrictionSummary;\n this.RestrictionEnabled(this.restrictionList, false);\n }\n else {\n this.pageCount = 0;\n this.currentPageNumber = 0;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.display = 'none';\n }\n if (data === 4) {\n if (!isBlazor()) {\n // 4 is error code for encrypted document.\n this.renderPasswordPopup(documentData, password);\n }\n }\n else if (data === 3) {\n if (!isBlazor()) {\n // 3 is error code for corrupted document.\n this.renderCorruptPopup();\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateToolbarItems();\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n annotationModule.textMarkupAnnotationModule.createAnnotationSelectElement();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.RestrictionEnabled = function (restrictionSummary, isEnable) {\n if (restrictionSummary) {\n for (var i = 0; i < restrictionSummary.length; i++) {\n this.EnableRestriction(restrictionSummary[parseInt(i.toString(), 10)], isEnable);\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.DisableToolbarItems(restrictionSummary[parseInt(i.toString(), 10)], isEnable);\n }\n }\n else {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('RestrictToolbarItems', restrictionSummary, isEnable);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.EnableRestriction = function (restrictionSummary, isEnable) {\n switch (restrictionSummary) {\n case 'Print':\n this.pdfViewer.enablePrint = isEnable;\n break;\n case 'CopyContent':\n this.pdfViewer.enableTextSelection = isEnable;\n break;\n case 'FillFields':\n this.pdfViewer.enableFormFields = isEnable;\n this.enableFormFieldButton(isEnable);\n break;\n case 'EditAnnotations':\n this.pdfViewer.enableAnnotation = isEnable;\n break;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.pageRender = function (data) {\n this.document = null;\n this.passwordDialogReset();\n if (this.passwordPopup) {\n this.passwordPopup.hide();\n }\n var pageIndex = 0;\n this.initPageDiv(data);\n this.currentPageNumber = pageIndex + 1;\n this.pdfViewer.currentPageNumber = pageIndex + 1;\n this.previousZoomValue = this.pdfViewer.zoomValue;\n var isZoomMode = false;\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.isAutoZoom = true;\n if (this.pdfViewer.zoomValue && this.pdfViewer.zoomValue > 0) {\n if (this.pdfViewer.zoomValue !== 100) {\n isZoomMode = true;\n }\n this.isInitialPageMode = true;\n this.pdfViewer.magnification.zoomTo(this.pdfViewer.zoomValue);\n }\n if (this.pdfViewer.zoomMode === 'FitToWidth') {\n this.isInitialPageMode = true;\n this.pdfViewer.magnificationModule.fitToWidth();\n }\n else if (this.pdfViewer.zoomMode === 'FitToPage') {\n this.isInitialPageMode = true;\n this.pdfViewer.magnificationModule.fitToPage();\n }\n this.documentLoaded = true;\n this.pdfViewer.magnificationModule.isInitialLoading = true;\n this.onWindowResize();\n this.documentLoaded = false;\n this.pdfViewer.magnificationModule.isInitialLoading = false;\n }\n this.isDocumentLoaded = true;\n // eslint-disable-next-line\n var viewPortWidth = 816;\n // eslint-disable-next-line radix\n viewPortWidth = parseInt(viewPortWidth);\n var pageWidth = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n if (this.renderedPagesList.indexOf(pageIndex) === -1 && !isZoomMode) {\n this.createRequestForRender(pageIndex);\n var pageNumber = pageIndex + 1;\n if (pageNumber < this.pageCount) {\n this.createRequestForRender(pageNumber);\n pageNumber = pageNumber + 1;\n }\n if (this.pageSize[parseInt(pageNumber.toString(), 10)]) {\n var pageTop = this.getPageTop(pageNumber);\n var viewerHeight = this.viewerContainer.clientHeight;\n while (viewerHeight > pageTop) {\n if (this.pageSize[parseInt(pageNumber.toString(), 10)]) {\n this.renderPageElement(pageNumber);\n this.createRequestForRender(pageNumber);\n pageTop = this.getPageTop(pageNumber);\n pageNumber = pageNumber + 1;\n }\n else {\n break;\n }\n }\n }\n }\n this.showLoadingIndicator(false);\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.uploadedDocumentName = null;\n this.pdfViewer.toolbarModule.updateCurrentPage(this.currentPageNumber);\n this.pdfViewer.toolbarModule.updateToolbarItems();\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationAddTools(true);\n }\n // eslint-disable-next-line max-len\n this.viewerContainer.setAttribute('aria-labelledby', this.pdfViewer.element.id + '_pageDiv_' + (this.currentPageNumber - 1));\n }\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileSpanContainer.innerHTML = this.currentPageNumber.toString();\n this.mobilecurrentPageContainer.innerHTML = this.currentPageNumber.toString();\n }\n };\n PdfViewerBase.prototype.renderPasswordPopup = function (documentData, password) {\n var _this = this;\n if (!isBlazor()) {\n if (!this.isPasswordAvailable) {\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.isPasswordAvailable = true;\n this.createPasswordPopup();\n this.pdfViewer.fireDocumentLoadFailed(true, null);\n this.passwordPopup.show();\n }\n else {\n this.pdfViewer.fireDocumentLoadFailed(true, password);\n this.promptElement.classList.add('e-pv-password-error');\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Invalid Password');\n this.promptElement.focus();\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.passwordPopup.show();\n }\n }\n else {\n // eslint-disable-next-line\n var promptElement_1 = document.getElementById(this.pdfViewer.element.id + '_prompt');\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_EnterPassword');\n promise.then(function (value) {\n promptElement_1.textContent = value;\n });\n // eslint-disable-next-line\n var passwordInput_1 = document.querySelector('#' + this.pdfViewer.element.id + '_password_input');\n passwordInput_1.addEventListener('keyup', function () {\n if (passwordInput_1.value === '') {\n _this.passwordDialogReset();\n }\n });\n passwordInput_1.addEventListener('focus', function () {\n passwordInput_1.parentElement.classList.add('e-input-focus');\n });\n passwordInput_1.addEventListener('blur', function () {\n passwordInput_1.parentElement.classList.remove('e-input-focus');\n });\n if (!this.isPasswordAvailable) {\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.isPasswordAvailable = true;\n this.pdfViewer.fireDocumentLoadFailed(true, null);\n }\n else {\n this.pdfViewer.fireDocumentLoadFailed(true, password);\n promptElement_1.classList.add('e-pv-password-error');\n var promise_1 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_InvalidPassword');\n promise_1.then(function (value) {\n promptElement_1.textContent = value;\n });\n promptElement_1.focus();\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenPasswordDialog');\n }\n };\n PdfViewerBase.prototype.renderCorruptPopup = function () {\n this.pdfViewer.fireDocumentLoadFailed(false, null);\n this.documentId = null;\n if (this.pdfViewer.showNotificationDialog) {\n if (!isBlazor()) {\n this.createCorruptedPopup();\n this.corruptPopup.show();\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenCorruptedDialog');\n }\n }\n };\n PdfViewerBase.prototype.constructJsonObject = function (documentData, password) {\n var jsonObject;\n if (password) {\n this.isPasswordAvailable = true;\n this.passwordData = password;\n // eslint-disable-next-line max-len\n jsonObject = { document: documentData, password: password, zoomFactor: \"1\", isFileName: this.isFileName.toString(), uniqueId: this.documentId, showDigitalSignatureAppearance: this.pdfViewer.showDigitalSignatureAppearance };\n }\n else {\n this.isPasswordAvailable = false;\n this.passwordData = '';\n jsonObject = { document: documentData, zoomFactor: \"1\", isFileName: this.isFileName.toString(), uniqueId: this.documentId, hideEmptyDigitalSignatureFields: this.pdfViewer.hideEmptyDigitalSignatureFields, showDigitalSignatureAppearance: this.pdfViewer.showDigitalSignatureAppearance };\n }\n return jsonObject;\n };\n PdfViewerBase.prototype.checkDocumentData = function (documentData) {\n var base64String = documentData.split('base64,')[1];\n if (base64String === undefined) {\n this.isFileName = true;\n this.jsonDocumentId = documentData;\n if (this.pdfViewer.fileName === null) {\n // eslint-disable-next-line max-len\n var documentStringArray = (documentData.indexOf('\\\\') !== -1) ? documentData.split('\\\\') : documentData.split('/');\n this.pdfViewer.fileName = documentStringArray[documentStringArray.length - 1];\n this.jsonDocumentId = this.pdfViewer.fileName;\n base64String = documentData;\n }\n }\n else {\n this.jsonDocumentId = null;\n }\n return base64String;\n };\n PdfViewerBase.prototype.setFileName = function () {\n if (this.pdfViewer.fileName === null) {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.uploadedDocumentName) {\n this.pdfViewer.fileName = this.pdfViewer.toolbarModule.uploadedDocumentName;\n this.jsonDocumentId = this.pdfViewer.fileName;\n }\n else {\n this.pdfViewer.fileName = 'undefined.pdf';\n this.jsonDocumentId = null;\n }\n }\n };\n PdfViewerBase.prototype.saveDocumentInfo = function () {\n window.sessionStorage.setItem('currentDocument', this.documentId);\n window.sessionStorage.setItem('serviceURL', this.pdfViewer.serviceUrl);\n if (this.pdfViewer.serverActionSettings) {\n window.sessionStorage.setItem('unload', this.pdfViewer.serverActionSettings.unload);\n }\n };\n PdfViewerBase.prototype.saveDocumentHashData = function () {\n var hashId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n hashId = encodeURI(this.hashId);\n }\n else {\n hashId = this.hashId;\n }\n window.sessionStorage.setItem('hashId', hashId);\n if (this.documentLiveCount) {\n window.sessionStorage.setItem('documentLiveCount', this.documentLiveCount.toString());\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.saveFormfieldsData = function (data) {\n this.pdfViewer.isFormFieldDocument = false;\n this.enableFormFieldButton(false);\n if (data && data.PdfRenderedFormFields && data.PdfRenderedFormFields.length > 0) {\n if (this.formfieldvalue) {\n if (this.pdfViewer.formFieldsModule) {\n this.setItemInSessionStorage(this.formfieldvalue, '_formfields');\n }\n this.formfieldvalue = null;\n }\n else if (this.pdfViewer.formFieldsModule) {\n for (var i = 0; i < data.PdfRenderedFormFields.length; i++) {\n if (data.PdfRenderedFormFields[parseInt(i.toString(), 10)].FieldName == '') {\n data.PdfRenderedFormFields.splice(i, 1);\n }\n }\n this.setItemInSessionStorage(data.PdfRenderedFormFields, '_formfields');\n }\n if (this.pdfViewer.enableFormFields && this.pdfViewer.formFieldsModule) {\n this.pdfViewer.formFieldsModule.formFieldCollections();\n }\n if (this.pdfViewer.formFieldCollections.length > 0) {\n this.pdfViewer.isFormFieldDocument = true;\n this.enableFormFieldButton(true);\n }\n }\n };\n /**\n * @param {boolean} isEnable - Enable or disable the toolbar itema.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.enableFormFieldButton = function (isEnable) {\n if (isEnable) {\n this.pdfViewer.isFormFieldDocument = true;\n }\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.submitItem) {\n this.pdfViewer.toolbarModule.toolbar.enableItems(this.pdfViewer.toolbarModule.submitItem.parentElement, isEnable);\n }\n };\n PdfViewerBase.prototype.updateWaitingPopup = function (pageNumber) {\n if (this.pageSize[parseInt(pageNumber.toString(), 10)].top != null) {\n // eslint-disable-next-line max-len\n var pageCurrentRect = this.getElement('_pageDiv_' + pageNumber).getBoundingClientRect();\n var waitingPopup = this.getElement('_pageDiv_' + pageNumber).firstChild.firstChild;\n if (pageCurrentRect.top < 0) {\n if (this.toolbarHeight + (this.viewerContainer.clientHeight / 2) - pageCurrentRect.top < pageCurrentRect.height) {\n waitingPopup.style.top = ((this.viewerContainer.clientHeight / 2) - pageCurrentRect.top) - this.toolbarHeight + 'px';\n }\n else {\n if (this.toolbarHeight + (pageCurrentRect.bottom / 2) - pageCurrentRect.top < pageCurrentRect.height) {\n waitingPopup.style.top = ((pageCurrentRect.bottom / 2) - pageCurrentRect.top) - this.toolbarHeight + 'px';\n }\n }\n }\n else {\n waitingPopup.style.top = this.viewerContainer.clientHeight / 2 + 'px';\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && pageCurrentRect.width > this.viewerContainer.clientWidth) {\n waitingPopup.style.left = (this.viewerContainer.clientWidth / 2) + (this.viewerContainer.scrollLeft) + 'px';\n }\n else if (this.getZoomFactor() > 1.25 && pageCurrentRect.width > this.viewerContainer.clientWidth) {\n waitingPopup.style.left = this.viewerContainer.clientWidth / 2 + 'px';\n }\n else {\n waitingPopup.style.left = pageCurrentRect.width / 2 + 'px';\n }\n }\n };\n /**\n * @private\n * @returns {number} - returned the page value.\n */\n PdfViewerBase.prototype.getActivePage = function (isPageNumber) {\n if (this.activeElements && !isNullOrUndefined(this.activeElements.activePageID)) {\n if (isPageNumber) {\n return this.activeElements.activePageID + 1;\n }\n else {\n return this.activeElements.activePageID;\n }\n }\n else {\n if (isPageNumber) {\n return this.currentPageNumber;\n }\n else {\n return this.currentPageNumber - 1;\n }\n }\n };\n PdfViewerBase.prototype.createWaitingPopup = function (pageNumber) {\n // eslint-disable-next-line max-len\n var waitingPopup = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageNumber);\n if (waitingPopup) {\n createSpinner({ target: waitingPopup });\n this.setLoaderProperties(waitingPopup);\n }\n };\n PdfViewerBase.prototype.showLoadingIndicator = function (isShow) {\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup) {\n if (isShow) {\n waitingPopup.style.display = 'block';\n showSpinner(waitingPopup);\n }\n else {\n waitingPopup.style.display = 'none';\n hideSpinner(waitingPopup);\n }\n }\n };\n PdfViewerBase.prototype.showPageLoadingIndicator = function (pageIndex, isShow) {\n var waitingPopup = this.getElement('_pageDiv_' + pageIndex);\n if (waitingPopup != null) {\n if (isShow) {\n showSpinner(waitingPopup);\n }\n else {\n hideSpinner(waitingPopup);\n }\n this.updateWaitingPopup(pageIndex);\n }\n };\n /**\n * @param {boolean} isShow - Show or hide print loading indicator.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.showPrintLoadingIndicator = function (isShow) {\n var printWaitingPopup = this.getElement('_printLoadingIndicator');\n if (printWaitingPopup != null) {\n if (isShow) {\n this.printMainContainer.style.display = 'block';\n showSpinner(printWaitingPopup);\n }\n else {\n this.printMainContainer.style.display = 'none';\n hideSpinner(printWaitingPopup);\n }\n }\n };\n PdfViewerBase.prototype.setLoaderProperties = function (element) {\n var spinnerElement = element.firstChild.firstChild.firstChild;\n if (spinnerElement) {\n spinnerElement.style.height = '48px';\n spinnerElement.style.width = '48px';\n spinnerElement.style.transformOrigin = '24px 24px 24px';\n }\n };\n /**\n * @param {number} pageNumber - Specify the pageNumber.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.updateScrollTop = function (pageNumber) {\n var _this = this;\n // eslint-disable-next-line\n if (this.pageSize[pageNumber] != null) {\n this.renderElementsVirtualScroll(pageNumber);\n this.viewerContainer.scrollTop = this.getPageTop(pageNumber);\n if (this.renderedPagesList.indexOf(pageNumber) === -1) {\n this.createRequestForRender(pageNumber);\n }\n setTimeout(function () {\n var currentPageNumber = pageNumber + 1;\n if (currentPageNumber !== _this.currentPageNumber) {\n _this.pdfViewer.currentPageNumber = currentPageNumber;\n _this.currentPageNumber = currentPageNumber;\n if (_this.pdfViewer.toolbarModule) {\n _this.pdfViewer.toolbarModule.updateCurrentPage(currentPageNumber);\n }\n }\n }, 100);\n }\n };\n /**\n * @private\n * @returns {number} - Returns the zoom factor value.\n */\n PdfViewerBase.prototype.getZoomFactor = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.zoomFactor;\n }\n else {\n // default value\n return 1;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns whether the pinch zoom is performed or not.\n */\n PdfViewerBase.prototype.getPinchZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPinchZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} -Returns whether the zoom is performed or not.\n */\n PdfViewerBase.prototype.getMagnified = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isMagnified;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPinchScrolled = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPinchScrolled;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPagesPinchZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPagePinchZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPagesZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPagesZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getRerenderCanvasCreated = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isRerenderCanvasCreated;\n }\n else {\n // default value\n return false;\n }\n };\n /**\n * @private\n * @returns {string} - retrun the docuumentid.\n */\n PdfViewerBase.prototype.getDocumentId = function () {\n return this.documentId;\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.download = function () {\n if (this.pageCount > 0) {\n this.createRequestForDownload();\n }\n };\n /**\n * @private\n * @returns {promise} - Returns the blob object.\n */\n PdfViewerBase.prototype.saveAsBlob = function () {\n var _this = this;\n if (this.pageCount > 0) {\n return new Promise(function (resolve, reject) {\n _this.saveAsBlobRequest().then(function (value) {\n resolve(value);\n });\n });\n }\n return null;\n };\n PdfViewerBase.prototype.saveAsBlobRequest = function () {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject = proxy.constructJsonDownload();\n _this.dowonloadRequestHandler = new AjaxHandler(_this.pdfViewer);\n _this.dowonloadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.download;\n _this.dowonloadRequestHandler.responseType = 'text';\n _this.dowonloadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (typeof data !== 'object' && data.indexOf('data:application/pdf') === -1) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.download);\n data = null;\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.download, data);\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/pdf');\n resolve(blobUrl);\n }\n }\n };\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n });\n return promise;\n };\n /**\n * @param {boolean} isTriggerEvent - check to trigger the event.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.clear = function (isTriggerEvent) {\n var proxy = this;\n var pdfViewer = proxy.pdfViewer;\n var printModule = pdfViewer.printModule;\n var textSearchModule = pdfViewer.textSearchModule;\n var bookmarkViewModule = pdfViewer.bookmarkViewModule;\n var thumbnailViewModule = pdfViewer.thumbnailView;\n var annotationModule = pdfViewer.annotation;\n var magnificationModule = pdfViewer.magnificationModule;\n var textSelectionModule = pdfViewer.textSelectionModule;\n var formFieldsModule = pdfViewer.formFieldsModule;\n var signatureModule = proxy.signatureModule;\n proxy.isPasswordAvailable = false;\n proxy.isDocumentLoaded = false;\n proxy.isInitialLoaded = false;\n proxy.isImportAction = false;\n proxy.annotationPageList = [];\n proxy.annotationComments = null;\n pdfViewer.annotationCollection = [];\n pdfViewer.signatureCollection = [];\n pdfViewer.formFieldCollection = [];\n proxy.isAnnotationCollectionRemoved = false;\n proxy.documentAnnotationCollections = null;\n proxy.isDrawnCompletely = false;\n proxy.annotationRenderredList = [];\n proxy.isImportAction = false;\n proxy.isImportedAnnotation = false;\n proxy.importedAnnotation = [];\n proxy.isStorageExceed = false;\n proxy.annotationStorage = {};\n proxy.formFieldStorage = {};\n proxy.downloadCollections = {};\n proxy.annotationEvent = null;\n proxy.highestWidth = 0;\n proxy.highestHeight = 0;\n proxy.requestLists = [];\n proxy.tilerequestLists = [];\n proxy.isToolbarInkClicked = false;\n pdfViewer.formFieldCollections = [];\n proxy.passwordData = '';\n proxy.isFocusField = false;\n proxy.focusField = [];\n proxy.updateDocumentEditedProperty(false);\n pdfViewer.clipboardData.clipObject = {};\n if (pdfViewer.formDesignerModule) {\n pdfViewer.formDesignerModule.formFieldIndex = 0;\n if (proxy.activeElements) {\n pdfViewer.clearSelection(proxy.activeElements.activePageID);\n }\n pdfViewer.zIndexTable = [];\n }\n proxy.initiateTextSelectMode();\n proxy.RestrictionEnabled(proxy.restrictionList, true);\n proxy.restrictionList = null;\n if (!Browser.isDevice || pdfViewer.enableDesktopMode) {\n if (proxy.navigationPane.sideBarToolbar) {\n proxy.navigationPane.clear();\n }\n }\n if (!isBlazor() && Browser.isDevice || !pdfViewer.enableDesktopMode) {\n proxy.navigationPane.clear();\n }\n if (thumbnailViewModule) {\n thumbnailViewModule.clear();\n }\n if (bookmarkViewModule) {\n bookmarkViewModule.clear();\n }\n if (magnificationModule) {\n magnificationModule.isMagnified = false;\n magnificationModule.clearIntervalTimer();\n }\n if (textSelectionModule) {\n textSelectionModule.clearTextSelection();\n }\n if (textSearchModule) {\n textSearchModule.resetTextSearch();\n }\n if (annotationModule) {\n annotationModule.clear();\n annotationModule.initializeCollection();\n }\n if (formFieldsModule) {\n formFieldsModule.readOnlyCollection = [];\n formFieldsModule.signatureFieldCollection = [];\n formFieldsModule.renderedPageList = [];\n formFieldsModule.currentTarget = null;\n }\n if (signatureModule) {\n signatureModule.signaturecollection = [];\n signatureModule.outputcollection = [];\n signatureModule.signAnnotationIndex = [];\n }\n if (proxy.pageSize) {\n proxy.pageSize = [];\n }\n if (proxy.renderedPagesList) {\n proxy.renderedPagesList = [];\n }\n if (proxy.pageContainer) {\n while (proxy.pageContainer.hasChildNodes()) {\n proxy.pageContainer.removeChild(proxy.pageContainer.lastChild);\n }\n }\n if (proxy.pageCount > 0) {\n proxy.unloadDocument(proxy);\n // eslint-disable-next-line\n proxy.textLayer.characterBound = new Array();\n proxy.loadRequestHandler && proxy.loadRequestHandler.clear();\n proxy.virtualLoadRequestHandler && proxy.virtualLoadRequestHandler.clear();\n proxy.pageRequestHandler && proxy.pageRequestHandler.clear();\n proxy.dowonloadRequestHandler && proxy.dowonloadRequestHandler.clear();\n proxy.importAnnotationRequestHandler && proxy.importAnnotationRequestHandler.clear();\n proxy.exportAnnotationRequestHandler && proxy.exportAnnotationRequestHandler.clear();\n proxy.importFormFieldsRequestHandler && proxy.importFormFieldsRequestHandler.clear();\n proxy.exportFormFieldsRequestHandler && proxy.exportFormFieldsRequestHandler.clear();\n if (printModule && printModule.printRequestHandler) {\n printModule.printRequestHandler.clear();\n }\n }\n proxy.windowSessionStorageClear();\n if (proxy.pinchZoomStorage) {\n proxy.pinchZoomStorage = [];\n }\n if ((proxy.previousZoomValue || proxy.previousZoomValue === 0) && proxy.previousZoomValue !== pdfViewer.zoomValue) {\n pdfViewer.zoomValue = proxy.previousZoomValue;\n }\n if (isTriggerEvent && proxy.pageCount > 0) {\n pdfViewer.fireDocumentUnload(this.pdfViewer.fileName);\n }\n this.pdfViewer.fileName = null;\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.destroy = function () {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewer.element.classList.remove('e-pv-mobile-view');\n }\n this.unWireEvents();\n this.clear(false);\n this.pageContainer.parentNode ? this.pageContainer.parentNode.removeChild(this.pageContainer) : null;\n this.viewerContainer.parentNode ? this.viewerContainer.parentNode.removeChild(this.viewerContainer) : null;\n if (this.contextMenuModule) {\n var contextMenuElement = this.contextMenuModule.contextMenuElement;\n contextMenuElement && contextMenuElement.ej2_instances && contextMenuElement.ej2_instances.length > 0 ? this.contextMenuModule.destroy() : null;\n }\n if (this.pdfViewer.toolbarModule) {\n this.navigationPane.destroy();\n }\n var measureElement = document.getElementById('measureElement');\n if (measureElement) {\n measureElement = undefined;\n }\n };\n /**\n * @param {PdfViewerBase} proxy - PdfviewerBase class.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.unloadDocument = function (proxy) {\n var documentId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n documentId = decodeURI(window.sessionStorage.getItem('hashId'));\n }\n else {\n documentId = proxy.hashId ? proxy.hashId : window.sessionStorage.getItem('hashId');\n }\n var documentLiveCount = window.sessionStorage.getItem('documentLiveCount');\n if (documentId !== null) {\n // eslint-disable-next-line max-len\n var jsonObject = { hashId: documentId, documentLiveCount: documentLiveCount, action: 'Unload', elementId: proxy.pdfViewer.element.id };\n var actionName = window.sessionStorage.getItem('unload');\n if (window.sessionStorage.getItem('serviceURL') && window.sessionStorage.getItem('serviceURL') !== 'undefined') {\n try {\n // eslint-disable-next-line\n var browserSupportsKeepalive = 'keepalive' in new Request('');\n if (browserSupportsKeepalive) {\n // eslint-disable-next-line\n var headerValue = this.setUnloadRequestHeaders();\n var credentialsData = this.pdfViewer.ajaxRequestSettings.withCredentials ? 'include' : 'omit';\n fetch(window.sessionStorage.getItem('serviceURL') + '/' + actionName, {\n method: 'POST',\n credentials: credentialsData,\n headers: headerValue,\n body: JSON.stringify(jsonObject)\n });\n }\n }\n catch (error) {\n this.unloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.unloadRequestHandler.send(jsonObject);\n }\n }\n else if (isBlazor()) {\n this.clearCache(actionName, jsonObject, proxy);\n }\n }\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.zoomFactor = 1;\n }\n this.formFieldCollection = [];\n this.textrequestLists = [];\n window.sessionStorage.removeItem('hashId');\n window.sessionStorage.removeItem('documentLiveCount');\n if (this.documentId) {\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n window.sessionStorage.removeItem(this.documentId + '_formDesigner');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n window.sessionStorage.removeItem(this.documentId + '_pagedata');\n for (var i = 0; i < this.sessionStorage.length; i++) {\n window.sessionStorage.removeItem(this.sessionStorage[parseInt(i.toString(), 10)]);\n }\n }\n };\n PdfViewerBase.prototype.clearCache = function (actionName, jsonObject, proxy) {\n this.unloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.unloadRequestHandler.url = window.sessionStorage.getItem('serviceURL') + '/' + actionName;\n this.unloadRequestHandler.mode = false;\n this.unloadRequestHandler.responseType = null;\n this.unloadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.unloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n if (data.indexOf('Document') === -1) {\n proxy.onControlError(500, data, actionName);\n data = null;\n }\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.unload, data);\n }\n }\n };\n // eslint-disable-next-line\n this.unloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, actionName);\n };\n // eslint-disable-next-line\n this.unloadRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, actionName);\n };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setUnloadRequestHeaders = function () {\n // eslint-disable-next-line\n var myHeaders = new Headers();\n myHeaders.append('Content-Type', 'application/json;charset=UTF-8');\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n myHeaders.append(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n return myHeaders;\n };\n PdfViewerBase.prototype.windowSessionStorageClear = function () {\n window.sessionStorage.removeItem('currentDocument');\n window.sessionStorage.removeItem('serviceURL');\n window.sessionStorage.removeItem('unload');\n for (var i = 0; i < this.sessionStorage.length; i++) {\n window.sessionStorage.removeItem(this.sessionStorage[parseInt(i.toString(), 10)]);\n }\n };\n PdfViewerBase.prototype.updateCommentPanel = function () {\n // eslint-disable-next-line\n var moreOptionsButton = document.querySelectorAll('.e-pv-more-options-button');\n for (var i = 0; i < moreOptionsButton.length; i++) {\n moreOptionsButton[parseInt(i.toString(), 10)].style.visibility = 'hidden';\n }\n // eslint-disable-next-line\n var commentTextBox = document.querySelectorAll('.e-pv-new-comments-div');\n for (var j = 0; j < commentTextBox.length; j++) {\n commentTextBox[parseInt(j.toString(), 10)].style.display = 'none';\n }\n // eslint-disable-next-line\n var commentContainer = document.querySelectorAll('.e-pv-comments-border');\n for (var j = 0; j < commentContainer.length; j++) {\n commentContainer[parseInt(j.toString(), 10)].classList.remove('e-pv-comments-border');\n }\n // eslint-disable-next-line\n var editableElement = document.querySelectorAll('.e-editable-inline');\n for (var j = 0; j < editableElement.length; j++) {\n editableElement[parseInt(j.toString(), 10)].style.display = 'none';\n }\n // eslint-disable-next-line\n var commentSelect = document.querySelectorAll('.e-pv-comments-select');\n for (var z = 0; z < commentSelect.length; z++) {\n commentSelect[parseInt(z.toString(), 10)].classList.remove('e-pv-comments-select');\n }\n // eslint-disable-next-line\n var commentsDiv = document.querySelectorAll('.e-pv-comments-div');\n for (var j = 0; j < commentsDiv.length; j++) {\n commentsDiv[parseInt(j.toString(), 10)].style.minHeight = 60 + 'px';\n }\n };\n /**\n * @param {boolean} isMouseDown - check whether the mouse down is triggered.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.focusViewerContainer = function (isMouseDown) {\n var scrollX = window.scrollX;\n var scrollY = window.scrollY;\n // eslint-disable-next-line\n var parentNode = this.getScrollParent(this.viewerContainer);\n var scrollNodeX = 0;\n var scrollNodeY = 0;\n if (parentNode !== null) {\n scrollNodeX = parentNode.scrollLeft;\n scrollNodeY = parentNode.scrollTop;\n }\n this.viewerContainer.focus();\n if (this.currentPageNumber > 0) {\n this.viewerContainer.setAttribute('aria-labelledby', this.pdfViewer.element.id + '_pageDiv_' + (this.currentPageNumber - 1));\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stickyNotesAnnotationModule.accordionContainer) {\n this.updateCommentPanel();\n }\n // eslint-disable-next-line max-len\n if ((navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > -1 || navigator.userAgent.indexOf('Edge') !== -1) && parentNode !== null) {\n parentNode.scrollLeft = scrollNodeX;\n parentNode.scrollTop = scrollNodeY;\n }\n else if (parentNode !== null) {\n parentNode.scrollTo(scrollNodeX, scrollNodeY);\n }\n window.scrollTo(scrollX, scrollY);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.getScrollParent = function (node) {\n if (node === null || node.nodeName === 'HTML') {\n return null;\n }\n var style = getComputedStyle(node);\n if (this.viewerContainer.id !== node.id && (style.overflowY === 'scroll' || style.overflowY === 'auto')) {\n return node;\n }\n else {\n return this.getScrollParent(node.parentNode);\n }\n };\n PdfViewerBase.prototype.createCorruptedPopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_corrupted_popup', className: 'e-pv-corrupted-popup' });\n this.pageContainer.appendChild(popupElement);\n this.corruptPopup = new Dialog({\n showCloseIcon: true, closeOnEscape: true, isModal: true,\n // eslint-disable-next-line max-len\n header: '
    ' + this.pdfViewer.localeObj.getConstant('File Corrupted') + '
    ', visible: false,\n // eslint-disable-next-line max-len\n buttons: [{ buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.closeCorruptPopup.bind(this) }],\n target: this.pdfViewer.element, beforeClose: function () {\n _this.corruptPopup.destroy();\n _this.getElement('_corrupted_popup').remove();\n _this.corruptPopup = null;\n var waitingPopup = _this.getElement('_loadingIndicator');\n if (waitingPopup != null) {\n hideSpinner(waitingPopup);\n }\n }\n });\n if (this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n this.corruptPopup.content = '
    ' + this.pdfViewer.localeObj.getConstant('File Corrupted Content') + '
    ';\n this.corruptPopup.enableRtl = true;\n }\n else {\n // eslint-disable-next-line max-len\n this.corruptPopup.content = '
    ' + this.pdfViewer.localeObj.getConstant('File Corrupted Content') + '
    ';\n }\n this.corruptPopup.appendTo(popupElement);\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.hideLoadingIndicator = function () {\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.closeCorruptPopup = function () {\n this.corruptPopup.hide();\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.createPrintPopup = function () {\n var element = document.getElementById(this.pdfViewer.element.id);\n this.printMainContainer = createElement('div', {\n id: this.pdfViewer.element.id + '_printcontainer',\n className: 'e-pv-print-popup-container'\n });\n element.appendChild(this.printMainContainer);\n this.printMainContainer.style.display = 'none';\n var printWaitingPopup = createElement('div', {\n id: this.pdfViewer.element.id + '_printLoadingIndicator',\n className: 'e-pv-print-loading-container'\n });\n this.printMainContainer.appendChild(printWaitingPopup);\n createSpinner({ target: printWaitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(printWaitingPopup);\n };\n PdfViewerBase.prototype.createGoToPagePopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_goTopage_popup', className: 'e-pv-gotopage-popup' });\n this.goToPageElement = createElement('span', { id: this.pdfViewer.element.id + '_prompt' });\n this.goToPageElement.textContent = this.pdfViewer.localeObj.getConstant('Enter pagenumber');\n popupElement.appendChild(this.goToPageElement);\n var inputContainer = createElement('span', { className: 'e-pv-text-input' });\n // eslint-disable-next-line max-len\n this.goToPageInput = createElement('input', { id: this.pdfViewer.element.id + '_page_input', className: 'e-input' });\n this.goToPageInput.type = 'text';\n this.goToPageInput.style.maxWidth = '80%';\n this.pageNoContainer = createElement('span', { className: '.e-pv-number-ofpages' });\n inputContainer.appendChild(this.goToPageInput);\n inputContainer.appendChild(this.pageNoContainer);\n popupElement.appendChild(inputContainer);\n this.pageContainer.appendChild(popupElement);\n this.goToPagePopup = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true,\n header: this.pdfViewer.localeObj.getConstant('GoToPage'), visible: false, buttons: [\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') },\n click: this.GoToPageCancelClick.bind(this)\n },\n // eslint-disable-next-line max-len\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('Apply'), disabled: true, cssClass: 'e-pv-gotopage-apply-btn', isPrimary: true },\n click: this.GoToPageApplyClick.bind(this)\n }\n ], close: this.closeGoToPagePopUp.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.goToPagePopup.enableRtl = true;\n }\n this.goToPagePopup.appendTo(popupElement);\n if (!isBlazor()) {\n var goToPageTextBox = new NumericTextBox({ format: '##', showSpinButton: false });\n goToPageTextBox.appendTo(this.goToPageInput);\n }\n this.goToPageInput.addEventListener('keyup', function () {\n // eslint-disable-next-line\n var inputValue = _this.goToPageInput.value;\n if (inputValue !== '' && parseFloat(inputValue) > 0 && (_this.pdfViewer.pageCount + 1) > parseFloat(inputValue)) {\n _this.EnableApplyButton();\n }\n else {\n _this.DisableApplyButton();\n }\n });\n };\n PdfViewerBase.prototype.closeGoToPagePopUp = function () {\n this.goToPageInput.value = '';\n this.DisableApplyButton();\n };\n PdfViewerBase.prototype.EnableApplyButton = function () {\n // eslint-disable-next-line\n var popupElements = document.getElementsByClassName('e-pv-gotopage-apply-btn')[0];\n popupElements.removeAttribute('disabled');\n };\n PdfViewerBase.prototype.DisableApplyButton = function () {\n // eslint-disable-next-line\n var popupElements = document.getElementsByClassName('e-pv-gotopage-apply-btn')[0];\n popupElements.setAttribute('disabled', true);\n };\n PdfViewerBase.prototype.GoToPageCancelClick = function () {\n this.goToPagePopup.hide();\n };\n PdfViewerBase.prototype.GoToPageApplyClick = function () {\n this.goToPagePopup.hide();\n // eslint-disable-next-line\n var pageNumber = this.goToPageInput.value;\n this.pdfViewer.navigation.goToPage(pageNumber);\n this.updateMobileScrollerPosition();\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateMobileScrollerPosition = function () {\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.mobileScrollerContainer) {\n // eslint-disable-next-line\n var ratio = (this.viewerContainer.scrollHeight - this.viewerContainer.clientHeight) / (this.viewerContainer.clientHeight - 56);\n // eslint-disable-next-line\n var differenceRatio = (this.viewerContainer.scrollTop) / ratio;\n // eslint-disable-next-line\n var toolbarHeight = this.pdfViewer.toolbarModule ? this.toolbarHeight : 0;\n this.mobileScrollerContainer.style.top = (toolbarHeight + differenceRatio) + 'px';\n }\n };\n PdfViewerBase.prototype.createPasswordPopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_password_popup', className: 'e-pv-password-popup', attrs: { 'tabindex': '-1' } });\n this.promptElement = createElement('span', { id: this.pdfViewer.element.id + '_prompt', attrs: { 'tabindex': '-1' } });\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Enter Password');\n popupElement.appendChild(this.promptElement);\n var inputContainer = createElement('span', { className: 'e-input-group e-pv-password-input' });\n // eslint-disable-next-line max-len\n this.passwordInput = createElement('input', { id: this.pdfViewer.element.id + '_password_input', className: 'e-input' });\n this.passwordInput.type = 'password';\n this.passwordInput.name = 'Required';\n inputContainer.appendChild(this.passwordInput);\n popupElement.appendChild(inputContainer);\n this.pageContainer.appendChild(popupElement);\n this.passwordPopup = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true,\n header: this.pdfViewer.localeObj.getConstant('Password Protected'), visible: false,\n close: this.passwordCancel.bind(this), target: this.pdfViewer.element, beforeClose: function () {\n _this.passwordPopup.destroy();\n _this.getElement('_password_popup').remove();\n _this.passwordPopup = null;\n var waitingPopup = _this.getElement('_loadingIndicator');\n if (waitingPopup != null) {\n hideSpinner(waitingPopup);\n }\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.passwordPopup.buttons = [\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.applyPassword.bind(this)\n },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.passwordCancelClick.bind(this) }\n ];\n }\n else {\n this.passwordPopup.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.passwordCancelClick.bind(this) },\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.applyPassword.bind(this)\n }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.passwordPopup.enableRtl = true;\n }\n this.passwordPopup.appendTo(popupElement);\n this.passwordInput.addEventListener('keyup', function () {\n if (_this.passwordInput.value === '') {\n _this.passwordDialogReset();\n }\n });\n this.passwordInput.addEventListener('focus', function () {\n _this.passwordInput.parentElement.classList.add('e-input-focus');\n });\n this.passwordInput.addEventListener('blur', function () {\n _this.passwordInput.parentElement.classList.remove('e-input-focus');\n });\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.passwordCancel = function (args) {\n if (args.isInteraction) {\n this.clear(false);\n this.passwordDialogReset();\n this.passwordInput.value = '';\n }\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.passwordCancelClick = function () {\n this.clear(false);\n this.passwordDialogReset();\n this.passwordPopup.hide();\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.passwordDialogReset = function () {\n if (!isBlazor()) {\n if (this.promptElement) {\n this.promptElement.classList.remove('e-pv-password-error');\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Enter Password');\n this.passwordInput.value = '';\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.applyPassword = function () {\n if (!isBlazor()) {\n var password = this.passwordInput.value;\n if (!isNullOrUndefined(password) && password.length > 0) {\n this.pdfViewer.load(this.document, password);\n }\n }\n this.focusViewerContainer();\n };\n PdfViewerBase.prototype.createFileInputElement = function () {\n if (Browser.isDevice || !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.enableAnnotationToolbar && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createCustomStampElement();\n }\n if (this.signatureModule) {\n this.signatureModule.createSignatureFileElement();\n }\n }\n };\n PdfViewerBase.prototype.wireEvents = function () {\n var _this = this;\n this.viewerContainer.addEventListener('scroll', this.viewerContainerOnScroll, true);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.viewerContainer.addEventListener('touchmove', this.viewerContainerOnScroll, true);\n }\n this.viewerContainer.addEventListener('mousedown', this.viewerContainerOnMousedown);\n this.viewerContainer.addEventListener('mouseup', this.viewerContainerOnMouseup);\n this.viewerContainer.addEventListener(\"wheel\", this.detectTouchPad, false);\n this.viewerContainer.addEventListener('wheel', this.viewerContainerOnMouseWheel);\n if (this.isMacSafari) {\n window.addEventListener('gesturestart', function (e) { return e.preventDefault(); });\n window.addEventListener('gesturechange', function (e) { return e.preventDefault(); });\n window.addEventListener('gestureend', function (e) { return e.preventDefault(); });\n this.viewerContainer.addEventListener('gesturestart', this.handleMacGestureStart, false);\n this.viewerContainer.addEventListener('gesturechange', this.handleMacGestureChange, false);\n this.viewerContainer.addEventListener('gestureend', this.handleMacGestureEnd, false);\n }\n this.viewerContainer.addEventListener('mousemove', this.viewerContainerOnMousemove);\n this.viewerContainer.addEventListener('mouseleave', this.viewerContainerOnMouseLeave);\n this.viewerContainer.addEventListener('mouseenter', this.viewerContainerOnMouseEnter);\n this.viewerContainer.addEventListener('mouseover', this.viewerContainerOnMouseOver);\n this.viewerContainer.addEventListener('click', this.viewerContainerOnClick);\n this.viewerContainer.addEventListener('dblclick', this.viewerContainerOnClick);\n this.viewerContainer.addEventListener('dragstart', this.viewerContainerOnDragStart);\n this.pdfViewer.element.addEventListener('keydown', this.viewerContainerOnKeyDown);\n window.addEventListener('keydown', this.onWindowKeyDown);\n window.addEventListener('mouseup', this.onWindowMouseUp);\n window.addEventListener('touchend', this.onWindowTouchEnd);\n this.unload = function () { return _this.unloadDocument(_this); };\n window.addEventListener('unload', this.unload);\n window.addEventListener('beforeunload', this.clearSessionStorage);\n window.addEventListener('resize', this.onWindowResize);\n // eslint-disable-next-line max-len\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Edge') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n this.viewerContainer.addEventListener('pointerdown', this.viewerContainerOnPointerDown);\n this.viewerContainer.addEventListener('pointermove', this.viewerContainerOnPointerMove);\n this.viewerContainer.addEventListener('pointerup', this.viewerContainerOnPointerEnd);\n this.viewerContainer.addEventListener('pointerleave', this.viewerContainerOnPointerEnd);\n }\n else {\n this.viewerContainer.addEventListener('touchstart', this.viewerContainerOnTouchStart);\n if (this.isWebkitMobile && this.isDeviceiOS) {\n // eslint-disable-next-line max-len\n this.viewerContainer.addEventListener(\"touchmove\", function (e) { if (e.scale !== 1) {\n e.preventDefault();\n } }, { passive: false });\n }\n this.viewerContainer.addEventListener('touchmove', this.viewerContainerOnTouchMove);\n this.viewerContainer.addEventListener('touchend', this.viewerContainerOnTouchEnd);\n this.viewerContainer.addEventListener('touchleave', this.viewerContainerOnTouchEnd);\n this.viewerContainer.addEventListener('touchcancel', this.viewerContainerOnTouchEnd);\n }\n };\n PdfViewerBase.prototype.unWireEvents = function () {\n this.viewerContainer.removeEventListener('scroll', this.viewerContainerOnScroll, true);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.viewerContainer.removeEventListener('touchmove', this.viewerContainerOnScroll, true);\n }\n this.viewerContainer.removeEventListener('mousedown', this.viewerContainerOnMousedown);\n this.viewerContainer.removeEventListener('mouseup', this.viewerContainerOnMouseup);\n this.viewerContainer.removeEventListener(\"wheel\", this.detectTouchPad, false);\n this.viewerContainer.removeEventListener('wheel', this.viewerContainerOnMouseWheel);\n if (this.isMacSafari) {\n window.removeEventListener('gesturestart', function (e) { return e.preventDefault(); });\n window.removeEventListener('gesturechange', function (e) { return e.preventDefault(); });\n window.removeEventListener('gestureend', function (e) { return e.preventDefault(); });\n this.viewerContainer.removeEventListener('gesturestart', this.handleMacGestureStart, false);\n this.viewerContainer.removeEventListener('gesturechange', this.handleMacGestureChange, false);\n this.viewerContainer.removeEventListener('gestureend', this.handleMacGestureEnd, false);\n }\n this.viewerContainer.removeEventListener('mousemove', this.viewerContainerOnMousemove);\n this.viewerContainer.removeEventListener('mouseleave', this.viewerContainerOnMouseLeave);\n this.viewerContainer.removeEventListener('mouseenter', this.viewerContainerOnMouseEnter);\n this.viewerContainer.removeEventListener('mouseover', this.viewerContainerOnMouseOver);\n this.viewerContainer.removeEventListener('click', this.viewerContainerOnClick);\n this.viewerContainer.removeEventListener('dragstart', this.viewerContainerOnDragStart);\n this.viewerContainer.removeEventListener('contextmenu', this.viewerContainerOnContextMenuClick);\n this.pdfViewer.element.removeEventListener('keydown', this.viewerContainerOnKeyDown);\n window.addEventListener('keydown', this.onWindowKeyDown);\n window.removeEventListener('mouseup', this.onWindowMouseUp);\n window.removeEventListener('unload', this.unload);\n window.removeEventListener('resize', this.onWindowResize);\n // eslint-disable-next-line max-len\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Edge') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n this.viewerContainer.removeEventListener('pointerdown', this.viewerContainerOnPointerDown);\n this.viewerContainer.removeEventListener('pointermove', this.viewerContainerOnPointerMove);\n this.viewerContainer.removeEventListener('pointerup', this.viewerContainerOnPointerEnd);\n this.viewerContainer.removeEventListener('pointerleave', this.viewerContainerOnPointerEnd);\n }\n else {\n this.viewerContainer.removeEventListener('touchstart', this.viewerContainerOnTouchStart);\n if (this.isWebkitMobile && this.isDeviceiOS) {\n // eslint-disable-next-line max-len\n this.viewerContainer.removeEventListener(\"touchmove\", function (e) { if (e.scale !== 1) {\n e.preventDefault();\n } }, false);\n }\n this.viewerContainer.removeEventListener('touchmove', this.viewerContainerOnTouchMove);\n this.viewerContainer.removeEventListener('touchend', this.viewerContainerOnTouchEnd);\n this.viewerContainer.removeEventListener('touchleave', this.viewerContainerOnTouchEnd);\n this.viewerContainer.removeEventListener('touchcancel', this.viewerContainerOnTouchEnd);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateZoomValue = function () {\n if (this.pdfViewer.magnificationModule) {\n if (this.pdfViewer.magnificationModule.isAutoZoom) {\n this.pdfViewer.magnificationModule.fitToAuto();\n }\n else if (this.pdfViewer.zoomMode !== 'FitToWidth' && this.pdfViewer.magnificationModule.fitType === 'fitToWidth') {\n this.pdfViewer.magnificationModule.fitToWidth();\n }\n else if (this.pdfViewer.magnificationModule.fitType === 'fitToPage') {\n this.pdfViewer.magnificationModule.fitToPage();\n }\n }\n for (var i = 0; i < this.pageCount; i++) {\n this.applyLeftPosition(i);\n }\n };\n /**\n * @private\n * @param {any} annotation - The annotation type of any.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateFreeTextProperties = function (annotation) {\n if (this.pdfViewer.enableShapeLabel) {\n if (this.pdfViewer.shapeLabelSettings.fillColor) {\n annotation.labelFillColor = this.pdfViewer.shapeLabelSettings.fillColor;\n }\n if (this.pdfViewer.shapeLabelSettings.fontColor) {\n annotation.fontColor = this.pdfViewer.shapeLabelSettings.fontColor;\n }\n if (this.pdfViewer.shapeLabelSettings.fontSize) {\n annotation.fontSize = this.pdfViewer.shapeLabelSettings.fontSize;\n }\n if (this.pdfViewer.shapeLabelSettings.fontFamily) {\n annotation.fontFamily = this.pdfViewer.shapeLabelSettings.fontFamily;\n }\n if (this.pdfViewer.shapeLabelSettings.opacity) {\n annotation.labelOpacity = this.pdfViewer.shapeLabelSettings.opacity;\n }\n if (this.pdfViewer.shapeLabelSettings.labelContent) {\n annotation.labelContent = this.pdfViewer.shapeLabelSettings.labelContent;\n }\n }\n };\n /**\n * @private\n * @param {MouseEvent} event - The mouse event.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.mouseDownHandler = function (event) {\n var isEnableDelete = false;\n var isCancel;\n var hidenItems = [];\n var disabledItems = [];\n if (event && event.target) {\n this.mouseDownEvent = event;\n this.contextMenuModule.currentTarget = event.target;\n }\n if (this.pdfViewer.annotationModule) {\n isEnableDelete = this.pdfViewer.annotationModule.isEnableDelete();\n }\n if (!isEnableDelete) {\n disabledItems.push('DeleteContext');\n }\n if (this.pdfViewer.contextMenuOption === 'None') {\n isCancel = true;\n }\n else if (this.pdfViewer.textSelectionModule || this.isShapeBasedAnnotationsEnabled()) {\n if (event) {\n var isClickWithinSelectionBounds = this.isClickWithinSelectionBounds(event);\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) {\n this.isFreeTextContextMenu = true;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && !this.pdfViewer.annotation.freeTextAnnotationModule.isTextSelected) {\n disabledItems.push('Cut');\n disabledItems.push('Copy');\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.selectedText === '') {\n disabledItems.push('Paste');\n }\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Properties');\n hidenItems.push('Comment');\n hidenItems.push('DeleteContext');\n }\n else if (isClickWithinSelectionBounds && this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if ((!event.target.classList.contains('e-pv-maintaincontent') && event.target.classList.contains('e-pv-text') || event.target.classList.contains('e-pv-text-layer'))) {\n if (this.checkIsNormalText()) {\n isCancel = true;\n }\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isIE || Browser.info.name === 'edge') && event.target.classList.contains('e-pv-page-container')) {\n isCancel = true;\n }\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Comment');\n hidenItems.push('Properties');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n this.shapeMenuItems(hidenItems, disabledItems, false, true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path') {\n this.shapeMenuItems(hidenItems, disabledItems, true);\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && (event.target.classList.contains('e-pv-text-layer') ||\n event.target.classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n hidenItems.push('Properties');\n this.shapeMenuItems(hidenItems, disabledItems, false);\n // eslint-disable-next-line max-len\n }\n else if (this.isCalibrateAnnotationModule() && this.pdfViewer.annotationModule.measureAnnotationModule.currentAnnotationMode) {\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('Properties');\n disabledItems.push('Cut');\n disabledItems.push('Copy');\n disabledItems.push('Paste');\n disabledItems.push('DeleteContext');\n disabledItems.push('Comment');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('Properties');\n hidenItems.push('Cut');\n hidenItems.push('Copy');\n hidenItems.push('Paste');\n hidenItems.push('ScaleRatio');\n }\n else {\n isCancel = true;\n }\n }\n }\n else if (this.pdfViewer.textSelectionModule && (this.pdfViewer.contextMenuOption === 'MouseUp')) {\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Comment');\n hidenItems.push('Properties');\n }\n else if (this.pdfViewer.selectedItems.annotations.length === 0) {\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Properties');\n }\n if (!this.pdfViewer.enableCommentPanel) {\n disabledItems.push('Comment');\n }\n }\n else {\n isCancel = true;\n }\n var eventArgs = { hidenItems: hidenItems, disabledItems: disabledItems, isCancel: isCancel };\n this.pdfViewer._dotnetInstance.invokeMethodAsync('MouseDownHandler', eventArgs);\n };\n /**\n * @private\n * @param {string} selectedMenu - The selected menu.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.OnItemSelected = function (selectedMenu) {\n // eslint-disable-next-line\n var target = this.contextMenuModule.currentTarget;\n switch (selectedMenu) {\n case this.pdfViewer.localeObj.getConstant('Copy'):\n this.CopyItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Highlight context'):\n this.TextMarkUpSelected('Highlight');\n break;\n case this.pdfViewer.localeObj.getConstant('Underline context'):\n this.TextMarkUpSelected('Underline');\n break;\n case this.pdfViewer.localeObj.getConstant('Strikethrough context'):\n this.TextMarkUpSelected('Strikethrough');\n break;\n case this.pdfViewer.localeObj.getConstant('Properties'):\n this.PropertiesItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Cut'):\n this.CutItemSelected(target);\n break;\n case this.pdfViewer.localeObj.getConstant('Paste'):\n this.pasteItemSelected(target);\n break;\n case this.pdfViewer.localeObj.getConstant('Delete Context'):\n this.DeleteItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Scale Ratio'):\n this.ScaleRatioSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Comment'):\n this.CommentItemSelected();\n break;\n default:\n break;\n }\n };\n PdfViewerBase.prototype.CommentItemSelected = function () {\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.showCommentsPanel();\n if (this.pdfViewer.selectedItems.annotations.length !== 0 ||\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line\n var currentAnnotation = void 0;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.ScaleRatioSelected = function () {\n if (this.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.createScaleRatioWindow();\n }\n };\n PdfViewerBase.prototype.DeleteItemSelected = function () {\n if (this.pdfViewer.formDesignerModule && this.pdfViewer.selectedItems.formFields.length !== 0) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0].id);\n }\n else if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.deleteAnnotation();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.pasteItemSelected = function (target) {\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) && (target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA')) {\n this.pdfViewer.annotation.freeTextAnnotationModule.pasteSelectedText(target);\n this.contextMenuModule.close();\n }\n else {\n this.pdfViewer.paste();\n this.contextMenuModule.previousAction = 'Paste';\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.CutItemSelected = function (target) {\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) && (target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA')) {\n this.pdfViewer.annotation.freeTextAnnotationModule.cutSelectedText(target);\n this.contextMenuModule.close();\n }\n else if (this.pdfViewer.selectedItems.annotations.length === 1) {\n var pageIndex = this.pdfViewer.selectedItems.annotations[0].pageIndex;\n this.pdfViewer.cut();\n this.contextMenuModule.previousAction = 'Cut';\n }\n else if (this.pdfViewer.selectedItems.formFields.length === 1) {\n this.pdfViewer.cut();\n this.contextMenuModule.previousAction = 'Cut';\n }\n };\n PdfViewerBase.prototype.CopyItemSelected = function () {\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n this.pdfViewer.annotation.freeTextAnnotationModule.copySelectedText();\n this.contextMenuModule.close();\n isSkip = true;\n }\n else if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.copyText();\n this.contextMenuModule.close();\n }\n if (this.pdfViewer.selectedItems.annotations.length && !isSkip) {\n this.pdfViewer.copy();\n this.contextMenuModule.previousAction = 'Copy';\n }\n else if (this.pdfViewer.selectedItems.formFields.length > 0) {\n this.pdfViewer.copy();\n this.contextMenuModule.previousAction = 'Copy';\n }\n };\n PdfViewerBase.prototype.PropertiesItemSelected = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n this.pdfViewer.annotation.createPropertiesWindow();\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType) {\n this.pdfViewer.formDesigner.createPropertiesWindow();\n }\n };\n PdfViewerBase.prototype.TextMarkUpSelected = function (type) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.isSelectionMaintained = false;\n this.pdfViewer.annotation.textMarkupAnnotationModule.drawTextMarkupAnnotations(type);\n this.pdfViewer.annotation.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n this.pdfViewer.annotation.textMarkupAnnotationModule.isSelectionMaintained = true;\n }\n };\n PdfViewerBase.prototype.shapeMenuItems = function (hidenItems, disabledItems, enableProperties, isSignature) {\n if (this.pdfViewer.annotation && !this.pdfViewer.annotation.isShapeCopied) {\n disabledItems.push('Paste');\n }\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('ScaleRatio');\n if (enableProperties) {\n // eslint-disable-next-line max-len\n if (!(this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n hidenItems.push('Properties');\n }\n }\n else if (isSignature) {\n hidenItems.push('Properties');\n hidenItems.push('Comment');\n }\n else {\n hidenItems.push('Cut');\n hidenItems.push('Copy');\n hidenItems.push('DeleteContext');\n hidenItems.push('Comment');\n }\n };\n PdfViewerBase.prototype.checkIsRtlText = function (text) {\n // eslint-disable-next-line max-len\n var ltrChars = 'A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02B8\\\\u0300-\\\\u0590\\\\u0800-\\\\u1FFF' + '\\\\u2C00-\\\\uFB1C\\\\uFDFE-\\\\uFE6F\\\\uFEFD-\\\\uFFFF';\n var rtlChars = '\\\\u0591-\\\\u07FF\\\\uFB1D-\\\\uFDFD\\\\uFE70-\\\\uFEFC';\n // eslint-disable-next-line\n var rtlDirCheck = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');\n return rtlDirCheck.test(text);\n };\n /**\n * @private\n * @param {any} event - Specifies the event.\n * @returns {boolean} - retruned the beolean value.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.isClickWithinSelectionBounds = function (event) {\n var bounds;\n var isWithin = false;\n var diCount = 5;\n var negativeCount = ((this.currentPageNumber - diCount) < 0) ? 0 : this.currentPageNumber - diCount;\n var positiveCount = ((this.currentPageNumber - diCount) > this.pageCount) ? this.pageCount : this.currentPageNumber + diCount;\n if (this.pdfViewer.textSelectionModule) {\n for (var i = negativeCount; i < positiveCount; i++) {\n if (i >= 0) {\n bounds = this.pdfViewer.textSelectionModule.getCurrentSelectionBounds(i);\n if (bounds) {\n var currentBound = bounds;\n if (this.getHorizontalValue(currentBound.left, i) < event.clientX && this.getHorizontalValue(currentBound.right, i) >\n event.clientX && this.getVerticalValue(currentBound.top, i) < event.clientY &&\n this.getVerticalValue(currentBound.bottom, i) > event.clientY) {\n isWithin = true;\n break;\n }\n }\n }\n }\n if ((Browser.isIE || Browser.info.name === 'edge') && bounds) {\n isWithin = true;\n }\n }\n return isWithin;\n };\n PdfViewerBase.prototype.getHorizontalClientValue = function (value) {\n var pageDiv = this.getElement('_pageDiv_' + (this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value - pageBounds.left);\n };\n PdfViewerBase.prototype.getVerticalClientValue = function (value) {\n var pageDiv = this.getElement('_pageDiv_' + (this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value - pageBounds.top);\n };\n PdfViewerBase.prototype.getHorizontalValue = function (value, pageNumber) {\n var pageDiv = this.getElement('_pageDiv_' + (pageNumber || this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value * this.getZoomFactor()) + pageBounds.left;\n };\n PdfViewerBase.prototype.getVerticalValue = function (value, pageNumber) {\n var pageDiv = this.getElement('_pageDiv_' + (pageNumber || this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value * this.getZoomFactor()) + pageBounds.top;\n };\n /**\n * @private\n * @returns {boolean} - retruned the beolean value.\n */\n PdfViewerBase.prototype.checkIsNormalText = function () {\n var isText = true;\n var currentText = '';\n // eslint-disable-next-line\n var textSelectionModule = this.pdfViewer.textSelectionModule;\n if (textSelectionModule && textSelectionModule.selectionRangeArray && textSelectionModule.selectionRangeArray.length === 1) {\n currentText = textSelectionModule.selectionRangeArray[0].textContent;\n }\n else if (window.getSelection() && window.getSelection().anchorNode) {\n currentText = window.getSelection().toString();\n }\n if (currentText !== '' && this.checkIsRtlText(currentText)) {\n isText = false;\n }\n return isText;\n };\n PdfViewerBase.prototype.DeleteKeyPressed = function (event) {\n if (event.srcElement.parentElement.classList && !event.srcElement.parentElement.classList.contains(\"e-input-focus\")) {\n event.preventDefault();\n event.stopPropagation();\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen && this.pdfViewer.designerMode && this.pdfViewer.selectedItems.formFields.length !== 0 && !isSearchboxDialogOpen) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0].id);\n }\n else if (this.pdfViewer.annotation && !this.pdfViewer.designerMode && event.srcElement.parentElement.classList && !event.srcElement.parentElement.classList.contains(\"e-input-focus\")) {\n if (this.isTextMarkupAnnotationModule() && !this.getPopupNoteVisibleStatus() && !isSearchboxDialogOpen) {\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n var isReadOnly = true;\n var type = annotation.shapeAnnotationType;\n if (type === 'Path' || annotation.formFieldAnnotationType === 'SignatureField' || annotation.formFieldAnnotationType === 'InitialField' || type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') {\n var inputFields = document.getElementById(annotation.id);\n if (inputFields && inputFields.disabled) {\n isReadOnly = true;\n }\n }\n if (!isReadOnly) {\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderSelector(this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n else {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderSelector(this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiatePanning = function () {\n this.isPanMode = true;\n this.textLayer.modifyTextCursor(false);\n this.disableTextSelectionMode();\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItems();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiateTextSelectMode = function () {\n this.isPanMode = false;\n if (this.viewerContainer) {\n this.viewerContainer.style.cursor = 'auto';\n if (this.pdfViewer.textSelectionModule) {\n this.textLayer.modifyTextCursor(true);\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) && !isBlazor()) {\n this.enableAnnotationAddTools(true);\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiateTextSelection = function () {\n if (this.pdfViewer.toolbar && !this.pdfViewer.toolbar.isSelectionToolDisabled) {\n this.initiateTextSelectMode();\n this.pdfViewer.toolbar.updateInteractionTools(true);\n }\n };\n PdfViewerBase.prototype.enableAnnotationAddTools = function (isEnable) {\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableAnnotationAddTools(isEnable);\n }\n }\n };\n PdfViewerBase.prototype.applySelection = function () {\n if (window.getSelection().anchorNode !== null) {\n this.pdfViewer.textSelectionModule.applySpanForSelection();\n }\n this.isViewerContainerDoubleClick = false;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.isDesignerMode = function (target) {\n var isDesignerMode = false;\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path') {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType && this.pdfViewer.designerMode) {\n isDesignerMode = true;\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && (target.classList.contains('e-pv-text-layer') ||\n // eslint-disable-next-line max-len\n target.classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied && (target.classList.contains('e-pv-text-layer') ||\n target.classList.contains('e-pv-text'))) {\n isDesignerMode = true;\n }\n }\n this.designerModetarget = target;\n return isDesignerMode;\n };\n PdfViewerBase.prototype.handleTaps = function (touchPoints, event) {\n var _this = this;\n //EJ2CORE-813 - Implemented focus removing logic for iOS devices\n if (this.isDeviceiOS) {\n var obj = findActiveElement(event, this, this.pdfViewer);\n // eslint-disable-next-line\n var isRemoveFocus_1 = !this.pdfViewer.annotation.freeTextAnnotationModule.isNewFreeTextAnnot && (obj && this.pdfViewer.selectedItems.annotations[0] ? obj.id !== this.pdfViewer.selectedItems.annotations[0].id : true) && document.activeElement.classList.contains('free-text-input') && this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations);\n if (!this.singleTapTimer) {\n this.singleTapTimer = setTimeout(function () {\n if (isRemoveFocus_1) {\n _this.pdfViewer.clearSelection(_this.pdfViewer.selectedItems.annotations[0].pageIndex);\n _this.focusViewerContainer(true);\n }\n _this.onSingleTap(touchPoints);\n // eslint-disable-next-line\n }, 300);\n this.tapCount++;\n }\n else {\n if (this.pdfViewer.enablePinchZoom) {\n this.tapCount++;\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n this.onDoubleTap(touchPoints);\n }\n }\n }\n else {\n if (!this.singleTapTimer) {\n this.singleTapTimer = setTimeout(function () {\n _this.onSingleTap(touchPoints);\n // eslint-disable-next-line\n }, 300);\n this.tapCount++;\n }\n else {\n if (this.pdfViewer.enablePinchZoom) {\n this.tapCount++;\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n this.onDoubleTap(touchPoints);\n }\n }\n }\n };\n PdfViewerBase.prototype.handleTextBoxTaps = function (touchPoints) {\n var _this = this;\n setTimeout(function () {\n _this.inputTapCount = 0;\n }, 300);\n this.inputTapCount++;\n //EJ2CORE-813 - Removing timer function for iOS Devices\n if (this.isDeviceiOS) {\n // eslint-disable-next-line\n this.onTextBoxDoubleTap(touchPoints);\n }\n else {\n var timer = setTimeout(function () {\n _this.onTextBoxDoubleTap(touchPoints);\n }, 200);\n }\n if (this.inputTapCount > 2) {\n this.inputTapCount = 0;\n }\n };\n PdfViewerBase.prototype.onTextBoxDoubleTap = function (touches) {\n var target = touches[0].target;\n if (this.inputTapCount === 2) {\n if (this.pdfViewer.selectedItems.annotations.length !== 0) {\n if (this.pdfViewer.annotationModule) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n //EJ2CORE-813 - Removing focus from all active free text elements before focusing on free text annotation on iOS devices\n if (this.isDeviceiOS && document.activeElement.classList.contains('free-text-input') && (this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations))) {\n this.focusViewerContainer(true);\n }\n this.pdfViewer.annotationModule.annotationSelect(currentAnnotation.annotName, currentAnnotation.pageIndex, currentAnnotation, null, true);\n }\n if (this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations) && !(this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n var targetAnnotation = void 0;\n if (this.pdfViewer.selectedItems.annotations[0].id == 'diagram_helper') {\n targetAnnotation = this.pdfViewer.nameTable[this.eventArgs.source.id];\n }\n else {\n targetAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, targetAnnotation);\n }\n else if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].enableShapeLabel && !(this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n this.pdfViewer.annotation.inputElementModule.editLabel(elmtPosition, this.pdfViewer.selectedItems.annotations[0]);\n }\n }\n }\n };\n PdfViewerBase.prototype.onSingleTap = function (touches) {\n var target = touches[0].target;\n var isFormfields = false;\n this.singleTapTimer = null;\n if (target && (target.classList.contains('e-pdfviewer-formFields')\n || target.classList.contains('e-pdfviewer-ListBox') || target.classList.contains('e-pdfviewer-signatureformfields'))) {\n isFormfields = true;\n }\n if (!this.isLongTouchPropagated && !this.navigationPane.isNavigationToolbarVisible && !isFormfields) {\n if (this.pdfViewer.toolbarModule) {\n if ((this.touchClientX >= touches[0].clientX - 10) && (this.touchClientX <= touches[0].clientX + 10) &&\n (this.touchClientY >= touches[0].clientY - 10) && (this.touchClientY <= touches[0].clientY + 10)) {\n if (!this.isTapHidden) {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n this.viewerContainer.scrollTop -= this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar').clientHeight * this.getZoomFactor();\n }\n if (this.pdfViewer.toolbar.moreDropDown) {\n var dropDown = this.getElement('_more_option-popup');\n if (dropDown.firstElementChild) {\n dropDown.classList.remove('e-popup-open');\n dropDown.classList.add('e-popup-close');\n dropDown.removeChild(dropDown.firstElementChild);\n }\n }\n }\n else {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n this.viewerContainer.scrollTop += this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar').clientHeight * this.getZoomFactor();\n }\n }\n if (this.isTapHidden && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.mobileScrollerContainer.style.display = '';\n this.updateMobileScrollerPosition();\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.getSelectTextMarkupCurrentPage() == null) {\n this.mobileScrollerContainer.style.display = 'none';\n }\n if (this.getSelectTextMarkupCurrentPage() == null) {\n if (!isBlazor()) {\n if (this.pdfViewer.enableToolbar) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('TapOnMobileDevice', this.isTapHidden);\n this.blazorUIAdaptor.tapOnMobileDevice(this.isTapHidden);\n }\n this.isTapHidden = !this.isTapHidden;\n }\n }\n this.tapCount = 0;\n }\n }\n };\n PdfViewerBase.prototype.onDoubleTap = function (touches) {\n var target = touches[0].target;\n var isFormfields = false;\n if (target && (target.classList.contains('e-pdfviewer-formFields')\n || target.classList.contains('e-pdfviewer-ListBox') || target.classList.contains('e-pdfviewer-signatureformfields'))) {\n isFormfields = true;\n }\n if (this.tapCount === 2 && !isFormfields) {\n this.tapCount = 0;\n /**\n * Sometimes the values gets differ by some decimal points. So converted the decimal points values to Integer values.\n */\n // eslint-disable-next-line\n if ((this.touchClientX >= parseInt((touches[0].clientX - 10).toString())) && (this.touchClientX <= touches[0].clientX + 10) &&\n (this.touchClientY >= touches[0].clientY - 10) && (this.touchClientY <= touches[0].clientY + 30)) {\n if (this.pdfViewer.magnification && this.pdfViewer.selectedItems.annotations.length !== 1) {\n this.pdfViewer.magnification.onDoubleTapMagnification();\n }\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, this.toolbarHeight);\n this.isTapHidden = false;\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n }\n }\n };\n PdfViewerBase.prototype.preventTouchEvent = function (event) {\n if (this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if (!this.isPanMode && this.pdfViewer.enableTextSelection && !this.isTextSelectionDisabled && this.getSelectTextMarkupCurrentPage() == null) {\n if (!(this.isWebkitMobile && (Browser.isDevice && !this.pdfViewer.enableDesktopMode))) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n };\n PdfViewerBase.prototype.renderStampAnnotation = function (event) {\n if (this.pdfViewer.annotation) {\n var zoomFactor = this.getZoomFactor();\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var pageDiv = this.getElement('_pageDiv_' + pageIndex);\n if (this.pdfViewer.enableStampAnnotations) {\n var stampModule = this.pdfViewer.annotationModule.stampAnnotationModule;\n if (stampModule && stampModule.isStampAnnotSelected) {\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if (event.type === 'touchend' && this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation.shapeAnnotationType === 'Image') {\n var currentStampObj = this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation;\n currentStampObj.pageIndex = pageIndex;\n currentStampObj.bounds.x = (event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor;\n currentStampObj.bounds.y = (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor;\n stampModule.updateDeleteItems(pageIndex, currentStampObj, currentStampObj.opacity);\n this.pdfViewer.add(currentStampObj);\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n this.pdfViewer.renderDrawing(canvas, pageIndex);\n }\n else {\n // eslint-disable-next-line max-len\n stampModule.renderStamp((event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor, (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor, null, null, pageIndex, null, null, null, null);\n }\n stampModule.isStampAnnotSelected = false;\n }\n }\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (this.pdfViewer.enableHandwrittenSignature && this.isSignatureAdded && pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n this.currentSignatureAnnot.pageIndex = pageIndex;\n // eslint-disable-next-line max-len\n this.signatureModule.renderSignature((event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor, (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor);\n this.isSignatureAdded = false;\n }\n if (event.touches.length === 1 && this.isTextMarkupAnnotationModule() && !this.getPopupNoteVisibleStatus()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationTouchEnd(event);\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.initPageDiv = function (pageValues) {\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateTotalPage();\n }\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.mobiletotalPageContainer) {\n this.mobiletotalPageContainer.innerHTML = this.pageCount.toString();\n this.pageNoContainer.innerHTML = '(1-' + this.pageCount.toString() + ')';\n }\n if (this.pageCount > 0) {\n var topValue = 0;\n var pageLimit = 0;\n this.isMixedSizeDocument = false;\n if (this.pageCount > 100) {\n // to render 100 pages intially.\n pageLimit = 100;\n this.pageLimit = pageLimit;\n }\n else {\n pageLimit = this.pageCount;\n }\n var isPortrait = false;\n var isLandscape = false;\n var differentPageSize = false;\n for (var i = 0; i < pageLimit; i++) {\n if (typeof pageValues.pageSizes[parseInt(i.toString(), 10)] !== 'object') {\n var pageSize = pageValues.pageSizes[parseInt(i.toString(), 10)].split(',');\n if (pageValues.pageSizes[i - 1] !== null && i !== 0) {\n var previousPageHeight = pageValues.pageSizes[i - 1].split(',');\n topValue = this.pageGap + parseFloat(previousPageHeight[1]) + topValue;\n }\n else {\n topValue = this.pageGap;\n }\n var size = { width: parseFloat(pageSize[0]), height: parseFloat(pageSize[1]), top: topValue };\n this.pageSize.push(size);\n }\n else {\n if (pageValues.pageSizes[i - 1] !== null && i !== 0) {\n // eslint-disable-next-line\n var previousPageHeight = pageValues.pageSizes[i - 1];\n topValue = this.pageGap + parseFloat(previousPageHeight.Height) + topValue;\n }\n else {\n topValue = this.pageGap;\n }\n var size = { width: pageValues.pageSizes[parseInt(i.toString(), 10)].Width, height: pageValues.pageSizes[parseInt(i.toString(), 10)].Height, top: topValue };\n this.pageSize.push(size);\n }\n if (this.pageSize[parseInt(i.toString(), 10)].height > this.pageSize[parseInt(i.toString(), 10)].width) {\n isPortrait = true;\n }\n if (this.pageSize[parseInt(i.toString(), 10)].width > this.pageSize[parseInt(i.toString(), 10)].height) {\n isLandscape = true;\n }\n if (i > 0 && this.pageSize[parseInt(i.toString(), 10)].width !== this.pageSize[i - 1].width) {\n differentPageSize = true;\n }\n var pageWidth = this.pageSize[parseInt(i.toString(), 10)].width;\n if (pageWidth > this.highestWidth) {\n this.highestWidth = pageWidth;\n }\n var pageHeight = this.pageSize[parseInt(i.toString(), 10)].height;\n if (pageHeight > this.highestHeight) {\n this.highestHeight = pageHeight;\n }\n }\n if ((isPortrait && isLandscape) || differentPageSize) {\n this.isMixedSizeDocument = true;\n }\n var limit = this.pageCount < 10 ? this.pageCount : 10;\n for (var i = 0; i < limit; i++) {\n this.renderPageContainer(i, this.getPageWidth(i), this.getPageHeight(i), this.getPageTop(i));\n }\n // eslint-disable-next-line max-len\n this.pageContainer.style.height = this.getPageTop(this.pageSize.length - 1) + this.getPageHeight(this.pageSize.length - 1) + 'px';\n this.pageContainer.style.position = 'relative';\n if (this.pageLimit === 100) {\n var pageDiv = this.getElement('_pageDiv_' + this.pageLimit);\n if (pageDiv === null && this.pageLimit < this.pageCount) {\n Promise.all([this.renderPagesVirtually()]);\n }\n }\n }\n };\n PdfViewerBase.prototype.renderElementsVirtualScroll = function (pageNumber) {\n var lowerLimit = 1;\n var higherLimit = 3;\n if (this.pageStopValue <= 200) {\n lowerLimit = 4;\n higherLimit = 4;\n }\n else {\n lowerLimit = 2;\n higherLimit = 3;\n }\n var pageValue = pageNumber + lowerLimit;\n if (pageValue > this.pageCount) {\n pageValue = this.pageCount;\n }\n for (var i = pageNumber - 1; i <= pageValue; i++) {\n if (i !== -1) {\n this.renderPageElement(i);\n }\n }\n var lowerPageValue = pageNumber - 3;\n if (lowerPageValue < 0) {\n lowerPageValue = 0;\n }\n for (var i = pageNumber - 1; i >= lowerPageValue; i--) {\n if (i !== -1) {\n this.renderPageElement(i);\n }\n }\n for (var j = 0; j < this.pageCount; j++) {\n if (!((lowerPageValue <= j) && (j <= pageValue))) {\n var pageDiv = this.getElement('_pageDiv_' + j);\n var pageCanvas = this.getElement('_pageCanvas_' + j);\n var textLayer = this.getElement('_textLayer_' + j);\n if (pageCanvas) {\n pageCanvas.parentNode.removeChild(pageCanvas);\n if (textLayer) {\n if (this.pdfViewer.textSelectionModule && textLayer.childNodes.length !== 0 && !this.isTextSelectionDisabled) {\n this.pdfViewer.textSelectionModule.maintainSelectionOnScroll(j, true);\n }\n textLayer.parentNode.removeChild(textLayer);\n }\n var indexInArray = this.renderedPagesList.indexOf(j);\n if (indexInArray !== -1) {\n this.renderedPagesList.splice(indexInArray, 1);\n }\n }\n if (pageDiv) {\n pageDiv.parentNode.removeChild(pageDiv);\n var indexInArray = this.renderedPagesList.indexOf(j);\n if (indexInArray !== -1) {\n this.renderedPagesList.splice(indexInArray, 1);\n }\n }\n }\n }\n if (isBlazor())\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateCurrentPageNumber', this.currentPageNumber);\n };\n PdfViewerBase.prototype.renderPageElement = function (i) {\n var pageDiv = this.getElement('_pageDiv_' + i);\n var canvas = this.getElement('_pageCanvas_' + i);\n if (canvas == null && pageDiv == null && i < this.pageSize.length) {\n // eslint-disable-next-line\n this.renderPageContainer(i, this.getPageWidth(i), this.getPageHeight(i), this.getPageTop(i));\n }\n };\n PdfViewerBase.prototype.renderPagesVirtually = function () {\n return __awaiter(this, void 0, void 0, function () {\n var proxy;\n var _this = this;\n return __generator(this, function (_a) {\n proxy = this;\n setTimeout(function () {\n _this.initiateRenderPagesVirtually(proxy);\n }, 500);\n return [2 /*return*/];\n });\n });\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.initiateRenderPagesVirtually = function (proxy) {\n var jsonObject = { hashId: proxy.hashId, isCompletePageSizeNotReceived: true, action: 'VirtualLoad', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId, password: proxy.passwordData };\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = proxy.jsonDocumentId;\n }\n this.virtualLoadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.virtualLoadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.load;\n this.virtualLoadRequestHandler.responseType = 'json';\n this.virtualLoadRequestHandler.mode = true;\n this.virtualLoadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, 'VirtualLoad');\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (proxy.documentId === data.uniqueId) {\n proxy.pdfViewer.fireAjaxRequestSuccess('VirtualLoad', data);\n // eslint-disable-next-line\n var pageValues = data;\n if (proxy.pageSize[proxy.pageLimit - 1]) {\n var topValue = proxy.pageSize[proxy.pageLimit - 1].top;\n for (var i = proxy.pageLimit; i < proxy.pageCount; i++) {\n if (typeof (pageValues.pageSizes[parseInt(i.toString(), 10)]) !== 'object') {\n var pageSize = pageValues.pageSizes[parseInt(i.toString(), 10)].split(',');\n if (proxy.pageSize[i - 1] !== null && i !== 0) {\n var previousPageHeight = proxy.pageSize[i - 1].height;\n topValue = proxy.pageGap + parseFloat(previousPageHeight) + topValue;\n }\n var size = { width: parseFloat(pageSize[0]), height: parseFloat(pageSize[1]), top: topValue };\n proxy.pageSize.push(size);\n }\n else {\n if (proxy.pageSize[i - 1] !== null && i !== 0) {\n var previousPageHeight = proxy.pageSize[i - 1].height;\n topValue = proxy.pageGap + parseFloat(previousPageHeight) + topValue;\n }\n var size = { width: parseFloat(pageValues.pageSizes[parseInt(i.toString(), 10)].Width), height: parseFloat(pageValues.pageSizes[parseInt(i.toString(), 10)].Height), top: topValue };\n proxy.pageSize.push(size);\n }\n }\n // eslint-disable-next-line max-len\n proxy.pageContainer.style.height = proxy.getPageTop(proxy.pageSize.length - 1) + proxy.getPageHeight(proxy.pageSize.length - 1) + 'px';\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount > 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n var linkAnnotationModule = proxy.pdfViewer.linkAnnotationModule;\n if (linkAnnotationModule && linkAnnotationModule.linkAnnotation && linkAnnotationModule.linkAnnotation.length > 0 && linkAnnotationModule.linkPage.length > 0) {\n linkAnnotationModule.renderDocumentLink(linkAnnotationModule.linkAnnotation, linkAnnotationModule.linkPage, linkAnnotationModule.annotationY, proxy.currentPageNumber - 1);\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.tileRenderPage = function (data, pageIndex) {\n var _this = this;\n var proxy = null;\n proxy = this;\n if (data && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth = this.getPageWidth(pageIndex);\n var pageHeight = this.getPageHeight(pageIndex);\n // eslint-disable-next-line max-len\n var canvas_1 = this.getElement('_pageCanvas_' + pageIndex);\n var pageDiv_1 = this.getElement('_pageDiv_' + pageIndex);\n var tileX = data.tileX ? data.tileX : 0;\n var tileY = data.tileY ? data.tileY : 0;\n if (pageDiv_1) {\n pageDiv_1.style.width = pageWidth + 'px';\n pageDiv_1.style.height = pageHeight + 'px';\n pageDiv_1.style.background = '#fff';\n pageDiv_1.style.top = this.getPageTop(pageIndex) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv_1.style.right = this.updateLeftPosition(pageIndex) + 'px';\n }\n else {\n pageDiv_1.style.left = this.updateLeftPosition(pageIndex) + 'px';\n }\n }\n if (canvas_1) {\n canvas_1.style.background = '#fff';\n }\n var imageData = data['image'];\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (this.isReRenderRequired) {\n if (data.zoomFactor) {\n zoomFactor = data.zoomFactor;\n }\n var currentString = this.documentId + '_' + pageIndex + '_' + zoomFactor + '_' + data.tileX + '_' + data.tileY;\n // eslint-disable-next-line max-len\n this.tilerequestLists.push(currentString);\n // eslint-disable-next-line\n var matrix = data['transformationMatrix'];\n // eslint-disable-next-line\n var width = data['width'];\n if (imageData) {\n var tileX_1 = data.tileX ? data.tileX : 0;\n var tileY_1 = data.tileY ? data.tileY : 0;\n var scaleFactor = (!isNullOrUndefined(data.scaleFactor)) ? data.scaleFactor : 1.5;\n var image_1 = document.getElementById(this.pdfViewer.element.id + '_tileimg_' + pageIndex + '_' + this.getZoomFactor() + '_' + tileX_1 + '_' + tileY_1);\n if (!image_1) {\n image_1 = new Image();\n image_1.id = this.pdfViewer.element.id + '_tileimg_' + pageIndex + '_' + this.getZoomFactor() + '_' + tileX_1 + '_' + tileY_1;\n if (pageDiv_1) {\n pageDiv_1.append(image_1);\n }\n }\n image_1.src = imageData;\n image_1.setAttribute('alt', '');\n image_1.onload = function () {\n proxy.showPageLoadingIndicator(pageIndex, false);\n proxy.tileRenderCount = proxy.tileRenderCount + 1;\n if ((tileX_1 === 0) && (tileY_1 === 0)) {\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n proxy.renderPDFInformations();\n proxy.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount <= 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n }\n proxy.isDocumentLoaded = false;\n if (proxy.pdfViewer.textSearch && proxy.pdfViewer.isExtractText) {\n proxy.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n }\n if (proxy.tileRenderCount === proxy.tileRequestCount) {\n if (proxy.isTextMarkupAnnotationModule()) {\n proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(pageIndex);\n }\n if (canvas_1) {\n canvas_1.style.display = 'none';\n canvas_1.src = '#';\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_1.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n proxy.isTileImageRendered = false;\n proxy.tileRenderCount = 0;\n if (proxy.pdfViewer.magnificationModule) {\n proxy.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n proxy.isDrawnCompletely = true;\n }\n image_1.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n var currentImageWidth = (((width * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n var matrixElements = matrix.Elements ? matrix.Elements : matrix.Values;\n var currentImageTop = (((matrixElements[5] * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n var currentImageLeft = (((matrixElements[4] * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n image_1.width = currentImageWidth;\n image_1.style.width = currentImageWidth + 'px';\n image_1.style.top = currentImageTop + 'px';\n image_1.style.left = currentImageLeft + 'px';\n image_1.style.position = 'absolute';\n }\n if ((tileX === 0) && (tileY === 0)) {\n this.onPageRender(data, pageIndex, pageDiv_1);\n }\n }\n else {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_tileimg_' + pageIndex + '_\"]');\n var _loop_1 = function (l) {\n var tileImgId = oldCanvases[parseInt(l.toString(), 10)].id.split('_');\n var zoomFactor_1 = proxy.retrieveCurrentZoomFactor();\n // eslint-disable-next-line\n var tileData = JSON.parse(proxy.getWindowSessionStorageTile(pageIndex, parseFloat(tileImgId[tileImgId.length - 2]), parseFloat(tileImgId[tileImgId.length - 1]), zoomFactor_1));\n if (tileData && tileData.zoomFactor) {\n zoomFactor_1 = tileData.zoomFactor;\n }\n if (parseFloat(tileImgId[tileImgId.length - 4]) === pageIndex) {\n var node_1 = oldCanvases[parseInt(l.toString(), 10)];\n // Make sure it's really an Element\n if (node_1.nodeType == Node.ELEMENT_NODE) {\n node_1.onload = function () {\n proxy.showPageLoadingIndicator(pageIndex, false);\n proxy.tileRenderCount = proxy.tileRenderCount + 1;\n if ((tileX_2 === 0) && (tileY_2 === 0)) {\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n _this.renderPDFInformations();\n _this.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount <= 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n }\n proxy.isDocumentLoaded = false;\n if (proxy.pdfViewer.textSearch && proxy.pdfViewer.isExtractText) {\n proxy.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n }\n if (proxy.tileRenderCount === proxy.tileRequestCount) {\n canvas_1.style.display = 'none';\n canvas_1.src = '#';\n if (proxy.isTextMarkupAnnotationModule()) {\n proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(pageIndex);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_1.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n proxy.isTileImageRendered = false;\n proxy.tileRenderCount = 0;\n if (proxy.pdfViewer.magnificationModule) {\n proxy.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n proxy.isDrawnCompletely = true;\n }\n node_1.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n if (tileData)\n node_1.src = tileData.image;\n }\n }\n };\n for (var l = 0; l < oldCanvases.length; l++) {\n _loop_1(l);\n }\n var tileX_2 = data.tileX ? data.tileX : 0;\n var tileY_2 = data.tileY ? data.tileY : 0;\n if ((tileX_2 === 0) && (tileY_2 === 0)) {\n this.onPageRender(data, pageIndex, pageDiv_1);\n }\n }\n }\n };\n PdfViewerBase.prototype.renderTileCanvas = function (pageWidth, pageHeight, pageIndex, pageDiv, zoomFactor, scaleFactor) {\n var pageCanvas = this.getElement('_pageTileCanvas_' + pageIndex);\n if (!pageCanvas) {\n pageCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_pageTileCanvas_' + pageIndex, className: 'e-pv-pageTile-canvas' });\n pageCanvas.style.width = pageWidth + 'px';\n pageCanvas.style.height = pageHeight + 'px';\n pageCanvas.style.display = 'none';\n pageCanvas.style.backgroundColor = '#fff';\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n pageDiv.appendChild(pageCanvas);\n }\n return pageCanvas;\n };\n PdfViewerBase.prototype.calculateImageWidth = function (pageWidth, zoomFactor, scaleFactor, imageWidth) {\n var width = (pageWidth / this.getZoomFactor()) * zoomFactor * scaleFactor;\n // eslint-disable-next-line\n if ((parseInt(imageWidth.toString())) === (parseInt(width.toString()))) {\n imageWidth = width;\n }\n imageWidth = ((imageWidth * this.getZoomFactor()) / zoomFactor);\n return imageWidth;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderPage = function (data, pageIndex, imageSource) {\n var _this = this;\n var proxy = this;\n if (data && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth = this.getPageWidth(pageIndex);\n var pageHeight = this.getPageHeight(pageIndex);\n // eslint-disable-next-line max-len\n var canvas_2 = this.getElement('_pageCanvas_' + pageIndex);\n var pageDiv_2 = this.getElement('_pageDiv_' + pageIndex);\n if (pageDiv_2) {\n pageDiv_2.style.width = pageWidth + 'px';\n pageDiv_2.style.height = pageHeight + 'px';\n pageDiv_2.style.top = this.getPageTop(pageIndex) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv_2.style.right = this.updateLeftPosition(pageIndex) + 'px';\n }\n else {\n pageDiv_2.style.left = this.updateLeftPosition(pageIndex) + 'px';\n }\n }\n if (canvas_2) {\n canvas_2.style.background = '#fff';\n canvas_2.style.display = 'block';\n canvas_2.style.width = pageWidth + 'px';\n canvas_2.style.height = pageHeight + 'px';\n if (pageWidth < parseFloat(pageDiv_2.style.width)) {\n pageDiv_2.style.boxShadow = 'none';\n }\n // eslint-disable-next-line\n var imageData = this.renderThumbnailImages ? imageSource : data['image'];\n if (imageData) {\n canvas_2.onload = function () {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_tileimg_' + pageIndex + '_\"]');\n var pageCanvas = proxy.getElement('_pageDiv_' + pageIndex);\n for (var i = 0; i < oldCanvases.length; i++) {\n var tileImgId = oldCanvases[parseInt(i.toString(), 10)].id.split('_');\n if (parseFloat(tileImgId[tileImgId.length - 3]) != proxy.getZoomFactor())\n pageCanvas.removeChild(oldCanvases[parseInt(i.toString(), 10)]);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_2.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n _this.showPageLoadingIndicator(pageIndex, false);\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n _this.renderPDFInformations();\n _this.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(_this.documentId + '_pagedata');\n if (_this.pageCount <= 100) {\n _this.pdfViewer.fireDocumentLoad(pageData);\n }\n _this.isDocumentLoaded = false;\n if (_this.pdfViewer.textSearch && _this.pdfViewer.isExtractText) {\n _this.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pushImageObjects(canvas_2);\n }\n canvas_2.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n canvas_2.src = imageData;\n }\n this.onPageRender(data, pageIndex, pageDiv_2);\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.onPageRender = function (data, pageIndex, pageDiv) {\n // eslint-disable-next-line\n var aElement = pageDiv && pageDiv.getElementsByTagName('a');\n var isAnnotationRendered = false;\n if (aElement && aElement.length !== 0) {\n for (var index = aElement.length - 1; index >= 0; index--) {\n aElement[parseInt(index.toString(), 10)].parentNode.removeChild(aElement[parseInt(index.toString(), 10)]);\n }\n }\n if (this.pdfViewer.textSearchModule || this.pdfViewer.textSelectionModule || this.pdfViewer.annotationModule) {\n this.renderTextContent(data, pageIndex);\n }\n if (this.pdfViewer.formFieldsModule && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n }\n if (this.pdfViewer.formDesignerModule && !this.isDocumentLoaded) {\n this.pdfViewer.formDesignerModule.rerenderFormFields(pageIndex);\n }\n if (this.pdfViewer.formFieldsModule && !this.isDocumentLoaded && !this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n }\n if (this.pdfViewer.formDesignerModule && this.isDocumentLoaded && this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n this.pdfViewer.magnificationModule.isFormFieldPageZoomed = false;\n }\n if (this.pdfViewer.enableHyperlink && this.pdfViewer.linkAnnotationModule) {\n this.pdfViewer.linkAnnotationModule.renderHyperlinkContent(data, pageIndex);\n }\n if (this.pdfViewer.textSelectionModule && !this.isTextSelectionDisabled) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(pageIndex);\n }\n if (this.documentAnnotationCollections) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationRenderredList.length; i++) {\n if (this.annotationRenderredList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n // eslint-disable-next-line\n var pageAnnotations = this.documentAnnotationCollections[pageIndex];\n if (pageAnnotations && !isAnnotationAdded) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n this.annotationRenderredList.push(pageIndex);\n }\n }\n if (this.isImportAction) {\n // eslint-disable-next-line\n var pageAnnotations = this.checkDocumentCollectionData(pageIndex);\n if (pageAnnotations) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n isAnnotationRendered = true;\n }\n }\n if (this.pdfViewer.annotationModule && (this.isTextMarkupAnnotationModule() || this.isShapeBasedAnnotationsEnabled())) {\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line\n var stampData = data['stampAnnotations'];\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex, null, true);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex);\n }\n }\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation, null, true);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation);\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(data.stickyNotesAnnotation, pageIndex);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule) {\n this.pdfViewer.formDesignerModule.updateCanvas(pageIndex);\n }\n if (this.pdfViewer.textSearchModule) {\n if (this.pdfViewer.textSearchModule.isTextSearch) {\n this.pdfViewer.textSearchModule.highlightOtherOccurrences(pageIndex);\n }\n }\n if (this.isShapeBasedAnnotationsEnabled()) {\n var canvas1 = this.getElement('_annotationCanvas_' + pageIndex);\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;z-index:1000';\n if (canvas1) {\n var bounds = canvas1.getBoundingClientRect();\n renderAdornerLayer(bounds, commonStyle, canvas1, pageIndex, this.pdfViewer);\n this.pdfViewer.renderSelector(pageIndex, this.pdfViewer.annotationSelectorSettings);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.selectCommentsAnnotation(pageIndex);\n }\n if (this.isFreeTextAnnotationModule() && data.freeTextAnnotation) {\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex);\n }\n else {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex);\n }\n }\n if (this.isInkAnnotationModule() && data && data.signatureInkAnnotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(data.signatureInkAnnotation, pageIndex, isAnnotationRendered);\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.isAnnotationSelected && this.pdfViewer.annotationModule.annotationPageIndex === pageIndex) {\n this.pdfViewer.annotationModule.selectAnnotationFromCodeBehind();\n }\n this.isLoadedFormFieldAdded = false;\n };\n /**\n * @private\n * @param {number} pageIndex - page index for rendering the annotation.\n * @returns {void}\n */\n PdfViewerBase.prototype.renderAnnotations = function (pageIndex, isAddedProgrammatically) {\n // eslint-disable-next-line\n var data = {};\n if (this.documentAnnotationCollections) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationRenderredList.length; i++) {\n if (this.annotationRenderredList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n // eslint-disable-next-line\n var pageAnnotations = this.documentAnnotationCollections[pageIndex];\n if (pageAnnotations && !isAnnotationAdded) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureAnnotation = pageAnnotations.signatureAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n this.annotationRenderredList.push(pageIndex);\n }\n }\n if (this.isAnnotationCollectionRemoved) {\n data.shapeAnnotation = [];\n data.measureShapeAnnotation = [];\n data.textMarkupAnnotation = [];\n data.freeTextAnnotation = [];\n data.stampAnnotations = [];\n data.stickyNotesAnnotation = [];\n data.signatureInkAnnotation = [];\n }\n if (this.isTextMarkupAnnotationModule() || this.isShapeBasedAnnotationsEnabled()) {\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line\n var stampData = data['stampAnnotations'];\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(data.stickyNotesAnnotation, pageIndex);\n }\n if (this.pdfViewer.textSearchModule) {\n if (this.pdfViewer.textSearchModule.isTextSearch) {\n this.pdfViewer.textSearchModule.highlightOtherOccurrences(pageIndex);\n }\n }\n if (this.isImportAction) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationPageList.length; i++) {\n if (this.annotationPageList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n if (!isAnnotationAdded) {\n if (this.importedAnnotation) {\n this.drawPageAnnotations(this.importedAnnotation, pageIndex, true);\n this.annotationPageList[this.annotationPageList.length] = pageIndex;\n }\n }\n }\n if (this.isShapeBasedAnnotationsEnabled()) {\n var canvas1 = this.getElement('_annotationCanvas_' + pageIndex);\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;z-index:1000';\n if (canvas1) {\n var bounds = canvas1.getBoundingClientRect();\n renderAdornerLayer(bounds, commonStyle, canvas1, pageIndex, this.pdfViewer);\n this.pdfViewer.renderSelector(pageIndex);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.selectCommentsAnnotation(pageIndex);\n }\n if (this.isFreeTextAnnotationModule() && data.freeTextAnnotation) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex, undefined);\n }\n if (data && data.signatureAnnotation) {\n this.signatureModule.renderExistingSignature(data.signatureAnnotation, pageIndex, false);\n }\n if (this.isInkAnnotationModule() && data && data.signatureInkAnnotation) {\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(data.signatureInkAnnotation, pageIndex, false);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.isAnnotationSelected) {\n this.pdfViewer.annotationModule.selectAnnotationFromCodeBehind();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderTextContent = function (data, pageIndex) {\n // eslint-disable-next-line\n var texts = data['textContent'];\n // eslint-disable-next-line\n var bounds = data['textBounds'];\n // eslint-disable-next-line\n var rotation = data['rotation'];\n var rtldoc = data.documentTextCollection ? this.checkIsRtlText(data.documentTextCollection[0][pageIndex].PageText) : this.checkIsRtlText(data.pageText);\n var textLayer = this.getElement('_textLayer_' + pageIndex);\n if (!textLayer) {\n // eslint-disable-next-line max-len\n textLayer = this.textLayer.addTextLayer(pageIndex, this.getPageWidth(pageIndex), this.getPageHeight(pageIndex), this.getElement('_pageDiv_' + pageIndex));\n }\n if (textLayer && texts && bounds) {\n textLayer.style.display = 'block';\n if (textLayer.childNodes.length === 0) {\n this.textLayer.renderTextContents(pageIndex, texts, bounds, rotation, rtldoc);\n }\n else {\n this.textLayer.resizeTextContents(pageIndex, texts, bounds, rotation, true);\n }\n }\n };\n PdfViewerBase.prototype.renderPageContainer = function (pageNumber, pageWidth, pageHeight, topValue) {\n // eslint-disable-next-line max-len\n var pageDiv = createElement('div', { id: this.pdfViewer.element.id + '_pageDiv_' + pageNumber, className: 'e-pv-page-div', attrs: { 'tabindex': '-1' } });\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.updateLeftPosition(pageNumber) + 'px';\n }\n else {\n pageDiv.style.left = this.updateLeftPosition(pageNumber) + 'px';\n }\n pageDiv.style.top = topValue + 'px';\n this.pageContainer.appendChild(pageDiv);\n this.pageContainer.style.width = this.viewerContainer.clientWidth + 'px';\n this.createWaitingPopup(pageNumber);\n this.orderPageDivElements(pageDiv, pageNumber);\n this.renderPageCanvas(pageDiv, pageWidth, pageHeight, pageNumber, 'block');\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && !this.isThumb) {\n this.updateMobileScrollerPosition();\n }\n };\n PdfViewerBase.prototype.renderPDFInformations = function () {\n if (this.pdfViewer.thumbnailViewModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.thumbnailViewModule.createRequestForThumbnails();\n }\n if (this.pdfViewer.bookmarkViewModule) {\n this.pdfViewer.bookmarkViewModule.createRequestForBookmarks();\n }\n if (this.pdfViewer.annotationModule) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.initializeAcccordionContainer();\n }\n if (this.pdfViewer.isCommandPanelOpen) {\n this.pdfViewer.annotation.showCommentsPanel();\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createRequestForComments();\n }\n };\n PdfViewerBase.prototype.orderPageDivElements = function (pageDiv, pageIndex) {\n var nextElement = this.getElement('_pageDiv_' + (pageIndex + 1));\n if (nextElement) {\n this.pageContainer.insertBefore(pageDiv, nextElement);\n }\n else {\n this.pageContainer.appendChild(pageDiv);\n }\n };\n /**\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderPageCanvas = function (pageDiv, pageWidth, pageHeight, pageNumber, displayMode) {\n if (pageDiv) {\n // eslint-disable-next-line\n var pageCanvas = this.getElement('_pageCanvas_' + pageNumber);\n if (pageCanvas) {\n pageCanvas.width = pageWidth;\n pageCanvas.height = pageHeight;\n pageCanvas.style.display = 'block';\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n }\n else {\n // eslint-disable-next-line max-len\n pageCanvas = createElement('img', { id: this.pdfViewer.element.id + '_pageCanvas_' + pageNumber, className: 'e-pv-page-canvas' });\n pageCanvas.width = pageWidth;\n pageCanvas.height = pageHeight;\n pageCanvas.style.display = displayMode;\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n pageDiv.appendChild(pageCanvas);\n }\n pageCanvas.setAttribute('alt', '');\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.createAnnotationLayer(pageDiv, pageWidth, pageHeight, pageNumber, displayMode);\n }\n if (this.pdfViewer.textSearchModule || this.pdfViewer.textSelectionModule || this.pdfViewer.annotationModule) {\n this.textLayer.addTextLayer(pageNumber, pageWidth, pageHeight, pageDiv);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule) {\n this.pdfViewer.formDesignerModule.createAnnotationLayer(pageDiv, pageWidth, pageHeight, pageNumber, displayMode);\n }\n return pageCanvas;\n }\n };\n /**\n * @private\n * @param {any} pageCanvas - The canvas for rendering the page.\n * @param {any} pageNumber - The page number for adding styles.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.applyElementStyles = function (pageCanvas, pageNumber) {\n if (this.isMixedSizeDocument && pageCanvas) {\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageNumber);\n var oldCanvas = document.getElementById(this.pdfViewer.element.id + '_oldCanvas_' + pageNumber);\n if (pageCanvas && canvasElement && canvasElement.offsetLeft > 0) {\n pageCanvas.style.marginLeft = canvasElement.offsetLeft + 'px';\n pageCanvas.style.marginRight = canvasElement.offsetLeft + 'px';\n }\n else if (oldCanvas && oldCanvas.offsetLeft > 0) {\n pageCanvas.style.marginLeft = oldCanvas.offsetLeft + 'px';\n pageCanvas.style.marginRight = oldCanvas.offsetLeft + 'px';\n }\n else {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n }\n };\n /**\n * @private\n * @param {number} pageIndex - page index for updating positon.\n * @returns {void}\n */\n PdfViewerBase.prototype.updateLeftPosition = function (pageIndex) {\n var leftPosition;\n var width = this.viewerContainer.getBoundingClientRect().width;\n if (width === 0) {\n width = parseFloat(this.pdfViewer.width.toString());\n }\n // eslint-disable-next-line max-len\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n if (this.viewerContainer.clientWidth > 0) {\n leftPosition = (this.viewerContainer.clientWidth - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n else {\n leftPosition = (width - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n var pageDiff = (this.highestWidth * this.getZoomFactor() - this.getPageWidth(pageIndex)) / 2;\n if (leftPosition > 0) {\n leftPosition += pageDiff;\n }\n else {\n leftPosition = pageDiff;\n }\n }\n else {\n if (this.viewerContainer.clientWidth > 0) {\n leftPosition = (this.viewerContainer.clientWidth - this.getPageWidth(pageIndex)) / 2;\n }\n else {\n leftPosition = (width - this.getPageWidth(pageIndex)) / 2;\n }\n }\n var isLandscape = false;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)].width > this.pageSize[parseInt(pageIndex.toString(), 10)].height) {\n isLandscape = true;\n }\n // eslint-disable-next-line max-len\n if (leftPosition < 0 || (this.pdfViewer.magnificationModule ? ((this.pdfViewer.magnificationModule.isAutoZoom && this.getZoomFactor() < 1) || this.pdfViewer.magnificationModule.fitType === 'fitToWidth') : false)) {\n var leftValue = leftPosition;\n if (leftPosition > 0 && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line\n leftPosition = leftValue;\n }\n else {\n leftPosition = this.pageLeft;\n }\n if ((leftPosition > 0) && this.isMixedSizeDocument) {\n if (leftValue > 0) {\n leftPosition = leftValue;\n }\n }\n }\n return leftPosition;\n };\n /**\n * @private\n * @param {number} pageIndex - The page index for positon.\n * @returns {void}\n */\n PdfViewerBase.prototype.applyLeftPosition = function (pageIndex) {\n var leftPosition;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n if (this.viewerContainer.clientWidth > 0) {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.clientWidth - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n else {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.getBoundingClientRect().width - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n var pageDiff = (this.highestWidth * this.getZoomFactor() - this.getPageWidth(pageIndex)) / 2;\n if (leftPosition > 0) {\n leftPosition += pageDiff;\n }\n else {\n leftPosition = pageDiff;\n }\n }\n else {\n if (this.viewerContainer.clientWidth > 0) {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.clientWidth - this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor()) / 2;\n }\n else {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.getBoundingClientRect().width - this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor()) / 2;\n }\n }\n var isLandscape = false;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)].width > this.pageSize[parseInt(pageIndex.toString(), 10)].height) {\n isLandscape = true;\n }\n // eslint-disable-next-line max-len\n if (leftPosition < 0 || (this.pdfViewer.magnificationModule ? ((this.pdfViewer.magnificationModule.isAutoZoom && this.getZoomFactor() < 1) || this.pdfViewer.magnificationModule.fitType === 'fitToWidth') : false)) {\n var leftValue = leftPosition;\n leftPosition = this.pageLeft;\n // eslint-disable-next-line max-len\n if ((leftValue > 0) && this.isMixedSizeDocument) {\n leftPosition = leftValue;\n }\n }\n // eslint-disable-next-line max-len\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n if (pageDiv) {\n if (!this.pdfViewer.enableRtl) {\n pageDiv.style.left = leftPosition + 'px';\n }\n else {\n pageDiv.style.right = leftPosition + 'px';\n }\n }\n }\n };\n PdfViewerBase.prototype.updatePageHeight = function (viewerHeight, toolbarHeight) {\n return ((viewerHeight - toolbarHeight) / viewerHeight) * 100 + '%';\n };\n /**\n * @private\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @returns {number}\n */\n PdfViewerBase.prototype.getPageNumberFromClientPoint = function (clientPoint) {\n var pointX = clientPoint.x + this.viewerContainer.scrollLeft;\n var pointY = clientPoint.y + this.viewerContainer.scrollTop;\n for (var i = 0; i < this.pageCount; i++) {\n var pageTop = this.pageSize[parseInt(i.toString(), 10)].height + this.viewerContainer.scrollTop;\n if (pointY < (this.pageSize[parseInt(i.toString(), 10)].top + pageTop)) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[parseInt(i.toString(), 10)].width) / 2) + viewerContainerBounds.x;\n var verticalScrollPosition = 0;\n if (pointY > this.pageSize[parseInt(i.toString(), 10)].top) {\n verticalScrollPosition = (pointY - this.pageSize[parseInt(i.toString(), 10)].top);\n }\n else {\n verticalScrollPosition = (this.pageSize[parseInt(i.toString(), 10)].top - pointY);\n }\n if (verticalScrollPosition > 0) {\n if (this.pageSize[parseInt(i.toString(), 10)] != null) {\n var pageHeight = this.getPageHeight(i);\n if (pageLeft >= 0) {\n if ((pointX < pageLeft) || (pointX > (pageLeft + (this.pageSize[parseInt(i.toString(), 10)].width)))) {\n return -1;\n }\n }\n if (verticalScrollPosition <= (this.getPageTop(i) + pageTop)) {\n return i + 1;\n }\n }\n }\n }\n }\n return -1;\n };\n /**\n * @private\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertClientPointToPagePoint = function (clientPoint, pageNumber) {\n if (pageNumber !== -1) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[pageNumber - 1].width) / 2) + viewerContainerBounds.x;\n var pagePoint = { x: (clientPoint.x + this.viewerContainer.scrollLeft) - pageLeft, y: (clientPoint.y + this.viewerContainer.scrollTop) - this.pageSize[pageNumber - 1].top };\n return pagePoint;\n }\n return null;\n };\n /**\n * @private\n * @param {Point} pagePoint - The user needs to provide a page x, y position.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertPagePointToClientPoint = function (pagePoint, pageNumber) {\n if (pageNumber !== -1) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[pageNumber - 1].width) / 2) + viewerContainerBounds.x;\n var clientPoint = { x: pagePoint.x + pageLeft, y: pagePoint.y + this.pageSize[pageNumber - 1].top };\n return clientPoint;\n }\n return null;\n };\n /**\n * @private\n * @param {Point} pagePoint - The user needs to provide a page x, y position.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertPagePointToScrollingPoint = function (pagePoint, pageNumber) {\n if (pageNumber !== -1) {\n var scrollingPoint = { x: pagePoint.x + this.viewerContainer.scrollLeft, y: pagePoint.y + this.viewerContainer.scrollTop };\n return scrollingPoint;\n }\n return null;\n };\n PdfViewerBase.prototype.initiatePageViewScrollChanged = function () {\n if (this.scrollHoldTimer) {\n clearTimeout(this.scrollHoldTimer);\n }\n this.scrollHoldTimer = null;\n if ((this.scrollPosition * this.getZoomFactor()) !== this.viewerContainer.scrollTop) {\n this.scrollPosition = this.viewerContainer.scrollTop;\n this.pageViewScrollChanged(this.currentPageNumber);\n }\n };\n PdfViewerBase.prototype.renderCountIncrement = function () {\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.renderCountIncrement();\n }\n };\n /**\n * @private\n * @param {number} currentPageNumber - The current pagenumber.\n * @returns {void}\n */\n PdfViewerBase.prototype.pageViewScrollChanged = function (currentPageNumber) {\n if (this.isPanMode) {\n if (this.renderedPagesList.indexOf(currentPageNumber - 1) === -1) {\n this.reRenderedCount = 0;\n }\n }\n else {\n this.reRenderedCount = 0;\n }\n var currentPageIndex = currentPageNumber - 1;\n if (currentPageNumber !== this.previousPage && currentPageNumber <= this.pageCount) {\n var isSkip = false;\n if (this.isDataExits && !this.getStoredData(currentPageIndex)) {\n isSkip = true;\n }\n if (this.renderedPagesList.indexOf(currentPageIndex) === -1 && !this.getMagnified() && !isSkip) {\n this.renderCountIncrement();\n this.createRequestForRender(currentPageIndex);\n }\n }\n if (!(this.getMagnified() || this.getPagesPinchZoomed())) {\n var previous = currentPageIndex - 1;\n var isSkip = false;\n var canvas = this.getElement('_pageCanvas_' + previous);\n if (this.isDataExits && !this.getStoredData(previous)) {\n isSkip = true;\n }\n if (canvas !== null && !isSkip) {\n if (this.renderedPagesList.indexOf(previous) === -1 && !this.getMagnified()) {\n this.renderCountIncrement();\n this.createRequestForRender(previous);\n }\n }\n if (this.isMinimumZoom) {\n this.renderPreviousPagesInScroll(previous);\n }\n var next = currentPageIndex + 1;\n var pageHeight = 0;\n if (next < this.pageCount) {\n pageHeight = this.getPageHeight(next);\n var allowPageRendering = this.isMinimumZoom ? this.isMinimumZoom : this.renderedPagesList.indexOf(next) === -1;\n if (allowPageRendering && !this.getMagnified() && pageHeight) {\n this.createRequestForRender(next);\n this.renderCountIncrement();\n while (this.viewerContainer.clientHeight > pageHeight) {\n next = next + 1;\n if (next < this.pageCount) {\n this.renderPageElement(next);\n this.createRequestForRender(next);\n pageHeight += this.getPageHeight(next);\n this.renderCountIncrement();\n }\n else {\n break;\n }\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.renderPreviousPagesInScroll = function (pageIndex) {\n var next = pageIndex - 1;\n var pageNumber = next - 1;\n if (next > 0) {\n if (this.renderedPagesList.indexOf(next) === -1 && !this.getMagnified()) {\n this.createRequestForRender(next);\n this.renderCountIncrement();\n }\n if (pageNumber > 0) {\n if (this.renderedPagesList.indexOf(pageNumber) === -1 && !this.getMagnified()) {\n this.createRequestForRender(pageNumber);\n this.renderCountIncrement();\n }\n }\n }\n };\n PdfViewerBase.prototype.downloadDocument = function (blobUrl) {\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n blobUrl = Url.createObjectURL(blobUrl);\n var anchorElement = createElement('a');\n if (anchorElement.click) {\n anchorElement.href = blobUrl;\n anchorElement.target = '_parent';\n if ('download' in anchorElement) {\n anchorElement.download = this.downloadFileName;\n }\n (document.body || document.documentElement).appendChild(anchorElement);\n anchorElement.click();\n anchorElement.parentNode.removeChild(anchorElement);\n }\n else {\n if (window.top === window &&\n blobUrl.split('#')[0] === window.location.href.split('#')[0]) {\n var padCharacter = blobUrl.indexOf('?') === -1 ? '?' : '&';\n blobUrl = blobUrl.replace(/#|$/, padCharacter + '$&');\n }\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n window.open(blobUrl, '_parent');\n }\n };\n PdfViewerBase.prototype.downloadExportFormat = function (blobUrl, annotationDataFormat, formFieldDataFormat, isForm) {\n var isJson = annotationDataFormat === 'Json' || formFieldDataFormat === 'Json';\n // eslint-disable-next-line max-len\n var extension = isJson ? '.json' : formFieldDataFormat === 'Fdf' ? '.fdf' : formFieldDataFormat === 'Xml' ? '.xml' : (annotationDataFormat === 'Xfdf' || formFieldDataFormat === 'Xfdf') ? '.xfdf' : null;\n if (!isNullOrUndefined(extension)) {\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n blobUrl = Url.createObjectURL(blobUrl);\n var anchorElement = createElement('a');\n if (anchorElement.click) {\n anchorElement.href = blobUrl;\n anchorElement.target = '_parent';\n if ('download' in anchorElement) {\n if (this.pdfViewer.exportAnnotationFileName !== null) {\n anchorElement.download = this.pdfViewer.exportAnnotationFileName.split('.')[0] + extension;\n }\n else {\n anchorElement.download = this.pdfViewer.fileName.split('.')[0] + extension;\n }\n }\n (document.body || document.documentElement).appendChild(anchorElement);\n anchorElement.click();\n anchorElement.parentNode.removeChild(anchorElement);\n if (isForm) {\n this.pdfViewer.fireFormExportSuccess(blobUrl, anchorElement.download);\n }\n else {\n this.pdfViewer.fireExportSuccess(blobUrl, anchorElement.download);\n }\n }\n else if (isJson) {\n if (window.top === window &&\n blobUrl.split('#')[0] === window.location.href.split('#')[0]) {\n var padCharacter = blobUrl.indexOf('?') === -1 ? '?' : '&';\n blobUrl = blobUrl.replace(/#|$/, padCharacter + '$&');\n }\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n window.open(blobUrl, '_parent');\n if (isForm) {\n this.pdfViewer.fireFormExportSuccess(blobUrl, this.pdfViewer.fileName.split('.')[0] + extension);\n }\n else {\n this.pdfViewer.fireExportSuccess(blobUrl, this.pdfViewer.fileName.split('.')[0] + extension);\n }\n }\n }\n };\n /**\n * @private\n * @param {string} data - The data for exporting the fields.\n * @returns {void}\n */\n PdfViewerBase.prototype.exportFormFields = function (data, formFieldDataFormat) {\n this.createRequestForExportFormfields(false, formFieldDataFormat, data);\n };\n /**\n * @param data\n * @param formFieldDataFormat\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.importFormFields = function (data, formFieldDataFormat) {\n this.createRequestForImportingFormfields(data, formFieldDataFormat);\n };\n /**\n * @param {boolean} isObject\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @param {string} data - The data for exporting the fields.\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForExportFormfields = function (isObject, formFieldDataFormat, data) {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject = proxy.createFormfieldsJsonData();\n if (formFieldDataFormat === 'Json' || formFieldDataFormat === 'Fdf' || formFieldDataFormat === 'Xfdf' || formFieldDataFormat === \"Xml\") {\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n proxy.pdfViewer.fireFormExportStarted(jsonObject);\n }\n jsonObject.action = 'ExportFormFields';\n // eslint-disable-next-line\n jsonObject['hashId'] = proxy.hashId;\n // eslint-disable-next-line\n jsonObject['fileName'] = proxy.pdfViewer.fileName;\n if (data && data !== '' && !isObject) {\n // eslint-disable-next-line\n jsonObject['filePath'] = data;\n }\n // eslint-disable-next-line\n jsonObject['elementId'] = _this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var formFieldsPageList = _this.getFormFieldsPageList(jsonObject[\"formDesigner\"]);\n jsonObject['formFieldsPageList'] = JSON.stringify(formFieldsPageList);\n jsonObject['isFormFieldAnnotationsExist'] = _this.isAnnotationsExist(jsonObject[\"formDesigner\"]) || _this.isFieldsDataExist(jsonObject[\"fieldsData\"]) || formFieldsPageList.length > 0;\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.exportFormFields;\n proxy.exportFormFieldsRequestHandler = new AjaxHandler(_this.pdfViewer);\n proxy.exportFormFieldsRequestHandler.url = url;\n proxy.exportFormFieldsRequestHandler.mode = true;\n proxy.exportFormFieldsRequestHandler.responseType = 'text';\n proxy.exportFormFieldsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.exportFormFields, data);\n if (isObject) {\n // eslint-disable-next-line\n var annotationJson = decodeURIComponent(escape(atob(data.split(',')[1])));\n resolve(annotationJson);\n proxy.pdfViewer.fireFormExportSuccess(annotationJson, proxy.pdfViewer.fileName);\n }\n else if (data.split('base64,')[1]) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/json');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.json');\n }\n else if (jsonObject.formFieldDataFormat === 'Json' || jsonObject.formFieldDataFormat === 'Fdf' || jsonObject.formFieldDataFormat === 'Xfdf' || jsonObject.formFieldDataFormat === 'Xml') {\n proxy.downloadExportFormat(blobUrl, null, formFieldDataFormat, true);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireFormExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireFormExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n });\n if (isObject) {\n return promise;\n }\n else {\n return true;\n }\n };\n /**\n * @param {string} fileName - Gets the name of the file name for slicing the last index\n * @param {string} sliceBy - A type to slice the file name; example (\".\", \"_\")\n * @returns {string}\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getLastIndexValue = function (fileName, sliceBy) {\n var indexName = fileName.slice(fileName.lastIndexOf(sliceBy) + 1);\n return indexName;\n };\n /**\n * @param source\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForImportingFormfields = function (source, formFieldDataFormat) {\n var proxy = null;\n var index = \".\";\n proxy = this;\n // eslint-disable-next-line\n var jsonObject = {};\n var sourceName = this.getLastIndexValue(source, index);\n if (typeof source !== 'object' && (sourceName === 'json' || sourceName === 'fdf' || sourceName === 'xfdf' || sourceName === 'xml')) {\n jsonObject.data = source;\n jsonObject['fileName'] = proxy.pdfViewer.fileName;\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n }\n else {\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n if (formFieldDataFormat === 'Json') {\n jsonObject.data = JSON.stringify(source);\n }\n else {\n jsonObject.data = source;\n }\n }\n proxy.pdfViewer.fireFormImportStarted(source);\n // eslint-disable-next-line\n jsonObject.action = 'ImportFormFields';\n // eslint-disable-next-line\n jsonObject['hashId'] = proxy.hashId;\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.importFormFields;\n proxy.importFormFieldsRequestHandler = new AjaxHandler(this.pdfViewer);\n proxy.importFormFieldsRequestHandler.url = url;\n proxy.importFormFieldsRequestHandler.mode = true;\n proxy.importFormFieldsRequestHandler.responseType = 'text';\n proxy.importFormFieldsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data && data !== 'null') {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importFormFields);\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewer.fireFormImportFailed(source, proxy.pdfViewer.localeObj.getConstant('File not found'));\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importFormFields);\n data = null;\n }\n }\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.importFormFields, data);\n proxy.pdfViewer.fireFormImportSuccess(source);\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n this.pdfViewer.formFieldsModule.removeExistingFormFields();\n window.sessionStorage.removeItem(this.documentId + '_formDesigner');\n proxy.saveFormfieldsData(data);\n for (var i = 0; i < proxy.renderedPagesList.length; i++) {\n this.pdfViewer.formFieldsModule.renderFormFields(proxy.renderedPagesList[parseInt(i.toString(), 10)], true);\n }\n }\n else {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n }\n };\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n };\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n };\n };\n /**\n * @public\n * @returns {any} - Returns the Json data.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createFormfieldsJsonData = function () {\n // eslint-disable-next-line\n var jsonObject = {};\n if (this.pdfViewer.formDesignerModule) {\n var fieldsData = this.pdfViewer.formDesignerModule.downloadFormDesigner();\n // eslint-disable-next-line\n jsonObject['formDesigner'] = fieldsData;\n }\n else if (this.pdfViewer.formFieldsModule) {\n var fieldsData = this.pdfViewer.formFieldsModule.downloadFormFieldsData();\n // eslint-disable-next-line\n jsonObject['fieldsData'] = fieldsData;\n }\n return jsonObject;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.constructJsonDownload = function () {\n // eslint-disable-next-line\n var jsonObject = { hashId: this.hashId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n jsonObject.uniqueId = this.documentId;\n this.importPageList = [];\n if (this.pdfViewer.annotationModule) {\n this.saveImportedAnnotations();\n }\n if (this.isTextMarkupAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var textMarkupAnnotationCollection = this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveTextMarkupAnnotations();\n // eslint-disable-next-line\n jsonObject['textMarkupAnnotations'] = textMarkupAnnotationCollection;\n }\n if (this.isShapeAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var shapeAnnotations = this.pdfViewer.annotationModule.shapeAnnotationModule.saveShapeAnnotations();\n // eslint-disable-next-line\n jsonObject['shapeAnnotations'] = shapeAnnotations;\n }\n if (this.isCalibrateAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var calibrateAnnotations = this.pdfViewer.annotationModule.measureAnnotationModule.saveMeasureShapeAnnotations();\n // eslint-disable-next-line\n jsonObject['measureShapeAnnotations'] = calibrateAnnotations;\n }\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line max-len\n var stampAnnotationCollection = this.pdfViewer.annotationModule.stampAnnotationModule.saveStampAnnotations();\n // eslint-disable-next-line\n jsonObject['stampAnnotations'] = stampAnnotationCollection;\n }\n if (this.isCommentAnnotationModule()) {\n // eslint-disable-next-line max-len\n var stickyAnnotationCollection = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveStickyAnnotations();\n // eslint-disable-next-line\n jsonObject['stickyNotesAnnotation'] = stickyAnnotationCollection;\n }\n if (this.isImportAction) {\n var importList = JSON.stringify(this.importPageList);\n // eslint-disable-next-line\n jsonObject['importPageList'] = importList;\n }\n if (this.pdfViewer.formDesignerModule) {\n var fieldsData = this.pdfViewer.formDesignerModule.downloadFormDesigner();\n // eslint-disable-next-line\n jsonObject['formDesigner'] = fieldsData;\n }\n else if (this.pdfViewer.formFieldsModule) {\n var fieldsData = this.pdfViewer.formFieldsModule.downloadFormFieldsData();\n // eslint-disable-next-line\n jsonObject['fieldsData'] = fieldsData;\n }\n var signatureData = this.signatureModule.saveSignature();\n // eslint-disable-next-line\n jsonObject['signatureData'] = signatureData;\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n jsonObject['isSignatureEdited'] = this.pdfViewer.isSignatureEditable;\n }\n if (this.isFreeTextAnnotationModule()) {\n // eslint-disable-next-line max-len\n var freeTextAnnotationCollection = this.pdfViewer.annotationModule.freeTextAnnotationModule.saveFreeTextAnnotations();\n // eslint-disable-next-line\n jsonObject['freeTextAnnotation'] = freeTextAnnotationCollection;\n }\n if (this.isInkAnnotationModule()) {\n var inkSignatureData = this.pdfViewer.annotationModule.inkAnnotationModule.saveInkSignature();\n // eslint-disable-next-line\n jsonObject['inkSignatureData'] = inkSignatureData;\n }\n // eslint-disable-next-line\n jsonObject['action'] = 'Download';\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n if (this.pdfViewer.annotationModule) {\n var annotationsPageList = this.getAnnotationsPageList();\n jsonObject['isAnnotationsExist'] = this.isAnnotationsExist(jsonObject[\"textMarkupAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"shapeAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"measureShapeAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"stampAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"stickyNotesAnnotation\"]) || this.isAnnotationsExist(jsonObject[\"signatureData\"]) || this.isAnnotationsExist(jsonObject[\"freeTextAnnotation\"]) || this.isAnnotationsExist(jsonObject[\"inkSignatureData\"]) || annotationsPageList.length > 0;\n jsonObject['annotationsPageList'] = JSON.stringify(annotationsPageList);\n }\n if (this.pdfViewer.formDesignerModule || this.pdfViewer.formFieldsModule) {\n var formFieldsPageList = this.getFormFieldsPageList(jsonObject[\"formDesigner\"]);\n jsonObject['isFormFieldAnnotationsExist'] = this.isAnnotationsExist(jsonObject[\"formDesigner\"]) || this.isFieldsDataExist(jsonObject[\"fieldsData\"]) || formFieldsPageList.length > 0;\n jsonObject['formFieldsPageList'] = JSON.stringify(formFieldsPageList);\n }\n if (this.pdfViewer.annotationCollection) {\n jsonObject['annotationCollection'] = JSON.stringify(this.pdfViewer.annotationCollection);\n }\n return jsonObject;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether annotation is present.\n */\n PdfViewerBase.prototype.isAnnotationsExist = function (annotationInfo) {\n // eslint-disable-next-line max-len\n return !isNullOrUndefined(annotationInfo) ? JSON.parse(annotationInfo).flat(1).length > 0 : false;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether fields data is present.\n */\n PdfViewerBase.prototype.isFieldsDataExist = function (fieldsData) {\n // eslint-disable-next-line max-len\n return !isNullOrUndefined(fieldsData) ? Object.entries(JSON.parse(fieldsData)).length !== 0 : false;\n };\n /**\n * @private\n * @returns {boolean} - Returns annotations page number list.\n */\n PdfViewerBase.prototype.getAnnotationsPageList = function () {\n // eslint-disable-next-line max-len\n var annotCollection = this.pdfViewer.annotationCollection.map(function (a) { return a.pageNumber; });\n var annotActionCollection = this.pdfViewer.annotationModule.actionCollection.filter(function (value, index, self) { return value.annotation.propName !== \"formFields\" && value.annotation.formFieldAnnotationType == undefined; }).map(function (a) { return a.pageIndex; });\n var fullPageList = annotCollection.concat(annotActionCollection);\n return fullPageList.filter(function (value, index, self) { return self.indexOf(value) === index && value !== undefined; });\n };\n /**\n * @private\n * @returns {boolean} - Returns form fields page number list.\n */\n PdfViewerBase.prototype.getFormFieldsPageList = function (formDesignerData) {\n // eslint-disable-next-line max-len\n var formFieldsCollection = this.pdfViewer.formFieldCollection.map(function (item) {\n if (!isNullOrUndefined(item.properties)) {\n return item.properties.pageNumber;\n }\n else {\n return item.pageNumber + 1;\n }\n });\n var annotActionCollection = !isNullOrUndefined(this.pdfViewer.annotationModule) ? this.pdfViewer.annotationModule.actionCollection.filter(function (value, index, self) { return value.annotation.propName == \"formFields\" || value.annotation.formFieldAnnotationType != undefined; }).map(function (a) { return a.pageIndex; }) : [];\n var fullPageList = formFieldsCollection.concat(annotActionCollection);\n var designerDataList;\n if (!isNullOrUndefined(formDesignerData)) {\n designerDataList = JSON.parse(formDesignerData).map(function (item) {\n return item.FormField.pageNumber;\n });\n }\n var totalPageList = fullPageList.concat(designerDataList);\n return totalPageList.filter(function (value, index, self) { return self.indexOf(value) === index && value !== undefined; });\n };\n /**\n * @private\n * @param {string} annotationID - The annotationID.\n * @returns {any} - Returns collection of type.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkFormFieldCollection = function (annotationID) {\n var isFormFieldAnnotation = false;\n // eslint-disable-next-line\n var formDesignerData = null;\n formDesignerData = this.getItemFromSessionStorage('_formDesigner');\n if (formDesignerData) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(formDesignerData);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[parseInt(i.toString(), 10)].FormField.formFieldAnnotationType === 'RadioButton') {\n for (var j = 0; j < formFieldsData[parseInt(i.toString(), 10)].FormField.radiobuttonItem.length; j++) {\n if (annotationID === formFieldsData[parseInt(i.toString(), 10)].FormField.radiobuttonItem[parseInt(j.toString(), 10)].id.split('_')[0]) {\n isFormFieldAnnotation = true;\n break;\n }\n }\n }\n else if (formFieldsData[parseInt(i.toString(), 10)].Key.split('_')[0] === annotationID) {\n isFormFieldAnnotation = true;\n break;\n }\n }\n }\n return isFormFieldAnnotation;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether freetext module is enabled.\n */\n PdfViewerBase.prototype.isFreeTextAnnotationModule = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.freeTextAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForDownload = function () {\n var proxy = null;\n proxy = this;\n proxy.pdfViewer.fireDownloadStart(proxy.downloadFileName);\n // eslint-disable-next-line\n var jsonObject = this.constructJsonDownload();\n if (proxy.digitalSignaturePages && proxy.digitalSignaturePages.length !== 0) {\n if (proxy.pdfViewer.isDocumentEdited) {\n jsonObject['digitalSignatureDocumentEdited'] = true;\n }\n else {\n jsonObject['digitalSignatureDocumentEdited'] = false;\n }\n }\n this.dowonloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.dowonloadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.download;\n this.dowonloadRequestHandler.responseType = 'text';\n if (this.validateForm && this.pdfViewer.enableFormFieldsValidation) {\n this.pdfViewer.fireValidatedFailed(proxy.pdfViewer.serverActionSettings.download);\n this.validateForm = false;\n }\n else {\n this.dowonloadRequestHandler.send(jsonObject);\n }\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object' && data.indexOf('data:application/pdf') === -1) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.download);\n data = null;\n }\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (data) {\n if (proxy.pdfViewer.downloadFileName && (proxy.pdfViewer.downloadFileName !== proxy.downloadFileName)) {\n proxy.downloadFileName = proxy.pdfViewer.downloadFileName;\n }\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.download, data);\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/pdf');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.downloadFileName);\n }\n else {\n proxy.downloadDocument(blobUrl);\n }\n proxy.pdfViewer.fireDownloadEnd(proxy.downloadFileName, data);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n proxy.pdfViewer.fireDownloadEnd(proxy.downloadFileName, 'PDF Document saved in server side successfully');\n }\n };\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n };\n /**\n * @param pageWidth\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getTileCount = function (pageWidth) {\n if (pageWidth && typeof pageWidth === 'number') {\n var defaultWidth = 816;\n var tileCount = 1;\n if (this.getZoomFactor() > 2 && pageWidth <= 1200) {\n tileCount = 2;\n }\n else {\n tileCount = pageWidth / defaultWidth;\n }\n // eslint-disable-next-line radix\n var tileValue = parseInt(tileCount.toFixed());\n if (tileValue <= 0) {\n return 1;\n }\n else {\n if (this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n return tileValue;\n }\n else {\n return 1;\n }\n }\n }\n else {\n return 1;\n }\n };\n PdfViewerBase.prototype.createRequestForRender = function (pageIndex) {\n var proxy = null;\n proxy = this;\n var canvas = proxy.getElement('_pageCanvas_' + pageIndex);\n var oldCanvas = proxy.getElement('_oldCanvas_' + pageIndex);\n if (this.pageSize && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth_1 = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n var pageHeight = this.pageSize[parseInt(pageIndex.toString(), 10)].height;\n var tilecanvas = this.getElement('_pageCanvas_' + pageIndex);\n // eslint-disable-next-line\n var viewPortWidth_1 = 1200; // On diving the value greater than 1200 we will get the tile count as 2.\n // eslint-disable-next-line\n var viewPortHeight = proxy.pdfViewer.element.clientHeight > 0 ? proxy.pdfViewer.element.clientHeight : proxy.pdfViewer.element.style.height;\n // eslint-disable-next-line radix\n viewPortWidth_1 = parseInt(viewPortWidth_1);\n // eslint-disable-next-line radix\n viewPortHeight = parseInt(viewPortHeight) ? parseInt(viewPortHeight) : 500; //we have applied minimum-height as 500.\n var noTileX = void 0;\n var noTileY = void 0;\n var thumbnailImageElement = void 0;\n var imageSource = void 0;\n var object = new Object();\n if ((this.isMinimumZoom && document.getElementById(this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageIndex))) {\n this.renderThumbnailImages = true;\n thumbnailImageElement = document.getElementById(this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageIndex).children[0];\n imageSource = thumbnailImageElement.src;\n }\n else {\n this.renderThumbnailImages = false;\n }\n var tileCount = this.getTileCount(pageWidth_1);\n if (canvas) {\n if (!isNaN(parseFloat(canvas.style.width)) || oldCanvas) {\n if (proxy.isInitialLoaded) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n }\n // eslint-disable-next-line\n var data = proxy.getStoredData(pageIndex);\n noTileX = noTileY = tileCount;\n var tileSettings = proxy.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n if ((viewPortWidth_1 < pageWidth_1 || this.getZoomFactor() > 2)) {\n noTileX = tileSettings.x;\n noTileY = tileSettings.y;\n }\n }\n proxy.tileRequestCount = noTileX * noTileY;\n var zoomFactor = this.retrieveCurrentZoomFactor();\n var isPageRequestSent = void 0;\n if (tileCount === 1) {\n data = proxy.getStoredData(pageIndex);\n isPageRequestSent = proxy.pageRequestSent(pageIndex, 0, 0);\n }\n else {\n // eslint-disable-next-line\n var tileData = JSON.parse(proxy.getWindowSessionStorageTile(pageIndex, 0, 0, zoomFactor));\n if (tileData) {\n data = tileData;\n }\n }\n if (data && data.uniqueId === proxy.documentId && (data['image'] || this.isMinimumZoom)) {\n canvas.style.backgroundColor = '#fff';\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n var zoomFactor_2 = this.retrieveCurrentZoomFactor();\n if (zoomFactor_2 > 2 && pageWidth_1 <= 1200) {\n viewPortWidth_1 = 700;\n }\n else {\n viewPortWidth_1 = 1200;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n viewPortWidth_1 = 1200;\n }\n if ((viewPortWidth_1 >= pageWidth_1) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n if (this.renderThumbnailImages) {\n proxy.renderPage(data, pageIndex, imageSource);\n }\n else {\n proxy.renderPage(data, pageIndex);\n }\n }\n else {\n proxy.isTileImageRendered = true;\n proxy.tileRenderCount = 0;\n if (this.renderThumbnailImages) {\n proxy.renderPage(data, pageIndex, imageSource);\n }\n else {\n proxy.tileRenderPage(data, pageIndex);\n for (var k = 0; k < noTileX; k++) {\n for (var l = 0; l < noTileY; l++) {\n if (k === 0 && l === 0) {\n continue;\n }\n data = JSON.parse(this.getWindowSessionStorageTile(pageIndex, k, l, zoomFactor_2));\n if (data) {\n proxy.tileRenderPage(data, pageIndex);\n }\n }\n }\n }\n }\n data = null;\n }\n else if (data === null || !isPageRequestSent) {\n if (!this.renderThumbnailImages) {\n if (this.getPagesPinchZoomed()) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n else {\n proxy.showPageLoadingIndicator(pageIndex, true);\n }\n if (proxy.getPagesZoomed()) {\n if (proxy.isInitialLoaded) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n }\n }\n if (proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) {\n return;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering || this.renderThumbnailImages) {\n noTileX = 1;\n noTileY = 1;\n }\n proxy.tileRenderCount = 0;\n proxy.isTileImageRendered = true;\n for (var x = 0; x < noTileX; x++) {\n for (var y = 0; y < noTileY; y++) {\n var jsonObject = null;\n var zoomFactor_3 = this.retrieveCurrentZoomFactor();\n if (zoomFactor_3 > 2 && pageWidth_1 <= 1200) {\n viewPortWidth_1 = 700;\n }\n else {\n viewPortWidth_1 = 1200;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n viewPortWidth_1 = 1200;\n }\n if (this.renderThumbnailImages) {\n proxy.renderPage(object, pageIndex, imageSource);\n if (this.textrequestLists.indexOf(pageIndex) == -1) {\n jsonObject = { pageStartIndex: pageIndex, pageEndIndex: pageIndex + 1, documentId: proxy.getDocumentId(), hashId: proxy.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n this.textRequestHandler = new AjaxHandler(this.pdfViewer);\n this.textRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.textRequestHandler.responseType = 'json';\n this.textRequestHandler.send(jsonObject);\n this.textrequestLists.push(pageIndex);\n proxy.textRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.documentTextCollection && data.uniqueId === proxy.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderTexts, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.storeWinData(data, pageNumber);\n proxy.renderPage(data, pageIndex);\n }\n }\n };\n // eslint-disable-next-line\n this.textRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.textRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n }\n }\n else {\n // eslint-disable-next-line max-len\n jsonObject = {\n xCoordinate: (x).toString(), yCoordinate: (y).toString(), viewPortWidth: (viewPortWidth_1).toString(), viewPortHeight: (viewPortHeight).toString(),\n pageNumber: (pageIndex).toString(), hashId: proxy.hashId, tilecount: (tileCount).toString(), tileXCount: (noTileX).toString(), tileYCount: (noTileY).toString(),\n // eslint-disable-next-line max-len\n zoomFactor: (zoomFactor_3).toString(), action: 'RenderPdfPages', uniqueId: this.documentId, elementId: proxy.pdfViewer.element.id, digitalSignaturePresent: proxy.digitalSignaturePresent(pageIndex)\n };\n if (this.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.jsonDocumentId;\n }\n proxy.pageRequestHandler = new AjaxHandler(this.pdfViewer);\n // eslint-disable-next-line max-len\n proxy.pageRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.renderPages;\n proxy.pageRequestHandler.responseType = 'json';\n proxy.pageRequestHandler.send(jsonObject);\n proxy.requestLists.push(proxy.documentId + '_' + pageIndex + '_' + x + '_' + y + '_' + zoomFactor_3);\n // eslint-disable-next-line\n proxy.pageRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderPages);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.image && data.uniqueId === proxy.documentId) {\n var currentPageWidth = (data.pageWidth && data.pageWidth > 0) ? data.pageWidth : pageWidth_1;\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderPages, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n if ((viewPortWidth_1 >= currentPageWidth) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n proxy.storeWinData(data, pageNumber);\n }\n else {\n proxy.storeWinData(data, pageNumber, data.tileX, data.tileY);\n }\n if ((viewPortWidth_1 >= currentPageWidth) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n proxy.renderPage(data, pageNumber);\n }\n else {\n proxy.tileRenderPage(data, pageNumber);\n }\n }\n }\n };\n // eslint-disable-next-line\n this.pageRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderPages);\n };\n // eslint-disable-next-line\n this.pageRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderPages);\n };\n }\n }\n }\n }\n if (this.renderedPagesList.indexOf(pageIndex) === -1) {\n proxy.renderedPagesList.push(pageIndex);\n }\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.requestForTextExtraction = function (pageIndex, annotationObject) {\n var jsonObject;\n var proxy = this;\n jsonObject = { pageStartIndex: pageIndex, pageEndIndex: pageIndex + 1, documentId: proxy.getDocumentId(), hashId: proxy.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n this.textRequestHandler = new AjaxHandler(this.pdfViewer);\n this.textRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.textRequestHandler.responseType = 'json';\n this.textRequestHandler.send(jsonObject);\n this.textrequestLists.push(pageIndex);\n proxy.textRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.documentTextCollection && data.uniqueId === proxy.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderTexts, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.storeWinData(data, pageNumber);\n if (!isNullOrUndefined(annotationObject)) {\n var markedBounds = annotationObject.bounds[0];\n var pageCharText = data.documentTextCollection[0][pageIndex].PageText.split('');\n var characterBounds = data.characterBounds;\n var textMarkupContent = proxy.textMarkUpContent(markedBounds, pageCharText, characterBounds);\n annotationObject.textMarkupContent = textMarkupContent;\n this.pdfViewer.annotationModule.storeAnnotations(pageIndex, annotationObject, '_annotations_textMarkup');\n }\n else {\n proxy.renderPage(data, pageIndex);\n }\n }\n }\n };\n // eslint-disable-next-line\n this.textRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.textRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.textMarkUpContent = function (markedBounds, pageCharText, characterBounds) {\n var textMarkupContent = '';\n for (var j = 0; j < characterBounds.length; j++) {\n var buffer = 0.5;\n if (characterBounds[j].Y >= markedBounds.Y - buffer && characterBounds[j].X >= markedBounds.X - buffer && characterBounds[j].Y <= markedBounds.Y + markedBounds.Height + buffer && characterBounds[j].X <= markedBounds.X + markedBounds.Width + buffer) {\n textMarkupContent += pageCharText[j];\n }\n }\n return textMarkupContent.replace((/(\\r\\n)/gm), '');\n };\n /**\n * @private\n * @returns {boolean}\n */\n PdfViewerBase.prototype.digitalSignaturePresent = function (pageIndex) {\n var digitalSignaturePresent = false;\n if (this.digitalSignaturePages && (this.digitalSignaturePages.length !== 0) && (this.digitalSignaturePages.indexOf(pageIndex) != -1)) {\n digitalSignaturePresent = true;\n }\n return digitalSignaturePresent;\n };\n PdfViewerBase.prototype.pageRequestSent = function (pageIndex, tileX, tileY) {\n var zoomFactor = this.retrieveCurrentZoomFactor();\n var currentString = this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor;\n if (this.requestLists && this.requestLists.indexOf(currentString) > -1) {\n return true;\n }\n return false;\n };\n /**\n * @private\n * @param {string} status - The status message.\n * @param {string} errorMessage - The error message.\n * @param {string} action - The action.\n * @returns {void}\n */\n PdfViewerBase.prototype.onControlError = function (status, errorMessage, action) {\n this.openNotificationPopup();\n this.pdfViewer.fireAjaxRequestFailed(status, errorMessage, action);\n };\n /**\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getStoredData = function (pageIndex, isTextSearch) {\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (this.pdfViewer.restrictZoomRequest && !this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n zoomFactor = 1;\n }\n // eslint-disable-next-line\n var storedData = this.getWindowSessionStorage(pageIndex, zoomFactor) ? this.getWindowSessionStorage(pageIndex, zoomFactor) : this.getPinchZoomPage(pageIndex);\n if (!storedData && isTextSearch) {\n // eslint-disable-next-line\n var storedTileData = this.getWindowSessionStorageTile(pageIndex, 0, 0, zoomFactor);\n if (storedTileData) {\n storedData = storedTileData;\n }\n }\n // eslint-disable-next-line\n var data = null;\n if (storedData) {\n // eslint-disable-next-line\n data = storedData;\n if (!this.isPinchZoomStorage) {\n data = JSON.parse(storedData);\n }\n this.isPinchZoomStorage = false;\n }\n return data;\n };\n /**\n * @private\n * @param {any} data - The data.\n * @param {number} pageIndex - The pageIndex.\n * @param {number} tileX - The tileX.\n * @param {number} tileY - The tileY.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.storeWinData = function (data, pageIndex, tileX, tileY) {\n var storeObject;\n if (!data['image']) {\n var pageItems = data.documentTextCollection[0][pageIndex];\n storeObject = {\n // eslint-disable-next-line\n textContent: data['textContent'], textBounds: data['textBounds'], pageText: pageItems.PageText, rotation: data['rotation'], uniqueId: data['uniqueId']\n };\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n // eslint-disable-next-line\n this.pageSize[pageIndex].rotation = parseFloat(data['rotation']);\n }\n // eslint-disable-next-line\n this.textLayer.characterBound[pageIndex] = data['characterBounds'];\n }\n else {\n // eslint-disable-next-line\n var blobObj = this.createBlobUrl(data['image'].split('base64,')[1], 'image/png');\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n var blobUrl = Url.createObjectURL(blobObj);\n // eslint-disable-next-line\n if ((isNaN(tileX) && isNaN(tileY)) || (tileX === 0 && tileY === 0)) {\n storeObject = {\n // eslint-disable-next-line\n image: blobUrl, transformationMatrix: data['transformationMatrix'], hyperlinks: data['hyperlinks'], hyperlinkBounds: data['hyperlinkBounds'], linkAnnotation: data['linkAnnotation'], linkPage: data['linkPage'], annotationLocation: data['annotationLocation'],\n // eslint-disable-next-line\n textContent: data['textContent'], width: data['width'], textBounds: data['textBounds'], pageText: data['pageText'], rotation: data['rotation'], scaleFactor: data['scaleFactor'], uniqueId: data['uniqueId'], zoomFactor: data['zoomFactor'], tileX: tileX, tileY: tileY\n };\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n // eslint-disable-next-line\n this.pageSize[pageIndex].rotation = parseFloat(data['rotation']);\n }\n // eslint-disable-next-line\n this.textLayer.characterBound[pageIndex] = data['characterBounds'];\n }\n else {\n storeObject = {\n // eslint-disable-next-line\n image: blobUrl, transformationMatrix: data['transformationMatrix'], tileX: tileX, tileY: tileY, width: data['width'], zoomFactor: data['zoomFactor']\n };\n }\n }\n // eslint-disable-next-line\n var viewPortWidth = 816;\n var pageWidth = 0;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n pageWidth = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n }\n this.manageSessionStorage(pageIndex, storeObject, tileX, tileY);\n };\n /**\n * @private\n * @param {XMLHttpRequest} request - The Xml request.\n * @returns {void}\n */\n PdfViewerBase.prototype.setCustomAjaxHeaders = function (request) {\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n request.setRequestHeader(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n };\n /**\n * @private\n * @param {number} pageIndex - Page index.\n * @returns {object}\n */\n PdfViewerBase.prototype.getPinchZoomPage = function (pageIndex) {\n // eslint-disable-next-line\n for (var key in this.pinchZoomStorage) {\n // eslint-disable-next-line\n if (this.pinchZoomStorage.hasOwnProperty(key)) {\n /* eslint-disable-next-line security/detect-object-injection */\n if (this.pinchZoomStorage[key].index === pageIndex) {\n this.isPinchZoomStorage = true;\n /* eslint-disable-next-line security/detect-object-injection */\n return this.pinchZoomStorage[key].pinchZoomStorage;\n }\n }\n }\n return null;\n };\n /**\n * @private\n * @param {number} pageIndex - current page index.\n * @param {number} zoomFactor - cuurent zoom factor\n * @returns {string}\n */\n PdfViewerBase.prototype.getWindowSessionStorage = function (pageIndex, zoomFactor) {\n return window.sessionStorage.getItem(this.documentId + '_' + pageIndex + '_' + zoomFactor);\n };\n /**\n * @private\n * @param {number} pageIndex - current page index.\n * @param {number} tileX - cuurent tile x\n * @param {number} tileY - cuurent tile y\n * @param {number} zoomFactor - cuurent zoom factor\n * @returns {string}\n */\n PdfViewerBase.prototype.getWindowSessionStorageTile = function (pageIndex, tileX, tileY, zoomFactor) {\n return window.sessionStorage.getItem(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor);\n };\n /**\n * @private\n * @returns {number}\n */\n PdfViewerBase.prototype.retrieveCurrentZoomFactor = function () {\n var zoomFactor = this.getZoomFactor();\n if (this.pdfViewer.enableZoomOptimization) {\n if ((zoomFactor) <= 1) {\n zoomFactor = 1;\n }\n else if ((zoomFactor) > 1 && zoomFactor <= 2) {\n zoomFactor = 2;\n }\n else if ((zoomFactor) > 2 && zoomFactor <= 3) {\n zoomFactor = 3;\n }\n else if ((zoomFactor) > 3 && zoomFactor <= 4) {\n zoomFactor = 4;\n }\n return zoomFactor;\n }\n else {\n if (zoomFactor <= 0) {\n zoomFactor = 1;\n }\n return zoomFactor;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.manageSessionStorage = function (pageIndex, storeObject, tileX, tileY) {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 5000;\n if (sessionSize >= maxSessionSize) {\n if (!this.isStorageExceed) {\n // eslint-disable-next-line\n var annotationList = [];\n var formFieldsList = [];\n for (var i = 0; i < window.sessionStorage.length; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] === 'annotations') {\n // eslint-disable-next-line max-len\n this.annotationStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n annotationList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formfields') {\n // eslint-disable-next-line max-len\n this.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formDesigner') {\n this.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n }\n }\n if (annotationList) {\n for (var i = 0; i < annotationList.length; i++) {\n window.sessionStorage.removeItem(annotationList[parseInt(i.toString(), 10)]);\n }\n }\n if (formFieldsList) {\n for (var i = 0; i < formFieldsList.length; i++) {\n window.sessionStorage.removeItem(formFieldsList[parseInt(i.toString(), 10)]);\n }\n }\n }\n this.isStorageExceed = true;\n sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (sessionSize >= 5000) {\n var storageLength = window.sessionStorage.length;\n if (storageLength > 200) {\n storageLength = 200;\n }\n for (var i = 0; i < storageLength; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] !== 'annotations') {\n window.sessionStorage.removeItem(window.sessionStorage.key(i));\n }\n }\n }\n }\n }\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (isNaN(tileX) && isNaN(tileY)) {\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.documentId + '_' + pageIndex + '_' + zoomFactor, JSON.stringify(storeObject));\n this.sessionStorage.push(this.documentId + '_' + pageIndex + '_' + zoomFactor);\n }\n else {\n this.sessionStorage.push(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor);\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor, JSON.stringify(storeObject));\n }\n };\n PdfViewerBase.prototype.createBlobUrl = function (base64String, contentType) {\n var sliceSize = 512;\n var byteCharacters = atob(base64String);\n // eslint-disable-next-line\n var byteArrays = [];\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n var slice = byteCharacters.slice(offset, offset + sliceSize);\n // eslint-disable-next-line\n var byteNumbers = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n /* eslint-disable-next-line security/detect-object-injection */\n byteNumbers[i] = slice.charCodeAt(i);\n }\n // eslint-disable-next-line\n var byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n // eslint-disable-next-line\n var blob = new Blob(byteArrays, { type: contentType });\n return blob;\n };\n PdfViewerBase.prototype.getRandomNumber = function () {\n // eslint-disable-next-line\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line\n var random = Math.random() * 16 | 0, v = c == 'x' ? random : (random & 0x3 | 0x8);\n return random.toString(16);\n });\n };\n PdfViewerBase.prototype.createGUID = function () {\n // eslint-disable-next-line max-len\n return 'Sync_PdfViewer_' + this.getRandomNumber();\n };\n /**\n * @private\n * @param {MouseEvent} event - The mouse event.\n * @param {boolean} isNeedToSet - Is need to test.\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.isClickedOnScrollBar = function (event, isNeedToSet) {\n var isScrollBar = false;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, false);\n }\n // eslint-disable-next-line max-len\n if ((this.viewerContainer.clientWidth + this.viewerContainer.offsetLeft) < event.clientX && event.clientX < (this.viewerContainer.offsetWidth + this.viewerContainer.offsetLeft)) {\n isScrollBar = true;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, true);\n }\n }\n // eslint-disable-next-line max-len\n if ((this.viewerContainer.clientHeight + this.viewerContainer.offsetTop) < event.clientY && event.clientY < (this.viewerContainer.offsetHeight + this.viewerContainer.offsetTop)) {\n isScrollBar = true;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, true);\n }\n }\n return isScrollBar;\n };\n PdfViewerBase.prototype.setScrollDownValue = function (eventType, boolValue) {\n if (eventType === 'mousedown') {\n this.isScrollbarMouseDown = boolValue;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.disableTextSelectionMode = function () {\n this.isTextSelectionDisabled = true;\n this.viewerContainer.classList.remove('e-enable-text-selection');\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n this.viewerContainer.classList.add('e-disable-text-selection');\n this.viewerContainer.addEventListener('selectstart', function () {\n return false;\n });\n };\n /**\n * @private\n * @param {string} idString - The Id string.\n * @returns {HTMLElement} - The html element.\n */\n PdfViewerBase.prototype.getElement = function (idString) {\n return document.getElementById(this.pdfViewer.element.id + idString);\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageWidth = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageHeight = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].height * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex.\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageTop = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].top * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n PdfViewerBase.prototype.isAnnotationToolbarHidden = function () {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n return this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden;\n }\n else {\n return true;\n }\n };\n PdfViewerBase.prototype.isFormDesignerToolbarHidded = function () {\n var formDesignerToolbar = this.pdfViewer.toolbarModule.formDesignerToolbarModule;\n if (formDesignerToolbar) {\n return formDesignerToolbar.isToolbarHidden;\n }\n else {\n return true;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.getTextMarkupAnnotationMode = function () {\n if (this.isTextMarkupAnnotationModule()) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode;\n }\n else {\n return false;\n }\n };\n PdfViewerBase.prototype.isNewFreeTextAnnotation = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n if (!this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return true;\n }\n };\n PdfViewerBase.prototype.getCurrentTextMarkupAnnotation = function () {\n if (this.isTextMarkupAnnotationModule()) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {number} - Returns page number.\n */\n PdfViewerBase.prototype.getSelectTextMarkupCurrentPage = function () {\n if (this.isTextMarkupAnnotationModule()) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n }\n else {\n return null;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.getAnnotationToolStatus = function () {\n if (this.pdfViewer.toolbarModule) {\n return this.pdfViewer.toolbarModule.annotationToolbarModule.isAnnotationButtonsEnabled();\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.getPopupNoteVisibleStatus = function () {\n if (this.pdfViewer.annotationModule) {\n return this.pdfViewer.annotationModule.isPopupNoteVisible;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {TextMarkupAnnotation} - TextMarkupAnnotation.\n */\n PdfViewerBase.prototype.isTextMarkupAnnotationModule = function () {\n if (this.pdfViewer.annotationModule) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule;\n }\n else {\n return null;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.isShapeAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.shapeAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isFormDesignerModule = function () {\n if (this.pdfViewer.formDesignerModule) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isCalibrateAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.measureAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isStampAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isInkAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.inkAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isCommentAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stickyNotesAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isShapeBasedAnnotationsEnabled = function () {\n // eslint-disable-next-line max-len\n if (this.isShapeAnnotationModule() || this.isCalibrateAnnotationModule() || this.isStampAnnotationModule() || this.isCommentAnnotationModule() || this.isFormDesignerModule()) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @param {MouseEvent | PointerEvent | TouchEvent} e - Returns event.\n * @returns {PointModel} - Returns points.\n */\n PdfViewerBase.prototype.getMousePosition = function (e) {\n var touchArg;\n var offsetX;\n var offsetY;\n var currentTarget = e.target.parentElement;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n if (this.pdfViewer.annotation) {\n var pageDiv = this.getElement('_pageDiv_' + this.pdfViewer.annotation.getEventPageNumber(e));\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = touchArg.changedTouches[0].clientX - pageCurrentRect.left;\n offsetY = touchArg.changedTouches[0].clientY - pageCurrentRect.top;\n }\n }\n }\n else {\n if (e.target.classList.contains('e-pv-hyperlink')) {\n offsetX = e.offsetX + e.target.offsetLeft;\n offsetY = e.offsetY + e.target.offsetTop;\n }\n else if (e.target.classList.contains('e-pv-text') && currentTarget) {\n var targetParentRect = currentTarget.getBoundingClientRect();\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (e.target && (e && e.path) && currentTarget && (currentTarget.classList.contains('foreign-object') || currentTarget.parentElement.classList.contains('foreign-object'))) {\n // eslint-disable-next-line\n var targetParentRect = void 0;\n if (e.path[4].className === 'e-pv-page-div') {\n targetParentRect = e.path[4].getBoundingClientRect();\n }\n else {\n for (var i = 0; i < e.path.length; i++) {\n if (e.path[parseInt(i.toString(), 10)].className === 'e-pv-page-div') {\n targetParentRect = e.path[parseInt(i.toString(), 10)].getBoundingClientRect();\n break;\n }\n }\n }\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (e.target && currentTarget && currentTarget.classList.contains('foreign-object') || (e.target.classList.contains('e-pv-checkbox-div'))) {\n // eslint-disable-next-line\n var targetParentRect = void 0;\n if ((e.target.classList.contains('e-pv-checkbox-div'))) {\n targetParentRect = e.target.offsetParent.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n }\n else {\n targetParentRect = e.target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n }\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n }\n else {\n offsetX = e.offsetX;\n offsetY = e.offsetY;\n }\n }\n return { x: offsetX, y: offsetY };\n };\n PdfViewerBase.prototype.getMouseEventArgs = function (position, args, evt, source) {\n args.position = position;\n var obj;\n var objects;\n if (!source) {\n if (this.action === 'Drag' || this.action === 'ConnectorSourceEnd' || this.action === 'SegmentEnd' ||\n this.action === 'OrthoThumb' || this.action === 'BezierSourceThumb' || this.action === 'BezierTargetThumb' ||\n this.action === 'ConnectorTargetEnd' || this.action.indexOf('Rotate') !== -1 || this.action.indexOf('Resize') !== -1) {\n obj = this.pdfViewer.selectedItems;\n if (this.action === 'Drag' && obj && this.pdfViewer.selectedItems.annotations.length > 0) {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n else if (this.action === 'Drag' && obj && this.pdfViewer.selectedItems.formFields.length > 0) {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n }\n else {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n }\n else {\n // objects = this.diagram.findObjectsUnderMouse(this.currentPosition, source);\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n var wrapper;\n if (obj) {\n wrapper = obj.wrapper;\n }\n if (!source) {\n args.source = obj;\n args.sourceWrapper = wrapper;\n }\n else {\n args.target = obj;\n args.targetWrapper = wrapper;\n }\n args.actualObject = this.eventArgs.actualObject;\n //args.startTouches = this.touchStartList;\n //args.moveTouches = this.touchMoveList;\n return args;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - The object.\n * @param {PointModel} position - The position.\n * @returns {Actions | string} - Returns the string.\n */\n PdfViewerBase.prototype.findToolToActivate = function (obj, position) {\n position = { x: position.x / this.getZoomFactor(), y: position.y / this.getZoomFactor() };\n var element = this.pdfViewer.selectedItems.wrapper;\n if (element && obj) {\n var selectorBnds = element.bounds; //let handle: SelectorModel = diagram.selectedItems;\n var paddedBounds = new Rect(selectorBnds.x, selectorBnds.y, selectorBnds.width, selectorBnds.height);\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead' ||\n obj.shapeAnnotationType === 'Distance' || obj.shapeAnnotationType === 'Polygon') {\n var conn = this.pdfViewer.selectedItems.annotations[0];\n if (conn) {\n for (var i = 0; i < conn.vertexPoints.length; i++) {\n if (contains(position, conn.vertexPoints[parseInt(i.toString(), 10)], 10) && conn.leaderHeight !== 0) {\n return 'ConnectorSegmentPoint_' + i;\n }\n }\n }\n }\n if (obj.shapeAnnotationType === 'Distance') {\n var leaderCount = 0;\n var newPoint1 = void 0;\n if (obj && obj.wrapper) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var elementAngle = Point.findAngle(obj.sourcePoint, obj.targetPoint);\n // eslint-disable-next-line\n var segment = obj.wrapper.children[i];\n if (segment.id.indexOf('leader') > -1) {\n var centerPoint = obj.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: obj.sourcePoint.x, y: obj.sourcePoint.y - obj.leaderHeight };\n centerPoint = obj.sourcePoint;\n }\n else {\n newPoint1 = { x: obj.targetPoint.x, y: obj.targetPoint.y - obj.leaderHeight };\n centerPoint = obj.targetPoint;\n }\n var matrix_1 = identityMatrix();\n rotateMatrix(matrix_1, elementAngle, centerPoint.x, centerPoint.y);\n var rotatedPoint = transformPointByMatrix(matrix_1, { x: newPoint1.x, y: newPoint1.y });\n if (contains(position, rotatedPoint, 10)) {\n return 'Leader' + leaderCount;\n }\n leaderCount++;\n }\n }\n }\n }\n var ten = this.pdfViewer.touchPadding;\n if (this.getZoomFactor() <= 1.5) {\n ten = ten / this.getZoomFactor();\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, obj.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n //check for resizing tool\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - 30 / this.getZoomFactor()\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n if (obj.shapeAnnotationType === 'Stamp' && contains(position, rotateThumb, ten)) {\n return 'Rotate';\n }\n paddedBounds = this.inflate(ten, paddedBounds);\n if (paddedBounds.containsPoint(position, 0)) {\n var action = this.checkResizeHandles(this.pdfViewer, element, position, matrix, x, y);\n if (action) {\n return action;\n }\n }\n if (this.pdfViewer.selectedItems.annotations.indexOf(obj) > -1) {\n return 'Drag';\n }\n else if (this.pdfViewer.selectedItems.formFields.indexOf(obj) > -1 && this.pdfViewer.designerMode) {\n return 'Drag';\n }\n return 'Select';\n }\n return this.pdfViewer.tool || 'Select';\n };\n PdfViewerBase.prototype.inflate = function (padding, bound) {\n bound.x -= padding;\n bound.y -= padding;\n bound.width += padding * 2;\n bound.height += padding * 2;\n return bound;\n };\n PdfViewerBase.prototype.checkResizeHandles = function (diagram, element, position, matrix, x, y) {\n var action;\n if (!action) {\n action = this.checkForResizeHandles(diagram, element, position, matrix, x, y);\n }\n if (action) {\n return action;\n }\n return null;\n };\n PdfViewerBase.prototype.checkForResizeHandles = function (diagram, element, position, matrix, x, y) {\n var forty = 40 / 1;\n var ten = this.pdfViewer.touchPadding / 1;\n // Resizer cursor adjustment factor for higher zoom values\n var resizerBuffer = 1.9;\n if (this.getZoomFactor() >= 2.0 && !Browser.isDevice) {\n ten = ten / (this.getZoomFactor() / resizerBuffer);\n }\n if (element.actualSize.width < 40 || element.actualSize.height < 40 && Browser.isDevice) {\n ten = ten / 2 * this.getZoomFactor() / 1;\n }\n var selectedItems = diagram.selectedItems;\n var isStamp = false;\n var isSticky = false;\n var isNodeShape = false;\n var isInk = false;\n var resizerLocation = this.pdfViewer.annotationSelectorSettings.resizerLocation;\n if (resizerLocation < 1 || resizerLocation > 3) {\n resizerLocation = 3;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp'\n || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature'\n || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n isStamp = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes') {\n isSticky = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n isInk = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Radius' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle')) {\n isNodeShape = true;\n }\n if (!isSticky) {\n // eslint-disable-next-line max-len\n if ((isInk || isStamp || (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) || ((element.actualSize.width >= forty && element.actualSize.height >= forty) && isNodeShape && (resizerLocation === 1 || resizerLocation === 3)))) {\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height }), ten)) {\n return 'ResizeSouthEast';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height }), ten)) {\n return 'ResizeSouthWest';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y }), ten)) {\n return 'ResizeNorthEast';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y }), ten)) {\n return 'ResizeNorthWest';\n }\n }\n // eslint-disable-next-line max-len\n if (isInk || !isNodeShape || (isNodeShape && (resizerLocation === 2 || resizerLocation === 3 || (!(element.actualSize.width >= forty && element.actualSize.height >= forty) && resizerLocation === 1)))) {\n if (contains(\n // eslint-disable-next-line max-len\n position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height / 2 }), ten) && !isStamp) {\n return 'ResizeEast';\n }\n // eslint-disable-next-line max-len\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height / 2 }), ten) && !isStamp) {\n return 'ResizeWest';\n }\n if (contains(\n // eslint-disable-next-line max-len\n position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y + element.actualSize.height }), ten) && !isStamp) {\n return 'ResizeSouth';\n }\n // eslint-disable-next-line max-len\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y }), ten) && !isStamp) {\n return 'ResizeNorth';\n }\n }\n }\n return null;\n };\n /**\n * @private\n * @param {string} fieldID - The fieldID\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.checkSignatureFormField = function (fieldID) {\n var isFormFieldSign = false;\n if (this.pdfViewer.formDesignerModule) {\n fieldID = fieldID.split('_')[0];\n }\n // eslint-disable-next-line\n var formField = this.pdfViewer.nameTable[fieldID];\n if (formField) {\n if (formField.formFieldAnnotationType === 'SignatureField' || formField.formFieldAnnotationType === 'InitialField' || formField.annotName === 'SignatureField') {\n isFormFieldSign = true;\n }\n }\n return isFormFieldSign;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The event.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseMove = function (evt) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n this.currentPosition = this.getMousePosition(evt);\n this.pdfViewer.firePageMouseover(this.currentPosition.x, this.currentPosition.y);\n if (this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.activeElements.activePageID = this.pdfViewer.formDesignerModule.getEventPageNumber(evt);\n }\n var obj = findActiveElement(evt, this, this.pdfViewer);\n if ((this.tool instanceof NodeDrawingTool) || (this.tool instanceof LineTool)) {\n obj = this.pdfViewer.drawingObject;\n }\n var target;\n var isFormFieldSign = this.pdfViewer.selectedItems.annotations.length > 0 ? this.checkSignatureFormField(this.pdfViewer.selectedItems.annotations[0].id) : false;\n if ((Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction)) {\n if (this.isMouseDown === false) {\n this.eventArgs = {};\n var sourceDrawingElement = null;\n if (obj) {\n this.tool = this.getTool(this.action);\n if (obj.wrapper) {\n sourceDrawingElement = obj.wrapper.children[0];\n if (sourceDrawingElement) {\n target = obj;\n }\n }\n }\n var eventTarget = evt.target;\n this.action = this.findToolToActivate(obj, this.currentPosition);\n // eslint-disable-next-line\n if (obj && obj.annotationSettings && obj.annotationSettings.isLock) {\n if (this.action === 'Select') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n this.action = '';\n }\n }\n if (this.action === 'Drag') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Move', obj)) {\n this.action = 'Select';\n }\n }\n // eslint-disable-next-line max-len\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Resize', obj)) {\n this.action = 'Select';\n }\n }\n }\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.designerMode && ((!isNullOrUndefined(target) && (!isNullOrUndefined(target.formFieldAnnotationType))) || isFormFieldSign)) {\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'Drag' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n this.action = '';\n }\n }\n this.tool = this.getTool(this.action);\n this.setCursor(eventTarget, evt);\n if (this.pdfViewer.linkAnnotationModule) {\n this.pdfViewer.linkAnnotationModule.disableHyperlinkNavigationUnderObjects(eventTarget, evt, this);\n }\n }\n else {\n if (!this.tool && this.action && this.action === 'Rotate') {\n this.tool = this.getTool(this.action);\n if (evt.target) {\n this.setCursor(evt.target, evt);\n }\n }\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.designerMode && ((!isNullOrUndefined(target) && (!isNullOrUndefined(target.formFieldAnnotationType))) || isFormFieldSign)) {\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'Drag' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n this.action = '';\n this.tool = null;\n }\n }\n if (this.eventArgs && this.eventArgs.source) {\n var eventTarget = evt.target;\n this.updateDefaultCursor(this.eventArgs.source, eventTarget, evt);\n }\n else {\n this.setCursor(evt.target, evt);\n }\n this.diagramMouseActionHelper(evt);\n if (this.tool) {\n var currentObject = obj;\n if (currentObject && currentObject.shapeAnnotationType === 'FreeText') {\n if (this.pdfViewer.freeTextSettings.allowEditTextOnly && this.action !== \"Ink\" &&\n (this.eventArgs.source && this.eventArgs.source.shapeAnnotationType === \"FreeText\")) {\n var eventTarget = event.target;\n eventTarget.style.cursor = 'default';\n this.tool = null;\n }\n }\n if (this.tool != null) {\n var info = { ctrlKey: evt.ctrlKey, shiftKey: evt.shiftKey };\n this.eventArgs.info = info;\n this.tool.mouseMove(this.eventArgs);\n }\n }\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.formFieldAnnotationType && this.action !== 'Drag') {\n if (!(this.tool instanceof ResizeTool)) {\n this.tool = this.getTool(this.action);\n if (this.tool instanceof NodeDrawingTool) {\n var obj_1 = this.pdfViewer.drawingObject;\n // eslint-disable-next-line\n var bounds = this.pdfViewer.formDesignerModule.updateFormFieldInitialSize(obj_1, obj_1.formFieldAnnotationType);\n var pageWidth = this.pageContainer.firstElementChild.clientWidth - bounds.width;\n var pageHeight = this.pageContainer.firstElementChild.clientHeight - bounds.height;\n if (this.pdfViewer.formDesignerModule && obj_1.formFieldAnnotationType\n && this.currentPosition.x < pageWidth && this.currentPosition.y < pageHeight) {\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (!formFieldElement) {\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesignerModule.drawHelper(obj_1.formFieldAnnotationType, obj_1, evt);\n }\n else if (formFieldElement) {\n var previousActivePage = formFieldElement.parentElement.id.split(\"_text_\")[1] || formFieldElement.parentElement.id.split(\"_textLayer_\")[1] || formFieldElement.parentElement.id.split(\"_annotationCanvas_\")[1] || formFieldElement.parentElement.id.split(\"_pageDiv_\")[1];\n if (parseInt(previousActivePage) !== this.activeElements.activePageID) {\n formFieldElement.remove(\"FormField_helper_html_element\");\n }\n else {\n // eslint-disable-next-line\n var point = this.getMousePosition(event);\n if (obj_1.formFieldAnnotationType === 'Checkbox') {\n formFieldElement.firstElementChild.firstElementChild.lastElementChild.style.visibility = 'visible';\n }\n else if (obj_1.formFieldAnnotationType === 'SignatureField' || obj_1.formFieldAnnotationType === 'InitialField') {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'visible';\n formFieldElement.firstElementChild.lastElementChild.style.visibility = 'visible';\n }\n else {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'visible';\n }\n formFieldElement.setAttribute('style', 'height:' + bounds.height + 'px; width:' + bounds.width + 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;opacity: 0.5;');\n }\n }\n }\n else if (this.currentPosition.x > pageWidth || this.currentPosition.y > pageHeight) {\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (!formFieldElement) {\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesignerModule.drawHelper(obj_1.formFieldAnnotationType, obj_1, evt);\n }\n else if (formFieldElement) {\n // eslint-disable-next-line\n var point = this.getMousePosition(event);\n formFieldElement.setAttribute('style', 'height:' + bounds.height + 'px; width:' + bounds.width + 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;opacity: 0.5;');\n if (obj_1.formFieldAnnotationType === 'Checkbox') {\n formFieldElement.firstElementChild.firstElementChild.lastElementChild.style.visibility = 'hidden';\n }\n else if (obj_1.formFieldAnnotationType === 'SignatureField' || obj_1.formFieldAnnotationType === 'InitialField') {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'hidden';\n formFieldElement.firstElementChild.lastElementChild.style.visibility = 'hidden';\n }\n else {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'hidden';\n }\n }\n }\n }\n }\n }\n this.prevPosition = this.currentPosition;\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateDefaultCursor = function (source, target, event) {\n // eslint-disable-next-line max-len\n if (source && source.pageIndex !== undefined && source.pageIndex !== this.activeElements.activePageID && target) {\n // eslint-disable-next-line\n this.isPanMode ? target.style.cursor = 'grab' : target.style.cursor = 'default';\n }\n else {\n this.setCursor(target, event);\n }\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The event.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseLeave = function (evt) {\n this.currentPosition = this.getMousePosition(evt);\n if (this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n if (isNaN(this.activeElements.activePageID) && this.pdfViewer.formDesignerModule) {\n this.activeElements.activePageID = this.pdfViewer.formDesignerModule.getEventPageNumber(evt);\n }\n var shapeElement = findActiveElement(evt, this, this.pdfViewer);\n var mouseMoveforce = false;\n var target;\n if (Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction) {\n if (this.isMouseDown === false || mouseMoveforce) {\n this.eventArgs = {};\n var sourceElement = null;\n if (shapeElement) {\n sourceElement = shapeElement.wrapper.children[0];\n if (sourceElement) {\n target = shapeElement;\n }\n mouseMoveforce = false;\n }\n }\n else {\n this.diagramMouseActionHelper(evt);\n // eslint-disable-next-line max-len\n if (this.tool && this.action !== 'Drag' && this.pdfViewer.tool !== 'Stamp' && this.tool.currentElement && this.tool.currentElement.shapeAnnotationType !== 'Stamp') {\n this.tool.mouseLeave(this.eventArgs);\n this.tool = null;\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotationModule.renderAnnotations(this.previousPage, null, null, null);\n }\n }\n }\n this.prevPosition = this.currentPosition;\n }\n };\n PdfViewerBase.prototype.diagramMouseActionHelper = function (evt) {\n this.eventArgs.position = this.currentPosition;\n if (this.action === 'Drag' &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt);\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt, this.eventArgs.source);\n this.inAction = true;\n this.initialEventArgs = null;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setCursor = function (eventTarget, event) {\n // eslint-disable-next-line max-len\n var freeTextAnnotModule = this.pdfViewer.annotationModule ? this.pdfViewer.annotationModule.freeTextAnnotationModule : null;\n var cursorType;\n if (this.tool instanceof ResizeTool) {\n if (this.tool.corner === 'ResizeNorthWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'nw-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeNorthEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'ne-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouthWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'sw-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouthEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'se-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeNorth') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'n-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'w-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'e-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouth') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 's-resize' : cursorType;\n }\n }\n else if (this.isCommentIconAdded && this.isAddComment) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.pdfViewer.enableHandwrittenSignature && this.isNewSignatureAdded && this.tool instanceof StampTool) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.tool instanceof MoveTool) {\n eventTarget.style.cursor = 'move';\n // eslint-disable-next-line max-len\n }\n else if (this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool || (freeTextAnnotModule && freeTextAnnotModule.isNewAddedAnnot) || this.tool instanceof InkDrawingTool) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.tool instanceof ConnectTool) {\n if (this.tool.endPoint && this.tool.endPoint.indexOf('Leader0')) {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'nw-resize' : cursorType;\n }\n else if (this.tool.endPoint && this.tool.endPoint.indexOf('Leader1')) {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'ne-resize' : cursorType;\n }\n else if (this.tool.endPoint && this.tool.endPoint.indexOf('ConnectorSegmentPoint')) {\n eventTarget.style.cursor = 'sw-resize';\n }\n }\n else {\n if (eventTarget.classList.contains('e-pv-text')) {\n eventTarget.style.cursor = 'text';\n }\n else if (eventTarget.classList.contains('e-pv-hyperlink')) {\n eventTarget.style.cursor = 'pointer';\n }\n else if (this.isPanMode) {\n if (this.isViewerMouseDown && event.type === 'mousemove') {\n eventTarget.style.cursor = 'grabbing';\n }\n else {\n var obj = findActiveElement(event, this, this.pdfViewer);\n if (obj && event.type === 'mousemove') {\n eventTarget.style.cursor = 'pointer';\n // eslint-disable-next-line max-len\n var currentObject = obj;\n // eslint-disable-next-line\n var currentPosition = this.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.relativePosition(event);\n // eslint-disable-next-line\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n // eslint-disable-next-line\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n // eslint-disable-next-line\n var annotationSettings = { opacity: currentObject.opacity, fillColor: currentObject.fillColor, strokeColor: currentObject.strokeColor, thicknes: currentObject.thickness, author: currentObject.author, subject: currentObject.subject, modifiedDate: currentObject.modifiedDate };\n // eslint-disable-next-line max-len\n this.isMousedOver = true;\n var isFormField = this.checkSignatureFormField(currentObject.id);\n if (currentObject.formFieldAnnotationType) {\n this.isFormFieldMousedOver = true;\n var field_1 = {\n // eslint-disable-next-line\n value: currentObject.value, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line max-len\n color: currentObject.color, backgroundColor: currentObject.backgroundColor, borderColor: currentObject.borderColor,\n // eslint-disable-next-line\n thickness: currentObject.thickness, alignment: currentObject.alignment, isReadonly: currentObject.isReadonly, visibility: currentObject.visibility,\n // eslint-disable-next-line\n maxLength: currentObject.maxLength, isRequired: currentObject.isRequired, isPrint: currentObject.isPrint, rotation: currentObject.rotateAngle, tooltip: currentObject.tooltip, options: currentObject.options,\n // eslint-disable-next-line\n isChecked: currentObject.isChecked, isSelected: currentObject.isSelected\n };\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field_1, currentObject.pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (!isFormField)\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationMouseover(currentObject.annotName, currentObject.pageIndex, currentObject.shapeAnnotationType, currentObject.bounds, annotationSettings, mousePositions, viewerPositions);\n }\n }\n else {\n eventTarget.style.cursor = 'grab';\n if (this.isMousedOver) {\n var pageIndex = void 0;\n if (this.pdfViewer.formDesignerModule) {\n pageIndex = this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n }\n else {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n }\n if (this.isFormFieldMousedOver) {\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', null, pageIndex);\n }\n else {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n }\n this.isMousedOver = false;\n this.isFormFieldMousedOver = false;\n }\n }\n }\n }\n else {\n var obj = findActiveElement(event, this, this.pdfViewer);\n if (obj && this.pdfViewer.selectedItems.annotations.length === 0 && event.type === 'mousemove') {\n var currentObject = obj;\n // eslint-disable-next-line\n var annotationObject = this.pdfViewer.nameTable[currentObject.id];\n // eslint-disable-next-line max-len\n if (annotationObject.shapeAnnotationType !== 'HandWrittenSignature' && annotationObject.shapeAnnotationType !== 'Ink' && annotationObject.annotationSettings && annotationObject.annotationSettings.isLock !== undefined) {\n annotationObject.annotationSettings.isLock = JSON.parse(annotationObject.annotationSettings.isLock);\n }\n if (annotationObject.annotationSettings && annotationObject.annotationSettings.isLock) {\n eventTarget.style.cursor = 'default';\n }\n else {\n eventTarget.style.cursor = 'pointer';\n }\n // eslint-disable-next-line\n var currentPosition = this.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.relativePosition(event);\n // eslint-disable-next-line\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n // eslint-disable-next-line\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n // eslint-disable-next-line\n var annotationSettings = { opacity: currentObject.opacity, fillColor: currentObject.fillColor, strokeColor: currentObject.strokeColor, thicknes: currentObject.thickness, author: currentObject.author, subject: currentObject.subject, modifiedDate: currentObject.modifiedDate };\n // eslint-disable-next-line max-len\n this.isMousedOver = true;\n var isFormField = this.checkSignatureFormField(currentObject.id);\n if (currentObject.formFieldAnnotationType) {\n this.isFormFieldMousedOver = true;\n var field_2 = {\n // eslint-disable-next-line\n value: currentObject.value, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line max-len\n color: currentObject.color, backgroundColor: currentObject.backgroundColor, borderColor: currentObject.borderColor,\n // eslint-disable-next-line\n thickness: currentObject.thickness, alignment: currentObject.alignment, isReadonly: currentObject.isReadonly, visibility: currentObject.visibility,\n // eslint-disable-next-line\n maxLength: currentObject.maxLength, isRequired: currentObject.isRequired, isPrint: currentObject.isPrint, rotation: currentObject.rotateAngle, tooltip: currentObject.tooltip, options: currentObject.options,\n // eslint-disable-next-line\n isChecked: currentObject.isChecked, isSelected: currentObject.isSelected\n };\n this.fromTarget = currentObject;\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field_2, currentObject.pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (!isFormField)\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationMouseover(currentObject.annotName, currentObject.pageIndex, currentObject.shapeAnnotationType, currentObject.bounds, annotationSettings, mousePositions, viewerPositions);\n }\n }\n else if (!this.pdfViewer.formDesignerModule && event.target.classList.contains('e-pdfviewer-formFields')) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var currentPosition = this.getMousePosition(event);\n var relativePosition = this.relativePosition(event);\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n var dataJson = this.getItemFromSessionStorage('_formfields');\n var data = JSON.parse(dataJson);\n for (var i = 0; i < data.length; i++) {\n if (data[parseInt(i.toString(), 10)].FieldName === event.target.name) {\n var field = { name: data[parseInt(i.toString(), 10)].FieldName };\n }\n }\n this.isMousedOver = true;\n this.isFormFieldMousedOver = true;\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field, pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (this.isMousedOver) {\n var pageIndex = void 0;\n if (this.pdfViewer.formDesignerModule) {\n pageIndex = this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n }\n else {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n }\n if (this.isFormFieldMousedOver) {\n if (this.fromTarget) {\n var field_3 = {\n // eslint-disable-next-line\n name: this.fromTarget.name, id: this.fromTarget.id, value: this.fromTarget.value, fontFamily: this.fromTarget.fontFamily, fontSize: this.fromTarget.fontSize, fontStyle: this.fromTarget.fontStyle,\n // eslint-disable-next-line max-len\n color: this.fromTarget.color, backgroundColor: this.fromTarget.backgroundColor, borderColor: this.fromTarget.borderColor,\n // eslint-disable-next-line\n thickness: this.fromTarget.thickness, alignment: this.fromTarget.alignment, isReadonly: this.fromTarget.isReadonly, visibility: this.fromTarget.visibility,\n // eslint-disable-next-line\n maxLength: this.fromTarget.maxLength, isRequired: this.fromTarget.isRequired, isPrint: this.fromTarget.isPrint, rotation: this.fromTarget.rotateAngle, tooltip: this.fromTarget.tooltip, options: this.fromTarget.options,\n // eslint-disable-next-line\n isChecked: this.fromTarget.isChecked, isSelected: this.fromTarget.isSelected\n };\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', field_3, pageIndex);\n }\n else {\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', null, pageIndex);\n }\n }\n else {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n }\n this.isMousedOver = false;\n this.isFormFieldMousedOver = false;\n eventTarget.style.cursor = 'default';\n }\n if (obj && this.pdfViewer.selectedItems.annotations.length === 1 && event.type === 'mousemove') {\n eventTarget.style.cursor = 'pointer';\n }\n else {\n eventTarget.style.cursor = 'default';\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.setResizerCursorType = function () {\n var cursorType;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0].annotationSelectorSettings.resizerCursorType)) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings) ? this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings) ? this.pdfViewer.stampSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) ? this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) ? this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (!this.pdfViewer.selectedItems.annotations[0].measureType) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings) ? this.pdfViewer.lineSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings) ? this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings) ? this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings) ? this.pdfViewer.circleSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Polygon') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings) ? this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n }\n else if (this.pdfViewer.selectedItems.annotations[0].measureType) {\n if (this.pdfViewer.selectedItems.annotations[0].subject === 'Distance calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings) ? this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Perimeter calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings) ? this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Area calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings) ? this.pdfViewer.areaSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Radius calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings) ? this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Volume calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings) ? this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n }\n }\n else {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n cursorType = this.pdfViewer.selectedItems.annotations[0].annotationSelectorSettings.resizerCursorType;\n }\n }\n if (!cursorType) {\n cursorType = this.pdfViewer.annotationSelectorSettings.resizerCursorType;\n }\n return cursorType;\n };\n /**\n * @private\n * @param {Actions | string} action - The actions.\n * @returns {ToolBase} - Returns tools.\n */\n PdfViewerBase.prototype.getTool = function (action) {\n switch (action) {\n case 'Select':\n return new SelectTool(this.pdfViewer, this);\n case 'Drag':\n return new MoveTool(this.pdfViewer, this);\n case 'ResizeSouthEast':\n case 'ResizeSouthWest':\n case 'ResizeNorthEast':\n case 'ResizeNorthWest':\n case 'ResizeSouth':\n case 'ResizeNorth':\n case 'ResizeWest':\n case 'ResizeEast':\n return new ResizeTool(this.pdfViewer, this, action);\n case 'ConnectorSourceEnd':\n case 'ConnectorTargetEnd':\n case 'Leader':\n case 'ConnectorSegmentPoint':\n return new ConnectTool(this.pdfViewer, this, action);\n case 'DrawTool':\n return new NodeDrawingTool(this.pdfViewer, this, this.pdfViewer.drawingObject);\n case 'Polygon':\n return new PolygonDrawingTool(this.pdfViewer, this, 'Polygon');\n case 'Distance':\n return new LineTool(this.pdfViewer, this, 'Leader1', undefined);\n case 'Line':\n return new LineTool(this.pdfViewer, this, 'ConnectorSegmentPoint_1', this.pdfViewer.drawingObject);\n case 'Perimeter':\n return new PolygonDrawingTool(this.pdfViewer, this, 'Perimeter');\n case 'Rotate':\n return new RotateTool(this.pdfViewer, this);\n case 'Stamp':\n return new StampTool(this.pdfViewer, this);\n case 'Ink':\n return new InkDrawingTool(this.pdfViewer, this, this.pdfViewer.drawingObject);\n }\n if (action.indexOf('ConnectorSegmentPoint') > -1 || action.indexOf('Leader') > -1) {\n return new ConnectTool(this.pdfViewer, this, action);\n }\n return null;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The events.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseUp = function (evt) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var touches;\n var isAnnotResized = (this.action.toLowerCase().includes('resize') || this.action.toLowerCase().includes('connectorsegmentpoint'));\n var isAnnotationDrawn = (this.action === 'Drag' || isAnnotResized) || ((this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool) && (this.tool.dragging && this.tool.drawingObject));\n if (this.tool) {\n if (!this.inAction && evt.which !== 3) {\n if (this.action === 'Drag') {\n this.action = 'Select';\n var obj = findActiveElement(evt, this, this.pdfViewer);\n var isMultipleSelect = true;\n }\n }\n var isGroupAction = void 0;\n if (!(this.tool instanceof PolygonDrawingTool) && !(this.tool instanceof LineTool) && !(this.tool instanceof NodeDrawingTool)) {\n this.inAction = false;\n this.isMouseDown = false;\n }\n this.currentPosition = this.getMousePosition(evt);\n if (this.tool) {\n this.eventArgs.position = this.currentPosition;\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt, this.eventArgs.source);\n var ctrlKey = this.isMetaKey(evt);\n var info = { ctrlKey: evt.ctrlKey, shiftKey: evt.shiftKey };\n this.eventArgs.info = info;\n this.eventArgs.clickCount = evt.detail;\n this.tool.mouseUp(this.eventArgs);\n this.isAnnotationMouseDown = false;\n this.isFormFieldMouseDown = false;\n // eslint-disable-next-line max-len\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool) && !this.tool.dragging) {\n this.inAction = false;\n this.isMouseDown = false;\n }\n if (isAnnotationDrawn) {\n var obj = findActiveElement(evt, this, this.pdfViewer);\n // eslint-disable-next-line max-len\n if ((this.isShapeAnnotationModule() || this.isCalibrateAnnotationModule())) {\n this.pdfViewer.annotation.onShapesMouseup(obj, evt);\n }\n }\n this.isAnnotationDrawn = false;\n }\n }\n var target = evt.target;\n // eslint-disable-next-line max-len\n if (!touches && evt.cancelable && this.skipPreventDefault(target) && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n evt.preventDefault();\n }\n this.eventArgs = {};\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n * @param {HTMLElement} target - The target.\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.skipPreventDefault = function (target) {\n var isSkipped = false;\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) {\n isSkip = true;\n }\n // eslint-disable-next-line max-len\n if (target.parentElement && target.parentElement.className !== 'foreign-object' && !target.classList.contains('e-pv-radio-btn') && !target.classList.contains('e-pv-radiobtn-span') && !target.classList.contains('e-pv-checkbox-div') && !target.classList.contains('e-pdfviewer-formFields')\n && !target.classList.contains('e-pdfviewer-ListBox') && !target.classList.contains('e-pdfviewer-signatureformfields')\n && !((target).className === 'free-text-input' && (target).tagName === 'TEXTAREA')\n && !isSkip && !((target).className === 'e-pv-hyperlink')) {\n isSkipped = true;\n }\n return isSkipped;\n };\n PdfViewerBase.prototype.isMetaKey = function (evt) {\n return navigator.platform.match('Mac') ? evt.metaKey : evt.ctrlKey;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The events.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseDown = function (evt) {\n var _this = this;\n if (this.tool instanceof MoveTool && !(this.tool instanceof StampTool) && this.tool['inAction']) {\n this.diagramMouseUp(evt);\n if (evt.which === 1) {\n this.preventContextmenu = true;\n setTimeout(function () {\n _this.preventContextmenu = false;\n }, 200);\n }\n }\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var touches = null;\n touches = evt.touches;\n this.isMouseDown = true;\n this.isAnnotationAdded = false;\n this.currentPosition = this.prevPosition = this.getMousePosition(evt);\n this.eventArgs = {};\n var isStamp = false;\n if (this.pdfViewer.tool === 'Stamp') {\n this.pdfViewer.tool = '';\n isStamp = true;\n }\n var target;\n if (Browser.isDevice && this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n var obj = findActiveElement(evt, this, this.pdfViewer);\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && (obj && !(obj instanceof PdfFormFieldBase))) {\n evt.preventDefault();\n }\n if (this.pdfViewer.annotation && this.pdfViewer.enableStampAnnotations) {\n var stampModule = this.pdfViewer.annotationModule.stampAnnotationModule;\n if (stampModule && stampModule.isNewStampAnnot) {\n var stampObj = obj;\n if (!stampObj && this.pdfViewer.selectedItems.annotations[0]) {\n stampObj = this.pdfViewer.selectedItems.annotations[0];\n }\n if (stampObj) {\n this.isViewerMouseDown = false;\n stampObj.opacity = this.pdfViewer.stampSettings.opacity;\n this.isNewStamp = true;\n var opacity = void 0;\n if (stampObj.shapeAnnotationType === 'Image') {\n opacity = this.pdfViewer.customStampSettings.opacity;\n }\n else {\n opacity = this.pdfViewer.stampSettings.opacity;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(stampObj, { opacity: opacity });\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = false;\n if (stampObj.shapeAnnotationType === 'Image' && !this.isAlreadyAdded) {\n this.stampAdded = true;\n var stampName = stampObj.id;\n if (stampModule.currentStampAnnotation && stampModule.currentStampAnnotation.signatureName) {\n stampName = stampModule.currentStampAnnotation.signatureName;\n }\n var isSkip = false;\n for (var i = 0; i < this.customStampCollection.length; i++) {\n if (this.customStampCollection[parseInt(i.toString(), 10)].customStampName === stampName) {\n isSkip = true;\n break;\n }\n }\n if (isSkip) {\n stampName = stampObj.id;\n }\n stampName = stampModule.customStampName ? stampModule.customStampName : stampModule.currentStampAnnotation.signatureName;\n this.customStampCollection.push({ customStampName: stampName, customStampImageSource: stampObj.data });\n if (isBlazor()) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync(\"UpdateCustomStampCollection\", stampName, stampObj.data);\n }\n }\n if (this.pdfViewer.customStampSettings.enableCustomStamp && this.pdfViewer.customStampSettings.isAddToMenu) {\n this.stampAdded = true;\n }\n this.isAlreadyAdded = false;\n stampModule.updateDeleteItems(stampObj.pageIndex, stampObj, stampObj.opacity);\n stampModule.resetAnnotation();\n stampModule.isNewStampAnnot = false;\n }\n }\n }\n if (this.isNewSignatureAdded) {\n this.signatureCount++;\n this.currentSignatureAnnot = null;\n var signObject = obj;\n if (isNullOrUndefined(signObject) && this.pdfViewer.selectedItems.annotations[0]) {\n signObject = this.pdfViewer.selectedItems.annotations[0];\n }\n if (signObject) {\n this.signatureAdded = true;\n this.signatureModule.storeSignatureData(signObject.pageIndex, signObject);\n // eslint-disable-next-line\n var bounds = { left: signObject.bounds.x, top: signObject.bounds.y, width: signObject.bounds.width, height: signObject.bounds.height };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureAdd(signObject.pageIndex, signObject.signatureName, signObject.shapeAnnotationType, bounds, signObject.opacity, signObject.strokeColor, signObject.thickness, this.signatureModule.saveImageString);\n }\n this.isNewSignatureAdded = false;\n }\n if (this.pdfViewer.annotationModule) {\n var freeTextAnnotModule = this.pdfViewer.annotationModule.freeTextAnnotationModule;\n var canvasPaddingLeft = 5, canvasPaddingWidth = 10;\n // eslint-disable-next-line\n if (freeTextAnnotModule.isNewFreeTextAnnot === true) {\n var canvas = void 0;\n // eslint-disable-next-line max-len\n if (evt.target && (evt.target.id.indexOf('_text') > -1 || evt.target.id.indexOf('_annotationCanvas') > -1 || evt.target.classList.contains('e-pv-hyperlink')) && this.pdfViewer.annotation) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(evt);\n var diagram = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_4 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + canvasPaddingLeft, top_4 + canvasPaddingLeft, canvas1.width - canvasPaddingWidth, canvas1.height - canvasPaddingWidth);\n }\n }\n if (touches) {\n this.mouseX = touches[0].clientX;\n this.mouseY = touches[0].clientY;\n }\n if (canvas && canvas.containsPoint({ x: this.mouseX, y: this.mouseY }) && freeTextAnnotModule.isNewAddedAnnot) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(evt);\n if (!this.pdfViewer.freeTextSettings.enableAutoFit) {\n var zoomFactor = this.getZoomFactor();\n var width = this.currentPosition.x + (freeTextAnnotModule.defautWidth * zoomFactor);\n var pageWidth = this.getPageWidth(pageIndex);\n if (width >= pageWidth) {\n this.currentPosition.x = pageWidth - (freeTextAnnotModule.defautWidth * zoomFactor);\n this.currentPosition.x <= 0 ? this.currentPosition.x = canvasPaddingLeft : this.currentPosition.x;\n freeTextAnnotModule.defautWidth = (freeTextAnnotModule.defautWidth * zoomFactor) >= pageWidth ? pageWidth - canvasPaddingWidth : freeTextAnnotModule.defautWidth;\n }\n }\n freeTextAnnotModule.addInuptElemet(this.currentPosition, null, pageIndex);\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n // eslint-disable-next-line\n var annotModule = this.pdfViewer.toolbar.annotationToolbarModule;\n if (!isBlazor()) {\n annotModule.primaryToolbar.deSelectItem(annotModule.freeTextEditItem);\n }\n }\n evt.preventDefault();\n freeTextAnnotModule.isNewAddedAnnot = false;\n }\n }\n }\n var sourceElement = null;\n if (obj) {\n sourceElement = obj.wrapper.children[0];\n if (sourceElement) {\n target = obj;\n }\n }\n if (!this.tool || (this.tool && !this.tool.drawingObject)) {\n if (!isStamp) {\n this.action = this.findToolToActivate(obj, this.currentPosition);\n // eslint-disable-next-line\n if (obj && obj.annotationSettings && obj.annotationSettings.isLock) {\n if (this.action === 'Select') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n this.action = '';\n }\n }\n if (this.action === 'Drag') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Move', obj)) {\n this.action = 'Select';\n }\n }\n if (this.action === 'Rotate') {\n this.action = 'Select';\n }\n // eslint-disable-next-line max-len\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' || this.action === 'ResizeSouth' || // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Resize', obj)) {\n this.action = 'Select';\n }\n }\n }\n this.tool = this.getTool(this.action);\n if (!this.tool) {\n this.action = this.pdfViewer.tool || 'Select';\n this.tool = this.getTool(this.action);\n }\n }\n else {\n this.action = 'Select';\n this.tool = this.getTool(this.action);\n }\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt);\n this.eventArgs.position = this.currentPosition;\n if (this.tool) {\n this.isAnnotationMouseDown = false;\n this.isFormFieldMouseDown = false;\n this.isAnnotationMouseMove = false;\n this.isFormFieldMouseMove = false;\n this.tool.mouseDown(this.eventArgs);\n this.isAnnotationDrawn = true;\n this.signatureAdded = true;\n }\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.formFields.length === 1) {\n if (!isNullOrUndefined(this.pdfViewer.toolbar) && !isNullOrUndefined(this.pdfViewer.toolbar.formDesignerToolbarModule)) {\n this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n var signatureFieldAnnotation = this.pdfViewer.selectedItems.annotations.length === 1 ? this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id.split('_')[0] + '_content'] : null;\n if (!signatureFieldAnnotation) {\n signatureFieldAnnotation = this.pdfViewer.selectedItems.annotations.length === 1 ? this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id] : null;\n }\n // eslint-disable-next-line max-len\n if (this.eventArgs && this.eventArgs.source && (this.eventArgs.source.formFieldAnnotationType || signatureFieldAnnotation) && !this.pdfViewer.designerMode) {\n var currentObject = void 0;\n if (signatureFieldAnnotation) {\n currentObject = this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id.split('_')[0]];\n }\n else {\n currentObject = this.eventArgs.source;\n }\n if (!currentObject) {\n currentObject = this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === signatureFieldAnnotation.id; })];\n }\n if (currentObject) {\n // eslint-disable-next-line\n var field = {\n // eslint-disable-next-line max-len\n name: currentObject.name, id: currentObject.id, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line\n color: currentObject.color, value: currentObject.value, type: currentObject.formFieldAnnotationType ? currentObject.formFieldAnnotationType : currentObject.type, backgroundColor: currentObject.backgroundColor, alignment: currentObject.alignment\n };\n var target_1 = document.getElementById(currentObject.id);\n target_1 = target_1 ? target_1 : (document.getElementById(currentObject.id + '_content_html_element') ? document.getElementById(currentObject.id + '_content_html_element').children[0].children[0] : null);\n if (target_1) {\n this.currentTarget = target_1;\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', field, false, evt.button === 0);\n }\n }\n }\n this.initialEventArgs = { source: this.eventArgs.source, sourceWrapper: this.eventArgs.sourceWrapper };\n this.initialEventArgs.position = this.currentPosition;\n this.initialEventArgs.info = this.eventArgs.info;\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.exportAnnotationsAsObject = function () {\n var _this = this;\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.updateExportItem();\n if (isAnnotations) {\n return new Promise(function (resolve, reject) {\n _this.createRequestForExportAnnotations(true, AnnotationDataFormat.Json).then(function (value) {\n resolve(value);\n });\n });\n }\n }\n };\n /**\n * @private\n * @param {string} type - The type.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getItemFromSessionStorage = function (type) {\n if (this.isStorageExceed) {\n return this.formFieldStorage[this.documentId + type];\n }\n else {\n return window.sessionStorage.getItem(this.documentId + type);\n }\n };\n /**\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewerBase.prototype.setStyleToTextDiv = function (textDiv, left, top, fontHeight, width, height, isPrint) {\n var zoomvalue = this.getZoomFactor();\n if (isPrint) {\n zoomvalue = 1;\n textDiv.style.position = 'absolute';\n }\n textDiv.style.left = left * zoomvalue + 'px';\n textDiv.style.top = top * zoomvalue + 'px';\n textDiv.style.height = height * zoomvalue + 'px';\n textDiv.style.width = width * zoomvalue + 'px';\n textDiv.style.margin = '0px';\n if (fontHeight > 0) {\n textDiv.style.fontSize = fontHeight * zoomvalue + 'px';\n }\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.setItemInSessionStorage = function (formFieldsData, type) {\n // eslint-disable-next-line\n var formFieldsSize = Math.round(JSON.stringify(formFieldsData).length / 1024);\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (formFieldsSize > 4500) {\n this.isStorageExceed = true;\n if (this.pdfViewer.formFieldsModule) {\n if (!(this.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n this.isFormStorageExceed = true;\n }\n }\n }\n if (this.isStorageExceed) {\n this.formFieldStorage[this.documentId + type] = JSON.stringify(formFieldsData);\n }\n else if ((formFieldsSize + sessionSize) > 4500) {\n this.isStorageExceed = true;\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n this.isFormStorageExceed = true;\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n this.formFieldStorage[this.documentId + type] = JSON.stringify(formFieldsData);\n }\n else {\n window.sessionStorage.setItem(this.documentId + type, JSON.stringify(formFieldsData));\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.exportFormFieldsAsObject = function (formFieldDataFormat) {\n var _this = this;\n if (this.pdfViewer.formFieldsModule) {\n return new Promise(function (resolve, reject) {\n _this.createRequestForExportFormfields(true, formFieldDataFormat).then(function (value) {\n resolve(value);\n });\n });\n }\n };\n /**\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.importAnnotations = function (importData, annotationDataFormat, isXfdf) {\n if (this.pdfViewer.annotationModule) {\n this.createRequestForImportAnnotations(importData, annotationDataFormat, isXfdf);\n }\n };\n /**\n * @private\n * @param {AnnotationDataFormat} annotationDataFormat - The annotationDataFormat.\n * @returns {void}\n */\n PdfViewerBase.prototype.exportAnnotations = function (annotationDataFormat) {\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.updateExportItem();\n if (isAnnotations) {\n this.createRequestForExportAnnotations(false, annotationDataFormat);\n }\n }\n };\n /**\n * @param isObject\n * @param annotationDataFormat\n * @param isBase64String\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForExportAnnotations = function (isObject, annotationDataFormat, isBase64String) {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject;\n if (annotationDataFormat === 'Json') {\n // eslint-disable-next-line max-len\n jsonObject = { hashId: proxy.hashId, action: 'ExportAnnotations', pdfAnnotation: proxy.createAnnotationJsonData(), elementId: proxy.pdfViewer.element.id, annotationDataFormat: annotationDataFormat, uniqueId: proxy.documentId };\n proxy.pdfViewer.fireExportStart(jsonObject.pdfAnnotation);\n }\n else {\n jsonObject = _this.constructJsonDownload();\n jsonObject.annotationDataFormat = annotationDataFormat;\n // eslint-disable-next-line\n jsonObject['action'] = 'ExportAnnotations';\n proxy.pdfViewer.fireExportStart(jsonObject);\n }\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.exportAnnotations;\n proxy.exportAnnotationRequestHandler = new AjaxHandler(_this.pdfViewer);\n proxy.exportAnnotationRequestHandler.url = url;\n proxy.exportAnnotationRequestHandler.mode = true;\n proxy.exportAnnotationRequestHandler.responseType = 'text';\n proxy.exportAnnotationRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (data) {\n var isCancel = proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.exportAnnotations, data);\n if (isObject || (isBase64String && !isBlazor())) {\n if (data.split('base64,')[1]) {\n var exportObject = data;\n // eslint-disable-next-line \n var annotationJson = atob(data.split(',')[1]);\n if (isObject) {\n if (jsonObject.annotationDataFormat === 'Json') {\n exportObject = JSON.parse(annotationJson);\n }\n else {\n exportObject = annotationJson;\n }\n }\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n proxy.pdfViewer.fireExportSuccess(exportObject, proxy.pdfViewer.exportAnnotationFileName);\n }\n else {\n proxy.pdfViewer.fireExportSuccess(exportObject, proxy.pdfViewer.fileName);\n }\n proxy.updateDocumentAnnotationCollections();\n if (isBase64String) {\n resolve(data);\n }\n else {\n resolve(annotationJson);\n }\n }\n else {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n else {\n if (annotationDataFormat === 'Json') {\n if (data.split('base64,')[1]) {\n if (!isCancel) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/json');\n if (Browser.isIE || Browser.info.name === 'edge') {\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n // eslint-disable-next-line max-len\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.exportAnnotationFileName.split('.')[0] + '.json');\n }\n else {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.json');\n }\n }\n else {\n proxy.downloadExportFormat(blobUrl, annotationDataFormat);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n return data;\n }\n }\n else {\n if (isBlazor()) {\n var promise_2 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ExportFailed');\n promise_2.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n else {\n if (data.split('base64,')[1]) {\n if (!isCancel) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/vnd.adobe.xfdf');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.xfdf');\n }\n else {\n proxy.downloadExportFormat(blobUrl, annotationDataFormat);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n return data;\n }\n }\n else {\n if (isBlazor()) {\n var promise_3 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ExportFailed');\n promise_3.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n }\n }\n if (typeof data !== 'string') {\n try {\n if (typeof data === 'string') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.exportAnnotations);\n data = null;\n }\n }\n catch (error) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.exportAnnotations);\n data = null;\n }\n }\n }\n else {\n var fileName = void 0;\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n fileName = proxy.pdfViewer.exportAnnotationFileName;\n }\n else {\n fileName = proxy.pdfViewer.fileName;\n }\n proxy.pdfViewer.fireExportSuccess('Exported data saved in server side successfully', fileName);\n }\n };\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n });\n if (isObject || isBase64String) {\n return promise;\n }\n else {\n return true;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.updateModifiedDateToLocalDate = function (newData, annotationType) {\n if (newData[annotationType] && newData[annotationType].length > 0) {\n var data = newData[annotationType];\n if (data) {\n for (var j = 0; j < data.length; j++) {\n data[j].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[j].ModifiedDate);\n if (data[j].Comments) {\n for (var i = 0; i < data[j].Comments.length; i++) {\n data[j].Comments[i].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[j].Comments[i].ModifiedDate);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.convertUTCDateTimeToLocalDateTime = function (date) {\n var dateTime;\n // We have globalized the date and time based on the given locale.\n this.globalize = new Internationalization(this.pdfViewer.locale);\n if (date !== null && date !== undefined && date !== '') {\n dateTime = new Date(Date.parse(date + ' ' + 'UTC'));\n }\n else {\n var now = new Date();\n var now_utc = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n dateTime = new Date(now_utc);\n }\n var dateTimeValue = this.globalize.formatDate(dateTime, { format: this.pdfViewer.dateTimeFormat, type: 'dateTime' });\n return dateTimeValue;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForImportAnnotations = function (importData, annotationDataFormat, isXfdf) {\n var jsonObject;\n var proxy = null;\n proxy = this;\n if (typeof importData === 'string' && annotationDataFormat === 'Json' && importData.indexOf(\".json\") === -1) {\n importData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n importData = JSON.parse(decodeURIComponent(escape(atob(importData))));\n }\n if (typeof importData === 'object') {\n if (!isXfdf) {\n this.isJsonImported = true;\n }\n else {\n this.isJsonImported = false;\n }\n if (importData && importData.pdfAnnotation) {\n var newArray = Object.keys(importData.pdfAnnotation);\n for (var i = 0; i < newArray.length; i++) {\n var newData = importData.pdfAnnotation[newArray[i]];\n this.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n this.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n }\n proxy.reRenderAnnotations(importData.pdfAnnotation);\n proxy.isImportedAnnotation = true;\n proxy.updateDocumentEditedProperty(true);\n if (!this.isAddAnnotation) {\n proxy.pdfViewer.fireImportSuccess(importData.pdfAnnotation);\n }\n }\n else {\n proxy.pdfViewer.fireImportStart(importData);\n if (annotationDataFormat === 'Json') {\n // eslint-disable-next-line max-len\n jsonObject = { fileName: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId };\n }\n else {\n if (!isXfdf) {\n importData = btoa(importData);\n }\n importData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n // eslint-disable-next-line max-len\n jsonObject = { importedData: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId };\n }\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.importAnnotations;\n proxy.importAnnotationRequestHandler = new AjaxHandler(proxy.pdfViewer);\n proxy.importAnnotationRequestHandler.url = url;\n proxy.importAnnotationRequestHandler.mode = true;\n proxy.importAnnotationRequestHandler.responseType = 'text';\n proxy.importAnnotationRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importAnnotations);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewer.fireImportFailed(importData, proxy.pdfViewer.localeObj.getConstant('File not found'));\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importAnnotations);\n data = null;\n }\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.importAnnotations, data);\n if (data.pdfAnnotation) {\n for (var i = 0; i < Object.keys(data.pdfAnnotation).length; i++) {\n var newData = data.pdfAnnotation[i];\n proxy.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n proxy.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n proxy.reRenderAnnotations(data.pdfAnnotation);\n proxy.isImportedAnnotation = true;\n proxy.updateDocumentEditedProperty(true);\n proxy.pdfViewer.fireImportSuccess(data.pdfAnnotation);\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireImportFailed(importData, result.statusText);\n };\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireImportFailed(importData, result.statusText);\n };\n }\n };\n /**\n * @private\n * @param {string} errorDetails - The error details.\n * @returns {void}\n */\n PdfViewerBase.prototype.openImportExportNotificationPopup = function (errorDetails) {\n if (this.pdfViewer.showNotificationDialog) {\n this.textLayer.createNotificationPopup(errorDetails);\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.reRenderAnnotations = function (annotation) {\n if (annotation) {\n this.isImportAction = true;\n var count = 0;\n if (this.isImportedAnnotation) {\n this.importedAnnotation = this.combineImportedData(this.importedAnnotation, annotation);\n }\n else {\n if (this.pageCount > 0) {\n this.importedAnnotation = annotation;\n }\n }\n if (!this.isImportedAnnotation) {\n count = 0;\n }\n for (var i = 0; i < this.pageCount; i++) {\n if (annotation[parseInt(i.toString(), 10)]) {\n // eslint-disable-next-line\n var importPageCollections = [];\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n }\n var annotationCanvas = this.getElement('_annotationCanvas_' + i);\n if (annotationCanvas) {\n this.drawPageAnnotations(annotation[parseInt(i.toString(), 10)], i);\n if (this.isImportedAnnotation) {\n var isAdded = false;\n for (var j = 0; j < this.annotationPageList.length; j++) {\n if (this.annotationPageList[parseInt(j.toString(), 10)] === i) {\n isAdded = true;\n }\n }\n if (isAdded) {\n this.annotationPageList[parseInt(count.toString(), 10)] = i;\n count = count + 1;\n }\n }\n else {\n this.annotationPageList[parseInt(count.toString(), 10)] = i;\n count = count + 1;\n }\n }\n if (annotation[parseInt(i.toString(), 10)].textMarkupAnnotation && annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n if (textMarkupObject) {\n var annotObject = JSON.parse(textMarkupObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n importPageCollections.textMarkupAnnotation = annotation[parseInt(i.toString(), 10)].textMarkupAnnotation;\n if (annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateTextMarkupAnnotationCollections(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].shapeAnnotation && annotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n if (shapeObject) {\n var annotObject = JSON.parse(shapeObject);\n annotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n importPageCollections.shapeAnnotation = annotation[parseInt(i.toString(), 10)].shapeAnnotation;\n if (annotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].shapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.shapeAnnotationModule.updateShapeAnnotationCollections(annotation[parseInt(i.toString(), 10)].shapeAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].measureShapeAnnotation && annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n if (measureShapeObject) {\n var annotObject = JSON.parse(measureShapeObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n importPageCollections.measureShapeAnnotation = annotation[parseInt(i.toString(), 10)].measureShapeAnnotation;\n if (annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.measureAnnotationModule.updateMeasureAnnotationCollections(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].stampAnnotations && annotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n if (stampObject) {\n var annotObject = JSON.parse(stampObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n }\n annotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n importPageCollections.stampAnnotations = annotation[parseInt(i.toString(), 10)].stampAnnotations;\n if (annotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].stampAnnotations.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stampAnnotationModule.updateStampAnnotationCollections(annotation[parseInt(i.toString(), 10)].stampAnnotations[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation && annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n if (stickyObject) {\n var annotObject = JSON.parse(stickyObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n importPageCollections.stickyNotesAnnotation = annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation;\n if (annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateStickyNotesAnnotationCollections(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].freeTextAnnotation && annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n if (freeTextObject) {\n var annotObject = JSON.parse(freeTextObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n importPageCollections.freeTextAnnotation = annotation[parseInt(i.toString(), 10)].freeTextAnnotation;\n if (annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.freeTextAnnotationModule.updateFreeTextAnnotationCollections(annotation[parseInt(i.toString(), 10)].freeTextAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].signatureAnnotation && annotation[parseInt(i.toString(), 10)].signatureAnnotation.length !== 0) {\n if (signatureObject) {\n var annotObject = JSON.parse(signatureObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureAnnotation = this.checkSignatureCollections(annotObject, annotation[parseInt(i.toString(), 10)].signatureAnnotation, i);\n }\n importPageCollections.signatureAnnotation = annotation[parseInt(i.toString(), 10)].signatureAnnotation;\n if (annotation[parseInt(i.toString(), 10)].signatureAnnotation.length !== 0) {\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].signatureAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.signatureModule.updateSignatureCollections(annotation[parseInt(i.toString(), 10)].signatureAnnotation[parseInt(j.toString(), 10)], i), true);\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].signatureInkAnnotation && annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n if (inkObject) {\n var annotObject = JSON.parse(inkObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n importPageCollections.signatureInkAnnotation = annotation[parseInt(i.toString(), 10)].signatureInkAnnotation;\n if (annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.inkAnnotationModule.updateInkCollections(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n this.updateImportedAnnotationsInDocumentCollections(importPageCollections, i);\n }\n }\n if (this.pageCount > 0) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.stickyNotesAnnotationModule && !this.pdfViewer.annotationModule.stickyNotesAnnotationModule.isAnnotationRendered) {\n // eslint-disable-next-line\n var annotationCollection = this.createAnnotationsCollection();\n if (annotationCollection) {\n // eslint-disable-next-line max-len\n this.documentAnnotationCollections = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationsInDocumentCollections(this.importedAnnotation, annotationCollection);\n }\n }\n }\n }\n };\n /**\n * @param importedAnnotations\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateImportedAnnotationsInDocumentCollections = function (importedAnnotations, pageNumber) {\n if (this.documentAnnotationCollections) {\n // eslint-disable-next-line\n var documentAnnotationCollection = this.documentAnnotationCollections;\n // eslint-disable-next-line\n var pageCollections = documentAnnotationCollection[pageNumber];\n if (pageCollections) {\n if (importedAnnotations.textMarkupAnnotation && importedAnnotations.textMarkupAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.textMarkupAnnotation.length; i++) {\n pageCollections.textMarkupAnnotation.push(importedAnnotations.textMarkupAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.shapeAnnotation && importedAnnotations.shapeAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.shapeAnnotation.length; i++) {\n pageCollections.shapeAnnotation.push(importedAnnotations.shapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.measureShapeAnnotation && importedAnnotations.measureShapeAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.measureShapeAnnotation.length; i++) {\n pageCollections.measureShapeAnnotation.push(importedAnnotations.measureShapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.stampAnnotations && importedAnnotations.stampAnnotations.length !== 0) {\n for (var i = 0; i < importedAnnotations.stampAnnotations.length; i++) {\n pageCollections.stampAnnotations.push(importedAnnotations.stampAnnotations[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.stickyNotesAnnotation && importedAnnotations.stickyNotesAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.stickyNotesAnnotation.length; i++) {\n pageCollections.stickyNotesAnnotation.push(importedAnnotations.stickyNotesAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.freeTextAnnotation && importedAnnotations.freeTextAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.freeTextAnnotation.length; i++) {\n pageCollections.freeTextAnnotation.push(importedAnnotations.freeTextAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.signatureAnnotation && importedAnnotations.signatureAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.signatureAnnotation.length; i++) {\n pageCollections.signatureAnnotation.push(importedAnnotations.signatureAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.signatureInkAnnotation && importedAnnotations.signatureInkAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.signatureInkAnnotation.length; i++) {\n pageCollections.signatureInkAnnotation.push(importedAnnotations.signatureInkAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n this.documentAnnotationCollections[parseInt(pageNumber.toString(), 10)] = pageCollections;\n }\n }\n };\n /**\n * @param pageIndex\n * @param pageCollections\n * @param pageIndex\n * @param pageCollections\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkDocumentCollectionData = function (pageIndex, pageCollections) {\n // eslint-disable-next-line\n var importPageCollections;\n if (pageCollections) {\n importPageCollections = pageCollections;\n }\n else if (this.documentAnnotationCollections) {\n // eslint-disable-next-line\n var documetCollections = this.documentAnnotationCollections[pageIndex];\n if (documetCollections) {\n importPageCollections = cloneObject(documetCollections);\n }\n }\n if (importPageCollections) {\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n signatureObject = this.annotationStorage[this.documentId + '_annotations_sign'];\n }\n if (importPageCollections.textMarkupAnnotation && importPageCollections.textMarkupAnnotation.length !== 0) {\n if (textMarkupObject) {\n var annotationObject = JSON.parse(textMarkupObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.textMarkupAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.textMarkupAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.shapeAnnotation && importPageCollections.shapeAnnotation.length !== 0) {\n if (shapeObject) {\n var annotationObject = JSON.parse(shapeObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.shapeAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.shapeAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.measureShapeAnnotation && importPageCollections.measureShapeAnnotation.length !== 0) {\n if (measureShapeObject) {\n var annotationObject = JSON.parse(measureShapeObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.measureShapeAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.measureShapeAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.stampAnnotations && importPageCollections.stampAnnotations.length !== 0) {\n if (stampObject) {\n var annotationObject = JSON.parse(stampObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.stampAnnotations = this.findImportedAnnotations(annotationObject, importPageCollections.stampAnnotations, pageIndex);\n }\n }\n }\n if (importPageCollections.stickyNotesAnnotation && importPageCollections.stickyNotesAnnotation.length !== 0) {\n if (stickyObject) {\n var annotationObject = JSON.parse(stickyObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.stickyNotesAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.stickyNotesAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.freeTextAnnotation && importPageCollections.freeTextAnnotation.length !== 0) {\n if (freeTextObject) {\n var annotationObject = JSON.parse(freeTextObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.freeTextAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.freeTextAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.signatureInkAnnotation && importPageCollections.signatureInkAnnotation.length !== 0) {\n if (inkObject) {\n var annotationObject = JSON.parse(inkObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.signatureInkAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.signatureInkAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.signatureAnnotation && importPageCollections.signatureAnnotation.length !== 0) {\n if (signatureObject) {\n var annotationObject = JSON.parse(inkObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.signatureAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.signatureAnnotation, pageIndex);\n }\n }\n }\n return importPageCollections;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.findImportedAnnotations = function (annotationCollection, importAnnotations, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < importAnnotations.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].annotName === importAnnotations[parseInt(j.toString(), 10)].AnnotName) {\n importAnnotations.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return importAnnotations;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.drawPageAnnotations = function (annotation, pageIndex, isNewlyAdded) {\n if (isNewlyAdded) {\n annotation = annotation[parseInt(pageIndex.toString(), 10)];\n }\n if (annotation) {\n if (annotation.textMarkupAnnotation && annotation.textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (annotObject) {\n // eslint-disable-next-line max-len\n annotation.textMarkupAnnotation = this.checkAnnotationCollections(annotObject, annotation.textMarkupAnnotation, pageIndex);\n }\n }\n annotation.textMarkupAnnotation = this.checkAnnotationCommentsCollections(annotation.textMarkupAnnotation, pageIndex);\n if (annotation.textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, null, annotation.textMarkupAnnotation, null, true);\n }\n }\n if (annotation.shapeAnnotation && annotation.shapeAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.shapeAnnotation = this.checkAnnotationCollections(annotObject, annotation.shapeAnnotation, pageIndex);\n }\n annotation.shapeAnnotation = this.checkAnnotationCommentsCollections(annotation.shapeAnnotation, pageIndex);\n if (annotation.shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, annotation.shapeAnnotation, null, null, null, true);\n }\n }\n if (annotation.measureShapeAnnotation && annotation.measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.measureShapeAnnotation = this.checkAnnotationCollections(annotObject, annotation.measureShapeAnnotation, pageIndex);\n }\n annotation.measureShapeAnnotation = this.checkAnnotationCommentsCollections(annotation.measureShapeAnnotation, pageIndex);\n if (annotation.measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, annotation.measureShapeAnnotation, null, null, true);\n }\n }\n if (annotation.stampAnnotations && annotation.stampAnnotations.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.stampAnnotations = this.checkAnnotationCollections(annotObject, annotation.stampAnnotations, pageIndex);\n }\n annotation.stampAnnotations = this.checkAnnotationCommentsCollections(annotation.stampAnnotations, pageIndex);\n if (annotation.stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(annotation.stampAnnotations, pageIndex, null, true);\n }\n }\n if (annotation.stickyNotesAnnotation && annotation.stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.stickyNotesAnnotation = this.checkAnnotationCollections(annotObject, annotation.stickyNotesAnnotation, pageIndex);\n }\n annotation.stickyNotesAnnotation = this.checkAnnotationCommentsCollections(annotation.stickyNotesAnnotation, pageIndex);\n if (annotation.stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(annotation.stickyNotesAnnotation, pageIndex);\n }\n }\n if (annotation.freeTextAnnotation && annotation.freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.freeTextAnnotation = this.checkAnnotationCollections(annotObject, annotation.freeTextAnnotation, pageIndex);\n }\n annotation.freeTextAnnotation = this.checkAnnotationCommentsCollections(annotation.freeTextAnnotation, pageIndex);\n if (annotation.freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(annotation.freeTextAnnotation, pageIndex, true);\n }\n }\n if (annotation.signatureAnnotation && annotation.signatureAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n var annotObject = JSON.parse(storeObject);\n if (annotObject) {\n annotation.signatureAnnotation = this.checkSignatureCollections(annotObject, annotation.signatureAnnotation, pageIndex);\n }\n this.signatureModule.renderExistingSignature(annotation.signatureAnnotation, pageIndex, true);\n }\n if (annotation.signatureInkAnnotation && annotation.signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.signatureInkAnnotation = this.checkAnnotationCollections(annotObject, annotation.signatureInkAnnotation, pageIndex);\n }\n annotation.signatureInkAnnotation = this.checkAnnotationCommentsCollections(annotation.signatureInkAnnotation, pageIndex);\n if (annotation.signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(annotation.signatureInkAnnotation, pageIndex, true);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkSignatureCollections = function (annotationCollection, annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].signatureName === annotation[parseInt(j.toString(), 10)].SignatureName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationCollections = function (annotationCollection, annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].annotName === annotation[parseInt(j.toString(), 10)].AnnotName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationCommentsCollections = function (annotation, pageNumber) {\n if (this.annotationComments) {\n // eslint-disable-next-line\n var annotationCollections = this.annotationComments[pageNumber];\n annotationCollections = this.selectAnnotationCollections(annotationCollections);\n if (annotationCollections) {\n for (var i = 0; i < annotationCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (annotationCollections[parseInt(i.toString(), 10)].AnnotName === annotation[parseInt(j.toString(), 10)].AnnotName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n annotationCollections = null;\n }\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.selectAnnotationCollections = function (pageAnnotations) {\n // eslint-disable-next-line\n var pageCollections = [];\n if (pageAnnotations) {\n if (pageAnnotations.textMarkupAnnotation && pageAnnotations.textMarkupAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.textMarkupAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.textMarkupAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.shapeAnnotation && pageAnnotations.shapeAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.shapeAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.shapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.measureShapeAnnotation && pageAnnotations.measureShapeAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.measureShapeAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.measureShapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.stampAnnotations && pageAnnotations.stampAnnotations.length !== 0) {\n for (var i = 0; i < pageAnnotations.stampAnnotations.length; i++) {\n pageCollections.push(pageAnnotations.stampAnnotations[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.stickyNotesAnnotation && pageAnnotations.stickyNotesAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.stickyNotesAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.stickyNotesAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.freeTextAnnotation && pageAnnotations.freeTextAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.freeTextAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.freeTextAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.signatureInkAnnotation && pageAnnotations.signatureInkAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.signatureInkAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.signatureInkAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n }\n return pageCollections;\n };\n PdfViewerBase.prototype.saveImportedAnnotations = function () {\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n signatureObject = this.annotationStorage[this.documentId + '_annotations_sign'];\n }\n // eslint-disable-next-line max-len\n this.downloadCollections = { textMarkupObject: textMarkupObject, shapeObject: shapeObject, measureShapeObject: measureShapeObject, stampObject: stampObject, stickyObject: stickyObject, freeTextObject: freeTextObject, inkObject: inkObject, signatureObject: signatureObject };\n if (this.documentAnnotationCollections) {\n for (var i = 0; i < this.pageCount; i++) {\n if (this.documentAnnotationCollections[parseInt(i.toString(), 10)]) {\n // eslint-disable-next-line\n var pageCollections = cloneObject(this.documentAnnotationCollections[i]);\n pageCollections = this.checkDocumentCollectionData(i, pageCollections);\n this.savePageAnnotations(pageCollections, i);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.savePageAnnotations = function (annotation, pageIndex) {\n if (annotation.textMarkupAnnotation.length !== 0) {\n for (var s = 0; s < annotation.textMarkupAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveImportedTextMarkupAnnotations(annotation.textMarkupAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.shapeAnnotation.length !== 0) {\n for (var s = 0; s < annotation.shapeAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.shapeAnnotationModule.saveImportedShapeAnnotations(annotation.shapeAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.measureShapeAnnotation.length !== 0) {\n for (var s = 0; s < annotation.measureShapeAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.measureAnnotationModule.saveImportedMeasureAnnotations(annotation.measureShapeAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.stampAnnotations.length !== 0) {\n for (var s = 0; s < annotation.stampAnnotations.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.saveImportedStampAnnotations(annotation.stampAnnotations[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.stickyNotesAnnotation.length !== 0) {\n for (var s = 0; s < annotation.stickyNotesAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveImportedStickyNotesAnnotations(annotation.stickyNotesAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.freeTextAnnotation.length !== 0) {\n for (var s = 0; s < annotation.freeTextAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.saveImportedFreeTextAnnotations(annotation.freeTextAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.signatureInkAnnotation.length !== 0) {\n for (var s = 0; s < annotation.signatureInkAnnotation.length; s++) {\n this.pdfViewer.annotationModule.inkAnnotationModule.saveImportedInkAnnotation(annotation.signatureInkAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n };\n PdfViewerBase.prototype.updateDocumentAnnotationCollections = function () {\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n if (this.downloadCollections) {\n if (this.isStorageExceed) {\n this.annotationStorage[this.documentId + '_annotations_textMarkup'] = this.downloadCollections.textMarkupObject;\n this.annotationStorage[this.documentId + '_annotations_shape'] = this.downloadCollections.shapeObject;\n this.annotationStorage[this.documentId + '_annotations_shape_measure'] = this.downloadCollections.measureShapeObject;\n this.annotationStorage[this.documentId + '_annotations_stamp'] = this.downloadCollections.stampObject;\n this.annotationStorage[this.documentId + '_annotations_sticky'] = this.downloadCollections.stickyObject;\n this.annotationStorage[this.documentId + '_annotations_freetext'] = this.downloadCollections.freeTextObject;\n this.annotationStorage[this.documentId + '_annotations_ink'] = this.downloadCollections.inkObject;\n }\n else {\n if (this.downloadCollections.textMarkupObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_textMarkup', this.downloadCollections.textMarkupObject);\n }\n if (this.downloadCollections.shapeObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_shape', this.downloadCollections.shapeObject);\n }\n if (this.downloadCollections.measureShapeObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_shape_measure', this.downloadCollections.measureShapeObject);\n }\n if (this.downloadCollections.stampObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_stamp', this.downloadCollections.stampObject);\n }\n if (this.downloadCollections.stickyObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_sticky', this.downloadCollections.stickyObject);\n }\n if (this.downloadCollections.freeTextObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_freetext', this.downloadCollections.freeTextObject);\n }\n if (this.downloadCollections.inkObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_ink', this.downloadCollections.inkObject);\n }\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAnnotationJsonData = function () {\n // eslint-disable-next-line\n var annotationCollection = {};\n var textMarkupAnnotationCollection;\n var shapeAnnotations;\n var calibrateAnnotations;\n var stampAnnotationCollection;\n var stickyAnnotationCollection;\n var freeTextAnnotationCollection;\n var signaturCollection;\n var signaturInkCollection;\n this.saveImportedAnnotations();\n if (this.isTextMarkupAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n textMarkupAnnotationCollection = this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveTextMarkupAnnotations();\n }\n if (this.isShapeAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n shapeAnnotations = this.pdfViewer.annotationModule.shapeAnnotationModule.saveShapeAnnotations();\n }\n if (this.isCalibrateAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n calibrateAnnotations = this.pdfViewer.annotationModule.measureAnnotationModule.saveMeasureShapeAnnotations();\n }\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line max-len\n stampAnnotationCollection = this.pdfViewer.annotationModule.stampAnnotationModule.saveStampAnnotations();\n }\n if (this.isCommentAnnotationModule()) {\n // eslint-disable-next-line max-len\n stickyAnnotationCollection = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveStickyAnnotations();\n }\n if (this.isFreeTextAnnotationModule()) {\n // eslint-disable-next-line max-len\n freeTextAnnotationCollection = this.pdfViewer.annotationModule.freeTextAnnotationModule.saveFreeTextAnnotations();\n }\n if (this.isInkAnnotationModule()) {\n // eslint-disable-next-line\n signaturInkCollection = this.pdfViewer.annotationModule.inkAnnotationModule.saveInkSignature();\n }\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n signaturCollection = this.signatureModule.saveSignature();\n }\n else {\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pageCount; j++) {\n annotations[parseInt(j.toString(), 10)] = [];\n }\n signaturCollection = JSON.stringify(annotations);\n }\n for (var s = 0; s < this.pageCount; s++) {\n // eslint-disable-next-line max-len\n var annotation = {\n textMarkupAnnotation: JSON.parse(textMarkupAnnotationCollection)[parseInt(s.toString(), 10)], shapeAnnotation: JSON.parse(shapeAnnotations)[parseInt(s.toString(), 10)],\n measureShapeAnnotation: JSON.parse(calibrateAnnotations)[parseInt(s.toString(), 10)], stampAnnotations: JSON.parse(stampAnnotationCollection)[parseInt(s.toString(), 10)],\n // eslint-disable-next-line max-len\n stickyNotesAnnotation: JSON.parse(stickyAnnotationCollection)[parseInt(s.toString(), 10)], freeTextAnnotation: JSON.parse(freeTextAnnotationCollection)[parseInt(s.toString(), 10)], signatureAnnotation: JSON.parse(signaturCollection)[parseInt(s.toString(), 10)], signatureInkAnnotation: JSON.parse(signaturInkCollection)[parseInt(s.toString(), 10)]\n };\n annotationCollection[parseInt(s.toString(), 10)] = annotation;\n }\n return JSON.stringify(annotationCollection);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.combineImportedData = function (excistingImportAnnotation, newlyImportAnnotation) {\n for (var i = 0; i < this.pageCount; i++) {\n if (newlyImportAnnotation[parseInt(i.toString(), 10)]) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)]) {\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations && newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations, newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation;\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, shapeAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation,\n // eslint-disable-next-line max-len\n measureShapeAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, stampAnnotations: newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations,\n // eslint-disable-next-line max-len\n stickyNotesAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, freeTextAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation,\n signatureInkAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation\n };\n excistingImportAnnotation[parseInt(i.toString(), 10)] = annotation;\n }\n }\n }\n return excistingImportAnnotation;\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.updateExportItem = function () {\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n var isSignatureEditable = false;\n // eslint-disable-next-line\n var inkAnnotationObjct = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (signatureObject) {\n isSignatureEditable = true;\n }\n }\n // eslint-disable-next-line max-len\n if (shapeObject || measureObject || stampObject || stickyObject || textMarkupObject || freeTextObject || this.isImportAction || this.isStorageExceed || isSignatureEditable || inkAnnotationObjct) {\n return true;\n }\n else {\n return false;\n }\n };\n PdfViewerBase.prototype.isFreeTextAnnotation = function (annotations) {\n var resut = false;\n if (annotations && annotations.length > 0) {\n resut = annotations.some(function (s) { return s.shapeAnnotationType === 'FreeText' && s.subject === 'Text Box'; });\n }\n return resut;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkImportedData = function (existingCollection, newCollection, pageIndex) {\n for (var i = 0; i < existingCollection.length; i++) {\n for (var j = 0; j < newCollection.length; j++) {\n if (existingCollection[parseInt(i.toString(), 10)].AnnotName === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n var len = this.pdfViewer.annotationCollection.length;\n for (var x = 0; x < len; x++) {\n if (this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].annotationId === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n // To update the comment panel values in a collections while importing the annotation with the same name. (EJ2-62092)\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].comments = this.pdfViewer.annotationModule.getAnnotationComments(newCollection[parseInt(j.toString(), 10)].Comments, newCollection[parseInt(j.toString(), 10)], newCollection[parseInt(j.toString(), 10)].Author);\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].review = { state: newCollection[parseInt(j.toString(), 10)].State, stateModel: newCollection[parseInt(j.toString(), 10)].StateModel, modifiedDate: newCollection[parseInt(j.toString(), 10)].ModifiedDate, author: newCollection[parseInt(j.toString(), 10)].Author };\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].note = newCollection[parseInt(j.toString(), 10)].Note;\n var annot = this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)];\n if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"shape\" && this.pdfViewer.annotationModule.shapeAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].shapeAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_shape\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"textMarkup\" && this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].textMarkupAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_textMarkup\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"shape_measure\" && this.pdfViewer.annotationModule.measureAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].measureShapeAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_shape_measure\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"stamp\" && this.pdfViewer.annotationModule.stampAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].stampAnnotations[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_stamp\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"freeText\" && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].freeTextAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_freetext\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"ink\" && this.pdfViewer.annotationModule.inkAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].signatureInkAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_ink\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"sticky\") {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].stickyNotesAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_sticky\");\n }\n break;\n }\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createCommentControlPanel(newCollection[parseInt(j.toString(), 10)], (pageIndex + 1), null, null, true);\n newCollection.splice(j, 1);\n j = j - 1;\n }\n }\n }\n if (this.annotationComments) {\n // eslint-disable-next-line\n var annotationCollections = this.annotationComments[pageIndex];\n annotationCollections = this.selectAnnotationCollections(annotationCollections);\n if (annotationCollections) {\n for (var i = 0; i < annotationCollections.length; i++) {\n for (var j = 0; j < newCollection.length; j++) {\n if (annotationCollections[parseInt(i.toString(), 10)].AnnotName === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n newCollection.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n }\n return newCollection;\n };\n // To update the comment panel values in a session storage while importing the annotation with the same name. (EJ2-62092)\n PdfViewerBase.prototype.updateAnnotationsInSessionStorage = function (newCollection, annot, type) {\n var annotation = window.sessionStorage.getItem(this.documentId + type);\n var annotObject = JSON.parse(annotation);\n if (annotObject) {\n for (var b = 0; b < annotObject.length; b++) {\n if (annotObject[parseInt(b.toString(), 10)].annotations) {\n for (var z = 0; z < annotObject[parseInt(b.toString(), 10)].annotations.length; z++) {\n if (annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].annotName === newCollection.AnnotName) {\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].comments = annot.comments;\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].review = annot.review;\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].note = annot.note;\n break;\n }\n }\n }\n }\n window.sessionStorage.setItem(this.documentId + type, JSON.stringify(annotObject));\n }\n };\n /**\n * @param points\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationWidth = function (points) {\n var width = 0;\n var height = 0;\n var minWidth;\n var maxWidth;\n var minHeight;\n var maxHeight;\n for (var i = 0; i < points.length; i++) {\n if (!minWidth) {\n minWidth = points[parseInt(i.toString(), 10)].x;\n maxWidth = points[parseInt(i.toString(), 10)].x;\n minHeight = points[parseInt(i.toString(), 10)].y;\n maxHeight = points[parseInt(i.toString(), 10)].y;\n }\n else {\n if (minWidth > points[parseInt(i.toString(), 10)].x) {\n minWidth = points[parseInt(i.toString(), 10)].x;\n }\n else if (maxWidth < points[parseInt(i.toString(), 10)].x) {\n maxWidth = points[parseInt(i.toString(), 10)].x;\n }\n if (minHeight > points[parseInt(i.toString(), 10)].y) {\n minHeight = points[parseInt(i.toString(), 10)].y;\n }\n else if (maxHeight < points[parseInt(i.toString(), 10)].y) {\n maxHeight = points[parseInt(i.toString(), 10)].y;\n }\n }\n }\n width = maxWidth - minWidth;\n height = maxHeight - minHeight;\n return { width: width, height: height };\n };\n PdfViewerBase.prototype.deleteAnnotations = function () {\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotations = [];\n this.pdfViewer.zIndexTable = [];\n this.pdfViewer.annotationCollection = [];\n this.pdfViewer.signatureCollection = [];\n // eslint-disable-next-line\n var annotationCollection = this.createAnnotationsCollection();\n this.annotationComments = annotationCollection;\n this.documentAnnotationCollections = annotationCollection;\n this.annotationRenderredList = [];\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n for (var i = 0; i < this.pageCount; i++) {\n this.pdfViewer.annotationModule.renderAnnotations(i, null, null, null);\n this.pdfViewer.renderDrawing(undefined, i);\n this.pdfViewer.clearSelection(i);\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + (i + 1));\n if (accordionContent) {\n accordionContent.remove();\n }\n // eslint-disable-next-line max-len\n var accordionContentContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer');\n if (accordionContentContainer) {\n if (accordionContentContainer.childElementCount === 0) {\n accordionContentContainer.style.display = 'none';\n if (document.getElementById(this.pdfViewer.element.id + '_commentsPanelText')) {\n // eslint-disable-next-line max-len\n this.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], false);\n document.getElementById(this.pdfViewer.element.id + '_commentsPanelText').style.display = 'block';\n }\n }\n }\n }\n this.isImportedAnnotation = false;\n this.isImportAction = false;\n this.importedAnnotation = [];\n this.annotationPageList = [];\n this.pdfViewer.annotationModule.freeTextAnnotationModule.freeTextPageNumbers = [];\n this.pdfViewer.annotationModule.stampAnnotationModule.stampPageNumber = [];\n this.pdfViewer.annotation.inkAnnotationModule.inkAnnotationindex = [];\n this.isAnnotationCollectionRemoved = true;\n }\n };\n /**\n * @param pageNumber\n * @param isObject\n * @param pageNumber\n * @param isObject\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAnnotationsCollection = function (pageNumber, isObject) {\n // eslint-disable-next-line\n var annotationCollectionList = [];\n if (!isObject) {\n for (var i = 0; i < this.pageCount; i++) {\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: [], shapeAnnotation: [], measureShapeAnnotation: [], stampAnnotations: [], stickyNotesAnnotation: [], freeTextAnnotation: [], signatureAnnotation: [], signatureInkAnnotation: []\n };\n annotationCollectionList.push(annotation);\n }\n }\n else {\n annotationCollectionList = {};\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: [], shapeAnnotation: [], measureShapeAnnotation: [], stampAnnotations: [], stickyNotesAnnotation: [], freeTextAnnotation: [], signatureAnnotation: [], signatureInkAnnotation: []\n };\n annotationCollectionList[parseInt(pageNumber.toString(), 10)] = annotation;\n }\n return annotationCollectionList;\n };\n /**\n * @param importAnnotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.addAnnotation = function (importAnnotation) {\n // eslint-disable-next-line\n var pdfAnnotation = {};\n // eslint-disable-next-line\n var documentCollections;\n if (importAnnotation) {\n var isAnnotationObject = false;\n var annotationCount = 1;\n if (importAnnotation.shapeAnnotationType || importAnnotation.author) {\n isAnnotationObject = true;\n documentCollections = this.createAnnotationsCollection(importAnnotation.pageNumber, true);\n }\n else {\n if (importAnnotation.length) {\n annotationCount = importAnnotation.length;\n documentCollections = this.createAnnotationsCollection();\n }\n else {\n isAnnotationObject = true;\n documentCollections = this.createAnnotationsCollection(importAnnotation.pageNumber, true);\n }\n }\n for (var a = 0; a < annotationCount; a++) {\n // eslint-disable-next-line\n var annotation = void 0;\n if (isAnnotationObject) {\n annotation = importAnnotation;\n }\n else {\n annotation = importAnnotation[parseInt(a.toString(), 10)];\n }\n // eslint-disable-next-line\n var newAnnotation = {};\n newAnnotation.ShapeAnnotationType = annotation.shapeAnnotationType;\n newAnnotation.AnnotationAddMode = annotation.annotationAddMode;\n newAnnotation.Author = annotation.author;\n newAnnotation.AnnotationSelectorSettings = annotation.annotationSelectorSettings;\n newAnnotation.AnnotationSettings = annotation.annotationSettings;\n newAnnotation.PageNumber = annotation.pageNumber;\n newAnnotation.ModifiedDate = annotation.modifiedDate;\n newAnnotation.Subject = annotation.subject;\n newAnnotation.Note = annotation.note;\n newAnnotation.AnnotName = annotation.annotationId;\n newAnnotation.IsCommentLock = annotation.isCommentLock;\n newAnnotation.Comments = annotation.comments;\n if (annotation.comments && annotation.comments.length > 0) {\n // eslint-disable-next-line\n var comments = [];\n for (var i = 0; i < annotation.comments.length; i++) {\n comments.push(this.updateComments(annotation, annotation.comments[parseInt(i.toString(), 10)]));\n }\n newAnnotation.Comments = comments;\n }\n if (annotation.review) {\n newAnnotation.State = annotation.review.state;\n newAnnotation.StateModel = annotation.review.stateModel;\n }\n newAnnotation.CustomData = annotation.customData;\n newAnnotation.Opacity = annotation.opacity;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n newAnnotation.AnnotType = 'textMarkup';\n newAnnotation.Color = annotation.color;\n newAnnotation.IsMultiSelect = annotation.isMultiSelect;\n newAnnotation.TextMarkupAnnotationType = annotation.textMarkupAnnotationType;\n newAnnotation.TextMarkupContent = annotation.textMarkupContent;\n newAnnotation.TextMarkupStartIndex = annotation.textMarkupStartIndex;\n newAnnotation.TextMarkupEndIndex = annotation.textMarkupEndIndex;\n if (annotation.rect) {\n newAnnotation.Rect = this.convertBounds(annotation.rect, true);\n }\n if (annotation.bounds && annotation.bounds.length >= 1) {\n // eslint-disable-next-line\n var bounds = new Array();\n for (var i = 0; i < annotation.bounds.length; i++) {\n bounds.push(this.convertBounds(annotation.bounds[parseInt(i.toString(), 10)]));\n }\n newAnnotation.Bounds = bounds;\n }\n documentCollections[annotation.pageNumber].textMarkupAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'sticky') {\n newAnnotation.AnnotType = 'sticky';\n newAnnotation.Icon = 'Comment';\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.Color = annotation.color;\n documentCollections[annotation.pageNumber].stickyNotesAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'FreeText') {\n newAnnotation.AnnotType = 'freeText';\n newAnnotation.Name = annotation.annotationId;\n newAnnotation.MarkupText = annotation.dynamicText;\n newAnnotation.Text = annotation.dynamicText;\n newAnnotation.Note = annotation.dynamicText;\n newAnnotation.TextAlign = annotation.textAlign;\n newAnnotation.Thickness = annotation.thicknes;\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.FontColor = annotation.fontColor;\n newAnnotation.FontSize = annotation.fontSize;\n newAnnotation.FontFamily = annotation.fontFamily;\n newAnnotation.Rotate = annotation.rotateAngle;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n // eslint-disable-next-line max-len\n newAnnotation.Font = { 'Name': annotation.fontFamily, 'Size': annotation.fontSize, 'Bold': annotation.font.isBold, 'Italic': annotation.font.isItalic, 'Strikeout': annotation.font.isStrikeout, 'Underline': annotation.font.isUnderline };\n documentCollections[annotation.pageNumber].freeTextAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'stamp') {\n newAnnotation.AnnotType = 'stamp';\n newAnnotation.Icon = annotation.icon;\n newAnnotation.isDynamic = false;\n newAnnotation.Rect = this.convertBounds(annotation.bounds, false, true);\n newAnnotation.RotateAngle = annotation.rotateAngle;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.StampAnnotationType = annotation.stampAnnotationType;\n newAnnotation.CreationDate = annotation.creationDate;\n if (annotation.stampAnnotationType === 'image') {\n // eslint-disable-next-line\n var apperarance = [];\n // eslint-disable-next-line\n var imageData = { 'imagedata': annotation.stampAnnotationPath };\n apperarance.push(imageData);\n newAnnotation.Apperarance = apperarance;\n }\n if (annotation.isDynamicStamp) {\n newAnnotation.IsDynamic = true;\n newAnnotation.StrokeColor = annotation.stampFillcolor;\n // eslint-disable-next-line\n var apperarance = [];\n // eslint-disable-next-line\n var imageData = { 'type': 'string', 'text': annotation.dynamicText, 'currentFontname': '95b303ab-d397-438a-83af-e2ff8a9900f1', 'baseFontName': 'Helvetica-BoldOblique', 'fontSize': 10, 'isImport': true };\n apperarance.push(imageData);\n newAnnotation.Apperarance = apperarance;\n }\n documentCollections[annotation.pageNumber].stampAnnotations.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'Ink' || annotation.shapeAnnotationType === 'Signature') {\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.Thickness = annotation.thickness;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.PathData = annotation.data;\n newAnnotation.pageIndex = annotation.pageNumber;\n if (annotation.shapeAnnotationType === 'Ink') {\n newAnnotation.AnnotType = 'Ink';\n newAnnotation.IsPathData = true;\n documentCollections[annotation.pageNumber].signatureInkAnnotation.push(newAnnotation);\n }\n if (annotation.shapeAnnotationType === 'Signature') {\n newAnnotation.AnnotType = 'Signature';\n newAnnotation.SignatureName = annotation.annotationId;\n newAnnotation.IsSignature = true;\n documentCollections[annotation.pageNumber].signatureAnnotation.push(newAnnotation);\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'LineWidthArrowHead' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Polygon' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Oval' || annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Ellipse') {\n newAnnotation.AnnotType = 'shape';\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.Thickness = annotation.thickness;\n newAnnotation.BorderStyle = annotation.borderStyle;\n newAnnotation.BorderDashArray = annotation.borderDashArray;\n newAnnotation.RotateAngle = annotation.rotateAngle;\n newAnnotation.IsCloudShape = annotation.isCloudShape;\n newAnnotation.CloudIntensity = annotation.cloudIntensity;\n newAnnotation.RectangleDifference = annotation.rectangleDifference;\n newAnnotation.LineHeadStart = annotation.lineHeadStart;\n newAnnotation.LineHeadEnd = annotation.lineHeadEnd;\n newAnnotation.IsLocked = annotation.isLocked;\n newAnnotation.EnableShapeLabel = annotation.enableShapeLabel;\n newAnnotation.LabelContent = annotation.labelContent;\n newAnnotation.LabelFillColor = annotation.labelFillColor;\n newAnnotation.LabelBorderColor = annotation.labelBorderColor;\n newAnnotation.FontColor = annotation.fontColor;\n newAnnotation.FontSize = annotation.fontSize;\n newAnnotation.LabelBounds = this.convertBounds(annotation.labelBounds);\n newAnnotation.LabelSettings = annotation.labelSettings;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.LeaderLength = annotation.leaderLength;\n newAnnotation.LeaderLineExtenstion = annotation.leaderLineExtension;\n if (annotation.vertexPoints && annotation.vertexPoints.length >= 1) {\n // eslint-disable-next-line\n var points = new Array();\n for (var i = 0; i < annotation.vertexPoints.length; i++) {\n points.push(this.convertVertexPoints(annotation.vertexPoints[parseInt(i.toString(), 10)]));\n }\n newAnnotation.VertexPoints = points;\n }\n newAnnotation.EnableShapeLabel = annotation.enableShapeLabel;\n // eslint-disable-next-line max-len\n if (annotation.subject === 'Distance calculation' || annotation.subject === 'Perimeter calculation' || annotation.subject === 'Area calculation' || annotation.subject === 'Radius calculation' || annotation.subject === 'Volume calculation') {\n newAnnotation.AnnotType = 'shape_measure';\n // eslint-disable-next-line\n var calibrate = annotation.calibrate;\n if (calibrate) {\n // eslint-disable-next-line\n newAnnotation.Calibrate = {\n 'Ratio': calibrate.ratio, 'X': [{ 'Unit': calibrate.x[0].unit, 'ConversionFactor': calibrate.x[0].conversionFactor, 'FractionalType': calibrate.x[0].fractionalType, 'Denominator': calibrate.x[0].denominator, 'FormatDenominator': calibrate.x[0].formatDenominator }],\n // eslint-disable-next-line\n 'Distance': [{ 'Unit': calibrate.distance[0].unit, 'ConversionFactor': calibrate.distance[0].conversionFactor, 'FractionalType': calibrate.distance[0].fractionalType, 'Denominator': calibrate.distance[0].denominator, 'FormatDenominator': calibrate.distance[0].formatDenominator }],\n // eslint-disable-next-line\n 'Area': [{ 'Unit': calibrate.area[0].unit, 'ConversionFactor': calibrate.area[0].conversionFactor, 'FractionalType': calibrate.area[0].fractionalType, 'Denominator': calibrate.area[0].denominator, 'FormatDenominator': calibrate.area[0].formatDenominator }],\n // eslint-disable-next-line\n 'Angle': null, 'Volume': null, 'TargetUnitConversion': calibrate.targetUnitConversion, 'Depth': calibrate.depth\n };\n }\n newAnnotation.Indent = annotation.indent;\n newAnnotation.Caption = annotation.caption;\n newAnnotation.CaptionPosition = annotation.captionPosition;\n newAnnotation.LeaderLineExtension = annotation.leaderLineExtension;\n newAnnotation.LeaderLength = annotation.leaderLength;\n newAnnotation.LeaderLineOffset = annotation.leaderLineOffset;\n documentCollections[annotation.pageNumber].measureShapeAnnotation.push(newAnnotation);\n }\n else {\n documentCollections[annotation.pageNumber].shapeAnnotation.push(newAnnotation);\n }\n }\n }\n }\n pdfAnnotation.pdfAnnotation = documentCollections;\n this.pdfViewer.importAnnotation(pdfAnnotation);\n }\n };\n /**\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.convertBounds = function (bounds, isRect, isStamp) {\n if (bounds) {\n if (isRect) {\n var left = bounds.left ? bounds.left : bounds.Left ? bounds.Left : 0;\n var right = bounds.right ? bounds.right : bounds.Right ? bounds.Right : 0;\n var bottom = bounds.bottom ? bounds.bottom : bounds.Bottom ? bounds.Bottom : 0;\n var top_5 = bounds.top ? bounds.top : bounds.Top ? bounds.Top : 0;\n return { left: left, right: right, bottom: bottom, top: top_5 };\n }\n else {\n var x = bounds.x ? bounds.x : bounds.left ? bounds.left : bounds.Left ? bounds.Left : 0;\n var y = bounds.y ? bounds.y : bounds.top ? bounds.top : bounds.Top ? bounds.Top : 0;\n var width = bounds.width ? bounds.width : bounds.Width ? bounds.Width : 0;\n var height = bounds.height ? bounds.height : bounds.Height ? bounds.Height : 0;\n if (isStamp) {\n return { X: this.ConvertPixelToPoint(x), Y: this.ConvertPixelToPoint(y), Left: this.ConvertPixelToPoint(x), Top: this.ConvertPixelToPoint(y), Height: this.ConvertPixelToPoint(height), Width: this.ConvertPixelToPoint(width) };\n }\n else {\n return { X: x, Y: y, Left: x, Top: y, Height: height, Width: width };\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.ConvertPixelToPoint = function (number) {\n return (number * (72 / 96));\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.convertVertexPoints = function (points) {\n if (points) {\n var x = points.x ? points.x : points.X ? points.X : 0;\n var y = points.y ? points.y : points.Y ? points.Y : 0;\n return { X: x, Y: y, Left: x, Top: y };\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateComments = function (annotation, comments) {\n if (annotation && comments) {\n // eslint-disable-next-line\n var newAnnotation = {};\n newAnnotation.ShapeAnnotationType = annotation.shapeAnnotationType;\n newAnnotation.Author = comments.author;\n newAnnotation.AnnotationSelectorSettings = annotation.annotationSelectorSettings;\n newAnnotation.AnnotationSettings = annotation.annotationSettings;\n newAnnotation.PageNumber = annotation.pageNumber;\n newAnnotation.ModifiedDate = comments.modifiedDate;\n newAnnotation.Subject = annotation.subject;\n newAnnotation.Note = comments.note;\n newAnnotation.AnnotName = comments.annotName;\n newAnnotation.Comments = comments.comments;\n newAnnotation.State = comments.review.state;\n newAnnotation.StateModel = comments.review.stateModel;\n newAnnotation.CustomData = annotation.customData;\n newAnnotation.IsLock = comments.isLock;\n return newAnnotation;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.removeFocus = function () {\n if (isBlazor()) {\n // eslint-disable-next-line\n var currentPageContainer = this.pdfViewer.element.querySelector('#' + this.pdfViewer.element.id + '_totalPage');\n // eslint-disable-next-line max-len\n if (currentPageContainer && currentPageContainer.firstElementChild && currentPageContainer.firstElementChild.firstElementChild) {\n currentPageContainer.firstElementChild.firstElementChild.blur();\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateDocumentEditedProperty = function (isEdited) {\n this.pdfViewer.allowServerDataBinding = true;\n this.pdfViewer.isDocumentEdited = isEdited;\n this.pdfViewer.allowServerDataBinding = false;\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.getWindowDevicePixelRatio = function () {\n var devicePixelRatio = window.devicePixelRatio;\n if (!Browser.isDevice) {\n return devicePixelRatio;\n }\n else {\n return devicePixelRatio = 2;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.getZoomRatio = function (zoom) {\n var zoomFactor = this.getZoomFactor();\n var zoomValue = zoom ? zoom : 1;\n var ratio;\n var devicePixelRatio = this.getWindowDevicePixelRatio();\n if (!Browser.isDevice || (Browser.isDevice && zoomFactor <= 0.7)) {\n ratio = zoomValue * devicePixelRatio;\n }\n else {\n ratio = zoomValue;\n }\n return ratio;\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.importJsonForRotatedDocuments = function (Rotate, pageNumber, bounds, originalRotation) {\n // eslint-disable-next-line\n var rotateAngle = Math.abs(Rotate);\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n //originalRotation = !isNullOrUndefined(originalRotation) ? originalRotation : pageDetails.rotation;\n if (originalRotation !== pageDetails.rotation) {\n rotateAngle = this.getRotationAngle(originalRotation, pageNumber);\n this.isPageRotated = true;\n }\n else {\n rotateAngle = 0;\n this.isPageRotated = false;\n }\n if (rotateAngle === 1) {\n return { X: pageDetails.width - bounds.Y - bounds.Height, Y: bounds.X, Height: bounds.Width, Width: bounds.Height };\n }\n else if (rotateAngle === 2) {\n return { X: pageDetails.width - bounds.X - bounds.Width, Y: pageDetails.height - bounds.Y - bounds.Height, Height: bounds.Height, Width: bounds.Width };\n }\n else if (rotateAngle === 3) {\n return { X: bounds.Y, Y: pageDetails.height - bounds.X - bounds.Width, Height: bounds.Width, Width: bounds.Height };\n }\n else {\n return bounds;\n }\n };\n PdfViewerBase.prototype.getRotationAngle = function (originalRotation, pageNumber) {\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n originalRotation = Math.abs(originalRotation);\n var rotateAngle;\n if (originalRotation === 0) {\n return rotateAngle = pageDetails.rotation;\n }\n else if (originalRotation === 1 || originalRotation === 90) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 2) {\n return rotateAngle = 1;\n }\n else if (pageDetails.rotation === 3) {\n return rotateAngle = 2;\n }\n }\n else if (originalRotation === 2 || originalRotation === 180) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 2;\n }\n else if (pageDetails.rotation === 1) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 3) {\n return rotateAngle = 1;\n }\n }\n else if (originalRotation === 3 || originalRotation === 270) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 1;\n }\n else if (pageDetails.rotation === 2) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 1) {\n return rotateAngle = 2;\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.calculateVertexPoints = function (Rotate, pageNumber, vertexPoints, originalRotation) {\n // eslint-disable-next-line\n var rotateAngle = Math.abs(Rotate);\n var vPoints = [];\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n var x;\n var y;\n var point;\n //originalRotation = !isNullOrUndefined(originalRotation) ? originalRotation : pageDetails.rotation;\n if (originalRotation !== pageDetails.rotation) {\n rotateAngle = this.getRotationAngle(originalRotation, pageNumber);\n }\n else {\n rotateAngle = 0;\n }\n for (var j = 0; j < vertexPoints.length; j++) {\n if (rotateAngle === 1) {\n x = vertexPoints[parseInt(j.toString(), 10)].Y ? pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].Y : pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].y;\n y = vertexPoints[parseInt(j.toString(), 10)].X ? vertexPoints[parseInt(j.toString(), 10)].X : vertexPoints[parseInt(j.toString(), 10)].x;\n point = { x: x, y: y };\n vPoints.push(point);\n }\n else if (rotateAngle === 2) {\n x = vertexPoints[parseInt(j.toString(), 10)].X ? pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].X : pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].x;\n y = vertexPoints[parseInt(j.toString(), 10)].Y ? pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].Y : pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].y;\n var point_1 = { x: x, y: y };\n vPoints.push(point_1);\n }\n else if (rotateAngle == 3) {\n x = vertexPoints[parseInt(j.toString(), 10)].Y ? vertexPoints[parseInt(j.toString(), 10)].Y : vertexPoints[parseInt(j.toString(), 10)].y;\n y = vertexPoints[parseInt(j.toString(), 10)].X ? pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].X : pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].x;\n point = { x: x, y: y };\n vPoints.push(point);\n }\n else {\n x = vertexPoints[parseInt(j.toString(), 10)].X ? vertexPoints[parseInt(j.toString(), 10)].X : vertexPoints[parseInt(j.toString(), 10)].x;\n y = vertexPoints[parseInt(j.toString(), 10)].Y ? vertexPoints[parseInt(j.toString(), 10)].Y : vertexPoints[parseInt(j.toString(), 10)].y;\n var point_2 = { x: x, y: y };\n vPoints.push(point_2);\n }\n }\n return vPoints;\n };\n return PdfViewerBase;\n}());\nexport { PdfViewerBase };\n","import { Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { splitArrayCollection, processPathData, cornersPointsBeforeRotation } from '@syncfusion/ej2-drawings';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n/**\n * The `FormFields` module is to render formfields in the PDF document.\n *\n * @hidden\n */\nvar FormFields = /** @class */ (function () {\n /**\n * @param viewer\n * @param base\n * @param viewer\n * @param base\n * @private\n */\n function FormFields(viewer, base) {\n // eslint-disable-next-line\n this.maintainTabIndex = {};\n // eslint-disable-next-line\n this.maintanMinTabindex = {};\n this.isSignatureField = false;\n this.paddingDifferenceValue = 10;\n this.indicatorPaddingValue = 4;\n this.isKeyDownCheck = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.readOnlyCollection = [];\n this.isSignatureRendered = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signatureFieldCollection = [];\n this.selectedIndex = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.renderedPageList = [];\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * @param pageIndex\n * @private\n */\n FormFields.prototype.renderFormFields = function (pageIndex, isImportFormField) {\n this.maxTabIndex = 0;\n this.minTabIndex = -1;\n // eslint-disable-next-line \n if (this.renderedPageList.indexOf(pageIndex) !== -1 && !isImportFormField) {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (!this.data || this.data === '[]') {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n }\n else {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n if (this.data) {\n // eslint-disable-next-line\n this.formFieldsData = JSON.parse(this.data);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageIndex);\n var count = void 0;\n if (this.formFieldsData !== null && canvasElement !== null && textLayer !== null) {\n var flag = false;\n for (var i = 0; i < this.formFieldsData.length; i++) {\n var formField = this.formFieldsData[i];\n if (!flag && isNullOrUndefined(formField.ActualFieldName) && formField.PageIndex === pageIndex) {\n count = parseInt(formField.FieldName.slice(formField.FieldName.lastIndexOf(\"_\") + 1));\n flag = true;\n }\n }\n if (this.renderedPageList.indexOf(pageIndex) === -1) {\n this.renderedPageList.push(pageIndex);\n }\n var _loop_1 = function (i_1) {\n // eslint-disable-next-line\n var currentData = this_1.formFieldsData[i_1];\n if (currentData.FieldName !== '') {\n if (currentData.IsInitialField) {\n currentData.Name = 'InitialField';\n }\n // eslint-disable-next-line\n var font = currentData['Font'];\n if (this_1.pdfViewer.formDesigner) {\n if (parseFloat(currentData['PageIndex']) == pageIndex) {\n var fontFamily = void 0;\n var fontStyle = void 0;\n var fontSize = void 0;\n if (font !== null && font.Height) {\n fontFamily = font.Name;\n if (font.Italic) {\n fontStyle = 'Italic';\n }\n if (font.Bold) {\n fontStyle = 'Bold';\n }\n if (font.Strikeout) {\n fontStyle = 'Strikethrough';\n }\n if (font.Underline) {\n fontStyle = 'Underline';\n }\n fontSize = this_1.ConvertPointToPixel(font.Size);\n }\n var textAlignment = currentData.Alignment === 2 ? 'right' : (currentData.Alignment === 1 ? 'center' : 'left');\n var backgroundColor = currentData['BackColor'];\n var bounds = currentData['LineBounds'];\n var backColor = 'rgba(' + backgroundColor.R + ',' + backgroundColor.G + ',' + backgroundColor.B + ',' + 1 + ')';\n if (currentData.IsTransparent === true) {\n backColor = \"rgba(0,0,0,0)\";\n }\n backColor = this_1.rgbaToHex(backColor);\n // set default color if field have black color as bg.\n if (backColor === '#000000ff') {\n backColor = '#daeaf7ff';\n }\n // eslint-disable-next-line\n var fontColor = currentData['FontColor'];\n var left = this_1.ConvertPointToPixel(bounds.X);\n var top_1 = this_1.ConvertPointToPixel(bounds.Y);\n var width = this_1.ConvertPointToPixel(bounds.Width);\n var height = this_1.ConvertPointToPixel(bounds.Height);\n var boundArray = { left: left, top: top_1, width: width, height: height };\n var isFieldRotated = false;\n var rotateFieldAngle = 0;\n if (currentData[\"Rotation\"] !== 0) {\n if (currentData[\"RotationAngle\"] === -90 || currentData[\"RotationAngle\"] === -270 || currentData[\"RotationAngle\"] === -180) {\n boundArray = this_1.getBounds(boundArray, pageIndex, 0, isFieldRotated);\n }\n }\n else {\n isFieldRotated = true;\n boundArray = this_1.getBounds(boundArray, pageIndex, 0, isFieldRotated);\n rotateFieldAngle = this_1.getAngle(pageIndex);\n }\n var foreColor = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n foreColor = this_1.rgbaToHex(foreColor);\n var borderColor = currentData['BorderColor'];\n var borderRGB = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n borderRGB = this_1.rgbaToHex(borderRGB);\n var borderWidth = currentData['BorderWidth'];\n this_1.selectedIndex = [];\n elementValue = \"\";\n if (currentData.Name === 'RadioButton') {\n elementValue = currentData['Text'] ? currentData['Text'] : currentData['Value'];\n }\n else {\n elementValue = currentData['Text'];\n }\n var fieldProperties = {\n bounds: { X: boundArray.left, Y: boundArray.top, Width: boundArray.width, Height: boundArray.height }, pageNumber: parseFloat(currentData['PageIndex']) + 1, name: currentData['ActualFieldName'], tooltip: currentData['ToolTip'],\n value: elementValue, insertSpaces: currentData['InsertSpaces'], isChecked: currentData['Selected'], isSelected: currentData['Selected'], fontFamily: fontFamily, fontStyle: fontStyle, backgroundColor: backColor, color: foreColor, borderColor: borderRGB, thickness: borderWidth, fontSize: fontSize, isMultiline: currentData.Multiline, rotateAngle: rotateFieldAngle,\n isReadOnly: currentData['IsReadonly'], isRequired: currentData['IsRequired'], alignment: textAlignment, options: this_1.getListValues(currentData), selectedIndex: this_1.selectedIndex, maxLength: currentData.MaxLength, visibility: currentData.Visible === 1 ? \"hidden\" : \"visible\", font: { isItalic: !isNullOrUndefined(font) ? font.Italic : false, isBold: !isNullOrUndefined(font) ? font.Bold : false, isStrikeout: !isNullOrUndefined(font) ? font.Strikeout : false, isUnderline: !isNullOrUndefined(font) ? font.Underline : false }, isTransparent: currentData.IsTransparent\n };\n if (!currentData.id && this_1.pdfViewer.formFieldCollections[i_1] && !isNullOrUndefined(currentData['ActualFieldName'])) {\n fieldProperties.id = this_1.pdfViewer.formFieldCollections[i_1].id;\n }\n if (currentData.Name === 'DropDown' || currentData.Name === 'ListBox') {\n fieldProperties.value = currentData['SelectedValue'];\n }\n // eslint-disable-next-line\n var fieldType = this_1.getFormFieldType(currentData);\n if (currentData.Name !== 'SignatureText' || currentData.Name !== 'SignatureImage') {\n if (!isNullOrUndefined(this_1.getFormFieldType(currentData))) {\n if (currentData.IsRequired) {\n var thickness = fieldProperties.thickness;\n thickness = thickness > 0 ? thickness : 1;\n fieldProperties.thickness = thickness;\n }\n var addedElement1 = this_1.pdfViewer.formDesignerModule.addFormField(fieldType, fieldProperties, false, fieldProperties.id);\n if (addedElement1 && addedElement1.parentElement) {\n currentData.id = addedElement1.parentElement.id.split('_')[0];\n }\n if (addedElement1 && addedElement1.style.visibility === \"hidden\") {\n addedElement1.childNodes[0].disabled = true;\n }\n }\n }\n if (fieldType === 'SignatureField' || fieldType === 'InitialField') {\n this_1.addSignaturePath(currentData, count);\n if (!isNullOrUndefined(currentData.Value)) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.isSignatureRendered = true;\n count++;\n }\n }\n if (currentData.ActualFieldName === null && this_1.formFieldsData.filter(function (item) { return item.FieldName.includes(currentData.FieldName.replace(/_\\d$/, '')); }).filter(function (value) { return value.Name != 'ink'; }).length === 0) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.pdfViewerBase.signatureModule.storeSignatureData(pageIndex, currentData);\n this_1.isSignatureRendered = true;\n count++;\n }\n this_1.pdfViewerBase.isLoadedFormFieldAdded = true;\n }\n }\n else {\n // eslint-disable-next-line\n if (parseFloat(currentData['PageIndex']) == pageIndex) {\n // eslint-disable-next-line\n var field = this_1.createFormFields(currentData, pageIndex, i_1, null, count);\n var inputField = field.currentField;\n var signCount = field.count;\n var isFieldRotated = false;\n if (currentData.ActualFieldName === null && this_1.formFieldsData.filter(function (item) { return item.FieldName.includes(currentData.FieldName.replace(/_\\d$/, '')); }).filter(function (value) { return value.Name != 'ink'; }).length === 0) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.pdfViewerBase.signatureModule.storeSignatureData(pageIndex, currentData);\n this_1.isSignatureRendered = true;\n count++;\n }\n if (inputField) {\n // eslint-disable-next-line\n var divElement = this_1.createParentElement(currentData, pageIndex);\n // eslint-disable-next-line\n var bounds = currentData['LineBounds'];\n // eslint-disable-next-line\n var font_1 = currentData['Font'];\n // eslint-disable-next-line\n rotateAngle = 0;\n if (currentData['Rotation'] === 0) {\n isFieldRotated = true;\n rotateAngle = this_1.getAngle(pageIndex);\n if (divElement) {\n divElement.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n else {\n inputField.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n }\n else {\n if (divElement) {\n divElement.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n else {\n inputField.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n }\n this_1.applyPosition(inputField, bounds, font_1, pageIndex, 0, isFieldRotated);\n inputField.InsertSpaces = currentData.InsertSpaces;\n if (inputField.InsertSpaces) {\n var zoomFactor = this_1.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var font_2 = ((parseInt(inputField.style.width) / inputField.maxLength) - (parseFloat(inputField.style.fontSize) / 2)) - (0.6 * zoomFactor);\n // eslint-disable-next-line\n inputField.style.letterSpacing = '' + font_2 + 'px';\n inputField.style.fontFamily = 'monospace';\n inputField.style.paddingLeft = (font_2 / 2) + 'px';\n }\n // eslint-disable-next-line\n currentData['uniqueID'] = this_1.pdfViewer.element.id + 'input_' + pageIndex + '_' + i_1;\n for (var j = 0; j < this_1.pdfViewer.formFieldCollections.length; j++) {\n if ((inputField.type === 'text' || inputField.type === 'password' || inputField.type === 'textarea') && currentData.Name !== 'SignatureField') {\n if (currentData['uniqueID'] === this_1.pdfViewer.formFieldCollections[j].id) {\n this_1.pdfViewer.formFieldCollections[j].value = currentData['Text'];\n }\n }\n }\n if (isNullOrUndefined(currentData.Value)) {\n currentData.Value = currentData['Text'];\n }\n if (currentData.ToolTip) {\n this_1.setToolTip(currentData.ToolTip, inputField);\n }\n this_1.applyCommonProperties(inputField, pageIndex, i_1, currentData, isFieldRotated);\n this_1.checkIsReadonly(currentData, inputField);\n this_1.applyTabIndex(currentData, inputField, pageIndex);\n this_1.checkIsRequiredField(currentData, inputField);\n this_1.applyDefaultColor(inputField);\n this_1.updateFormFieldsCollection(currentData);\n if (divElement) {\n divElement.appendChild(inputField);\n textLayer.appendChild(divElement);\n }\n else {\n inputField.style.position = 'absolute';\n textLayer.appendChild(inputField);\n }\n inputField.addEventListener('focus', this_1.focusFormFields.bind(this_1));\n inputField.addEventListener('blur', this_1.blurFormFields.bind(this_1));\n inputField.addEventListener('click', this_1.updateFormFields.bind(this_1));\n inputField.addEventListener('change', this_1.changeFormFields.bind(this_1));\n inputField.addEventListener('keydown', this_1.updateFormFieldsValue.bind(this_1));\n inputField.addEventListener('keyup', this_1.updateSameFieldsValue.bind(this_1));\n count = signCount;\n }\n }\n }\n }\n };\n var this_1 = this, elementValue, rotateAngle;\n for (var i_1 = 0; i_1 < this.formFieldsData.length; i_1++) {\n _loop_1(i_1);\n }\n if (!this.pdfViewer.formDesigner) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_formfields');\n this.pdfViewerBase.setItemInSessionStorage(this.formFieldsData, '_formfields');\n }\n }\n }\n if (this.pdfViewerBase.isFocusField && this.pdfViewerBase.focusField) {\n var currentField = document.getElementById(this.pdfViewerBase.focusField.id);\n if (currentField) {\n if ((this.pdfViewerBase.focusField.type === \"SignatureField\" || this.pdfViewerBase.focusField.type === \"InitialField\") && this.pdfViewer.formDesignerModule) {\n var y = this.pdfViewerBase.focusField.bounds.y;\n var height = this.pdfViewerBase.pageSize[pageIndex].height;\n this.pdfViewer.bookmark.goToBookmark(this.pdfViewerBase.focusField.pageIndex, height - y);\n }\n else {\n currentField.focus();\n }\n this.pdfViewerBase.isFocusField = false;\n this.pdfViewerBase.focusField = [];\n }\n }\n };\n FormFields.prototype.setToolTip = function (tooltipContent, targetElement) {\n //initialize tooltip component\n var tooltip = new Tooltip({\n content: tooltipContent\n });\n // render initialized tooltip\n tooltip.appendTo(targetElement);\n };\n FormFields.prototype.trim = function (str) {\n return str.replace(/^\\s+|\\s+$/gm, '');\n };\n FormFields.prototype.rgbaToHex = function (rgba) {\n var inParts = rgba.substring(rgba.indexOf(\"(\")).split(\",\");\n var r = parseInt(this.trim(inParts[0].substring(1)), 10);\n var g = parseInt(this.trim(inParts[1]), 10);\n var b = parseInt(this.trim(inParts[2]), 10);\n var a = parseFloat(parseFloat(this.trim(inParts[3].substring(0, inParts[3].length - 1))).toFixed(2));\n var outParts = [\n r.toString(16),\n g.toString(16),\n b.toString(16),\n Math.round(a * 255).toString(16).substring(0, 2)\n ];\n // Pad single-digit output values\n outParts.forEach(function (part, i) {\n if (part.length === 1) {\n outParts[i] = '0' + part;\n }\n });\n return ('#' + outParts.join(''));\n };\n FormFields.prototype.getListValues = function (currentData) {\n var listItem = currentData['TextList'];\n var options = [];\n for (var i = 0; i < listItem.length; i++) {\n if (listItem[i] === currentData['SelectedValue'])\n this.selectedIndex.push(i);\n options.push({ itemName: listItem[i], itemValue: listItem[i] });\n }\n if (this.getFormFieldType(currentData) === 'ListBox') {\n this.selectedIndex = currentData['SelectedList'];\n }\n return options;\n };\n // eslint-disable-next-line\n FormFields.prototype.createParentElement = function (data, pageIndex) {\n // eslint-disable-next-line\n var divElement;\n // eslint-disable-next-line\n if (data['Name'] === 'Textbox' || data['Name'] === 'Password') {\n divElement = document.createElement('div');\n divElement.style.background = 'white';\n if (data.InsertSpaces) {\n divElement.style.background = 'transparent';\n }\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n // eslint-disable-next-line\n divElement.style.position = 'absolute';\n // eslint-disable-next-line\n var isFieldRotated = false;\n if (data['Rotation'] === 0) {\n isFieldRotated = true;\n }\n this.applyPosition(divElement, bounds, font, pageIndex, 0, isFieldRotated);\n }\n return divElement;\n };\n /**\n * @private\n */\n FormFields.prototype.getAngle = function (pageIndex) {\n // eslint-disable-next-line\n var angle = 0;\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails && pageDetails.rotation) {\n switch (pageDetails.rotation) {\n case 0:\n angle = 0;\n break;\n case 1:\n angle = 90;\n break;\n case 2:\n angle = 180;\n break;\n case 3:\n angle = 270;\n break;\n }\n }\n return angle;\n };\n FormFields.prototype.nextField = function () {\n this.signatureFieldNavigate(true);\n };\n FormFields.prototype.previousField = function () {\n this.signatureFieldNavigate(false);\n };\n FormFields.prototype.signatureFieldNavigate = function (nextSign) {\n var isNextSignField = nextSign;\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n if (signatureFields.length === 0) {\n signatureFields = this.getSignField();\n }\n // eslint-disable-next-line\n var currentField;\n if (this.currentTarget) {\n for (var i = 0; i < signatureFields.length; i++) {\n currentField = this.pdfViewer.formDesignerModule ? signatureFields[i].FormField : signatureFields[i];\n if (this.currentTarget.id === currentField.uniqueID) {\n this.currentTarget = document.getElementById(currentField.uniqueID);\n this.getSignatureIndex(i, signatureFields.length, isNextSignField);\n break;\n }\n }\n }\n else {\n if (nextSign) {\n currentField = this.pdfViewer.formDesignerModule ? signatureFields[0].FormField : signatureFields[0];\n if (currentField.uniqueID) {\n this.currentTarget = document.getElementById(currentField.uniqueID);\n this.getSignatureIndex(0, signatureFields.length, isNextSignField, true);\n }\n }\n }\n };\n FormFields.prototype.getSignatureIndex = function (currentSignatureIndex, signatureCount, isNextSign, isFirstNavigate) {\n var signatureIndex = currentSignatureIndex;\n if (!isFirstNavigate) {\n if (isNextSign) {\n signatureIndex++;\n }\n else {\n signatureIndex--;\n }\n }\n if (signatureCount === 1) {\n this.renderSignatureField(0);\n }\n else {\n if (signatureIndex < signatureCount && signatureIndex >= 0) {\n this.renderSignatureField(signatureIndex);\n }\n else {\n if (isNextSign) {\n if (signatureIndex >= signatureCount) {\n this.renderSignatureField(0);\n }\n }\n else {\n if (signatureIndex <= 0) {\n this.renderSignatureField(signatureCount - 1);\n }\n }\n }\n }\n };\n FormFields.prototype.renderSignatureField = function (currentSignIndex) {\n var curSignIndex = currentSignIndex;\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n // eslint-disable-next-line\n var currentField;\n if (curSignIndex < signatureFields.length) {\n for (var i = 0; i < signatureFields.length; i++) {\n var curSignIndexId = this.pdfViewer.formDesignerModule ? signatureFields[curSignIndex].FormField.uniqueID : signatureFields[curSignIndex].uniqueID;\n var signatureFieldData = this.pdfViewer.formDesignerModule ? signatureFields[i].FormField : signatureFields[i];\n if (curSignIndexId === signatureFieldData.uniqueID) {\n var pageIndex = signatureFieldData.PageIndex >= 0 ? signatureFieldData.PageIndex : signatureFieldData.pageNumber;\n var isRender = this.pdfViewer.annotationModule.findRenderPageList(pageIndex);\n if (!isRender) {\n this.pdfViewer.navigation.goToPage(pageIndex);\n }\n this.currentTarget = document.getElementById(signatureFieldData.uniqueID);\n currentField = signatureFieldData;\n break;\n }\n }\n if (this.currentTarget === null) {\n var pageIndex = currentField.PageIndex >= 0 ? currentField.PageIndex : currentField.pageNumber;\n this.pdfViewer.navigation.goToPage(pageIndex);\n this.currentTarget = document.getElementById(currentField.uniqueID);\n }\n if (this.currentTarget) {\n if (this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n document.getElementById(this.currentTarget.id).focus();\n this.pdfViewer.select([this.currentTarget.id], null);\n }\n else if (this.currentTarget.className === 'e-pdfviewer-signatureformfields') {\n if (this.pdfViewer.formDesignerModule) {\n document.getElementById(this.currentTarget.id).parentElement.focus();\n }\n else {\n document.getElementById(this.currentTarget.id).focus();\n }\n }\n }\n }\n };\n /**\n * @private\n */\n FormFields.prototype.setFocus = function (id) {\n if (!id) {\n if (this.currentTarget) {\n document.getElementById(this.currentTarget.id).focus();\n }\n }\n else {\n this.removeFocus();\n var signatureElement = document.getElementById(id);\n signatureElement.classList.add('e-pv-signature-focus');\n }\n };\n /**\n * @private\n */\n FormFields.prototype.removeFocus = function () {\n if (this.signatureFieldCollection) {\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n if (signatureFields.length === 0) {\n signatureFields = this.getSignField();\n }\n for (var i = 0; i < this.signatureFieldCollection.length; i++) {\n var signatureFieldId = this.pdfViewer.formDesignerModule ? this.signatureFieldCollection[i].FormField.uniqueID : this.signatureFieldCollection[i].uniqueID;\n var signatureElement = document.getElementById(signatureFieldId);\n if (signatureElement) {\n signatureElement.classList.remove('e-pv-signature-focus');\n }\n }\n if (this.pdfViewer.formFieldsModule.currentTarget) {\n this.pdfViewer.formFieldsModule.currentTarget.classList.remove('e-pv-signature-focus');\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.getSignField = function () {\n if (this.pdfViewer.formDesignerModule) {\n this.signatureFieldCollection =\n this.pdfViewer.formDesignerModule.getFormDesignerSignField(this.signatureFieldCollection);\n }\n else {\n this.signatureFieldCollection = this.getFormFieldSignField();\n }\n return this.signatureFieldCollection;\n };\n FormFields.prototype.getFormFieldSignField = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n // eslint-disable-next-line\n var currentData;\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n currentData = formFieldsData[i];\n if (currentData.Name === 'SignatureField') {\n // eslint-disable-next-line\n currentData['uniqueID'] = this.pdfViewer.element.id + 'input_' + currentData.PageIndex + '_' + i;\n this.signatureFieldCollection.push(formFieldsData[i]);\n }\n }\n }\n return this.signatureFieldCollection;\n };\n /**\n * @private\n */\n FormFields.prototype.formFieldCollections = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[i];\n // eslint-disable-next-line\n var type = currentData['Name'];\n if (this.pdfViewer.formDesignerModule) {\n if (currentData.Name !== 'ink' && currentData.Name !== 'SignatureImage' && currentData.Name !== 'SignatureText') {\n this.retreiveFormFieldsData(currentData, true);\n }\n }\n else {\n if (currentData.Name !== 'ink') {\n // eslint-disable-next-line\n var formFieldCollection = { name: this.retriveFieldName(currentData), id: this.pdfViewer.element.id + 'input_' + parseFloat(currentData['PageIndex']) + '_' + i, isReadOnly: false, type: currentData.IsInitialField ? 'InitialField' : type, value: this.retriveCurrentValue(currentData), fontName: '', isRequired: currentData.IsRequired };\n this.pdfViewer.formFieldCollections.push(formFieldCollection);\n }\n }\n }\n }\n };\n FormFields.prototype.retreiveFormFieldsData = function (currentData, isCollection) {\n var fontFamily;\n var fontStyle;\n var fontSize;\n if (currentData.FieldName !== '') {\n if (currentData.IsInitialField) {\n currentData.Name = 'InitialField';\n }\n // eslint-disable-next-line\n var font = currentData['Font'];\n if (font !== null && font.Height) {\n fontFamily = font.Name;\n if (font.Italic) {\n fontStyle = 'Italic';\n }\n if (font.Bold) {\n fontStyle = 'Bold';\n }\n if (font.Strikeout) {\n fontStyle = 'Strikethrough';\n }\n if (font.Underline) {\n fontStyle = 'Underline';\n }\n fontSize = this.ConvertPointToPixel(font.Size);\n }\n var textAlignment = currentData.Alignment === 2 ? 'right' : (currentData.Alignment === 1 ? 'center' : 'left');\n var backgroundColor = currentData['BackColor'];\n var bounds = currentData['LineBounds'];\n var backColor = 'rgba(' + backgroundColor.R + ',' + backgroundColor.G + ',' + backgroundColor.B + ',' + 1 + ')';\n backColor = this.rgbaToHex(backColor);\n // set default color if field have black color as bg.\n if (currentData.IsTransparent === true) {\n backColor = \"rgba(0,0,0,0)\";\n }\n else if (backColor === '#000000ff') {\n backColor = '#daeaf7ff';\n }\n // eslint-disable-next-line\n var fontColor = currentData['FontColor'];\n var left = this.ConvertPointToPixel(bounds.X);\n var top_2 = this.ConvertPointToPixel(bounds.Y);\n var width = this.ConvertPointToPixel(bounds.Width);\n var height = this.ConvertPointToPixel(bounds.Height);\n var boundArray = { left: left, top: top_2, width: width, height: height };\n var foreColor = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n foreColor = this.rgbaToHex(foreColor);\n var borderColor = currentData['BorderColor'];\n var borderRGB = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n borderRGB = this.rgbaToHex(borderRGB);\n var borderWidth = currentData['BorderWidth'];\n this.selectedIndex = [];\n var fieldProperties = {\n bounds: { X: boundArray.left, Y: boundArray.top, Width: boundArray.width, Height: boundArray.height }, pageNumber: parseFloat(currentData['PageIndex']) + 1, name: currentData['ActualFieldName'], tooltip: currentData['ToolTip'],\n value: currentData['Text'], isChecked: currentData['Selected'], isSelected: currentData['Selected'], fontFamily: fontFamily, fontStyle: fontStyle, backgroundColor: backColor, color: foreColor, borderColor: borderRGB, thickness: borderWidth, fontSize: fontSize, isMultiline: currentData.Multiline,\n isReadOnly: currentData['IsReadonly'], isRequired: currentData['IsRequired'], insertSpaces: currentData['InsertSpaces'], alignment: textAlignment, options: this.getListValues(currentData), selectedIndex: this.selectedIndex, maxLength: currentData.MaxLength, visibility: currentData.Visible === 1 ? \"hidden\" : \"visible\", font: { isItalic: !isNullOrUndefined(font) ? font.Italic : false, isBold: !isNullOrUndefined(font) ? font.Bold : false, isStrikeout: !isNullOrUndefined(font) ? font.Strikeout : false, isUnderline: !isNullOrUndefined(font) ? font.Underline : false }\n };\n if (currentData.Name === 'DropDown' || currentData.Name === 'ListBox') {\n fieldProperties.value = currentData['SelectedValue'];\n }\n // eslint-disable-next-line\n var fieldType = this.getFormFieldType(currentData);\n if (fieldType === 'SignatureField' || fieldType === 'InitialField') {\n this.addSignaturePath(currentData);\n if (this.isSignatureField) {\n fieldProperties.value = currentData.Value;\n }\n }\n var addedElement = this.pdfViewer.formDesignerModule.addFormField(fieldType, fieldProperties, isCollection);\n return addedElement;\n }\n return null;\n };\n /**\n * @param formField\n * @private\n */\n FormFields.prototype.updateFormFieldsCollection = function (formField) {\n var type = formField['Name'];\n var formFieldCollection = {\n name: this.retriveFieldName(formField), id: formField.uniqueID, isReadOnly: formField.IsReadonly, isRequired: formField.IsRequired, isSelected: type === 'CheckBox' ? false : formField.Selected,\n isChecked: type === 'RadioButton' ? false : formField.Selected, type: type, value: type === 'ListBox' || type === 'DropDown' ? formField.SelectedValue : formField.Value, fontName: formField.FontFamily ? formField.FontFamily : ''\n };\n this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === formFieldCollection.id; })] = formFieldCollection;\n };\n // eslint-disable-next-line\n FormFields.prototype.updateFormFieldValues = function (formFields) {\n this.readOnlyCollection.push(formFields.id);\n if (formFields) {\n // eslint-disable-next-line\n var currentElement = document.getElementById(formFields.id);\n if (currentElement) {\n if (formFields.isReadOnly) {\n currentElement.disabled = true;\n currentElement.style.backgroundColor = '';\n currentElement.style.cursor = 'default';\n }\n else {\n if (currentElement.style.backgroundColor === '') {\n currentElement.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n }\n currentElement.disabled = false;\n currentElement.style.cursor = '';\n }\n }\n this.updateDataInSession(currentElement);\n }\n };\n /**\n * @param currentData\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.retriveFieldName = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n case 'Password':\n case 'SignatureField':\n case 'InitialField':\n currentField = currentData.FieldName;\n break;\n case 'RadioButton':\n case 'CheckBox':\n currentField = currentData.GroupName;\n break;\n case 'DropDown':\n case 'ListBox':\n currentField = currentData.Text;\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.retriveCurrentValue = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n case 'Password':\n currentField = currentData.Text;\n break;\n case 'SignatureField':\n currentField = currentData.Value;\n break;\n case 'RadioButton':\n case 'CheckBox':\n currentField = currentData.Selected;\n break;\n case 'DropDown':\n currentField = currentData.SelectedValue;\n break;\n case 'ListBox':\n currentField = currentData.SelectedList;\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.getSignatureBounds = function (LineBounds, bounds, pageIndex) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n // eslint-disable-next-line\n var bound = 0;\n switch (pageDetails.rotation) {\n case 0:\n bound = bounds;\n break;\n case 1:\n bound = { x: bounds.x + LineBounds.Width + (bounds.width / 3.5), y: pageDetails.width - LineBounds.X + (bounds.height / 4) };\n break;\n case 2:\n bound = { x: pageDetails.width - bounds.x - bounds.width, y: pageDetails.height - bounds.y - bounds.height };\n break;\n case 3:\n bound = { x: bounds.y - (bounds.width / 2) + bounds.height, y: bounds.x + (bounds.width / 3) };\n break;\n }\n return bound;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.downloadFormFieldsData = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n // eslint-disable-next-line\n var datas = {};\n var fieldDatas = [];\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n var isRequired = currentData.IsRequired;\n if (currentData.Name === 'Textbox' || currentData.Name === 'Password' || currentData.Multiline) {\n if (isRequired && (currentData.Text === '' || currentData.Text === null)) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.FieldName] = currentData.Text;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.FieldName]);\n }\n fieldDatas = { fieldValue: currentData.Text, isReadOnly: currentData.IsReadonly };\n datas[currentData.FieldName] = fieldDatas;\n }\n else if (currentData.Name === 'RadioButton' && currentData.Selected) {\n if (isRequired && currentData.Selected === false) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.GroupName] = currentData.Value;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.GroupName]);\n }\n fieldDatas = { fieldValue: currentData.Value, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n else if (currentData.Name === 'CheckBox') {\n if (isRequired && currentData.Selected === false) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.GroupName] = currentData.Selected;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.GroupName]);\n }\n if (currentData.CheckboxIndex && currentData.Selected) {\n fieldDatas = { fieldValue: currentData.CheckboxIndex, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n else if (datas[currentData.GroupName] === undefined || datas[currentData.GroupName] === null) {\n fieldDatas = { fieldValue: currentData.Selected, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n }\n else if (currentData.Name === 'DropDown') {\n if (isRequired && currentData.SelectedValue === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.Text] = currentData.SelectedValue;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.Text]);\n }\n fieldDatas = { fieldValue: currentData.SelectedValue, isReadOnly: currentData.IsReadonly };\n datas[currentData.Text] = fieldDatas;\n }\n else if (currentData.Name === 'ListBox') {\n // eslint-disable-next-line\n var childItems = currentData['TextList'];\n var childItemsText = [];\n for (var m_1 = 0; m_1 < currentData.SelectedList.length; m_1++) {\n // eslint-disable-next-line\n var currentElement = currentData.SelectedList[m_1];\n childItemsText.push(childItems[currentElement]);\n }\n fieldDatas = { fieldValue: JSON.stringify(childItemsText), isReadOnly: currentData.IsReadonly };\n datas[currentData.Text] = fieldDatas;\n }\n else if (currentData.Name === 'SignatureField' || currentData.Name === 'InitialField') {\n // eslint-disable-next-line\n var csData = void 0;\n if (currentData.Value === null || currentData.Value === '') {\n this.addSignaturePath(currentData);\n }\n if (currentData.Value && currentData.Value !== '') {\n csData = currentData.Value;\n var fontFamily = currentData.fontFamily ? currentData.fontFamily : currentData.FontFamily;\n if (fontFamily) {\n datas[currentData.FieldName + 'fontName'] = fontFamily;\n datas[currentData.FieldName + 'fontSize'] = currentData.fontSize ? currentData.fontSize : currentData.FontSize;\n }\n else if (currentData.Value.split('base64,')[1]) {\n datas[currentData.FieldName + 'ImageData'] = true;\n }\n else {\n // eslint-disable-next-line\n var collectionData = processPathData(currentData.Value);\n csData = splitArrayCollection(collectionData);\n }\n }\n if (isRequired && currentData.Value === null || currentData.Value === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.FieldName] = JSON.stringify(csData);\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.FieldName]);\n }\n datas[currentData.FieldName] = JSON.stringify(csData);\n if (currentData.Bounds) {\n // eslint-disable-next-line\n var bounds = this.getSignatureBounds(currentData.LineBounds, currentData.Bounds, currentData.PageIndex);\n currentData.Bounds.x = bounds.x;\n currentData.Bounds.y = bounds.y;\n datas[currentData.FieldName + 'bounds'] = JSON.stringify(currentData.Bounds);\n }\n else {\n // eslint-disable-next-line\n var lineBounds = currentData.LineBounds;\n // eslint-disable-next-line\n var bounds = { x: this.ConvertPointToPixel(lineBounds.X), y: this.ConvertPointToPixel(lineBounds.Y), width: this.ConvertPointToPixel(lineBounds.Width), height: this.ConvertPointToPixel(lineBounds.Height) };\n datas[currentData.FieldName + 'bounds'] = JSON.stringify(bounds);\n }\n datas[currentData.FieldName + 'isReadOnly'] = currentData.IsReadonly;\n }\n }\n return (JSON.stringify(datas));\n }\n };\n FormFields.prototype.focusFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n // eslint-disable-next-line\n if (currentTarget && (currentTarget.className !== 'e-pdfviewer-signatureformfields' && currentTarget.className !== 'e-pdfviewer-signatureformfields e-pv-signature-focus')) {\n // eslint-disable-next-line\n var backgroundcolor = currentTarget.style.backgroundColor;\n // eslint-disable-next-line\n var currentIndex = backgroundcolor.lastIndexOf(',');\n // eslint-disable-next-line\n var currentColor = backgroundcolor.slice(0, currentIndex + 1) + 0 + ')';\n currentTarget.style.backgroundColor = currentColor;\n if (currentTarget.type === 'checkbox') {\n currentTarget.style.webkitAppearance = '';\n }\n currentTarget.style.boxShadow = \"0 0 5px \" + (currentTarget.style.borderColor === 'transparent' ? '#000000' : currentTarget.style.borderColor);\n }\n else if (currentTarget) {\n // eslint-disable-next-line\n if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus') {\n this.setFocus(currentTarget.id);\n }\n }\n };\n FormFields.prototype.blurFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n if (currentTarget.InsertSpaces && this.isKeyDownCheck) {\n // eslint-disable-next-line\n var font = parseInt(currentTarget.style.width) - (parseInt(currentTarget.style.height) / 2);\n currentTarget.style.width = '' + font + 'px';\n this.isKeyDownCheck = false;\n }\n if (currentTarget.type === 'checkbox') {\n this.pdfViewer.fireFocusOutFormField(currentTarget.name, currentTarget.checked);\n }\n else {\n this.pdfViewer.fireFocusOutFormField(currentTarget.name, currentTarget.value);\n }\n // eslint-disable-next-line\n var backgroundcolor = currentTarget.style.backgroundColor;\n // eslint-disable-next-line\n var currentIndex = backgroundcolor.lastIndexOf(',');\n // eslint-disable-next-line\n var currentColor = backgroundcolor.slice(0, currentIndex + 1) + 0.2 + ')';\n currentTarget.style.backgroundColor = currentColor;\n currentTarget.style.boxShadow = 'none';\n if ((currentTarget.type === 'checkbox') && !currentTarget.checked) {\n currentTarget.style.webkitAppearance = 'none';\n }\n else {\n currentTarget.style.webkitAppearance = '';\n }\n };\n FormFields.prototype.updateFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n if (currentTarget.className === 'e-pdfviewer-ListBox') {\n currentTarget = currentTarget.parentElement;\n this.updateDataInSession(currentTarget);\n }\n else if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n this.currentTarget = currentTarget;\n }\n else if (currentTarget.className === 'e-pv-buttonItem' || currentTarget.type === 'button') {\n this.pdfViewer.fireButtonFieldClickEvent(currentTarget.value, currentTarget.name, currentTarget.id);\n }\n for (var m = 0; m < this.pdfViewer.formFieldCollections.length; m++) {\n if (currentTarget.id === this.pdfViewer.formFieldCollections[m].id) {\n if (this.pdfViewer.formDesignerModule || this.pdfViewer.annotationModule) {\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', this.pdfViewer.formFieldCollections[m]);\n }\n // eslint-disable-next-line\n if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus') {\n this.setFocus(currentTarget.id);\n }\n }\n }\n };\n /**\n * @param signatureType\n * @param value\n * @param target\n * @param fontname\n * @param signatureType\n * @param value\n * @param target\n * @param fontname\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.drawSignature = function (signatureType, value, target, fontname) {\n var annot;\n // eslint-disable-next-line\n var proxy = this;\n var bounds;\n var targetBounds;\n var parentElementBounds;\n var data;\n if (this.pdfViewer.formDesigner) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n else {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n var formFieldsData = JSON.parse(data);\n var targetName = this.currentTarget ? this.currentTarget.name : target.name ? target.name : target.offsetParent.name;\n var _loop_2 = function () {\n var fieldName = this_2.pdfViewer.formDesigner ? formFieldsData[i].FormField.name : formFieldsData[i].FieldName;\n if (this_2.pdfViewer.formDesigner ? fieldName === targetName : fieldName === targetName && (!isNullOrUndefined(formFieldsData[i].ActualFieldName))) {\n target = this_2.pdfViewer.formDesigner ? document.getElementById(formFieldsData[i].Key.split(\"_\")[0]) : document.getElementById(formFieldsData[i].uniqueID);\n // eslint-disable-next-line\n var currentField_1 = target;\n var elementId = currentField_1.offsetParent.offsetParent.id.split(\"_\")[0];\n var signatureField_1 = this_2.pdfViewer.nameTable[elementId];\n if (target && target.offsetParent && signatureField_1) {\n targetBounds = target.getBoundingClientRect();\n parentElementBounds = target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n this_2.pdfViewerBase.drawSignatureWithTool = true;\n if (target.nextSibling && target.nextSibling.id.indexOf(\"initial\") !== -1) {\n this_2.pdfViewer.isInitialFieldToolbarSelection = true;\n }\n }\n var currentValue_1 = value ? value : this_2.pdfViewerBase.signatureModule.outputString;\n var currentFont = fontname ? fontname : this_2.pdfViewerBase.signatureModule.fontName;\n var zoomvalue = this_2.pdfViewerBase.getZoomFactor();\n var currentWidth = this_2.pdfViewerBase.drawSignatureWithTool ? targetBounds.width / zoomvalue : parseFloat(currentField_1.style.width) / zoomvalue;\n var currentHeight = this_2.pdfViewerBase.drawSignatureWithTool ? targetBounds.height / zoomvalue : parseFloat(currentField_1.style.height) / zoomvalue;\n var currentLeft = this_2.pdfViewerBase.drawSignatureWithTool ? ((targetBounds.left - parentElementBounds.left)) / zoomvalue : parseFloat(currentField_1.style.left) / zoomvalue;\n var currentTop = this_2.pdfViewerBase.drawSignatureWithTool ? ((targetBounds.top - parentElementBounds.top)) / zoomvalue : parseFloat(currentField_1.style.top) / zoomvalue;\n var currentPage_1 = this_2.pdfViewerBase.drawSignatureWithTool ? target.nextElementSibling ? parseFloat(target.nextElementSibling.id.split(\"_\")[1]) : parseFloat(currentField_1.id.split('_')[1]) : parseFloat(currentField_1.id.split('_')[1]);\n var currentIndex = this_2.pdfViewerBase.drawSignatureWithTool ? target.nextElementSibling ? parseFloat(target.nextElementSibling.id.split('_')[2]) : parseFloat(currentField_1.id.split('_')[2]) : parseFloat(currentField_1.id.split('_')[2]);\n var signString_1 = this_2.pdfViewerBase.signatureModule.saveImageString;\n var signatureFontFamily_1;\n var signatureFontSize_1;\n var rotateAngleString = currentField_1.offsetParent.offsetParent.style.transform ? currentField_1.offsetParent.offsetParent.style.transform : currentField_1.style.transform;\n rotateAngleString = rotateAngleString.substring(rotateAngleString.indexOf(\"(\") + 1, rotateAngleString.indexOf(\"d\"));\n var rotateAngle_1 = rotateAngleString ? parseInt(rotateAngleString) : 0;\n if (signatureType === 'Type') {\n if (!currentFont) {\n currentFont = 'Helvetica';\n }\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n bounds = this_2.getDefaultBoundsforSign(bounds);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureText', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }, fontFamily: currentFont, fontSize: rotateAngle_1 === 90 || rotateAngle_1 === 270 ? (bounds.width / 1.35) : (bounds.height / 1.35)\n };\n if (annot.shapeAnnotationType === 'SignatureText') {\n var textWidth = this_2.getTextWidth(annot.data, annot.fontSize, annot.fontFamily);\n var widthRatio = 1;\n if (textWidth > bounds.width)\n widthRatio = bounds.width / textWidth;\n annot.fontSize = this_2.getFontSize(Math.floor((annot.fontSize * widthRatio)));\n }\n signString_1 = annot.data;\n signatureFontFamily_1 = annot.fontFamily;\n signatureFontSize_1 = annot.fontSize;\n }\n else if (signatureType === 'Image') {\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n var image_1 = new Image();\n image_1.src = currentValue_1;\n image_1.onload = function () {\n proxy.imageOnLoad(bounds, image_1, currentValue_1, currentPage_1, rotateAngle_1, currentField_1, signatureField_1, signString_1, signatureFontFamily_1, signatureFontSize_1, target);\n };\n }\n else {\n if ((currentValue_1.indexOf('base64')) !== -1) {\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n bounds = this_2.getDefaultBoundsforSign(bounds);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n signString_1 = annot.data;\n }\n else {\n // eslint-disable-next-line\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n // eslint-disable-next-line\n var signatureBounds = this_2.updateSignatureAspectRatio(currentValue_1, false, currentField_1);\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, signatureBounds.width, signatureBounds.height, true);\n bounds.x = bounds.x + signatureBounds.left;\n bounds.y = bounds.y + signatureBounds.top;\n }\n else {\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'Path', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n }\n if (this_2.pdfViewerBase.drawSignatureWithTool && signatureField_1 && signatureType !== 'Image') {\n annot.id = signatureField_1.id + \"_content\";\n var obj = this_2.pdfViewer.add(annot);\n signatureField_1.wrapper.children.push(obj.wrapper);\n }\n else if (signatureType !== 'Image') {\n this_2.pdfViewer.add(annot);\n }\n if (annot && annot.shapeAnnotationType === 'Path' && currentValue_1 !== '') {\n this_2.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var position = { currentHeight: currentHeight, currentWidth: currentWidth, currentLeft: currentLeft, currentTop: currentTop };\n this_2.pdfViewerBase.signatureModule.addSignatureCollection(bounds, position);\n signString_1 = this_2.pdfViewerBase.signatureModule.saveImageString;\n this_2.pdfViewerBase.currentSignatureAnnot = null;\n }\n if (signatureType !== 'Image') {\n // eslint-disable-next-line\n var canvass = document.getElementById(this_2.pdfViewer.element.id + '_annotationCanvas_' + currentPage_1);\n // eslint-disable-next-line\n this_2.pdfViewer.renderDrawing(canvass, currentPage_1);\n this_2.pdfViewerBase.signatureModule.showSignatureDialog(false);\n if (currentField_1.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n currentField_1.className = 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus';\n }\n else {\n currentField_1.className = 'e-pdfviewer-signatureformfields-signature';\n }\n if (this_2.pdfViewerBase.drawSignatureWithTool && signatureField_1) {\n var key = target.offsetParent.offsetParent.id.split('_')[0] + '_content';\n annot.bounds = { x: bounds.x * zoomvalue, y: bounds.y * zoomvalue, width: bounds.width * zoomvalue, height: bounds.height * zoomvalue };\n this_2.updateSignatureDataInSession(annot, key);\n }\n else {\n this_2.updateDataInSession(currentField_1, annot.data, annot.bounds, signatureFontFamily_1, signatureFontSize_1);\n }\n currentField_1.style.pointerEvents = 'none';\n if (this_2.pdfViewer.annotation) {\n this_2.pdfViewer.annotation.addAction(annot.pageIndex, null, annot, 'FormField Value Change', '', annot, annot);\n }\n // eslint-disable-next-line\n if (annot.shapeAnnotationType === 'Path' || annot.shapeAnnotationType === \"SignatureText\") {\n this_2.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, null, null, signString_1);\n }\n this_2.pdfViewer.fireFocusOutFormField(currentField_1.name, currentValue_1);\n }\n }\n };\n var this_2 = this;\n for (var i = 0; i < formFieldsData.length; i++) {\n _loop_2();\n }\n if (signatureType !== 'Image') {\n this.pdfViewerBase.signatureModule.hideSignaturePanel();\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n }\n };\n // EJ2-62918- Image signature width is wrong while adding programmatically and it is fixed by adding an onload event.\n // A function was added and it was called\n FormFields.prototype.imageOnLoad = function (bounds, image, currentValue, currentPage, rotateAngle, currentField, signatureField, signString, signatureFontFamily, signatureFontSize, target) {\n if (target && target.offsetParent && signatureField) {\n this.pdfViewerBase.drawSignatureWithTool = true;\n if (target.nextSibling && target.nextSibling.id.indexOf(\"initial\") !== -1) {\n this.pdfViewer.isInitialFieldToolbarSelection = true;\n }\n }\n var annot;\n if (this.pdfViewer.signatureFitMode === 'Default') {\n {\n var padding = Math.min(bounds.height / this.paddingDifferenceValue, bounds.width / this.paddingDifferenceValue);\n var maxHeight = bounds.height - padding;\n var maxWidth = bounds.width - padding;\n var imageWidth = image.width;\n var imageHeight = image.height;\n var beforeWidth = bounds.width;\n var beforeHeight = bounds.height;\n var ratio = Math.min(maxWidth / imageWidth, maxHeight / imageHeight);\n bounds.width = imageWidth * ratio;\n bounds.height = imageHeight * ratio;\n bounds.x = bounds.x + (beforeWidth - bounds.width) / 2;\n bounds.y = bounds.y + (beforeHeight - bounds.height) / 2;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage, data: currentValue, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: rotateAngle, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n signString = annot.data;\n if (this.pdfViewerBase.drawSignatureWithTool && signatureField) {\n annot.id = signatureField.id + \"_content\";\n var obj = this.pdfViewer.add(annot);\n signatureField.wrapper.children.push(obj.wrapper);\n }\n else {\n this.pdfViewer.add(annot);\n }\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentPage);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentPage);\n this.pdfViewerBase.signatureModule.showSignatureDialog(false);\n if (currentField.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n currentField.className = 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus';\n }\n else {\n currentField.className = 'e-pdfviewer-signatureformfields-signature';\n }\n if (this.pdfViewerBase.drawSignatureWithTool && signatureField) {\n var key = target.offsetParent.offsetParent.id.split('_')[0] + '_content';\n this.updateSignatureDataInSession(annot, key);\n }\n else {\n this.updateDataInSession(currentField, annot.data, annot.bounds, signatureFontFamily, signatureFontSize);\n }\n currentField.style.pointerEvents = 'none';\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(annot.pageIndex, null, annot, 'FormField Value Change', '', annot, annot);\n }\n // eslint-disable-next-line\n if (annot.shapeAnnotationType === \"SignatureImage\") {\n this.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, null, null, signString);\n }\n this.pdfViewer.fireFocusOutFormField(currentField.name, currentValue);\n }\n this.pdfViewerBase.signatureModule.hideSignaturePanel();\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n };\n FormFields.prototype.updateSignatureDataInSession = function (annot, key) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n if (!isNullOrUndefined(formFieldsData)) {\n var _loop_3 = function (i) {\n if (formFieldsData[i].Key === key) {\n var formFieldIndex = this_3.pdfViewer.formFieldCollection.findIndex(function (el) { return el.id === formFieldsData[i].FormField.id.split('_')[0]; });\n if (annot.shapeAnnotationType === \"SignatureText\") {\n formFieldsData[i].FormField.signatureType = \"Text\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Text\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Text\";\n formFieldsData[i].FormField.fontFamily = annot.fontFamily === \"TimesRoman\" ? \"Times New Roman\" : annot.fontFamily;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.fontFamily = annot.fontFamily;\n this_3.pdfViewer.nameTable[key].fontFamily = annot.fontFamily;\n formFieldsData[i].FormField.fontSize = annot.fontSize;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.fontSize = annot.fontSize;\n this_3.pdfViewer.nameTable[key].fontSize = annot.fontSize;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Text\" : null;\n }\n else if (annot.shapeAnnotationType === \"SignatureImage\") {\n formFieldsData[i].FormField.signatureType = \"Image\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Image\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Image\";\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Image\" : null;\n }\n else {\n formFieldsData[i].FormField.signatureType = \"Path\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Path\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Path\";\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Path\" : null;\n }\n formFieldsData[i].FormField.signatureBound = annot.bounds;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureBound = annot.bounds;\n this_3.pdfViewer.nameTable[key].signatureBound = annot.bounds;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureBound = annot.bounds : null;\n if (annot.shapeAnnotationType === \"Path\") {\n var collectionData = processPathData(annot.data);\n var csData = splitArrayCollection(collectionData);\n formFieldsData[i].FormField.value = JSON.stringify(csData);\n this_3.pdfViewer.nameTable[key].value = annot.data;\n this_3.pdfViewer.nameTable[key.split('_')[0]].value = annot.data;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.value = JSON.stringify(csData);\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].value = JSON.stringify(csData) : null;\n }\n else {\n formFieldsData[i].FormField.value = annot.data;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.value = annot.data;\n this_3.pdfViewer.nameTable[key.split('_')[0]].value = annot.data;\n this_3.pdfViewer.nameTable[key].value = annot.data;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].value = annot.data : null;\n }\n this_3.pdfViewer.formDesigner.updateFormFieldCollections(formFieldsData[i].FormField);\n this_3.pdfViewer.formDesigner.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldsData[i].FormField, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, \"\", formFieldsData[i].FormField.value);\n }\n };\n var this_3 = this;\n for (var i = 0; i < formFieldsData.length; i++) {\n _loop_3(i);\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(formFieldsData, '_formDesigner');\n };\n /**\n * @private\n */\n FormFields.prototype.getDefaultBoundsforSign = function (bounds) {\n return { x: bounds.x + 4, y: bounds.y + 4, width: bounds.width - 8, height: bounds.height - 8 };\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.getSignBounds = function (currentIndex, rotateAngle, currentPage, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight, isDraw) {\n // eslint-disable-next-line\n var bounds;\n var signatureId = this.pdfViewer.isInitialFieldToolbarSelection ? 'initialIcon' : 'signIcon';\n var signIcon = document.getElementById(signatureId + '_' + currentPage + '_' + currentIndex);\n var signLeft = signIcon ? parseFloat(signIcon.style.left) * zoomvalue : 0;\n var difference = (currentLeft * zoomvalue) - (signLeft / zoomvalue);\n if (rotateAngle === 90 || rotateAngle === 270) {\n this.rotateAngle = 0;\n if (signIcon.style.left !== '') {\n if (isDraw) {\n return bounds = { x: currentLeft - (difference / zoomvalue) - zoomvalue, y: currentTop + (difference / zoomvalue) + zoomvalue, width: currentWidth, height: currentHeight };\n }\n else {\n return bounds = { x: currentLeft - (difference / zoomvalue) - zoomvalue, y: currentTop + (difference / zoomvalue) + zoomvalue, width: currentHeight, height: currentWidth };\n }\n }\n else {\n difference = 10;\n if (isDraw) {\n return bounds = { x: currentLeft - currentWidth, y: currentTop + currentWidth, width: currentHeight, height: currentWidth };\n }\n else {\n return bounds = { x: currentLeft - currentWidth - difference / 2, y: currentTop + currentWidth + difference, width: currentHeight, height: currentWidth };\n }\n }\n }\n else {\n this.rotateAngle = 0;\n return bounds = { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight };\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.updateSameFieldsValue = function (event) {\n if (this.formFieldsData) {\n for (var i = 0; i < this.formFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentField = this.formFieldsData[i];\n if (event.target.name === currentField.FieldName && event.target.id !== currentField.uniqueID) {\n // eslint-disable-next-line\n var currentTarget = document.getElementById(this.formFieldsData[i].uniqueID);\n if (currentTarget) {\n currentTarget.value = event.target.value;\n }\n else {\n currentField.Text = event.target.value;\n this.pdfViewerBase.setItemInSessionStorage(this.formFieldsData, '_formfields');\n }\n }\n }\n }\n };\n FormFields.prototype.updateFormFieldsValue = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n var fieldIndex;\n var nextFields;\n if (currentTarget.InsertSpaces && !this.isKeyDownCheck) {\n // eslint-disable-next-line\n var font = parseInt(currentTarget.style.width) + (parseInt(currentTarget.style.height) / 2);\n currentTarget.style.width = '' + font + 'px';\n this.isKeyDownCheck = true;\n }\n if (event.which === 9 && currentTarget && (currentTarget.className === 'e-pdfviewer-formFields' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature')) {\n // eslint-disable-next-line\n var id = currentTarget.id.split('input_')[1].split('_')[0];\n // eslint-disable-next-line\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + parseInt(id));\n // eslint-disable-next-line\n var currentFields = textLayer.getElementsByClassName('e-pdfviewer-formFields');\n var istabindexed = true;\n fieldIndex = this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget.id; });\n if ((!event.shiftKey && event.key === \"Tab\")) {\n nextFields = fieldIndex + 1 < this.pdfViewer.formFieldCollections.length ? this.pdfViewer.formFieldCollections[fieldIndex + 1] : this.pdfViewer.formFieldCollections[0];\n }\n this.pdfViewer.focusFormField(nextFields);\n istabindexed = true;\n event.preventDefault();\n var tabindex = currentTarget.tabIndex + 1;\n while (!istabindexed) {\n for (var l = 0; l < currentFields.length; l++) {\n istabindexed = false;\n if (currentFields[l].tabIndex === (tabindex)) {\n currentFields[l].focus();\n istabindexed = true;\n event.preventDefault();\n break;\n }\n }\n if (this.maintainTabIndex[id] === tabindex) {\n istabindexed = true;\n }\n tabindex = tabindex + 1;\n }\n }\n if ((event.shiftKey && event.key === \"Tab\")) {\n var fieldIndex_1 = this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget.id; });\n var nextField = fieldIndex_1 > 0 ? this.pdfViewer.formFieldCollections[fieldIndex_1 - 1] : this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.length - 1];\n this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n if (event.currentTarget.classList.contains('e-pdfviewer-signatureformfields') ||\n event.currentTarget.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n if (event.key === 'Enter') {\n // eslint-disable-next-line\n var currentTarget_1 = event.target;\n for (var m = 0; m < this.pdfViewer.formFieldCollections.length; m++) {\n if (currentTarget_1.id === this.pdfViewer.formFieldCollections[m].id) {\n this.setFocus(currentTarget_1.id);\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', this.pdfViewer.formFieldCollections[m]);\n }\n }\n }\n else {\n event.preventDefault();\n }\n }\n };\n FormFields.prototype.changeFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n this.updateDataInSession(currentTarget);\n };\n FormFields.prototype.calculateSignatureBounds = function (signatureCavasWidth, signatureCavasHeight, newdifferenceX, newdifferenceY, isSignature, currentField, currentData) {\n var ratioX = newdifferenceX / signatureCavasWidth;\n var ratioY = newdifferenceY / signatureCavasHeight;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var currentWidth = 0;\n var currentHeight = 0;\n var isSignatureStretched = false;\n var isHeightStretched = false;\n var leftDifference = 0;\n var topDifference = 0;\n if (isSignature) {\n currentWidth = this.pdfViewer.handWrittenSignatureSettings.width ? this.pdfViewer.handWrittenSignatureSettings.width : 150;\n currentHeight = this.pdfViewer.handWrittenSignatureSettings.height ? this.pdfViewer.handWrittenSignatureSettings.height : 100;\n }\n else {\n var fieldWidth = currentField ? currentField.style.width === '100%' ? currentField.clientWidth : parseFloat(currentField.style.width) : this.ConvertPointToPixel(currentData.LineBounds.Width);\n var fieldHeight = currentField ? currentField.style.height === '100%' ? currentField.clientHeight : parseFloat(currentField.style.height) : this.ConvertPointToPixel(currentData.LineBounds.Height);\n var fieldWidthRatio = fieldWidth / fieldHeight;\n var fieldHeightRatio = fieldHeight / fieldWidth;\n var canvasWidthRatio = signatureCavasWidth / signatureCavasHeight;\n var canvasHeightRatio = signatureCavasHeight / signatureCavasWidth;\n var fieldRotation = currentField ? currentField.offsetParent.offsetParent.style.transform ? currentField.offsetParent.offsetParent.style.transform : currentField.style.transform : currentData.RotationAngle;\n if ((fieldWidthRatio > canvasWidthRatio) || (fieldHeightRatio > canvasWidthRatio) || ((Math.abs(fieldWidthRatio - fieldHeightRatio)) <= 1)) {\n var ratioDifference = 0;\n if ((fieldHeightRatio > canvasWidthRatio) || ((Math.abs(fieldWidthRatio - fieldHeightRatio)) <= 1)) {\n isHeightStretched = true;\n ratioDifference = fieldHeightRatio / canvasHeightRatio;\n }\n else {\n isSignatureStretched = true;\n ratioDifference = fieldWidthRatio / canvasWidthRatio;\n }\n if (fieldRotation === 'rotate(90deg)' || fieldRotation === 'rotate(270deg)') {\n // eslint-disable-next-line\n currentWidth = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldWidth / zoomvalue;\n }\n else {\n if (isSignatureStretched) {\n // eslint-disable-next-line\n leftDifference = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentWidth = (fieldWidth / ratioDifference) / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldHeight / zoomvalue;\n }\n if (isHeightStretched) {\n // eslint-disable-next-line\n topDifference = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentWidth = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentHeight = (fieldHeight / ratioDifference) / zoomvalue;\n }\n }\n }\n else {\n if (fieldRotation === 'rotate(90deg)' || fieldRotation === 'rotate(270deg)') {\n // eslint-disable-next-line\n currentWidth = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldWidth / zoomvalue;\n }\n else {\n // eslint-disable-next-line\n currentWidth = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldHeight / zoomvalue;\n }\n }\n }\n var currentLeftDiff = (signatureCavasWidth - newdifferenceX) / 2;\n var currentTopDiff = (signatureCavasHeight - newdifferenceY) / 2;\n if (isSignatureStretched) {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * leftDifference;\n var leftValueDiff = ((leftDifference * ratioX) - (currentWidth * ratioX)) / 2;\n currentLeftDiff = currentLeftDiff + leftValueDiff;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * currentHeight;\n }\n else if (isHeightStretched) {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * currentWidth;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * topDifference;\n var topValueDiff = ((topDifference * ratioY) - (currentHeight * ratioY)) / 2;\n currentTopDiff = currentTopDiff + topValueDiff;\n }\n else {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * currentWidth;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * currentHeight;\n }\n currentWidth = currentWidth * ratioX;\n currentHeight = currentHeight * ratioY;\n return { currentLeftDiff: currentLeftDiff, currentTopDiff: currentTopDiff, currentWidth: currentWidth, currentHeight: currentHeight };\n };\n /**\n * @param data\n * @param isSignature\n * @param currentField\n * @param data\n * @param isSignature\n * @param currentField\n * @param data\n * @param isSignature\n * @param currentField\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.updateSignatureAspectRatio = function (data, isSignature, currentField, currentData) {\n // eslint-disable-next-line\n var collectionData = processPathData(data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n var minimumX = -1;\n var minimumY = -1;\n var maximumX = -1;\n var maximumY = -1;\n var signatureCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n var signatureCavasWidth = 0;\n var signatureCavasHeight = 0;\n for (var m = 0; m < csData.length; m++) {\n // eslint-disable-next-line\n var val = csData[m];\n if (minimumX === -1) {\n // eslint-disable-next-line\n minimumX = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n maximumX = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n minimumY = parseFloat(val['y'].toString());\n // eslint-disable-next-line\n maximumY = parseFloat(val['y'].toString());\n }\n else {\n // eslint-disable-next-line\n var point1 = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n var point2 = parseFloat(val['y'].toString());\n if (minimumX >= point1) {\n minimumX = point1;\n }\n if (minimumY >= point2) {\n minimumY = point2;\n }\n if (maximumX <= point1) {\n maximumX = point1;\n }\n if (maximumY <= point2) {\n maximumY = point2;\n }\n }\n }\n signatureCavasWidth = signatureCanvas ? signatureCanvas.clientWidth : 650;\n signatureCavasHeight = signatureCanvas ? signatureCanvas.clientHeight : 300;\n var newdifferenceX = maximumX - minimumX;\n var newdifferenceY = maximumY - minimumY;\n var signBounds = this.calculateSignatureBounds(signatureCavasWidth, signatureCavasHeight, newdifferenceX, newdifferenceY, isSignature, currentField, currentData);\n if (isSignature) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (signBounds.currentWidth / 2)) / zoomvalue;\n // eslint-disable-next-line max-len\n var currentTop = ((parseFloat(pageDiv.style.height) / 2) - (signBounds.currentHeight / 2)) / zoomvalue;\n return { x: currentLeft, y: currentTop, width: signBounds.currentWidth, height: signBounds.currentHeight };\n }\n else {\n return { left: signBounds.currentLeftDiff, top: signBounds.currentTopDiff, width: signBounds.currentWidth, height: signBounds.currentHeight };\n }\n };\n /**\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.updateDataInSession = function (target, signaturePath, signatureBounds, signatureFontFamily, signatureFontSize) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var filterFields = [];\n var fieldsByName = \" \";\n var filterFieldName = [];\n var filterArrayLength = 0;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data && !this.pdfViewer.formDesignerModule) {\n // eslint-disable-next-line\n var FormFieldsData = JSON.parse(data);\n filterFields = FormFieldsData.filter(function (item) { return item.uniqueID === target.id; });\n if (filterFields.length > 0) {\n fieldsByName = filterFields[0].FieldName;\n filterFieldName = FormFieldsData.filter(function (item) { return item.FieldName === fieldsByName; });\n filterArrayLength = filterFieldName.length;\n }\n for (var m = 0; m < FormFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = FormFieldsData[m];\n if (currentData.uniqueID === target.id || fieldsByName === currentData.FieldName) {\n if (target && target.type === 'text' || target.type === 'password' || target.type === 'textarea') {\n var signField = target;\n if (signField.classList.contains('e-pdfviewer-signatureformfields') || signField.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n if (signaturePath) {\n currentData.Value = signaturePath;\n }\n if (signatureBounds) {\n currentData.Bounds = signatureBounds;\n }\n if (signatureFontFamily) {\n currentData.FontFamily = signatureFontFamily;\n currentData.FontSize = signatureFontSize;\n }\n }\n else {\n currentData.Text = target.value;\n currentData.Value = target.value;\n }\n }\n else if (target.type === 'radio') {\n if (target.checked) {\n for (var l = 0; l < FormFieldsData.length; l++) {\n // eslint-disable-next-line\n var currentType = FormFieldsData[l];\n if (FormFieldsData[l].GroupName === target.name) {\n FormFieldsData[l].Selected = false;\n }\n }\n if (target.value == currentData.Value) {\n currentData.Selected = true;\n break;\n }\n else {\n currentData.Selected = false;\n }\n }\n }\n else if (target.type === 'checkbox') {\n var targetCheckBox = target.id;\n var filterCheckBoxSameName = FormFieldsData.filter(function (sameNameCheckboxField) { return (sameNameCheckboxField.GroupName === target.name) && sameNameCheckboxField.Name == 'CheckBox'; });\n for (var l = 0; l < filterCheckBoxSameName.length; l++) {\n // eslint-disable-next-line\n var currentType = filterCheckBoxSameName[l];\n currentType.Selected = false;\n currentType.checked = false;\n // eslint-disable-next-line\n var currentTarget = document.getElementById(currentType.uniqueID);\n if (currentTarget) {\n if (targetCheckBox !== currentTarget.id) {\n currentTarget.Selected = false;\n currentTarget.checked = false;\n currentTarget.style.webkitAppearance = 'none';\n }\n }\n }\n if (target.checked) {\n currentData.Selected = true;\n }\n else {\n currentData.Selected = false;\n }\n }\n else if (target.type === 'select-one' && target.size === 0) {\n // eslint-disable-next-line\n var currentValue = target.options[target.selectedIndex].text;\n // eslint-disable-next-line\n var childrens = target.children;\n var isChildElements = false;\n for (var k = 0; k < childrens.length; k++) {\n if (childrens[k].text === currentValue) {\n currentData.SelectedValue = currentValue;\n }\n }\n }\n else if (target.type === 'select-multiple' || target.size > 0) {\n // eslint-disable-next-line\n var currentValue = target.selectedOptions;\n currentData.SelectedList = [];\n for (var z = 0; z < currentValue.length; z++) {\n // eslint-disable-next-line\n var childrens = target.children;\n for (var k = 0; k < childrens.length; k++) {\n if (childrens[k] === currentValue[z]) {\n currentData.SelectedList.push(k);\n }\n }\n }\n currentData.SelectedValue = target.value;\n var index = currentData.TextList ? currentData.TextList.indexOf(target.value) : 0;\n currentData.selectedIndex = index > -1 ? index : 0;\n currentData.SelectedList = [currentData.selectedIndex];\n }\n if (target.disabled) {\n currentData.IsReadonly = true;\n }\n this.updateFormFieldsCollection(currentData);\n filterArrayLength--;\n if (filterArrayLength == 0)\n break;\n }\n else if (target && target.getAttribute('list') != null && target.type === 'text' && currentData.uniqueID === target.list.id) {\n currentData.SelectedValue = target.value;\n }\n this.updateFormFieldsCollection(currentData);\n }\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_formfields');\n this.pdfViewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n if (this.pdfViewer.formDesignerModule && target && target.id) {\n var selectedItem = this.pdfViewer.nameTable[target.id.split('_')[0]];\n if (selectedItem && selectedItem.wrapper && selectedItem.wrapper.children[0]) {\n selectedItem.value = target.value;\n var point = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.pdfViewer.formDesignerModule.updateFormDesignerFieldInSessionStorage(point, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n }\n }\n };\n /**\n * @private\n */\n FormFields.prototype.removeExistingFormFields = function () {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n if (formFieldsData) {\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].FormField.formFieldAnnotationType === \"RadioButton\") {\n var buttonItem = [];\n buttonItem = formFieldsData[i].FormField.radiobuttonItem;\n var sameButtonItemId = formFieldsData[i].FormField.id.split('_')[0];\n for (var j = 0; j < buttonItem.length; j++) {\n var otherButton = buttonItem[j];\n if (otherButton.id.split('_')[0] !== sameButtonItemId) {\n this.pdfViewer.formDesignerModule.deleteFormField(otherButton.id.split('_')[0]);\n }\n }\n }\n if (formFieldsData[i].Key) {\n this.pdfViewer.formDesignerModule.deleteFormField(formFieldsData[i].Key.split('_')[0]);\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyCommonProperties = function (inputdiv, pageIndex, index, currentData, isFieldRotated) {\n // eslint-disable-next-line\n var inputField = document.getElementById(this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index);\n if (inputField) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n if (inputdiv.type === 'text' && inputField.parentElement !== textLayer) {\n inputField.parentElement.remove();\n }\n inputField.remove();\n }\n // eslint-disable-next-line\n var signIcon = document.getElementById('signIcon_' + pageIndex + '_' + index);\n var left = parseFloat(inputdiv.style.left);\n var top = parseInt(inputdiv.style.top);\n var width = parseFloat(inputdiv.style.width);\n var height = parseFloat(inputdiv.style.height);\n var signIconWidth;\n var signIconHeght;\n var hightDifference;\n var widthDifference;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n if (signIcon && !isFieldRotated) {\n signIconWidth = parseFloat(signIcon.style.width);\n signIconHeght = parseFloat(signIcon.style.height);\n if (signIcon.style.transform == 'rotate(90deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n hightDifference = height / 2;\n widthDifference = signIconWidth * zoomvalue;\n signIcon.style.left = ((left - (hightDifference - (signIconWidth * zoomvalue))) + (widthDifference / 2)) + 'px';\n }\n if (signIcon.style.transform == 'rotate(180deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n signIcon.style.left = left + 'px';\n signIcon.style.top = (top) + 'px';\n }\n if (signIcon.style.transform == 'rotate(270deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n hightDifference = height / 2;\n widthDifference = signIconWidth * zoomvalue;\n signIcon.style.left = ((left - (hightDifference - widthDifference)) + (widthDifference / 2)) + 'px';\n signIcon.style.top = ((top + (width + (signIconHeght * zoomvalue)) + ((signIconHeght * zoomvalue) / 2))) + 'px';\n }\n }\n if (currentData.IsSignatureField && this.isSignatureField) {\n inputdiv.className = 'e-pdfviewer-signatureformfields-signature';\n inputdiv.style.pointerEvents = 'none';\n }\n else if (currentData.IsSignatureField) {\n if (currentData.Value) {\n inputdiv.className = 'e-pdfviewer-signatureformfields-signature';\n inputdiv.style.pointerEvents = 'none';\n }\n else {\n inputdiv.className = 'e-pdfviewer-signatureformfields';\n }\n }\n else if (currentData.Name !== 'Button') {\n inputdiv.className = 'e-pdfviewer-formFields';\n }\n inputdiv.id = this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index;\n inputdiv.ariaLabel = this.pdfViewer.element.id + 'input_' + pageIndex;\n inputdiv.style.zIndex = 1000;\n };\n /**\n * @param currentData\n * @param pageIndex\n * @param index\n * @param printContainer\n * @param currentData\n * @param pageIndex\n * @param index\n * @param printContainer\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.createFormFields = function (currentData, pageIndex, index, printContainer, count) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n currentField = this.createTextBoxField(currentData, pageIndex, 'text');\n break;\n case 'Password':\n currentField = this.createTextBoxField(currentData, pageIndex, 'password');\n break;\n case 'RadioButton':\n currentField = this.createRadioBoxField(currentData, pageIndex, 'radio');\n break;\n case 'CheckBox':\n currentField = this.createRadioBoxField(currentData, pageIndex, 'checkbox', printContainer);\n break;\n case 'DropDown':\n currentField = this.createDropDownField(currentData, pageIndex, index, printContainer);\n break;\n case 'ListBox':\n currentField = this.createListBoxField(currentData, pageIndex);\n break;\n case 'InitialField':\n case 'SignatureField':\n currentField = this.createSignatureField(currentData, pageIndex, index, printContainer, count);\n var isFieldRotated = false;\n if (currentData['Rotation'] === 0) {\n isFieldRotated = true;\n }\n if (currentData.Value && currentData.Value !== '') {\n this.renderExistingAnnnot(currentData, index, printContainer, isFieldRotated);\n this.isSignatureRendered = true;\n count++;\n }\n break;\n case 'Button':\n currentField = this.createButtonField(currentData, pageIndex);\n break;\n case 'ink':\n if (this.pdfViewer.formDesignerModule) {\n if (currentData.Value && currentData.Value !== '' && !this.isSignatureRendered) {\n this.renderExistingAnnnot(currentData, index, printContainer);\n }\n }\n break;\n case 'SignatureText':\n case 'SignatureImage':\n if (currentData.Value && currentData.Value !== '' && !this.isSignatureRendered) {\n this.renderExistingAnnnot(currentData, index, printContainer);\n }\n break;\n }\n return { currentField: currentField, count: count };\n };\n FormFields.prototype.getFormFieldType = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n currentField = 'Textbox';\n break;\n case 'Password':\n currentField = 'Password';\n break;\n case 'RadioButton':\n currentField = 'RadioButton';\n break;\n case 'CheckBox':\n currentField = 'CheckBox';\n break;\n case 'DropDown':\n currentField = 'DropDown';\n break;\n case 'ListBox':\n currentField = 'ListBox';\n break;\n case 'SignatureField':\n currentField = 'SignatureField';\n if (currentData.IsInitialField) {\n currentField = 'InitialField';\n }\n break;\n case 'InitialField':\n currentField = 'InitialField';\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createButtonField = function (data, pageIndex) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n if (data.Value && (this.isBase64(data.Value) || this.isURL(data.Value))) {\n inputField.type = 'image';\n inputField.src = data.Value;\n }\n else {\n inputField.type = 'button';\n }\n inputField.className = 'e-pv-buttonItem';\n if (data.Text !== '') {\n inputField.value = data.Text;\n }\n else {\n inputField.value = '';\n }\n inputField.name = data.FieldName;\n return inputField;\n };\n /**\n * Returns the boolean value based on the imgae source base64\n *\n * @param {string} imageSrc - Passing the image source.\n *\n * @returns {boolean}\n */\n FormFields.prototype.isBase64 = function (imageSrc) {\n return /^data:([a-zA-Z]*\\/[a-zA-Z+.-]*);base64,/.test(imageSrc);\n };\n /**\n * Returns the boolean value based on the imgae source URL\n *\n * @param {string} imageSrc - Passing the image source.\n *\n * @returns {boolean}\n */\n FormFields.prototype.isURL = function (imageSrc) {\n try {\n new URL(imageSrc);\n return true;\n }\n catch (_a) {\n return false;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.createTextBoxField = function (data, pageIndex, type) {\n // eslint-disable-next-line\n var inputField;\n if (data.Visible === 1) {\n return;\n }\n if (data.Multiline) {\n inputField = document.createElement('textarea');\n inputField.style.resize = 'none';\n }\n else {\n inputField = document.createElement('input');\n inputField.type = type;\n }\n if (data.MaxLength > 0) {\n inputField.maxLength = data.MaxLength;\n }\n this.addAlignmentPropety(data, inputField);\n if (data.Text !== '') {\n inputField.value = data.Text;\n }\n else {\n inputField.value = '';\n }\n if (!this.pdfViewer.enableAutoComplete) {\n inputField.autocomplete = 'off';\n }\n inputField.name = data.FieldName;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.checkIsReadonly = function (data, inputField) {\n var isReadonly = false;\n for (var n = 0; n < this.readOnlyCollection.length; n++) {\n if (inputField.id === this.readOnlyCollection[n]) {\n isReadonly = true;\n break;\n }\n }\n if (!this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule && (data.IsInitialField || data.IsSignatureField)) {\n isReadonly = true;\n }\n if (data.IsReadonly || (!this.pdfViewer.enableFormFields) || isReadonly) {\n inputField.disabled = true;\n inputField.style.cursor = 'default';\n inputField.style.backgroundColor = 'transparent';\n }\n else {\n // eslint-disable-next-line\n var borderColor = data.BackColor;\n inputField.style.backgroundColor = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 0.2 + ')';\n // eslint-disable-next-line\n var fontColor = data.FontColor;\n inputField.style.color = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n }\n };\n /**\n * @param isReadonly\n * @private\n */\n // eslint-disable-next-line max-len\n FormFields.prototype.formFieldsReadOnly = function (isReadonly) {\n // eslint-disable-next-line\n var formFields = document.getElementsByClassName('e-pdfviewer-formFields');\n this.makeformFieldsReadonly(formFields, isReadonly);\n // eslint-disable-next-line\n var signatureFields = document.getElementsByClassName('e-pdfviewer-signatureformfields');\n this.makeformFieldsReadonly(signatureFields, isReadonly);\n };\n // eslint-disable-next-line\n FormFields.prototype.makeformFieldsReadonly = function (formFields, isReadonly) {\n for (var i = 0; i < formFields.length; i++) {\n if (formFields[i]) {\n // eslint-disable-next-line\n var inputField = formFields[i];\n if (!isReadonly) {\n inputField.disabled = true;\n inputField.style.cursor = 'default';\n }\n else {\n // eslint-disable-next-line\n inputField.disabled = false;\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyTabIndex = function (data, inputField, pageIndex) {\n inputField.tabIndex = data.TabIndex;\n this.maxTabIndex = Math.max(this.maxTabIndex, inputField.tabIndex);\n if (this.minTabIndex === -1) {\n this.minTabIndex = inputField.tabIndex;\n }\n this.minTabIndex = Math.min(this.minTabIndex, inputField.tabIndex);\n this.maintainTabIndex[pageIndex.toString()] = this.maxTabIndex;\n this.maintanMinTabindex[pageIndex.toString()] = this.minTabIndex;\n };\n // eslint-disable-next-line\n FormFields.prototype.checkIsRequiredField = function (data, inputField) {\n if (data.IsRequired) {\n inputField.required = true;\n inputField.style.border = '1px solid red';\n }\n else {\n // eslint-disable-next-line\n var borderColor = data.BorderColor;\n inputField.style.border = data.BorderWidth;\n inputField.style.borderColor = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n }\n if (inputField.type !== 'checkbox' && inputField.type !== 'radio') {\n var borderStyle = data.BorderStyle;\n this.addBorderStylePropety(borderStyle, inputField);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyDefaultColor = function (inputField) {\n // eslint-disable-next-line max-len\n if (inputField.type !== 'button' && (inputField.style.backgroundColor === 'rgba(255, 255, 255, 0.2)' || inputField.style.backgroundColor === 'rgba(0, 0, 0, 0.2)') || inputField.style.backgroundColor === 'rgba(218, 234, 247, 0.2)') {\n inputField.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n }\n if (inputField.style.color === 'rgba(255, 255, 255, 0.2)') {\n inputField.style.color = 'black';\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.addAlignmentPropety = function (data, inputField) {\n // eslint-disable-next-line\n var alignment = data.Alignment;\n switch (alignment) {\n case 0:\n inputField.style.textAlign = 'left';\n break;\n case 1:\n inputField.style.textAlign = 'center';\n break;\n case 2:\n inputField.style.textAlign = 'right';\n break;\n case 3:\n inputField.style.textAlign = 'justify';\n break;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.addBorderStylePropety = function (borderStyle, inputField) {\n // eslint-disable-next-line\n switch (borderStyle) {\n case 0:\n inputField.style.borderStyle = 'solid';\n break;\n case 1:\n inputField.style.borderStyle = 'dashed';\n break;\n case 2:\n inputField.style.borderStyle = 'outset';\n break;\n case 3:\n inputField.style.borderStyle = 'inset';\n break;\n case 4:\n inputField.style.borderStyle = 'outset';\n break;\n case 5:\n inputField.style.borderStyle = 'dotted';\n break;\n case 6:\n inputField.style.borderStyle = 'inset';\n break;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.createRadioBoxField = function (data, pageIndex, type, printContainer) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n inputField.type = type;\n if (data.Selected) {\n inputField.checked = true;\n }\n else if (type === 'checkbox' && !printContainer) {\n inputField.style.webkitAppearance = 'none';\n }\n inputField.name = data.GroupName;\n inputField.value = data.Value;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createDropDownField = function (data, pageIndex, index, printContainer) {\n // eslint-disable-next-line\n var inputField = document.createElement('select');\n // eslint-disable-next-line\n var childItems = data['TextList'];\n if (data.Selected && !printContainer) {\n // eslint-disable-next-line\n var previousField = document.getElementById('editableDropdown' + pageIndex + '_' + index);\n if (previousField) {\n previousField.remove();\n }\n // eslint-disable-next-line\n var inputFields = document.createElement('input');\n inputFields.id = 'editableDropdown' + pageIndex + '_' + index;\n inputFields.setAttribute('list', this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index);\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n inputFields.style.position = 'absolute';\n inputFields.style.border = '0px';\n // eslint-disable-next-line\n this.applyPosition(inputFields, bounds, font, pageIndex, data['Rotation']);\n inputFields.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n inputFields.className = 'e-pdfviewer-formFields';\n if (data.selectedIndex === -1) {\n inputFields.value = data.SelectedValue;\n }\n if (printContainer) {\n printContainer.appendChild(inputFields);\n }\n else {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n textLayer.appendChild(inputFields);\n }\n inputFields.addEventListener('focus', this.focusFormFields.bind(this));\n inputFields.addEventListener('blur', this.blurFormFields.bind(this));\n inputFields.addEventListener('click', this.updateFormFields.bind(this));\n inputFields.addEventListener('change', this.changeFormFields.bind(this));\n inputFields.addEventListener('keydown', this.updateFormFieldsValue.bind(this));\n inputField = document.createElement('DATALIST');\n }\n for (var j = 0; j < childItems.length; j++) {\n // eslint-disable-next-line\n var option = document.createElement('option');\n option.className = 'e-dropdownSelect';\n if (data.SelectedValue === childItems[j] || data.selectedIndex === j) {\n option.selected = true;\n }\n else {\n option.selected = false;\n }\n option.innerHTML = childItems[j];\n inputField.appendChild(option);\n }\n inputField.name = data.Text;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createListBoxField = function (data, pageIndex) {\n // eslint-disable-next-line\n var inputField = document.createElement('select');\n // eslint-disable-next-line\n var childItems = data['TextList'];\n if (data.MultiSelect) {\n inputField.multiple = true;\n }\n else {\n inputField.multiple = false;\n inputField.size = childItems.length;\n }\n for (var j = 0; j < childItems.length; j++) {\n // eslint-disable-next-line\n var option = document.createElement('option');\n option.className = 'e-pdfviewer-ListBox';\n for (var k = 0; k < data.SelectedList.length; k++) {\n if (data.SelectedList[k] === j) {\n option.selected = true;\n }\n }\n option.innerHTML = childItems[j];\n inputField.appendChild(option);\n }\n inputField.name = data.Text;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createSignatureField = function (data, pageIndex, index, printContainer, count) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n inputField.type = 'text';\n inputField.name = data.FieldName;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var previousField = document.getElementById('signIcon_' + pageIndex + '_' + index);\n if (previousField && !printContainer) {\n previousField.remove();\n }\n this.pdfViewerBase.isInitialField = data.IsInitialField;\n var signIndicator = this.pdfViewerBase.isInitialField ? \"Initial\" : \"Sign\";\n //check whether the width for sign indicator has default value or not and then set the default width value for initial field.\n var signatureFieldIndicatorWidth = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width === 19 ? (this.pdfViewerBase.isInitialField ? 27 : 19) : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width) : 19;\n // eslint-disable-next-line\n var span = document.createElement('span');\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n var left = this.ConvertPointToPixel(bounds.X);\n var top = this.ConvertPointToPixel(bounds.Y);\n var indicatorWidth = this.ConvertPointToPixel(bounds.Width);\n var indicatorHeight = this.ConvertPointToPixel(bounds.Height);\n // eslint-disable-next-line max-len\n var height = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height > indicatorHeight * zoomvalue / 2 ? indicatorHeight * zoomvalue / 2 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height) : indicatorHeight * zoomvalue / 2;\n // eslint-disable-next-line max-len\n var width = signatureFieldIndicatorWidth > indicatorWidth * zoomvalue / 2 ? indicatorWidth * zoomvalue / 2 : signatureFieldIndicatorWidth;\n // eslint-disable-next-line max-len\n var size = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize > height / 2 ? 10 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize) : 10;\n var fontSize = size > width ? width / 2 : (size > height ? height / 2 : size);\n span.style.position = 'absolute';\n span.id = 'signIcon_' + pageIndex + '_' + index;\n var rotation = this.getAngle(pageIndex);\n // eslint-disable-next-line\n var annotBounds = { left: left, top: top, width: width, height: height };\n // eslint-disable-next-line\n var fieldBounds = this.getBounds(annotBounds, pageIndex);\n span.style.transform = 'rotate(' + rotation + 'deg)';\n span.style.left = fieldBounds.left * zoomvalue + 'px';\n span.style.top = fieldBounds.top * zoomvalue + 'px';\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n span.style.height = 5 + 'px';\n span.style.width = 10 + 'px';\n span.style.fontSize = '3px';\n }\n else {\n span.style.height = height + 'px';\n span.style.width = width + 'px';\n span.style.fontSize = fontSize + 'px';\n if (isBlazor()) {\n span.style.fontSize = (fontSize - 1) + 'px';\n }\n }\n if (!((height + this.indicatorPaddingValue) > indicatorHeight * zoomvalue) && !((width + this.indicatorPaddingValue) > indicatorWidth * zoomvalue)) {\n span.style.padding = '2px';\n }\n span.style.textAlign = 'center';\n span.style.boxSizing = 'content-box';\n // eslint-disable-next-line\n span.innerHTML = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.text ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.text : signIndicator) : signIndicator;\n span.style.color = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.color ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.color : 'black') : 'black';\n // eslint-disable-next-line\n span.style.backgroundColor = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.backgroundColor ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.backgroundColor : 'orange') : 'orange';\n span.style.opacity = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.opacity ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.opacity : 1) : 1;\n if (!isNullOrUndefined(textLayer)) {\n textLayer.appendChild(span);\n }\n this.addSignaturePath(data, count);\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.addSignaturePath = function (signData, count) {\n this.isSignatureField = false;\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n // eslint-disable-next-line max-len\n if ((currentData.Name === 'ink' || currentData.Name === 'SignatureField' || currentData.Name === 'SignatureImage' || currentData.Name === 'SignatureText') && this.pdfViewer.formDesigner ? currentData.FieldName === signData.ActualFieldName + '_' + count || currentData.FieldName === signData.FieldName + '_' + count : ((currentData.FieldName === signData.FieldName + '_' + count || currentData.FieldName === signData.ActualFieldName + '_' + count) && !isNullOrUndefined(signData.ActualFieldName)) && currentData.Value && currentData.Value !== '') {\n signData.Value = currentData.Value;\n signData.FontFamily = currentData.FontFamily;\n signData.FontSize = currentData.FontSize;\n this.isSignatureField = true;\n if (!signData.Bounds) {\n signData.Bounds = currentData.LineBounds;\n }\n break;\n }\n }\n }\n return this.isSignatureField;\n };\n // eslint-disable-next-line\n FormFields.prototype.getBounds = function (bound, pageIndex, rotation, isFieldRotated) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n // eslint-disable-next-line\n var bounds;\n if (rotation > 0) {\n bounds = this.getBoundsPosition(rotation, bound, pageDetails, isFieldRotated);\n }\n else {\n bounds = this.getBoundsPosition(pageDetails.rotation, bound, pageDetails, isFieldRotated);\n }\n return bounds;\n };\n // eslint-disable-next-line\n FormFields.prototype.getBoundsPosition = function (rotation, bound, pageDetails, isFieldRotated) {\n // eslint-disable-next-line\n var bounds;\n if (!isFieldRotated) {\n switch (rotation) {\n case 90:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n break;\n case 180:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 270:\n // eslint-disable-next-line\n bounds = { left: bound.top, top: pageDetails.height - bound.left - bound.width, width: bound.height, height: bound.width };\n break;\n case 0:\n // eslint-disable-next-line\n bounds = bound;\n break;\n case 1:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n break;\n case 2:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 3:\n // eslint-disable-next-line\n bounds = { left: bound.top, top: pageDetails.height - bound.left - bound.width, width: bound.height, height: bound.width };\n break;\n }\n if (!bounds) {\n bounds = bound;\n }\n }\n else {\n switch (rotation) {\n case 0:\n // eslint-disable-next-line\n bounds = bound;\n break;\n case 1:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height - (bound.width / 2 - bound.height / 2), top: bound.left + (bound.width / 2 - bound.height / 2), width: bound.width, height: bound.height };\n break;\n case 2:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 3:\n // eslint-disable-next-line\n bounds = { left: bound.top - (bound.width / 2 - bound.height / 2), top: (pageDetails.height - bound.left - bound.width + (bound.width / 2 - bound.height / 2)), width: bound.width, height: bound.height };\n break;\n }\n if (!bounds) {\n bounds = bound;\n }\n }\n return bounds;\n };\n // eslint-disable-next-line\n FormFields.prototype.applyPosition = function (inputField, bounds, font, pageIndex, rotation, isFieldRotated) {\n if (bounds) {\n var left = this.ConvertPointToPixel(bounds.X);\n var top_3 = this.ConvertPointToPixel(bounds.Y);\n var width = this.ConvertPointToPixel(bounds.Width);\n var height = this.ConvertPointToPixel(bounds.Height);\n var fontHeight = 0;\n // eslint-disable-next-line\n var fieldBounds = { left: left, top: top_3, width: width, height: height };\n // eslint-disable-next-line\n var annotBounds = this.getBounds(fieldBounds, pageIndex, rotation, isFieldRotated);\n if (font !== null && font.Height) {\n inputField.style.fontFamily = font.Name;\n if (font.Italic) {\n inputField.style.fontStyle = 'italic';\n }\n if (font.Bold) {\n inputField.style.fontWeight = 'Bold';\n }\n fontHeight = this.ConvertPointToPixel(font.Size);\n }\n this.pdfViewerBase.setStyleToTextDiv(inputField, annotBounds.left, annotBounds.top, fontHeight, annotBounds.width, annotBounds.height, false);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.renderExistingAnnnot = function (data, index, printContainer, isFieldRotated) {\n if (!printContainer) {\n // eslint-disable-next-line\n var bounds = void 0;\n if (data.Bounds && data.Name !== 'ink') {\n bounds = data.Bounds;\n }\n else {\n bounds = data.LineBounds;\n }\n var currentLeft = void 0;\n var currentTop = void 0;\n var currentWidth = void 0;\n var currentHeight = void 0;\n if (bounds.x || bounds.y || bounds.width || bounds.height) {\n currentLeft = bounds.x;\n currentTop = bounds.y;\n currentWidth = bounds.width;\n currentHeight = bounds.height;\n }\n else {\n currentLeft = this.ConvertPointToPixel(bounds.X);\n currentTop = this.ConvertPointToPixel(bounds.Y);\n currentWidth = this.ConvertPointToPixel(bounds.Width);\n currentHeight = this.ConvertPointToPixel(bounds.Height);\n }\n // eslint-disable-next-line\n var currentPage = parseFloat(data['PageIndex']);\n // eslint-disable-next-line\n var bound = { left: currentLeft, top: currentTop, width: currentWidth, height: currentHeight };\n // eslint-disable-next-line\n var newBounds = this.updateSignatureBounds(bound, currentPage, isFieldRotated);\n var annot = void 0;\n var fontFamily = data.FontFamily ? data.FontFamily : data.fontFamily;\n // eslint-disable-next-line\n if ((data.Value.split('base64,')[1])) {\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: newBounds, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: isFieldRotated ? this.getAngle(currentPage) : 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n else if (fontFamily && !(data.Value && data.Value.startsWith('M') && data.Value.split(',')[1].split(' ')[1].startsWith('L'))) {\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: newBounds, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', opacity: 1, rotateAngle: isFieldRotated ? this.getAngle(currentPage) : 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }, fontFamily: data.FontFamily, fontSize: data.FontSize\n };\n annot.fontFamily = fontFamily === \"TimesRoman\" ? \"Times New Roman\" : fontFamily;\n annot.fontSize = data.FontSize ? data.FontSize : data.fontSize;\n }\n else {\n var bound_1 = newBounds;\n var tempBounds = { left: newBounds.x, top: newBounds.y, width: newBounds.width, height: newBounds.height };\n bound_1 = this.updateSignatureBounds(tempBounds, currentPage, false);\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: bound_1, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'Path', opacity: 1, rotateAngle: 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n if ((data.Name === 'SignatureField' || data.Name === 'InitialField') && !isNullOrUndefined(data.id)) {\n var elementId = data.id;\n var signatureFieldElement = document.getElementById(elementId + '_content_html_element');\n var signatureField = this.pdfViewer.nameTable[elementId];\n annot.id = signatureField.id + \"_content\";\n var obj = this.pdfViewer.add(annot);\n signatureField.wrapper.children.push(obj.wrapper);\n if (!isNullOrUndefined(signatureFieldElement) && this.isSignatureField) {\n var inputField = signatureFieldElement.children[0].children[0];\n inputField.style.pointerEvents = 'none';\n inputField.className = 'e-pdfviewer-signatureformfields-signature';\n inputField.parentElement.style.pointerEvents = 'none';\n }\n else if (!isNullOrUndefined(signatureFieldElement) && data.Value) {\n var inputField = signatureFieldElement.children[0].children[0];\n inputField.style.pointerEvents = 'none';\n inputField.className = 'e-pdfviewer-signatureformfields-signature';\n inputField.parentElement.style.pointerEvents = 'none';\n }\n }\n else {\n var target = document.getElementById(annot.id);\n if (target && target.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n this.pdfViewer.annotation.deleteAnnotationById(annot.id);\n }\n this.pdfViewer.add(annot);\n if (target) {\n this.updateDataInSession(target, annot.data, annot.bounds);\n this.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, annot.strokeColor, annot.thickness, annot.data);\n }\n }\n data.Bounds = annot.bounds;\n if (this.pdfViewer.formDesignerModule) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n annot.bounds = { x: currentLeft * zoomvalue, y: currentTop * zoomvalue, width: currentWidth * zoomvalue, height: currentHeight * zoomvalue };\n this.updateSignatureDataInSession(annot, annot.id);\n }\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentPage);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentPage);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.updateSignatureBounds = function (bound, pageIndex, isFieldRotated) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails) {\n if (!isFieldRotated) {\n if (pageDetails.rotation === 1) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.top - bound.height, y: bound.left, width: bound.height, height: bound.width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.left - bound.width, y: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n // eslint-disable-next-line max-len\n return { x: bound.top, y: (pageDetails.height - bound.left - bound.width), width: bound.height, height: bound.width };\n }\n else {\n // eslint-disable-next-line max-len\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n }\n else {\n if (pageDetails.rotation === 1) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.top - bound.height - (bound.width / 2 - bound.height / 2), y: bound.left + (bound.width / 2 - bound.height / 2), width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.left - bound.width, y: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n // eslint-disable-next-line max-len\n return { x: bound.top - (bound.width / 2 - bound.height / 2), y: (pageDetails.height - bound.left - bound.width + (bound.width / 2 - bound.height / 2)), width: bound.width, height: bound.height };\n }\n else {\n // eslint-disable-next-line max-len\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n }\n }\n else {\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n };\n FormFields.prototype.resetFormFields = function () {\n var formFieldData = this.pdfViewer.formFieldCollections;\n for (var i = 0; i < formFieldData.length; i++) {\n var currentData = formFieldData[i];\n this.currentTarget = document.getElementById(currentData.id);\n if (currentData.type === 'Textbox') {\n this.currentTarget.value = currentData.value;\n }\n else if (currentData.type === 'RadioButton') {\n this.currentTarget.checked = currentData.value;\n if (currentData.value) {\n this.updateDataInSession(this.currentTarget);\n }\n }\n else if (currentData.type === 'DropDown') {\n this.currentTarget.value = currentData.value;\n }\n else if (currentData.type === 'CheckBox') {\n this.currentTarget.checked = currentData.value;\n }\n else if (currentData.type === 'SignatureField') {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.nameTable[currentData.id];\n if (annotation) {\n if (this.currentTarget && this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n this.currentTarget.className = 'e-pdfviewer-signatureformfields';\n this.currentTarget.style.pointerEvents = '';\n this.updateDataInSession(this.currentTarget, '');\n }\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderDrawing();\n }\n }\n if (currentData.type !== 'RadioButton' && currentData.type !== 'SignatureField') {\n this.updateDataInSession(this.currentTarget);\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.clearFormFieldStorage = function () {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 4500;\n if (this.pdfViewerBase.isStorageExceed) {\n var storageLength = window.sessionStorage.length;\n // eslint-disable-next-line\n var formFieldsList = [];\n for (var i = 0; i < storageLength; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] === 'formfields') {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formDesigner') {\n this.pdfViewerBase.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n }\n }\n if (formFieldsList) {\n for (var i = 0; i < formFieldsList.length; i++) {\n window.sessionStorage.removeItem(formFieldsList[i]);\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.clearFormFields = function (formField) {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = void 0;\n if (formField) {\n formFieldsData = [formField];\n }\n else {\n formFieldsData = JSON.parse(data);\n }\n var isFirstRadio = true;\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n if (formField) {\n currentData.uniqueID = formField.id;\n currentData.Name = formField.type;\n }\n // eslint-disable-next-line\n this.currentTarget = document.getElementById(currentData.uniqueID);\n if (currentData.Name === 'Textbox') {\n this.currentTarget.value = '';\n }\n else if (currentData.Name === 'RadioButton') {\n if (isFirstRadio) {\n this.currentTarget.checked = true;\n this.updateDataInSession(this.currentTarget);\n isFirstRadio = false;\n }\n }\n else if (currentData.Name === 'DropDown') {\n this.currentTarget.value = currentData.TextList[0];\n }\n else if (currentData.Name === 'CheckBox') {\n this.currentTarget.checked = false;\n }\n else if (currentData.Name === 'SignatureField') {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.nameTable[currentData.uniqueID];\n if (annotation) {\n if (this.currentTarget && this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n this.currentTarget.className = 'e-pdfviewer-signatureformfields';\n this.currentTarget.style.pointerEvents = '';\n this.currentTarget.parentElement.style.pointerEvents = '';\n this.updateDataInSession(this.currentTarget, '');\n if (formField) {\n formField.value = '';\n formField.signatureType = [formField.signatureType];\n formField.signatureType[0] = '';\n }\n }\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderDrawing();\n }\n }\n if (currentData.Name !== 'SignatureField' && currentData.Name !== 'ink' && currentData.Name !== 'RadioButton') {\n this.updateDataInSession(this.currentTarget);\n }\n }\n }\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @private\n */\n FormFields.prototype.destroy = function () {\n this.currentTarget = null;\n this.readOnlyCollection = [];\n if (this.pdfViewerBase && this.pdfViewerBase.signatureModule)\n this.pdfViewerBase.signatureModule.destroy();\n };\n /**\n * @private\n */\n FormFields.prototype.getModuleName = function () {\n return 'FormFields';\n };\n /**\n * @private\n * Get the text wdith\n * @param text\n * @param font\n * @param fontFamily\n */\n FormFields.prototype.getTextWidth = function (text, font, fontFamily) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var fontName;\n if (font) {\n fontName = font + 'px' + ' ' + fontFamily;\n }\n context.font = fontName || getComputedStyle(document.body).font;\n return context.measureText(text).width;\n };\n /**\n * @private\n * @param {number} fontSize - Font size.\n * @returns {number} - Returns the font size.\n */\n FormFields.prototype.getFontSize = function (fontSize) {\n return fontSize;\n ;\n };\n return FormFields;\n}());\nexport { FormFields };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { measureImage } from './../../utility/dom-util';\n/**\n * ImageElement defines a basic image elements\n */\nvar ImageElement = /** @class */ (function (_super) {\n __extends(ImageElement, _super);\n /**\n * set the id for each element\n */\n function ImageElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.imageSource = '';\n /**\n * sets or gets the print id\n * @private\n */\n _this.printID = '';\n /**\n * sets scaling factor of the image\n */\n _this.imageScale = 'None';\n /**\n * sets the alignment of the image\n */\n _this.imageAlign = 'None';\n /**\n * Sets how to stretch the image\n */\n _this.stretch = 'Stretch';\n return _this;\n }\n Object.defineProperty(ImageElement.prototype, \"source\", {\n /**\n * Gets the source for the image element\n */\n get: function () {\n return this.imageSource;\n },\n /**\n * Sets the source for the image element\n */\n set: function (value) {\n this.imageSource = value;\n this.isDirt = true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures minimum space that is required to render the image\n * @param availableSize\n */\n ImageElement.prototype.measure = function (availableSize) {\n if (this.isDirt && (this.stretch !== 'Stretch' || this.width === undefined && this.height === undefined)) {\n this.contentSize = measureImage(this.source, this.contentSize);\n this.isDirt = false;\n }\n if (this.width !== undefined && this.height !== undefined) {\n this.desiredSize = new Size(this.width, this.height);\n this.contentSize = this.desiredSize;\n }\n else {\n this.desiredSize = this.contentSize;\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the image\n * @param desiredSize\n */\n ImageElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return ImageElement;\n}(DrawingElement));\nexport { ImageElement };\n","import { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Container } from '../core/containers/container';\nimport { wordBreakToString, whiteSpaceToString, textAlignToString } from '../utility/base-util';\nimport { getDiagramElement } from '../utility/dom-util';\nimport { CanvasRenderer } from './canvas-renderer';\nimport { ImageElement } from '../core/elements/image-element';\n/**\n * Renderer module is used to render basic diagram elements\n */\n/** @private */\nvar DrawingRenderer = /** @class */ (function () {\n function DrawingRenderer(name, isSvgMode) {\n /** @private */\n this.renderer = null;\n // private svgRenderer: SvgRenderer;\n /** @private */\n this.isSvgMode = true;\n this.diagramId = name;\n this.element = getDiagramElement(this.diagramId);\n this.isSvgMode = isSvgMode;\n this.renderer = new CanvasRenderer();\n // this.svgRenderer = new SvgRenderer();\n }\n // /** @private */\n // public setLayers(): void {\n // this.adornerSvgLayer = this.element.getElementsByClassName('e-adorner-layer')[0] as SVGSVGElement;\n // }\n /** @private */\n DrawingRenderer.prototype.renderElement = function (element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue) {\n var isElement = true;\n if (element instanceof Container) {\n isElement = false;\n this.renderContainer(element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue);\n }\n else if (element instanceof ImageElement) {\n this.renderImageElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof PathElement) {\n this.renderPathElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof TextElement) {\n this.renderTextElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else {\n this.renderRect(element, canvas, transform, parentSvg);\n }\n };\n /** @private */\n DrawingRenderer.prototype.renderImageElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n this.renderer.drawRectangle(canvas, options);\n // let sx: number; let sy: number;\n var imageWidth;\n var imageHeight;\n var sourceWidth;\n var sourceHeight;\n if (element.stretch === 'Stretch') {\n imageWidth = element.actualSize.width;\n imageHeight = element.actualSize.height;\n }\n else {\n var contentWidth = element.contentSize.width;\n var contentHeight = element.contentSize.height;\n var widthRatio = options.width / contentWidth;\n var heightRatio = options.height / contentHeight;\n var ratio = void 0;\n switch (element.stretch) {\n case 'Meet':\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n options.x += Math.abs(options.width - imageWidth) / 2;\n options.y += Math.abs(options.height - imageHeight) / 2;\n break;\n case 'Slice':\n widthRatio = options.width / contentWidth;\n heightRatio = options.height / contentHeight;\n ratio = Math.max(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n sourceWidth = options.width / imageWidth * contentWidth;\n sourceHeight = options.height / imageHeight * contentHeight;\n break;\n case 'None':\n imageWidth = contentWidth;\n imageHeight = contentHeight;\n break;\n }\n }\n options.width = imageWidth;\n options.height = imageHeight;\n //Commented for code coverage\n //(options as ImageAttributes).sourceX = sx;\n //(options as ImageAttrib utes).sourceY = sy;\n options.sourceWidth = sourceWidth;\n options.sourceHeight = sourceHeight;\n options.source = element.source;\n options.alignment = element.imageAlign;\n options.scale = element.imageScale;\n options.printID = element.printID;\n this.renderer.drawImage(canvas, options, parentSvg, fromPalette);\n };\n /** @private */\n DrawingRenderer.prototype.renderPathElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.data = element.absolutePath;\n options.data = element.absolutePath;\n var ariaLabel = element.id;\n if (!this.isSvgMode) {\n options.x = options.x;\n options.y = options.y;\n }\n this.renderer.drawPath(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.renderTextElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.wrapBounds = element.wrapBounds;\n options.childNodes = element.childNodes;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = element.style.fill;\n var ariaLabel = element.content ? element.content : element.id;\n this.renderer.drawRectangle(canvas, options);\n this.renderer.drawText(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.renderContainer = function (group, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue) {\n transform = { tx: 0, ty: 0, scale: 1 };\n var svgParent = { svg: parentSvg, g: canvas };\n if (this.diagramId) {\n parentSvg = parentSvg;\n }\n this.renderRect(group, canvas, transform, parentSvg);\n if (group.hasChildren()) {\n var parentG = void 0;\n var svgParent_1;\n for (var _i = 0, _a = group.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.renderElement(child, parentG || canvas, htmlLayer, transform, parentSvg, true, fromPalette, indexValue);\n }\n }\n };\n /** @private */\n DrawingRenderer.prototype.renderRect = function (element, canvas, transform, parentSvg) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = element.cornerRadius || 0;\n var ariaLabel = element.id;\n this.renderer.drawRectangle(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.getBaseAttributes = function (element, transform) {\n var options = {\n width: element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5,\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray || '', opacity: element.style.opacity,\n visible: element.visible, id: element.id, gradient: element.style.gradient,\n };\n if (transform) {\n options.x += transform.tx;\n options.y += transform.ty;\n }\n return options;\n };\n return DrawingRenderer;\n}());\nexport { DrawingRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Container } from './container';\nimport { RotateTransform } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { TextElement } from '../elements/text-element';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix } from '../../primitives/matrix';\nimport { rotateSize } from '../../utility/base-util';\n/**\n * Canvas module is used to define a plane(canvas) and to arrange the children based on margin\n */\nvar Canvas = /** @class */ (function (_super) {\n __extends(Canvas, _super);\n function Canvas() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Not applicable for canvas\n * @private\n */\n _this.measureChildren = undefined;\n return _this;\n }\n /**\n * Measures the minimum space that the canvas requires\n * @param availableSize\n */\n Canvas.prototype.measure = function (availableSize) {\n var desired = undefined;\n var desiredBounds = undefined;\n if (this.hasChildren()) {\n //Measuring the children\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child instanceof TextElement) {\n if (child.canMeasure) {\n availableSize.width = availableSize.width || this.maxWidth || this.minWidth;\n child.measure(availableSize);\n }\n else {\n break;\n }\n }\n else if (!(child instanceof TextElement)) {\n child.measure(availableSize);\n }\n var childSize = child.desiredSize.clone();\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n var right = childSize.width + child.margin.right;\n var bottom = childSize.height + child.margin.bottom;\n var childBounds = new Rect(child.margin.left, child.margin.top, right, bottom);\n if (child.float) {\n var position = child.getAbsolutePosition(childSize);\n if (position !== undefined) {\n continue;\n }\n }\n if ((!(child instanceof TextElement)) || (child instanceof TextElement && child.canConsiderBounds)) {\n if (desiredBounds === undefined) {\n desiredBounds = childBounds;\n }\n else {\n desiredBounds.uniteRect(childBounds);\n }\n }\n }\n if (desiredBounds) {\n var leftMargin = 0;\n var topMargin = 0;\n leftMargin = Math.max(desiredBounds.left, 0);\n topMargin = Math.max(desiredBounds.top, 0);\n desired = new Size(desiredBounds.width + leftMargin, desiredBounds.height + topMargin);\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n _super.prototype.stretchChildren.call(this, desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the child elements of the canvas\n */\n Canvas.prototype.arrange = function (desiredSize) {\n this.outerBounds = new Rect();\n if (this.hasChildren()) {\n var y = void 0;\n var x = void 0;\n y = this.offsetY - desiredSize.height * this.pivot.y;\n x = this.offsetX - desiredSize.width * this.pivot.x;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if ((child.transform & RotateTransform.Parent) !== 0) {\n child.parentTransform = this.parentTransform + this.rotateAngle;\n var childSize = child.desiredSize.clone();\n var topLeft = void 0;\n var center = { x: 0, y: 0 };\n var childX = x;\n var childY = y;\n if (child.relativeMode === 'Point') {\n var position = child.getAbsolutePosition(desiredSize);\n if (position !== undefined) {\n childX += position.x;\n childY += position.y;\n }\n }\n if (child.relativeMode === 'Object') {\n topLeft = this.alignChildBasedOnParent(child, childSize, desiredSize, childX, childY);\n }\n else {\n topLeft = this.alignChildBasedOnaPoint(child, childX, childY);\n }\n center = { x: topLeft.x + childSize.width / 2, y: topLeft.y + childSize.height / 2 };\n if (child.rotateValue) {\n var rotateValue = {\n x: this.offsetX + (child.rotateValue.x || 0),\n y: this.offsetY + (child.rotateValue.y || 0)\n };\n var centerPoint = { x: this.offsetX, y: this.offsetY };\n var angle = child.rotateValue.angle | 0;\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, centerPoint.x, centerPoint.y);\n center = transformPointByMatrix(matrix, rotateValue);\n }\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n }\n if ((child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch')) {\n child.arrange(desiredSize);\n }\n else {\n if (child instanceof TextElement && child.canMeasure) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n else if (!(child instanceof TextElement)) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.outerBounds.uniteRect(this.bounds);\n return desiredSize;\n };\n /**\n * Aligns the child element based on its parent\n * @param child\n * @param childSize\n * @param parentSize\n * @param x\n * @param y\n */\n Canvas.prototype.alignChildBasedOnParent = function (child, childSize, parentSize, x, y) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x += child.margin.left;\n break;\n case 'Right':\n x += parentSize.width - childSize.width - child.margin.right;\n break;\n case 'Stretch':\n case 'Center':\n x += parentSize.width / 2 - childSize.width / 2;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y += child.margin.top;\n break;\n case 'Bottom':\n y += parentSize.height - childSize.height - child.margin.bottom;\n break;\n case 'Stretch':\n case 'Center':\n y += parentSize.height / 2 - childSize.height / 2;\n break;\n }\n return { x: x, y: y };\n };\n /**\n * Aligns the child elements based on a point\n * @param child\n * @param x\n * @param y\n */\n Canvas.prototype.alignChildBasedOnaPoint = function (child, x, y) {\n x += child.margin.left - child.margin.right;\n y += child.margin.top - child.margin.bottom;\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x = x;\n break;\n case 'Stretch':\n case 'Center':\n x -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n x -= child.desiredSize.width;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y = y;\n break;\n case 'Stretch':\n case 'Center':\n y -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n y -= child.desiredSize.height;\n break;\n }\n return { x: x, y: y };\n };\n return Canvas;\n}(Container));\nexport { Canvas };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { compile as baseTemplateComplier } from '@syncfusion/ej2-base';\nimport { DrawingElement } from '@syncfusion/ej2-drawings';\n/**\n * HTMLElement defines the basic html elements\n */\nvar DiagramHtmlElement = /** @class */ (function (_super) {\n __extends(DiagramHtmlElement, _super);\n /**\n * set the id for each element\n *\n * @param {string} nodeTemplate - Set the id for each element.\n * @returns {void}\n *\n * @private\n */\n function DiagramHtmlElement(nodeTemplate) {\n var _this = _super.call(this) || this;\n _this.templateFn = _this.templateCompiler(nodeTemplate);\n return _this;\n }\n DiagramHtmlElement.prototype.templateCompiler = function (template) {\n if (template) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var e = void 0;\n try {\n if (document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n }\n catch (e) {\n return baseTemplateComplier(template);\n }\n }\n return undefined;\n };\n /**\n * getNodeTemplate method \\\n *\n * @returns { Function } getNodeTemplate method .\\\n *\n * @private\n */\n DiagramHtmlElement.prototype.getNodeTemplate = function () {\n return this.templateFn;\n };\n return DiagramHtmlElement;\n}(DrawingElement));\nexport { DiagramHtmlElement };\n","import { LineTool } from '../index';\nimport { ZOrderPageTable, PdfAnnotationBase, PdfFormFieldBase } from './pdf-annotation';\nimport { Rect, Point, identityMatrix, rotateMatrix, getDiagramElement, ThumbsConstraints, scaleMatrix, cornersPointsBeforeRotation, ImageElement } from '@syncfusion/ej2-drawings';\nimport { DrawingElement } from '@syncfusion/ej2-drawings';\nimport { PathElement } from '@syncfusion/ej2-drawings';\nimport { createMeasureElements } from '@syncfusion/ej2-drawings';\nimport { randomId } from '@syncfusion/ej2-drawings';\nimport { Size, transformPointByMatrix, RotateTransform, TextElement } from '@syncfusion/ej2-drawings';\nimport { Canvas, refreshDiagramElements, DrawingRenderer } from '@syncfusion/ej2-drawings';\nimport { Selector } from './selector';\nimport { SvgRenderer } from '@syncfusion/ej2-drawings';\nimport { isLineShapes, setElementStype, findPointsLength, getBaseShapeAttributes, isLeader, cloneObject } from './drawing-util';\nimport { getConnectorPoints, updateSegmentElement, getSegmentElement, updateDecoratorElement, getDecoratorElement, clipDecorators, initDistanceLabel, initLeaders, initLeader, getPolygonPath, initPerimeterLabel } from './connector-util';\nimport { isNullOrUndefined, isBlazor, Browser } from '@syncfusion/ej2-base';\nimport { DiagramHtmlElement } from './html-element';\n/**\n * Renderer module is used to render basic diagram elements\n *\n * @hidden\n */\nvar Drawing = /** @class */ (function () {\n function Drawing(viewer) {\n this.isDynamicStamps = false;\n this.pdfViewer = viewer;\n this.renderer = new DrawingRenderer('this.pdfViewer.element.id', false);\n this.svgRenderer = new SvgRenderer();\n }\n /**\n * @private\n * @param {PdfViewer} viewer - Specified the pdfViewer element.\n * @returns {void}\n */\n Drawing.prototype.renderLabels = function (viewer) {\n var annotations = viewer.annotations;\n if (annotations) {\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[parseInt(i.toString(), 10)];\n this.initObject(annotation);\n }\n }\n };\n Drawing.prototype.createNewZindexTable = function (pageId) {\n var zIndexTable = new ZOrderPageTable();\n this.pdfViewer.zIndex++;\n zIndexTable.pageId = this.pdfViewer.zIndex;\n this.pdfViewer.zIndexTable.push(zIndexTable);\n return zIndexTable;\n };\n /**\n * @private\n * @param {number} pageId - Specified the page Id.\n * @returns {ZOrderPageTable} - Returns the ZOrder page table.\n */\n Drawing.prototype.getPageTable = function (pageId) {\n var zIndexTable;\n if (this.pdfViewer.zIndexTable.length !== undefined) {\n var notFound = true;\n for (var i = 0; i < this.pdfViewer.zIndexTable.length; i++) {\n if (this.pdfViewer.zIndexTable[parseInt(i.toString(), 10)].pageId === pageId) {\n notFound = false;\n zIndexTable = this.pdfViewer.zIndexTable[parseInt(i.toString(), 10)];\n break;\n }\n }\n if (notFound) {\n zIndexTable = this.createNewZindexTable(pageId);\n zIndexTable.pageId = pageId;\n }\n }\n else {\n zIndexTable = this.createNewZindexTable(pageId);\n }\n return zIndexTable;\n };\n /**\n * @private\n * @param {number} index - Specified the page index value.\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {void}\n */\n Drawing.prototype.setZIndex = function (index, obj) {\n if (obj.pageIndex !== undefined) {\n var pageTable = this.getPageTable(obj.pageIndex);\n if (obj.zIndex === -1) {\n pageTable.zIndex++;\n obj.zIndex = pageTable.zIndex;\n pageTable.objects.push(obj);\n }\n else {\n var index_1 = obj.zIndex;\n var tabelLength = pageTable.objects.length;\n obj.zIndex = tabelLength++;\n pageTable.objects.push(obj);\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation object.\n * @returns {PdfAnnotationBaseModel | PdfFormFieldBaseModel} - Returns the annotaion or form fields model.\n */\n Drawing.prototype.initObject = function (obj) {\n //Move the common properties like zindex and id to an abstract class\n this.setZIndex(this.pdfViewer.zIndex, obj);\n createMeasureElements();\n if (!isLineShapes(obj)) {\n this.initNode(obj);\n }\n else {\n this.initLine(obj);\n obj.wrapper.measure(new Size(undefined, undefined));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n }\n if (obj.wrapper === null) {\n //Init default wrapper\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.pdfViewer.nameTable[obj.id] = obj;\n if (obj.formFieldAnnotationType) {\n this.nodePropertyChange(obj, { bounds: { width: obj.bounds.width, height: obj.bounds.height } });\n }\n //Add some methodologies to add the children of group to name table\n return obj;\n };\n Drawing.prototype.initNode = function (obj) {\n var canvas = this.initContainer(obj);\n var content;\n if (!canvas.children) {\n canvas.children = [];\n }\n if (!content) {\n content = this.init(obj, canvas);\n }\n //canvas.children.push(content);\n canvas.rotateAngle = obj.rotateAngle;\n // eslint-disable-next-line max-len\n canvas.measure(new Size(obj.wrapper.width, obj.wrapper.height));\n canvas.arrange(canvas.desiredSize);\n if (this.isDynamicStamps) {\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(obj, null, 'dynamicStamp');\n this.isDynamicStamps = false;\n }\n };\n /**\n * Allows to initialize the UI of a node\n */\n /**\n * @private\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation object.\n * @param {Container} canvas - Specified the canvas element.\n * @returns {DrawingElement} - Returns the drawing element.\n */\n Drawing.prototype.init = function (obj, canvas) {\n var content;\n content = new DrawingElement();\n var pathContent;\n var basicElement;\n var isStamp = false;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule ? this.pdfViewer.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n var isAnnotationSet = false;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n isAnnotationSet = true;\n }\n if (obj.formFieldAnnotationType) {\n content = this.initFormFields(obj, content, canvas);\n }\n else {\n // eslint-disable-next-line max-len\n content = this.initAnnotationObject(obj, pathContent, content, canvas, isStamp, basicElement, isAnnotationSet, annotationMaxHeight, annotationMaxWidth, annotationMinWidth, annotationMinHeight);\n }\n content.id = obj.id + '_content';\n content.relativeMode = 'Object';\n if (obj.shapeAnnotationType !== 'Stamp') {\n if (obj.bounds.width !== undefined) {\n content.width = obj.bounds.width;\n if (isAnnotationSet) {\n if ((content.width < annotationMinWidth) || (content.width > annotationMaxWidth)) {\n if (content.width < annotationMinWidth) {\n content.width = annotationMinWidth;\n }\n if (content.width > annotationMaxWidth) {\n content.width = annotationMaxWidth;\n }\n }\n }\n }\n content.horizontalAlignment = 'Stretch';\n if (obj.bounds.height !== undefined) {\n content.height = obj.bounds.height;\n if (isAnnotationSet) {\n if ((content.height < annotationMinHeight) || (content.width > annotationMaxHeight)) {\n if (content.height < annotationMinHeight) {\n content.height = annotationMinHeight;\n }\n if (content.height > annotationMaxHeight) {\n content.height = annotationMaxHeight;\n }\n }\n }\n }\n setElementStype(obj, content);\n if (this.pdfViewer.viewerBase.drawSignatureWithTool && obj.shapeAnnotationType === 'SignatureText') {\n content.style.strokeWidth = 0;\n }\n }\n content.isRectElement = true;\n content.verticalAlignment = 'Stretch';\n return content;\n };\n Drawing.prototype.initFormFields = function (obj, content, canvas) {\n switch (obj.formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'Checkbox':\n case 'RadioButton':\n case 'DropdownList':\n case 'ListBox':\n case 'SignatureField':\n case 'InitialField':\n // eslint-disable-next-line\n var htmlContent = new DiagramHtmlElement();\n content = htmlContent;\n content.id = obj.id + '_content';\n canvas.children.push(content);\n break;\n }\n return content;\n };\n // eslint-disable-next-line\n Drawing.prototype.initAnnotationObject = function (obj, pathContent, content, canvas, isStamp, basicElement, isAnnotationSet, annotationMaxHeight, annotationMaxWidth, annotationMinWidth, annotationMinHeight) {\n switch (obj.shapeAnnotationType) {\n case 'Ellipse':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n canvas.children.push(content);\n if (obj.enableShapeLabel) {\n var textLabel = this.textElement(obj);\n textLabel.content = obj.labelContent;\n textLabel.style.color = obj.fontColor;\n textLabel.style.strokeColor = obj.labelBorderColor;\n textLabel.style.fill = obj.labelFillColor;\n textLabel.style.fontSize = obj.fontSize;\n textLabel.style.fontFamily = obj.fontFamily;\n textLabel.style.opacity = obj.labelOpacity;\n canvas.children.push(textLabel);\n }\n break;\n case 'Path':\n pathContent = new PathElement();\n pathContent.data = obj.data;\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'HandWrittenSignature':\n case 'Ink':\n pathContent = new PathElement();\n pathContent.data = obj.data;\n pathContent.style.strokeColor = obj.strokeColor;\n pathContent.style.strokeWidth = obj.thickness;\n pathContent.style.opacity = obj.opacity;\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'Polygon':\n pathContent = new PathElement();\n pathContent.data = getPolygonPath(obj.vertexPoints);\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'Stamp':\n isStamp = true;\n this.isDynamicStamps = true;\n if (obj && obj.annotationAddMode && (obj.annotationAddMode === 'Existing Annotation' || obj.annotationAddMode === 'Imported Annotation')) {\n obj.bounds.width = obj.bounds.width - 20;\n obj.bounds.height = obj.bounds.height - 20;\n }\n if (obj.isDynamicStamp) {\n canvas.horizontalAlignment = 'Left';\n basicElement = new DrawingElement();\n content = basicElement;\n content.cornerRadius = 10;\n content.style.fill = obj.stampFillColor;\n content.style.strokeColor = obj.stampStrokeColor;\n canvas.children.push(content);\n var textele_1 = this.textElement(obj);\n textele_1 = new TextElement();\n textele_1.style.fontFamily = 'Helvetica';\n textele_1.style.fontSize = 14;\n textele_1.style.italic = true;\n textele_1.style.bold = true;\n textele_1.style.color = obj.fillColor;\n textele_1.rotateValue = undefined;\n textele_1.content = obj.dynamicText;\n textele_1.relativeMode = 'Point';\n textele_1.margin.left = 10;\n textele_1.margin.bottom = -7;\n textele_1.setOffsetWithRespectToBounds(0, 0.57, null);\n textele_1.relativeMode = 'Point';\n canvas.children.push(textele_1);\n // eslint-disable-next-line\n var pathContent1 = new PathElement();\n pathContent1.id = randomId() + '_stamp';\n pathContent1.data = obj.data;\n pathContent1.width = obj.bounds.width;\n if (isAnnotationSet && (obj.bounds.width > annotationMaxWidth)) {\n pathContent1.width = annotationMaxWidth;\n obj.bounds.width = annotationMaxWidth;\n }\n pathContent1.height = obj.bounds.height / 2;\n if (isAnnotationSet && (obj.bounds.height > annotationMaxHeight)) {\n pathContent1.height = annotationMaxHeight / 2;\n obj.bounds.height = annotationMaxHeight / 2;\n }\n pathContent1.rotateValue = undefined;\n pathContent1.margin.left = 10;\n pathContent1.margin.bottom = -5;\n pathContent1.relativeMode = 'Point';\n pathContent1.setOffsetWithRespectToBounds(0, 0.1, null);\n // eslint-disable-next-line\n var content1 = pathContent1;\n pathContent1.style.fill = obj.fillColor;\n pathContent1.style.strokeColor = obj.strokeColor;\n pathContent1.style.opacity = obj.opacity;\n content.width = obj.bounds.width + 20;\n content.height = obj.bounds.height + 20;\n content.style.opacity = obj.opacity;\n canvas.children.push(content1);\n }\n else {\n canvas.horizontalAlignment = 'Left';\n basicElement = new DrawingElement();\n content = basicElement;\n content.cornerRadius = 10;\n content.style.fill = obj.stampFillColor;\n content.style.strokeColor = obj.stampStrokeColor;\n canvas.children.push(content);\n // eslint-disable-next-line\n var pathContent1 = new PathElement();\n pathContent1.id = randomId() + '_stamp';\n pathContent1.data = obj.data;\n pathContent1.width = obj.bounds.width;\n if (isAnnotationSet && (obj.bounds.width > annotationMaxWidth)) {\n pathContent1.width = annotationMaxWidth;\n obj.bounds.width = annotationMaxWidth;\n }\n pathContent1.height = obj.bounds.height;\n if (isAnnotationSet && (obj.bounds.height > annotationMaxHeight)) {\n pathContent1.height = annotationMaxHeight;\n obj.bounds.height = annotationMaxHeight;\n }\n pathContent1.minWidth = pathContent1.width / 2;\n pathContent1.minHeight = pathContent1.height / 2;\n // eslint-disable-next-line\n var content1 = pathContent1;\n pathContent1.style.fill = obj.fillColor;\n pathContent1.style.strokeColor = obj.strokeColor;\n pathContent1.style.opacity = obj.opacity;\n content.width = obj.bounds.width + 20;\n content.height = obj.bounds.height + 20;\n content.minWidth = pathContent1.width / 2;\n content.minHeight = pathContent1.height / 2;\n content.style.opacity = obj.opacity;\n canvas.children.push(content1);\n canvas.minHeight = content.minHeight + 20;\n canvas.minWidth = content.minWidth + 20;\n }\n break;\n case 'Image':\n case 'SignatureImage':\n // eslint-disable-next-line\n var pathContent11 = new ImageElement();\n pathContent11.source = obj.data;\n content = pathContent11;\n content.style.strokeWidth = 0;\n canvas.children.push(content);\n break;\n case 'Rectangle':\n basicElement = new DrawingElement();\n content = basicElement;\n canvas.children.push(content);\n if (obj.enableShapeLabel) {\n var textLabel = this.textElement(obj);\n textLabel.content = obj.labelContent;\n textLabel.style.color = obj.fontColor;\n textLabel.style.strokeColor = obj.labelBorderColor;\n textLabel.style.fill = obj.labelFillColor;\n textLabel.style.fontSize = obj.fontSize;\n textLabel.style.fontFamily = obj.fontFamily;\n textLabel.style.opacity = obj.labelOpacity;\n canvas.children.push(textLabel);\n }\n break;\n case 'Perimeter':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n setElementStype(obj, pathContent);\n canvas.children.push(content);\n basicElement = new DrawingElement();\n basicElement.id = 'perimeter_' + randomId();\n basicElement.height = .2;\n basicElement.width = .2;\n basicElement.transform = RotateTransform.Self;\n basicElement.horizontalAlignment = 'Stretch';\n this.setNodePosition(basicElement, obj);\n basicElement.rotateAngle = obj.rotateAngle;\n setElementStype(obj, basicElement);\n canvas.children.push(basicElement);\n // eslint-disable-next-line\n var textele = this.textElement(obj);\n textele = new TextElement();\n textele.content = textele.content = findPointsLength([\n { x: obj.bounds.x, y: obj.bounds.y },\n { x: obj.bounds.x + obj.bounds.width, y: obj.bounds.y + obj.bounds.height }\n ]).toString();\n textele.rotateValue = { y: -10, angle: obj.rotateAngle };\n canvas.children.push(textele);\n break;\n case 'Radius':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n setElementStype(obj, pathContent);\n canvas.children.push(content);\n basicElement = new DrawingElement();\n basicElement.id = 'radius_' + randomId();\n basicElement.height = .2;\n basicElement.width = obj.bounds.width / 2;\n basicElement.transform = RotateTransform.Self;\n this.setNodePosition(basicElement, obj);\n basicElement.rotateAngle = obj.rotateAngle;\n setElementStype(obj, basicElement);\n canvas.children.push(basicElement);\n // eslint-disable-next-line\n var radiusTextEle = this.textElement(obj);\n if (obj.enableShapeLabel) {\n radiusTextEle.style.color = obj.fontColor;\n radiusTextEle.style.strokeColor = obj.labelBorderColor;\n radiusTextEle.style.fill = obj.labelFillColor;\n radiusTextEle.style.fontSize = obj.fontSize;\n radiusTextEle.style.fontFamily = obj.fontFamily;\n radiusTextEle.style.opacity = obj.labelOpacity;\n }\n // eslint-disable-next-line\n var length_1 = findPointsLength([\n { x: obj.bounds.x, y: obj.bounds.y },\n { x: obj.bounds.x + obj.bounds.width, y: obj.bounds.y + obj.bounds.height }\n ]);\n if (!this.pdfViewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n radiusTextEle.content = obj.notes;\n }\n else {\n // eslint-disable-next-line max-len\n radiusTextEle.content = this.pdfViewer.annotation.measureAnnotationModule.setConversion((obj.bounds.width / 2) * this.pdfViewer.annotation.measureAnnotationModule.pixelToPointFactor, obj);\n }\n radiusTextEle.rotateValue = { y: -10, x: obj.bounds.width / 4, angle: obj.rotateAngle };\n canvas.children.push(radiusTextEle);\n break;\n case 'StickyNotes':\n // eslint-disable-next-line\n var pathContent2 = new ImageElement();\n pathContent2.source = obj.data;\n pathContent2.width = obj.bounds.width;\n pathContent2.height = obj.bounds.height;\n pathContent2.style.strokeColor = obj.strokeColor;\n pathContent2.style.strokeWidth = 0;\n content = pathContent2;\n canvas.children.push(content);\n break;\n case 'SignatureText':\n //eslint-disable-next-line\n var rectElements = new DrawingElement();\n rectElements.style.strokeWidth = 0;\n content = rectElements;\n content.style.strokeWidth = 0;\n canvas.style.strokeWidth = 0;\n canvas.children.push(content);\n // eslint-disable-next-line\n var signatureText = this.textElement(obj);\n signatureText.style.fontFamily = obj.fontFamily;\n signatureText.style.fontSize = obj.fontSize;\n signatureText.style.textAlign = 'Left';\n signatureText.rotateValue = undefined;\n signatureText.content = obj.data;\n signatureText.style.strokeWidth = 0;\n canvas.children.push(signatureText);\n break;\n case 'FreeText':\n // eslint-disable-next-line\n var rectElement = new DrawingElement();\n content = rectElement;\n canvas.children.push(content);\n // eslint-disable-next-line\n var freeTextEle = this.textElement(obj);\n freeTextEle = new TextElement();\n freeTextEle.style.fontFamily = obj.fontFamily;\n freeTextEle.style.fontSize = obj.fontSize;\n freeTextEle.style.textAlign = 'Left';\n if (obj.textAlign.toLowerCase() === 'center') {\n freeTextEle.style.textAlign = 'Center';\n }\n else if (obj.textAlign.toLowerCase() === 'right') {\n freeTextEle.style.textAlign = 'Right';\n }\n else if (obj.textAlign.toLowerCase() === 'justify') {\n freeTextEle.style.textAlign = 'Justify';\n }\n freeTextEle.style.color = obj.fontColor;\n freeTextEle.style.bold = obj.font.isBold;\n freeTextEle.style.italic = obj.font.isItalic;\n if (obj.font.isUnderline === true) {\n freeTextEle.style.textDecoration = 'Underline';\n }\n else if (obj.font.isStrikeout === true) {\n freeTextEle.style.textDecoration = 'LineThrough';\n }\n freeTextEle.rotateValue = undefined;\n freeTextEle.content = obj.dynamicText;\n freeTextEle.style.opacity = obj.opacity;\n freeTextEle.margin.left = 4;\n freeTextEle.margin.top = 5 * (obj.fontSize / 16);\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n freeTextEle.style.textWrapping = 'Wrap';\n }\n else {\n freeTextEle.style.textWrapping = 'WrapWithOverflow';\n }\n freeTextEle.relativeMode = 'Point';\n freeTextEle.setOffsetWithRespectToBounds(0, 0, null);\n freeTextEle.relativeMode = 'Point';\n canvas.children.push(freeTextEle);\n break;\n }\n content.id = obj.id + '_content';\n content.relativeMode = 'Object';\n if (!isStamp) {\n if (obj.bounds.width !== undefined) {\n content.width = obj.bounds.width;\n if (isAnnotationSet) {\n if ((content.width < annotationMinWidth) || (content.width > annotationMaxWidth)) {\n if (content.width < annotationMinWidth) {\n content.width = annotationMinWidth;\n }\n if (content.width > annotationMaxWidth) {\n content.width = annotationMaxWidth;\n }\n }\n }\n }\n content.horizontalAlignment = 'Stretch';\n if (obj.bounds.height !== undefined) {\n content.height = obj.bounds.height;\n if (isAnnotationSet) {\n if ((content.height < annotationMinHeight) || (content.width > annotationMaxHeight)) {\n if (content.height < annotationMinHeight) {\n content.height = annotationMinHeight;\n }\n if (content.height > annotationMaxHeight) {\n content.height = annotationMaxHeight;\n }\n }\n }\n }\n setElementStype(obj, content);\n }\n content.isRectElement = true;\n content.verticalAlignment = 'Stretch';\n return content;\n };\n Drawing.prototype.textElement = function (obj) {\n var textele = new TextElement();\n setElementStype(obj, textele);\n textele.horizontalAlignment = 'Center';\n obj.shapeAnnotationType === 'SignatureText' ? textele.verticalAlignment = 'Center' : textele.verticalAlignment = 'Top';\n textele.relativeMode = 'Object';\n textele.setOffsetWithRespectToBounds(.5, .5, 'Absolute');\n return textele;\n };\n /**\n * @private\n * @param {DrawingElement} obj - Specified the drawing element.\n * @param {PdfAnnotationBaseModel} node - Specified the node element.\n * @returns {void}\n */\n Drawing.prototype.setNodePosition = function (obj, node) {\n if (node.shapeAnnotationType === 'Perimeter') {\n obj.offsetX = node.bounds.x + node.bounds.width / 2;\n obj.offsetY = node.bounds.y + node.bounds.height / 2;\n }\n else if (node.shapeAnnotationType === 'Radius') {\n // eslint-disable-next-line max-len\n var trasPoint = { x: node.bounds.x + (node.bounds.width / 2) + (node.bounds.width / 4), y: node.bounds.y + (node.bounds.height / 2) };\n var center = { x: (node.bounds.x + (node.bounds.width / 2)), y: (node.bounds.y + (node.bounds.height / 2)) };\n var matrix = identityMatrix();\n rotateMatrix(matrix, node.rotateAngle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, trasPoint);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y };\n obj.offsetX = newPoint1.x;\n obj.offsetY = newPoint1.y;\n obj.width = node.bounds.width / 2;\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {Container} - Returns the container element.\n */\n Drawing.prototype.initContainer = function (obj) {\n if (!obj.id) {\n obj.id = randomId();\n }\n // Creates canvas element\n var canvas = new Canvas();\n canvas.id = obj.id;\n canvas.offsetX = obj.bounds.x + (obj.bounds.width * 0.5);\n canvas.offsetY = obj.bounds.y + (obj.bounds.height * 0.5);\n canvas.style.fill = 'transparent';\n canvas.style.strokeColor = 'transparent';\n canvas.rotateAngle = obj.rotateAngle;\n obj.wrapper = canvas;\n return canvas;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {Canvas} - Returns the canvas element.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Drawing.prototype.initLine = function (obj) {\n if (!obj.id) {\n obj.id = randomId();\n }\n var bpmnElement;\n var container = new Canvas();\n var segment = new PathElement();\n segment.id = obj.id + '_path';\n var srcDecorator = new PathElement();\n var targetDecorator = new PathElement();\n if (obj.vertexPoints.length) {\n obj.sourcePoint = obj.vertexPoints[0];\n obj.targetPoint = obj.vertexPoints[obj.vertexPoints.length - 1];\n for (var i = 0; i < obj.vertexPoints.length; i++) {\n if (i !== 0 && i !== obj.vertexPoints.length - 1) {\n obj.segments.push(obj.vertexPoints[parseInt(i.toString(), 10)]);\n }\n }\n }\n segment = getSegmentElement(obj, segment);\n var points = [];\n points = getConnectorPoints(obj);\n // points = this.clipDecorators(this, points);\n var leaders = [];\n var labels = [];\n if (obj.shapeAnnotationType === 'Distance') {\n leaders = initLeaders(obj, points);\n labels = initDistanceLabel(obj, points, this.pdfViewer.annotation.measureAnnotationModule, this.pdfViewer);\n }\n if ((obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead') && obj.measureType === 'Perimeter') {\n labels = initPerimeterLabel(obj, points, this.pdfViewer.annotation.measureAnnotationModule, this.pdfViewer);\n }\n if (obj.enableShapeLabel === true && !(obj.shapeAnnotationType === 'Distance') && !(obj.measureType === 'Perimeter')) {\n var angle = Point.findAngle(points[0], points[1]);\n var textele = this.textElement(obj);\n textele.id = randomId();\n if (!this.pdfViewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = obj.labelContent;\n }\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n textele.style.opacity = obj.labelOpacity;\n textele.rotateValue = { y: -10, angle: angle };\n labels.push(textele);\n }\n points = clipDecorators(obj, points);\n var bounds = Rect.toBounds(points);\n container.width = bounds.width;\n container.height = bounds.height;\n container.offsetX = bounds.x + container.pivot.x * bounds.width;\n container.offsetY = bounds.y + container.pivot.y * bounds.height;\n var anglePoints = obj.vertexPoints;\n var accessContent = 'getDescription';\n // eslint-disable-next-line max-len\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead' || obj.shapeAnnotationType === 'Distance') {\n srcDecorator = getDecoratorElement(obj, points[0], anglePoints[1], true);\n targetDecorator = getDecoratorElement(obj, points[points.length - 1], anglePoints[anglePoints.length - 2], false);\n }\n srcDecorator.id = obj.id + '_srcDec';\n targetDecorator.id = obj.id + '_tarDec';\n /* eslint-disable @typescript-eslint/dot-notation */\n segment.style['fill'] = 'transparent';\n container.style.strokeColor = 'transparent';\n container.style.fill = 'transparent';\n container.style.strokeWidth = 0;\n container.children = [];\n setElementStype(obj, segment);\n container.children.push(segment);\n if (leaders.length > 0) {\n for (var i = 0; i < leaders.length; i++) {\n container.children.push(leaders[parseInt(i.toString(), 10)]);\n }\n }\n if (labels.length > 0) {\n for (var i = 0; i < labels.length; i++) {\n container.children.push(labels[parseInt(i.toString(), 10)]);\n }\n }\n container.children.push(srcDecorator);\n container.children.push(targetDecorator);\n if (obj.shapeAnnotationType === 'LineWidthArrowHead') {\n container.children[1].width = 12 * obj.thickness;\n container.children[1].height = 12 * obj.thickness;\n container.children[2].width = 12 * obj.thickness;\n container.children[2].height = 12 * obj.thickness;\n }\n container.id = obj.id;\n container.offsetX = segment.offsetX;\n container.offsetY = segment.offsetY;\n container.width = segment.width;\n container.height = segment.height;\n points = getConnectorPoints(obj);\n obj.wrapper = container;\n return container;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {PdfAnnotationBaseModel} - Returns the added annotaion object.\n */\n Drawing.prototype.add = function (obj) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (obj.formFieldAnnotationType && this.pdfViewer.formDesignerModule) {\n obj = new PdfFormFieldBase(this.pdfViewer, 'formFields', obj, true);\n obj = this.initObject(obj);\n this.pdfViewer.formFields.push(obj);\n }\n else {\n obj = new PdfAnnotationBase(this.pdfViewer, 'annotations', obj, true);\n obj = this.initObject(obj);\n this.pdfViewer.annotations.push(obj);\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n return obj;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {void}\n */\n Drawing.prototype.remove = function (obj) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var index = obj.pageIndex;\n for (var i = 0; i < this.pdfViewer.annotations.length; i++) {\n var annotation = this.pdfViewer.annotations[parseInt(i.toString(), 10)];\n if ((annotation.id && (annotation.id === obj.id || annotation.id.split('_')[0] === obj.id)) || (annotation.wrapper && annotation.wrapper.id === obj.id)) {\n this.pdfViewer.annotations.splice(i, 1);\n var objects = this.getPageObjects(obj.pageIndex);\n for (var j = 0; j < objects.length; j++) {\n if (objects[parseInt(j.toString(), 10)].id === obj.id) {\n objects.splice(j, 1);\n if (obj.shapeAnnotationType === 'Path' || obj.shapeAnnotationType === 'SignatureImage' || obj.shapeAnnotationType === 'SignatureText') {\n this.refreshCanvasDiagramLayer(undefined, index, obj.id);\n }\n else {\n this.pdfViewer.renderDrawing(undefined, index);\n }\n }\n }\n // need to add code snippet to remove from z index table \n }\n }\n for (var i = 0; i < this.pdfViewer.formFields.length; i++) {\n var element = this.pdfViewer.formFields[parseInt(i.toString(), 10)];\n if (element.id === obj.id || element.wrapper.id === obj.id) {\n this.pdfViewer.formFields.splice(i, 1);\n if (this.pdfViewer.formDesignerModule && obj.formFieldAnnotationType) {\n this.pdfViewer.formFieldCollection.splice(i, 1);\n }\n var objects = this.getPageObjects(obj.pageIndex);\n for (var j = 0; j < objects.length; j++) {\n if (objects[parseInt(j.toString(), 10)].id === obj.id) {\n objects.splice(j, 1);\n break;\n }\n if (objects[parseInt(j.toString(), 10)] && objects[parseInt(j.toString(), 10)].id && objects[parseInt(j.toString(), 10)].id.indexOf(obj.id) !== -1) {\n objects.splice(j, 1);\n }\n }\n }\n }\n if (obj.formFieldAnnotationType === 'Textbox' || obj.formFieldAnnotationType === 'Checkbox' || obj.formFieldAnnotationType === 'RadioButton'\n || obj.formFieldAnnotationType === 'PasswordField' || obj.formFieldAnnotationType === 'DropdownList' || obj.formFieldAnnotationType === 'ListBox' || obj.formFieldAnnotationType === 'SignatureField' || obj.formFieldAnnotationType === 'InitialField') {\n for (var i = 0; i < this.pdfViewer.formFieldCollections.length; i++) {\n // eslint-disable-next-line\n var element = this.pdfViewer.formFieldCollections[i];\n if (element.id === obj.id) {\n this.pdfViewer.formFieldCollections.splice(i, 1);\n }\n }\n }\n if (obj.formFieldAnnotationType === 'Textbox' || obj.formFieldAnnotationType === 'Checkbox' || obj.formFieldAnnotationType === 'RadioButton'\n || obj.formFieldAnnotationType === 'PasswordField' || obj.formFieldAnnotationType === 'DropdownList' || obj.formFieldAnnotationType === 'ListBox' || obj.formFieldAnnotationType === 'SignatureField' || obj.formFieldAnnotationType === 'InitialField') {\n // eslint-disable-next-line\n var inputField = document.getElementById('form_field_' + obj.id + '_content_html_element');\n if (inputField) {\n inputField.remove();\n this.pdfViewer.renderDrawing(undefined, index);\n var field = {\n // eslint-disable-next-line\n name: obj.name, id: obj.id, value: obj.value, fontFamily: obj.fontFamily, fontSize: obj.fontSize, fontStyle: obj.fontStyle,\n // eslint-disable-next-line\n color: obj.color, backgroundColor: obj.backgroundColor, alignment: obj.alignment, isReadonly: obj.isReadonly, visibility: obj.visibility,\n // eslint-disable-next-line\n maxLength: obj.maxLength, isRequired: obj.isRequired, isPrint: obj.isPrint, rotation: obj.rotateAngle, tooltip: obj.tooltip,\n // eslint-disable-next-line\n options: obj.options, isChecked: obj.isChecked, isSelected: obj.isSelected\n };\n this.pdfViewer.fireFormFieldRemoveEvent('formFieldRemove', field, obj.pageIndex);\n this.pdfViewer.formDesignerModule.removeFieldsFromAnnotationCollections(obj.id);\n }\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n * @param {number} pageIndex - Specified the page index.\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation base model collections.\n */\n Drawing.prototype.getPageObjects = function (pageIndex) {\n var pageTable = this.getPageTable(pageIndex);\n return pageTable.objects;\n };\n /**\n * @private\n * @param {HTMLCanvasElement} diagramLayer - Specified the diagram layer element.\n * @param {number} pageIndex - Specified the page index.\n * @param {string} objectId - Specified the object id.\n * @returns {void}\n */\n Drawing.prototype.refreshCanvasDiagramLayer = function (diagramLayer, pageIndex, objectId) {\n if (!diagramLayer) {\n diagramLayer = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n }\n if (diagramLayer) {\n var zoom = this.pdfViewer.viewerBase.getZoomFactor();\n var width = diagramLayer.width / zoom;\n var height = diagramLayer.height / zoom;\n var ctx = diagramLayer.getContext('2d');\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n if (zoom < 1) {\n ctx.lineWidth = ctx.lineWidth / zoom;\n }\n var devicePixelRatio_1 = this.pdfViewer.viewerBase.getWindowDevicePixelRatio();\n var zoomRatio = zoom * devicePixelRatio_1;\n if (!Browser.isDevice || (Browser.isDevice && zoom <= 0.7)) {\n ctx.setTransform(zoomRatio, 0, 0, zoomRatio, 0, 0);\n }\n else {\n ctx.setTransform(zoom, 0, 0, zoom, 0, 0);\n }\n ctx.clearRect(0, 0, width, height);\n var objects = this.getPageObjects(pageIndex);\n for (var i = 0; i < objects.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var renderElement = void 0;\n if (diagramLayer.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageIndex) {\n if (objects[parseInt(i.toString(), 10)].isPrint) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n renderElement = this.pdfViewer.nameTable[objects[parseInt(i.toString(), 10)].id].wrapper;\n if (!isNullOrUndefined(renderElement)) {\n refreshDiagramElements(diagramLayer, [renderElement], this.renderer);\n }\n }\n }\n else {\n // eslint-disable-next-line\n renderElement = this.pdfViewer.nameTable[objects[i].id].wrapper;\n refreshDiagramElements(diagramLayer, [renderElement], this.renderer);\n }\n }\n }\n };\n /**\n * @private\n * @param {number} index - Specified the page index.\n * @returns {void}\n */\n Drawing.prototype.clearHighlighter = function (index) {\n var adornerSvg = this.getAdornerLayerSvg(this.pdfViewer.element.id + index + '_diagramAdornerLayer', index);\n if (adornerSvg) {\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n }\n };\n /**\n * @private\n * @param {string} diagramId - Specified the diagram id.\n * @param {number} index - Specified the page index.\n * @returns {SVGSVGElement} Return the svg element.\n */\n Drawing.prototype.getSelectorElement = function (diagramId, index) {\n var adornerLayer = null;\n var adornerSvg = this.getAdornerLayerSvg(diagramId, index);\n if (adornerSvg) {\n adornerLayer = adornerSvg.getElementById(diagramId + index + '_SelectorElement');\n }\n return adornerLayer;\n };\n /**\n * @private\n * @param {string} diagramId - Specified the diagram id.\n * @param {number} index - Specified the page index.\n * @returns {SVGSVGElement} Return the svg element.\n */\n Drawing.prototype.getAdornerLayerSvg = function (diagramId, index) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId + index + '_diagramAdornerLayer');\n // eslint-disable-next-line\n var elementcoll;\n if (diagramElement) {\n elementcoll = diagramElement.getElementsByClassName('e-adorner-layer' + index);\n adornerLayerSvg = elementcoll[0];\n }\n return adornerLayerSvg;\n };\n /**\n * @private\n * @param {number} index - Specified the page index.\n * @returns {void}\n */\n Drawing.prototype.clearSelectorLayer = function (index) {\n var adornerSvg = this.getAdornerLayerSvg(this.pdfViewer.element.id, index);\n if (adornerSvg) {\n var selectionRect = adornerSvg.getElementById(this.pdfViewer.adornerSvgLayer.id + '_selected_region');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n this.clearHighlighter(index);\n var childNodes = this.getSelectorElement(this.pdfViewer.element.id, index).childNodes;\n var child = void 0;\n for (var i = childNodes.length; i > 0; i--) {\n child = childNodes[i - 1];\n child.parentNode.removeChild(child);\n }\n }\n };\n /**\n * @private\n * @param {number} select - Specified the select value.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the annotation selector element.\n * @param {PdfAnnotationBaseModel} helper - Specified the annotation helper element.\n * @param {boolean} isSelect - Specified the is select or not.\n * @returns {void}\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.renderSelector = function (select, currentSelector, helper, isSelect) {\n if (!helper || isSelect) {\n var size = new Size();\n var selectorModel = this.pdfViewer.selectedItems;\n this.clearSelectorLayer(select);\n if (selectorModel.wrapper) {\n selectorModel.wrapper.measure(size);\n var zoom = this.pdfViewer.viewerBase.getZoomFactor();\n selectorModel.wrapper.arrange(selectorModel.wrapper.desiredSize);\n selectorModel.width = selectorModel.wrapper.actualSize.width;\n selectorModel.height = selectorModel.wrapper.actualSize.height;\n selectorModel.offsetX = selectorModel.wrapper.offsetX;\n selectorModel.offsetY = selectorModel.wrapper.offsetY;\n if (selectorModel.annotations.length === 1) {\n selectorModel.rotateAngle = selectorModel.annotations[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.annotations[0].rotateAngle;\n //selectorModel.pivot = selectorModel.annotations[0].pivot;\n }\n var bounds = selectorModel.wrapper.bounds;\n // eslint-disable-next-line\n var selectorElement = void 0;\n if (selectorModel.formFields.length) {\n for (var i = 0; i < selectorModel.formFields.length; i++) {\n var node = selectorModel.formFields[parseInt(i.toString(), 10)];\n selectorElement = this.getSelectorElement(this.pdfViewer.element.id, select);\n if (selectorElement && node.pageIndex === select && this.pdfViewer.designerMode) {\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, false, true, null, null, currentSelector);\n }\n if (this.pdfViewer.formDesignerModule && node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isFormFieldSelect && !this.pdfViewer.viewerBase.isFormFieldMouseDown && !this.pdfViewer.viewerBase.isFormFieldMouseMove) {\n this.pdfViewer.viewerBase.isFormFieldSelect = true;\n var field = {\n // eslint-disable-next-line\n name: node.name, id: node.id, value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle, color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected\n };\n this.pdfViewer.fireFormFieldSelectEvent('formFieldSelect', field, node.pageIndex, this.pdfViewer.formDesignerModule.isProgrammaticSelection);\n }\n }\n }\n }\n if (selectorModel.annotations.length) {\n for (var j = 0; j < selectorModel.annotations.length; j++) {\n var node = selectorModel.annotations[parseInt(j.toString(), 10)];\n selectorElement = this.getSelectorElement(this.pdfViewer.element.id, select);\n var constraints = true;\n if (selectorElement && node.pageIndex === select) {\n if (node.shapeAnnotationType === 'Distance' || node.shapeAnnotationType === 'Line' ||\n node.shapeAnnotationType === 'LineWidthArrowHead' || node.shapeAnnotationType === 'Polygon') {\n this.renderEndPointHandle(node, selectorElement, selectorModel.thumbsConstraints, { scale: zoom, tx: 0, ty: 0 }, undefined, undefined, true, currentSelector);\n }\n else {\n if (node.shapeAnnotationType === 'StickyNotes') {\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, false, true, null, null, currentSelector);\n }\n else {\n if (this.pdfViewer.tool !== 'Stamp') {\n // eslint-disable-next-line\n var isSignature = node.shapeAnnotationType === 'Path' || node.formFieldAnnotationType === 'SignatureField' || node.formFieldAnnotationType === 'InitialField';\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, node.shapeAnnotationType === 'Stamp', false, isSignature, (node.shapeAnnotationType === 'FreeText' || node.shapeAnnotationType === 'HandWrittenSignature' || node.shapeAnnotationType === 'SignatureImage' || node.shapeAnnotationType === 'Image' || node.shapeAnnotationType === 'SignatureText'), currentSelector);\n }\n }\n }\n if (!this.pdfViewer.viewerBase.isNewSignatureAdded && (node.shapeAnnotationType === 'HandWrittenSignature' || node.shapeAnnotationType === 'SignatureText' || node.shapeAnnotationType === 'SignatureImage')) {\n this.pdfViewer.annotationModule.selectSignature(node.signatureName, node.pageIndex, node);\n }\n if (this.pdfViewer.formDesignerModule && node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isFormFieldSelect && !this.pdfViewer.viewerBase.isFormFieldMouseDown && !this.pdfViewer.viewerBase.isFormFieldMouseMove) {\n this.pdfViewer.viewerBase.isFormFieldSelect = true;\n var field = {\n // eslint-disable-next-line\n value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected\n };\n this.pdfViewer.fireFormFieldSelectEvent('formFieldSelect', field, node.pageIndex, this.pdfViewer.formDesignerModule.isProgrammaticSelection);\n }\n }\n if (node.annotName !== '' && node.annotName !== 'SignatureText') {\n if (helper && (node === helper) && !node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isAddComment && !this.pdfViewer.viewerBase.isAnnotationSelect && !this.pdfViewer.viewerBase.isAnnotationMouseDown && !this.pdfViewer.viewerBase.isAnnotationMouseMove && !this.pdfViewer.viewerBase.isInkAdded && !this.pdfViewer.viewerBase.isNewStamp) {\n this.pdfViewer.viewerBase.isAnnotationSelect = true;\n this.pdfViewer.annotationModule.annotationSelect(node.annotName, node.pageIndex, node);\n }\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * Rotates the given nodes/connectors by the given angle\n *\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} obj - Specified the objects to be rotated.\n * @param {number} angle - Specified the angle by which the objects have to be rotated.\n * @param {PointModel} pivot - Specified the reference point with reference to which the objects have to be rotated.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.rotate = function (obj, angle, pivot, currentSelector) {\n var checkBoundaryConstraints;\n if (obj) {\n pivot = pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n if (obj instanceof Selector) {\n obj.rotateAngle += angle;\n obj.wrapper.rotateAngle += angle;\n var objects = [];\n objects = objects.concat(obj.annotations);\n this.rotateObjects(obj, objects, angle, pivot, null, currentSelector);\n }\n else {\n this.rotateObjects(obj, [obj], angle, pivot);\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} parent - Specified the annotation object.\n * @param {PdfAnnotationBaseModel[]} objects - Specified the annotation objects.\n * @param {number} angle - Specified the annotation angle.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {boolean} includeParent - Specified the include parent value.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n Drawing.prototype.rotateObjects = function (parent, objects, angle, pivot, includeParent, currentSelector) {\n pivot = pivot || {};\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var obj = objects_1[_i];\n if (obj instanceof PdfAnnotationBase) {\n if (includeParent !== false || parent !== obj) {\n obj.rotateAngle += angle;\n obj.rotateAngle = (obj.rotateAngle + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n obj.wrapper.offsetX = newOffset.x;\n obj.wrapper.offsetY = newOffset.y;\n this.nodePropertyChange(obj, { rotateAngle: obj.rotateAngle });\n }\n this.renderSelector(obj.pageIndex, currentSelector);\n }\n }\n };\n Drawing.prototype.getParentSvg = function (element, targetElement, canvas) {\n if (element && element.id) {\n if (targetElement && targetElement === 'selector') {\n return this.pdfViewer.adornerSvgLayer;\n }\n }\n return canvas;\n };\n /**\n * @private\n * @param {DrawingElement} selector - Specified the annotation selector object.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} transform - Specfied the transform value.\n * @param {number} enableNode - Specified the node number.\n * @param {boolean} isBorderTickness - Specified is thickness or not.\n * @param {boolean} isSwimlane - Specified is swimlane annotation or not.\n * @param {boolean} isSticky - Specified is sticky annotation or not.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.renderBorder = function (selector, canvas, currentSelector, transform, enableNode, isBorderTickness, isSwimlane, isSticky) {\n var wrapper = selector;\n var options = getBaseShapeAttributes(wrapper, transform);\n transform = transform || { scale: 1, tx: 0, ty: 0 };\n if (!isSticky) {\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n options.fill = 'transparent';\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType;\n if (currentSelector && (typeof (currentSelector) !== 'object') && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = currentSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n if (!this.pdfViewer.designerMode) {\n if ((shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') || shapeType === 'Ink') {\n // eslint-disable-next-line\n var formField = this.pdfViewer.nameTable[selector.id.split('_')[0]];\n var isFormFieldSign = this.pdfViewer.viewerBase.checkSignatureFormField(selector.id);\n // if (isFormFieldSign && options.width + 21 !== formField.bounds.width && options.height + 21 !== formField.bounds.height) {\n // if (this.pdfViewer.signatureFitMode === 'Default') {\n // let selectorBounds: any = this.pdfViewer.formFieldsModule.getDefaultBoundsforSign(formField.bounds);\n // options.x = selectorBounds.x; options.y = selectorBounds.y; options.width = selectorBounds.width; options.height = selectorBounds.height;\n // } else {\n // options.x = formField.bounds.x; options.y = formField.bounds.y; options.width = formField.bounds.width; options.height = formField.bounds.height;\n // }\n // }\n this.getSignBorder(shapeType, options, isFormFieldSign);\n }\n else {\n this.getBorderSelector(shapeType, options);\n }\n }\n }\n options.class = 'e-pv-diagram-border';\n if (isSwimlane) {\n options.class += ' e-diagram-lane';\n }\n options.id = 'borderRect';\n options.id = 'borderRect';\n if (!enableNode) {\n options.class += ' e-disabled';\n }\n if (isBorderTickness) {\n options.class += ' e-thick-border';\n }\n options.cornerRadius = 0;\n }\n else {\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations.length > 0 ? this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType\n : this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n if (currentSelector && (typeof (currentSelector) !== 'object') && currentSelector !== '') {\n var annotationSelector = JSON.parse(currentSelector);\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = currentSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n this.getBorderSelector(shapeType, options);\n }\n }\n var parentSvg = this.getParentSvg(selector, 'selector');\n // eslint-disable-next-line max-len\n this.svgRenderer.drawRectangle(canvas, options, this.pdfViewer.element.id, undefined, true, parentSvg);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {BaseAttributes} options - Specified the options value.\n * @param {boolean} isFormFieldSign - Specified is form field sign or not.\n * @returns {void}\n */\n Drawing.prototype.getSignBorder = function (type, options, isFormFieldSign) {\n if (!isFormFieldSign && (type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n var borderColor = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n var borderColor = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = annotationSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {BaseAttributes} options - Specified the base attributes.\n * @returns {void}\n */\n Drawing.prototype.getBorderSelector = function (type, options) {\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n var borderColor = isNullOrUndefined(annotationSelector.selectionBorderColor) || annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n options.strokeWidth = isNullOrUndefined(annotationSelector.selectionBorderThickness) || annotationSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(annotationSelector.selectorLineDashArray) || annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n var borderColor_1 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_1;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_1 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_1.length > 2) {\n lineDash_1 = [lineDash_1[0], lineDash_1[1]];\n }\n options.dashArray = lineDash_1.toString();\n }\n else if ((type === 'Textbox' || type === 'Checkbox' || type === 'RadioButton' || type === 'SignatureField' || type === 'InitialField' || type === 'DropdownList' || type === 'ListBox' || type === 'PasswordField') && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n var borderColor_2 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_2;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_2 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_2.length > 2) {\n lineDash_2 = [lineDash_2[0], lineDash_2[1]];\n }\n options.dashArray = lineDash_2.toString();\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n var borderColor_3 = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_3;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_3 = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_3.length > 2) {\n lineDash_3 = [lineDash_3[0], lineDash_3[1]];\n }\n options.dashArray = lineDash_3.toString();\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n var borderColor_4 = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_4;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_4 = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_4.length > 2) {\n lineDash_4 = [lineDash_4[0], lineDash_4[1]];\n }\n options.dashArray = lineDash_4.toString();\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n var borderColor_5 = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_5;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_5 = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_5.length > 2) {\n lineDash_5 = [lineDash_5[0], lineDash_5[1]];\n }\n options.dashArray = lineDash_5.toString();\n }\n else if (type === 'StickyNotes' && this.pdfViewer.stickyNotesSettings.annotationSelectorSettings) {\n var borderColor_6 = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_6;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_6 = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [6, 3] : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_6.length > 2) {\n lineDash_6 = [lineDash_6[0], lineDash_6[1]];\n }\n options.dashArray = lineDash_6.toString();\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n var borderColor_7 = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_7;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_7 = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_7.length > 2) {\n lineDash_7 = [lineDash_7[0], lineDash_7[1]];\n }\n options.dashArray = lineDash_7.toString();\n }\n };\n /**\n * @private\n * @param {string} id - Specified the annotaion id.\n * @param {DrawingElement} selector - Specified the drawing element.\n * @param {number} cx - Specified the cx number.\n * @param {number} cy - Specified the cy number.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the html canvas element.\n * @param {boolean} visible - Specified the annotation visible or not.\n * @param {number} enableSelector - Specified the enable selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @param {boolean} connected - Specified is connected or not.\n * @param {boolean} canMask - Specified is mask or not.\n * @param {Object} ariaLabel - Specified the aria label object.\n * @param {number} count - Specified the count value.\n * @param {string} className - Specified the class name.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the annotation selector settings.\n * @returns {void}\n */\n Drawing.prototype.renderCircularHandle = function (id, selector, cx, cy, canvas, visible, enableSelector, t, connected, canMask, ariaLabel, count, className, currentSelector) {\n var wrapper = selector;\n var radius = 7;\n var newPoint = { x: cx, y: cy };\n t = t || { scale: 1, tx: 0, ty: 0 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = getBaseShapeAttributes(wrapper);\n var shapeType;\n if (this.pdfViewer.selectedItems.annotations.length > 0 && this.pdfViewer.selectedItems.annotations[0].measureType) {\n shapeType = this.pdfViewer.selectedItems.annotations[0].measureType;\n }\n else if (this.pdfViewer.selectedItems.formFields.length > 0) {\n shapeType = this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n }\n else {\n shapeType = this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType;\n }\n this.getResizerColors(shapeType, options, currentSelector, t);\n this.getShapeSize(shapeType, options, currentSelector, t);\n options.strokeWidth = 1;\n if (count !== undefined) {\n radius = 5;\n options.id = 'segmentEnd_' + count;\n }\n options.centerX = (newPoint.x + t.tx) * t.scale;\n options.centerY = (newPoint.y + t.ty) * t.scale;\n options.angle = 0;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.opacity = 1;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n options.x = (newPoint.x * t.scale) - (options.width / 2);\n options.y = (newPoint.y * t.scale) - (options.height / 2);\n var parentSvg = this.getParentSvg(selector, 'selector');\n if (this.getShape(shapeType, currentSelector) === 'Square') {\n this.svgRenderer.drawRectangle(canvas, options, id, undefined, true, parentSvg);\n }\n else if (this.getShape(shapeType, currentSelector) === 'Circle') {\n this.svgRenderer.drawCircle(canvas, options, 1);\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotaion object.\n * @param {CircleAttributes} options - Specified the circle attributes value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.getShapeSize = function (type, options, currentSelector, t) {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {any} currentSelector - Specified the current selector value.\n * @returns {AnnotationSelectorSettingsModel} - Specified the annotation selector settings model.\n */\n // eslint-disable-next-line\n Drawing.prototype.getShape = function (type, currentSelector) {\n // eslint-disable-next-line\n var shapeType;\n {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n shapeType = isNullOrUndefined(annotationSelector.resizerShape) || annotationSelector.resizerShape === 'Square' ? 'Square' : annotationSelector.resizerShape;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n shapeType = isNullOrUndefined(annotationSelector.resizerShape) || annotationSelector.resizerShape === 'Square' ? 'Square' : annotationSelector.resizerShape;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape;\n }\n }\n return shapeType;\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotaion object.\n * @param {CircleAttributes} options - Specified the circle attributes value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.getResizerColors = function (type, options, currentSelector, t) {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n options.stroke = isNullOrUndefined(annotationSelector.resizerBorderColor) || annotationSelector.resizerBorderColor === 'black' ? 'black' : annotationSelector.resizerBorderColor;\n options.fill = isNullOrUndefined(annotationSelector.resizerFillColor) || annotationSelector.resizerFillColor === '#FF4081' ? '#FF4081' : annotationSelector.resizerFillColor;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n options.stroke = isNullOrUndefined(annotationSelector.resizerBorderColor) || annotationSelector.resizerBorderColor === 'black' ? 'black' : annotationSelector.resizerBorderColor;\n options.fill = isNullOrUndefined(annotationSelector.resizerFillColor) || annotationSelector.resizerFillColor === '#FF4081' ? '#FF4081' : annotationSelector.resizerFillColor;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor;\n }\n }\n };\n /**\n * @private\n * @param {DrawingElement} wrapper - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {Transforms} transform - Specified the transform value.\n * @param {SelectorConstraints} selectorConstraints - Specified the selector constraints value.\n * @param {boolean} canMask - Specified the is mask or not.\n * @returns {void}\n */\n Drawing.prototype.renderRotateThumb = function (wrapper, canvas, transform, selectorConstraints, canMask) {\n var element = new PathElement();\n var newPoint;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var pivotX = left + wrapper.pivot.x * wrapper.actualSize.width;\n var pivotY = top;\n pivotX = (pivotX + transform.tx) * transform.scale;\n pivotY = (pivotY + transform.ty) * transform.scale;\n newPoint = { x: pivotX, y: pivotY - 25 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, (transform.tx + wrapper.offsetX) * transform.scale, (transform.ty + wrapper.offsetY) * transform.scale);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = getBaseShapeAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.opacity = 1;\n options.fill = '#FF4081';\n options.centerX = newPoint.x;\n options.centerY = newPoint.y;\n options.radius = 4;\n options.angle = 0;\n options.visible = true;\n options.class = 'e-diagram-rotate-handle';\n options.id = 'rotateThumb';\n this.svgRenderer.drawCircle(canvas, options, ThumbsConstraints.Rotate, { 'aria-label': 'Thumb to rotate the selected object' });\n var circleHandle = canvas.querySelector('#' + options.id);\n if (circleHandle) {\n circleHandle.setAttribute('role', 'separator');\n }\n };\n /**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {ThumbsConstraints} constraints - Specified the thumbs constraints element.\n * @param {number} currentZoom - Specified the current zoom value.\n * @param {boolean} canMask - Specified the is mask or not.\n * @param {number} enableNode - Specified the node number.\n * @param {boolean} nodeConstraints - Specified the node constraints or not.\n * @param {boolean} isStamp - Specified is stamp or not.\n * @param {boolean} isSticky - Specified is sticky or not.\n * @param {boolean} isPath - Specified is path or not.\n * @param {boolean} isFreeText - Specified is free text or not.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector settings value.\n * @returns {void}\n */\n Drawing.prototype.renderResizeHandle = function (element, canvas, constraints, currentZoom, canMask, enableNode, nodeConstraints, isStamp, isSticky, isPath, isFreeText, currentSelector) {\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n var height = element.actualSize.height;\n var width = element.actualSize.width;\n var transform = { scale: currentZoom, tx: 0, ty: 0 };\n if (isStamp) {\n this.renderPivotLine(element, canvas, transform);\n this.renderRotateThumb(element, canvas, transform);\n }\n if (isFreeText) {\n isStamp = true;\n }\n this.renderBorder(element, canvas, currentSelector, transform, enableNode, nodeConstraints, true, isSticky);\n var nodeWidth = element.actualSize.width * currentZoom;\n var nodeHeight = element.actualSize.height * currentZoom;\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations.length > 0 ? this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType : this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n var allowPermission = false;\n if (!this.pdfViewer.formDesignerModule) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line\n var allowedInteraction = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isLock = this.pdfViewer.annotationModule.checkIsLockSettings(annotation);\n if ((isLock || annotation.annotationSettings.isLock) && this.getAllowedInteractions(allowedInteraction)) {\n allowPermission = true;\n }\n }\n var resizerLocation = this.getResizerLocation(shapeType, currentSelector);\n if (resizerLocation < 1 || resizerLocation > 3) {\n resizerLocation = 3;\n }\n var isNodeShape = false;\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Radius' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink')) {\n isNodeShape = true;\n }\n if (!this.pdfViewer.viewerBase.checkSignatureFormField(element.id) && !nodeConstraints && !isSticky && !isPath && !allowPermission) {\n if (isStamp || (isNodeShape && (nodeWidth >= 40 && nodeHeight >= 40) && (resizerLocation === 1 || resizerLocation === 3))) {\n //Hide corners when the size is less than 40\n this.renderCircularHandle('resizeNorthWest', element, left, top, canvas, true, constraints & ThumbsConstraints.ResizeNorthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top left side direction' }, undefined, 'e-pv-diagram-resize-handle e-northwest', currentSelector);\n this.renderCircularHandle('resizeNorthEast', element, left + width, top, canvas, true, constraints & ThumbsConstraints.ResizeNorthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top right side direction' }, undefined, 'e-pv-diagram-resize-handle e-northeast', currentSelector);\n this.renderCircularHandle('resizeSouthWest', element, left, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom left side direction' }, undefined, 'e-pv-diagram-resize-handle e-southwest', currentSelector);\n this.renderCircularHandle('resizeSouthEast', element, left + width, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom right side direction' }, undefined, 'e-pv-diagram-resize-handle e-southeast', currentSelector);\n }\n // eslint-disable-next-line max-len\n if ((!isStamp && !isNodeShape) || (isNodeShape && (resizerLocation === 2 || resizerLocation === 3 || (!(nodeWidth >= 40 && nodeHeight >= 40) && resizerLocation === 1)))) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, true, constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-pv-diagram-resize-handle e-north', currentSelector);\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-pv-diagram-resize-handle e-south', currentSelector);\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-pv-diagram-resize-handle e-west', currentSelector);\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-pv-diagram-resize-handle e-east', currentSelector);\n }\n }\n if ((shapeType === 'Textbox' || shapeType === 'Checkbox' || shapeType === 'RadioButton' || shapeType === 'SignatureField' || shapeType === 'InitialField' || shapeType === 'DropdownList' ||\n shapeType === 'ListBox' || shapeType === 'PasswordField')) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, true, constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-pv-diagram-resize-handle e-north', currentSelector);\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-pv-diagram-resize-handle e-south', currentSelector);\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-pv-diagram-resize-handle e-west', currentSelector);\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-pv-diagram-resize-handle e-east', currentSelector);\n }\n };\n // eslint-disable-next-line\n Drawing.prototype.getAllowedInteractions = function (allowedInteraction) {\n if (allowedInteraction && allowedInteraction.length > 0) {\n for (var i = 0; i < allowedInteraction.length; i++) {\n if (allowedInteraction[0] !== 'None' && allowedInteraction[parseInt(i.toString(), 10)] === 'Resize') {\n return false;\n }\n }\n }\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation base model.\n * @param {any} currentSelector - Specified the current selector value\n * @returns {AnnotationResizerLocation} - Returns the annotation resizer location value.\n */\n // eslint-disable-next-line\n Drawing.prototype.getResizerLocation = function (type, currentSelector) {\n // eslint-disable-next-line\n var resizerLocation;\n {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(annotationSelector.resizerLocation) || annotationSelector.resizerLocation === 3 ? 3 : annotationSelector.resizerLocation;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(annotationSelector.resizerLocation) || annotationSelector.resizerLocation === 3 ? 3 : annotationSelector.resizerLocation;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Distance') {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation;\n }\n }\n return resizerLocation;\n }\n };\n /**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGAElement} canvas - Specified the canvas element.\n * @param {Transforms} transform - Specified the transform values.\n * @param {SelectorConstraints} selectorConstraints - Specified the selector constraints value.\n * @param {boolean} canMask - Specified is mask value or not.\n * @returns {void}\n */\n Drawing.prototype.renderPivotLine = function (element, canvas, transform, selectorConstraints, canMask) {\n var wrapper = element;\n var dashArray = '2,3';\n var visible = true;\n if (canMask) {\n visible = false;\n }\n var options = getBaseShapeAttributes(wrapper, transform);\n options.fill = 'None';\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.visible = visible;\n var scale = transform.scale;\n options.x *= scale;\n options.y *= scale;\n options.width *= scale;\n options.height *= scale;\n options.id = 'pivotLine';\n options.class = 'e-diagram-pivot-line';\n var startPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: -20 };\n var endPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: 0 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} selector - Specified the annotation element.\n * @param {HTMLCanvasElement | SVGAElement} canvas - Specified the canvas element.\n * @param {SelectorConstraints} constraints - Specified the selector constraints value.\n * @param {Transforms} transform - Specified the transform values.\n * @param {boolean} connectedSource - Specified is connected source or not.\n * @param {boolean} connectedTarget - Specified is connected target or not.\n * @param {boolean} isSegmentEditing - Specified is segment editing or not.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n Drawing.prototype.renderEndPointHandle = function (selector, canvas, constraints, transform, connectedSource, connectedTarget, isSegmentEditing, currentSelector) {\n transform = transform || { tx: 0, ty: 0, scale: 1 };\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n var wrapper = selector.wrapper;\n var i;\n for (i = 0; i < selector.vertexPoints.length; i++) {\n var segment = selector.vertexPoints[parseInt(i.toString(), 10)];\n this.renderCircularHandle(('segementThumb_' + (i + 1)), wrapper, segment.x, segment.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, null, currentSelector);\n }\n var leaderCount = 0;\n if (selector.shapeAnnotationType === 'Distance') {\n for (i = 0; i < selector.wrapper.children.length; i++) {\n var segment = selector.wrapper.children[parseInt(i.toString(), 10)];\n var newPoint1 = void 0;\n var angle = Point.findAngle(selector.sourcePoint, selector.targetPoint);\n if (segment.id.indexOf('leader') > -1) {\n var center = selector.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: selector.sourcePoint.x, y: selector.sourcePoint.y - selector.leaderHeight };\n center = sourcePoint;\n }\n else {\n newPoint1 = { x: selector.targetPoint.x, y: selector.targetPoint.y - selector.leaderHeight };\n center = targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n this.renderCircularHandle(('leaderThumb_' + (i + 1)), wrapper, rotatedPoint.x, rotatedPoint.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, null, currentSelector);\n leaderCount++;\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Drawing.prototype.initSelectorWrapper = function () {\n var selectorModel = this.pdfViewer.selectedItems;\n selectorModel.init(this);\n };\n /**\n * @private\n * @param {string[]} objArray - Specified the annotation object array.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {boolean} multipleSelection - Specified the multiple selection or not.\n * @param {boolean} preventUpdate - Specified the prevent update or not.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.select = function (objArray, currentSelector, multipleSelection, preventUpdate) {\n var selectorModel = this.pdfViewer.selectedItems;\n for (var i = 0; i < objArray.length; i++) {\n // eslint-disable-next-line\n var obj = this.pdfViewer.nameTable[objArray[i]];\n if (obj.formFieldAnnotationType && this.pdfViewer.designerMode) {\n selectorModel.formFields.push(obj);\n this.initSelectorWrapper();\n selectorModel.wrapper.children.push(obj.wrapper);\n this.renderSelector(obj.pageIndex, currentSelector, obj, true);\n }\n else if (obj && !obj.formFieldAnnotationType) {\n if (!(obj instanceof Selector) && obj.wrapper.visible && this.pdfViewer.annotationModule) {\n // eslint-disable-next-line\n var annotationSettings = void 0;\n if (obj.annotationSettings) {\n annotationSettings = obj.annotationSettings;\n annotationSettings.isLock = JSON.parse(annotationSettings.isLock);\n }\n else if (!obj.formFieldAnnotationType) {\n annotationSettings = this.pdfViewer.annotationModule.findAnnotationSettings(obj, true);\n obj.annotationSettings = annotationSettings;\n }\n var isLock = !obj.formFieldAnnotationType ? annotationSettings.isLock : false;\n if (annotationSettings && annotationSettings.isLock && this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n isLock = false;\n }\n if (!isLock) {\n selectorModel.annotations.push(obj);\n this.initSelectorWrapper();\n selectorModel.wrapper.rotateAngle = selectorModel.rotateAngle = 0;\n selectorModel.wrapper.children.push(obj.wrapper);\n if (!preventUpdate) {\n this.renderSelector(obj.pageIndex, currentSelector, obj, true);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {number} pageIndex - Specified the page index value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {PdfAnnotationBaseModel} helper - Specified the helper object.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.dragSelectedObjects = function (tx, ty, pageIndex, currentSelector, helper) {\n var obj = this.pdfViewer.selectedItems;\n this.drag(obj, tx, ty, currentSelector, helper);\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {PdfAnnotationBaseModel} helper - Specified the helper object.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.drag = function (obj, tx, ty, currentSelector, helper) {\n if (obj instanceof Selector) {\n if (obj.annotations.length) {\n for (var _i = 0, _a = obj.annotations; _i < _a.length; _i++) {\n var node = _a[_i];\n this.drag(node, tx, ty, currentSelector, helper);\n this.renderSelector(node.pageIndex, currentSelector, helper);\n }\n }\n else if (obj.formFields.length) {\n for (var _b = 0, _c = obj.formFields; _b < _c.length; _b++) {\n var node = _c[_b];\n this.drag(node, tx, ty, currentSelector, helper);\n this.renderSelector(node.pageIndex, currentSelector, helper);\n }\n }\n }\n else {\n this.dragAnnotation(obj, tx, ty);\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @returns {void}\n */\n Drawing.prototype.dragAnnotation = function (obj, tx, ty) {\n var tempNode;\n var elements = [];\n // eslint-disable-next-line\n var oldValues = { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n //bug (EJ2-62649) : fixed an issue with difficulty on moving/ resizing free text annotation that added in edge of viewer\n var newDiff = this.moveInsideViewer(obj, tx, ty);\n obj.wrapper.offsetX += newDiff.tx;\n obj.wrapper.offsetY += newDiff.ty;\n if (isLineShapes(obj) || obj.shapeAnnotationType === 'Polygon') {\n if (obj.wrapper.children.length) {\n var nodes = obj.wrapper.children;\n for (var i = 0; i < nodes.length; i++) {\n nodes[parseInt(i.toString(), 10)].offsetX += tx;\n nodes[parseInt(i.toString(), 10)].offsetY += ty;\n }\n }\n this.dragControlPoint(obj, tx, ty, true);\n }\n this.nodePropertyChange(obj, { bounds: { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY } });\n obj.wrapper.measureChildren = false;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + obj.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvas, obj.pageIndex);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {boolean} preventUpdate - Specified the prevent update or not.\n * @param {number} segmentNumber - Specified the segment value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.dragControlPoint = function (obj, tx, ty, preventUpdate, segmentNumber) {\n // eslint-disable-next-line\n var connector = this.pdfViewer.nameTable[obj.id];\n for (var i = 0; i < connector.vertexPoints.length; i++) {\n (connector.vertexPoints[parseInt(i.toString(), 10)]).x += tx;\n (connector.vertexPoints[parseInt(i.toString(), 10)]).y += ty;\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector);\n }\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the connector object.\n * @returns {void}\n */\n Drawing.prototype.updateEndPoint = function (connector) {\n this.nodePropertyChange(connector, { vertexPoints: connector.vertexPoints });\n this.renderSelector(connector.pageIndex);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} actualObject - Specified the actual annotaion object.\n * @param {PdfAnnotationBaseModel} node - Specified the node annotation object.\n * @returns {void}\n */\n Drawing.prototype.nodePropertyChange = function (actualObject, node) {\n var existingBounds = actualObject.wrapper.outerBounds;\n var existingInnerBounds = actualObject.wrapper.bounds;\n var updateConnector = false;\n var i;\n var j;\n var offsetX;\n var offsetY;\n var update;\n var tx;\n var ty;\n if (node.bounds) {\n if (node.bounds.width !== undefined) {\n actualObject.bounds.width = actualObject.wrapper.width = node.bounds.width;\n }\n if (node.bounds.height !== undefined) {\n actualObject.bounds.height = actualObject.wrapper.height = node.bounds.height;\n }\n if (node.bounds.x !== undefined) {\n actualObject.bounds.x = node.bounds.x - (actualObject.bounds.width * 0.5);\n actualObject.wrapper.offsetX = node.bounds.x;\n update = true;\n updateConnector = true;\n }\n if (node.bounds.y !== undefined) {\n actualObject.bounds.y = node.bounds.y - (actualObject.bounds.height * 0.5);\n actualObject.wrapper.offsetY = node.bounds.y;\n update = true;\n updateConnector = true;\n }\n if (node.leaderHeight !== undefined) {\n actualObject.leaderHeight = node.leaderHeight;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (actualObject.wrapper.children.length) {\n var children = actualObject.wrapper.children;\n for (var i_1 = 0; i_1 < children.length; i_1++) {\n if (children[parseInt(i_1.toString(), 10)].id) {\n var names = children[parseInt(i_1.toString(), 10)].id.split('_');\n if (names.length && (names.indexOf('perimeter') > -1 || names.indexOf('radius') > -1)) {\n this.setNodePosition(children[parseInt(i_1.toString(), 10)], actualObject);\n }\n else if (names.length && (names.indexOf('srcDec') > -1)) {\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.vertexPoints[0].x;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.vertexPoints[0].y;\n }\n else if (names.length && names.indexOf('tarDec') > -1) {\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.vertexPoints[actualObject.vertexPoints.length - 1].x;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.vertexPoints[actualObject.vertexPoints.length - 1].y;\n }\n else if (names.length && (names.indexOf('stamp') > -1)) {\n // eslint-disable-next-line\n var ratio = 0;\n var heightRatio = 2;\n if (actualObject.wrapper.width !== undefined && actualObject.wrapper.height !== undefined) {\n ratio = 20;\n heightRatio = 2.9;\n }\n if (actualObject.isDynamicStamp) {\n children[parseInt(i_1.toString(), 10)].width = actualObject.bounds.width - ratio;\n children[parseInt(i_1.toString(), 10)].height = (actualObject.bounds.height / 2) - ratio;\n // eslint-disable-next-line\n var element = children[1];\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.stampSettings ? this.pdfViewer.stampSettings : this.pdfViewer.annotationSettings;\n // eslint-disable-next-line max-len\n if (annotationSettings && (annotationSettings.maxHeight || annotationSettings.maxWidth) && (actualObject.bounds.height > 60)) {\n if (ratio != 0) {\n element.style.fontSize = (actualObject.bounds.width / ratio);\n }\n else {\n element.style.fontSize = (actualObject.wrapper.bounds.width / 20);\n }\n }\n else {\n if (ratio != 0) {\n element.style.fontSize = this.fontSizeCalculation(actualObject, element, (actualObject.bounds.width - 20));\n }\n else {\n element.style.fontSize = this.fontSizeCalculation(actualObject, element, (actualObject.wrapper.bounds.width - 20));\n }\n }\n if (ratio !== 0) {\n element.margin.bottom = -(children[parseInt(i_1.toString(), 10)].height / 2);\n }\n }\n else {\n children[parseInt(i_1.toString(), 10)].width = actualObject.bounds.width - ratio;\n children[parseInt(i_1.toString(), 10)].height = actualObject.bounds.height - ratio;\n }\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.wrapper.offsetX;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.wrapper.offsetX;\n children[parseInt(i_1.toString(), 10)].isDirt = true;\n }\n }\n }\n }\n }\n if (node.sourceDecoraterShapes !== undefined) {\n actualObject.sourceDecoraterShapes = node.sourceDecoraterShapes;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.isReadonly !== undefined && actualObject.shapeAnnotationType === 'FreeText') {\n actualObject.isReadonly = node.isReadonly;\n }\n if (node.taregetDecoraterShapes !== undefined) {\n actualObject.taregetDecoraterShapes = node.taregetDecoraterShapes;\n update = true;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.fillColor !== undefined) {\n actualObject.fillColor = node.fillColor;\n actualObject.wrapper.children[0].style.fill = node.fillColor;\n if ((actualObject.enableShapeLabel || actualObject.measureType) && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_2 = 0; i_2 < children.length; i_2++) {\n if (children[parseInt(i_2.toString(), 10)].textNodes) {\n if (actualObject.enableShapeLabel) {\n actualObject.labelFillColor = node.fillColor;\n children[parseInt(i_2.toString(), 10)].style.fill = node.fillColor;\n }\n if (actualObject.measureType) {\n children[parseInt(i_2.toString(), 10)].style.fill = node.fillColor;\n }\n }\n }\n }\n update = true;\n }\n if (actualObject.enableShapeLabel && node.labelFillColor !== undefined) {\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_3 = 0; i_3 < children.length; i_3++) {\n if (children[parseInt(i_3.toString(), 10)].textNodes) {\n actualObject.labelFillColor = node.labelFillColor;\n children[parseInt(i_3.toString(), 10)].style.fill = node.labelFillColor;\n }\n }\n }\n }\n if (node.opacity !== undefined) {\n if (actualObject.shapeAnnotationType === 'Stamp' || actualObject.shapeAnnotationType === 'FreeText') {\n actualObject.wrapper.children[1].style.opacity = node.opacity;\n if (actualObject.wrapper.children[2]) {\n actualObject.wrapper.children[2].style.opacity = node.opacity;\n }\n }\n else {\n if (actualObject.shapeAnnotationType === 'StickyNotes') {\n // eslint-disable-next-line\n this.pdfViewer.nameTable[actualObject.annotName].wrapper.children[0].style.opacity = node.opacity;\n }\n actualObject.opacity = node.opacity;\n }\n actualObject.wrapper.children[0].style.opacity = node.opacity;\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_4 = 0; i_4 < children.length; i_4++) {\n if (children[parseInt(i_4.toString(), 10)].textNodes) {\n children[parseInt(i_4.toString(), 10)].style.opacity = node.labelOpacity;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (actualObject.enableShapeLabel && node.labelOpacity !== undefined) {\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_5 = 0; i_5 < children.length; i_5++) {\n if (children[parseInt(i_5.toString(), 10)].textNodes) {\n children[parseInt(i_5.toString(), 10)].style.opacity = node.labelOpacity;\n }\n }\n }\n }\n if (node.rotateAngle !== undefined) {\n actualObject.rotateAngle = node.rotateAngle;\n actualObject.wrapper.rotateAngle = node.rotateAngle;\n update = true;\n updateConnector = true;\n }\n if (node.strokeColor !== undefined) {\n actualObject.strokeColor = node.strokeColor;\n actualObject.wrapper.children[0].style.strokeColor = node.strokeColor;\n update = true;\n updateConnector = true;\n }\n if (node.fontColor !== undefined) {\n actualObject.fontColor = node.fontColor;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.color = node.fontColor;\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else {\n children[1].horizontalAlignment = 'Auto';\n }\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_6 = 0; i_6 < children.length; i_6++) {\n if (children[parseInt(i_6.toString(), 10)].textNodes) {\n children[parseInt(i_6.toString(), 10)].style.color = node.fontColor;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.fontFamily !== undefined) {\n actualObject.fontFamily = node.fontFamily;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.fontFamily = node.fontFamily;\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_7 = 0; i_7 < children.length; i_7++) {\n if (children[parseInt(i_7.toString(), 10)].textNodes) {\n children[parseInt(i_7.toString(), 10)].style.fontFamily = node.fontFamily;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.fontSize !== undefined) {\n actualObject.fontSize = node.fontSize;\n if ((actualObject.shapeAnnotationType === 'FreeText' || actualObject.shapeAnnotationType === 'SignatureText') && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.fontSize = node.fontSize;\n if (actualObject.shapeAnnotationType === 'SignatureText') {\n actualObject.wrapper.children[1].bounds.width = actualObject.bounds.width;\n actualObject.wrapper.children[1].desiredSize.width = actualObject.bounds.width;\n actualObject.wrapper.children[1].actualSize.width = actualObject.bounds.width;\n children[1].horizontalAlignment = 'Center';\n children[1].verticalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n }\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_8 = 0; i_8 < children.length; i_8++) {\n if (children[parseInt(i_8.toString(), 10)].textNodes) {\n children[parseInt(i_8.toString(), 10)].style.fontSize = node.fontSize;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.font !== undefined) {\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (node.font.isBold !== undefined) {\n children[1].style.bold = node.font.isBold;\n actualObject.font.isBold = node.font.isBold;\n }\n if (node.font.isItalic !== undefined) {\n children[1].style.italic = node.font.isItalic;\n actualObject.font.isItalic = node.font.isItalic;\n }\n if (node.font.isUnderline !== undefined) {\n if (node.font.isUnderline) {\n actualObject.font.isStrikeout = false;\n }\n if (node.font.isUnderline === true) {\n children[1].style.textDecoration = 'Underline';\n }\n else {\n if (!node.font.isStrikeout) {\n children[1].style.textDecoration = 'None';\n }\n }\n actualObject.font.isUnderline = node.font.isUnderline;\n }\n if (node.font.isStrikeout !== undefined) {\n if (node.font.isStrikeout) {\n actualObject.font.isUnderline = false;\n }\n if (node.font.isStrikeout === true) {\n children[1].style.textDecoration = 'LineThrough';\n }\n else {\n if (!node.font.isUnderline) {\n children[1].style.textDecoration = 'None';\n }\n }\n actualObject.font.isStrikeout = node.font.isStrikeout;\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.textAlign !== undefined) {\n actualObject.textAlign = node.textAlign;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.textAlign = node.textAlign;\n if (children[1].childNodes.length === 1) {\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Right') {\n children[1].horizontalAlignment = 'Right';\n children[1].setOffsetWithRespectToBounds(0.97, 0, null);\n }\n else if (actualObject.textAlign === 'Left') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Center') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0.46, 0, null);\n }\n }\n else if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else {\n children[1].horizontalAlignment = 'Auto';\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.thickness !== undefined) {\n actualObject.thickness = node.thickness;\n actualObject.wrapper.children[0].style.strokeWidth = node.thickness;\n if (actualObject.shapeAnnotationType === 'LineWidthArrowHead') {\n actualObject.wrapper.children[1].width = 12 * node.thickness;\n actualObject.wrapper.children[1].height = 12 * node.thickness;\n actualObject.wrapper.children[2].width = 12 * node.thickness;\n actualObject.wrapper.children[2].height = 12 * node.thickness;\n }\n update = true;\n updateConnector = true;\n }\n if (node.borderDashArray !== undefined) {\n actualObject.borderDashArray = node.borderDashArray;\n actualObject.wrapper.children[0].style.strokeDashArray = node.borderDashArray;\n }\n if (node.borderStyle !== undefined) {\n actualObject.borderStyle = node.borderStyle;\n }\n if (node.author !== undefined) {\n actualObject.author = node.author;\n }\n if (node.modifiedDate !== undefined) {\n actualObject.modifiedDate = node.modifiedDate;\n }\n if (node.subject !== undefined) {\n actualObject.subject = node.subject;\n }\n if (node.vertexPoints !== undefined) {\n actualObject.vertexPoints = node.vertexPoints;\n // eslint-disable-next-line\n this.pdfViewer.nameTable[actualObject.id].vertexPoints = node.vertexPoints;\n this.updateConnector(actualObject, node.vertexPoints);\n }\n if (node.leaderHeight !== undefined && actualObject.shapeAnnotationType !== 'Polygon') {\n actualObject.leaderHeight = node.leaderHeight;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.notes !== undefined) {\n actualObject.notes = node.notes;\n }\n if (node.annotName !== undefined) {\n actualObject.annotName = node.annotName;\n }\n if (actualObject.shapeAnnotationType === 'Distance') {\n for (i = 0; i < actualObject.wrapper.children.length; i++) {\n // eslint-disable-next-line\n var segment = actualObject.wrapper.children[i];\n // eslint-disable-next-line\n var points = getConnectorPoints(actualObject);\n if (segment.id.indexOf('leader1') > -1) {\n this.setLineDistance(actualObject, points, segment, false);\n }\n if (segment.id.indexOf('leader2') > -1) {\n this.setLineDistance(actualObject, points, segment, true);\n }\n }\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (actualObject.shapeAnnotationType === 'Polygon' && node.vertexPoints) {\n actualObject.data = getPolygonPath(actualObject.vertexPoints);\n // eslint-disable-next-line\n var path = actualObject.wrapper.children[0];\n path.data = actualObject.data;\n path.canMeasurePath = true;\n }\n if (isLineShapes(actualObject)) {\n for (var i_9 = 0; i_9 < actualObject.wrapper.children.length; i_9++) {\n // eslint-disable-next-line\n var childElement = actualObject.wrapper.children[i_9];\n if (!childElement.textNodes) {\n setElementStype(actualObject, actualObject.wrapper.children[parseInt(i_9.toString(), 10)]);\n }\n if (actualObject.enableShapeLabel === true) {\n if (actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof TextElement) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = actualObject.labelFillColor;\n }\n if ((actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof PathElement && actualObject.measureType === 'Perimeter')) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = 'transparent';\n }\n }\n else {\n if ((actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof PathElement && actualObject.measureType === 'Perimeter') || actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof TextElement) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = 'transparent';\n }\n }\n }\n }\n if (actualObject && (actualObject.shapeAnnotationType === 'FreeText' || actualObject.enableShapeLabel === true)) {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_10 = 0; i_10 < children.length; i_10++) {\n if (children[parseInt(i_10.toString(), 10)].textNodes) {\n if (actualObject.shapeAnnotationType === 'FreeText') {\n if (node.dynamicText) {\n children[parseInt(i_10.toString(), 10)].content = node.dynamicText;\n actualObject.dynamicText = node.dynamicText;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.dynamicText;\n }\n children[parseInt(i_10.toString(), 10)].width = actualObject.bounds.width;\n }\n else if (actualObject.enableShapeLabel === true && actualObject.measureType) {\n if (node.labelContent) {\n children[parseInt(i_10.toString(), 10)].content = node.labelContent;\n actualObject.labelContent = node.labelContent;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.labelContent;\n }\n actualObject.notes = children[parseInt(i_10.toString(), 10)].content;\n }\n else if (actualObject.enableShapeLabel === true) {\n if (node.labelContent) {\n children[parseInt(i_10.toString(), 10)].content = node.labelContent;\n actualObject.labelContent = node.labelContent;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.labelContent;\n }\n actualObject.notes = children[parseInt(i_10.toString(), 10)].content;\n }\n children[parseInt(i_10.toString(), 10)].isDirt = true;\n }\n /** set text node width less than the parent */\n }\n }\n }\n if (actualObject && actualObject.shapeAnnotationType === \"SignatureText\" && actualObject.wrapper) {\n if (actualObject.wrapper.children && actualObject.wrapper.children.length > 1) {\n actualObject.wrapper.children[1].isDirt = true;\n }\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (actualObject && actualObject.formFieldAnnotationType) {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children[0];\n children.actualSize.width = actualObject.wrapper.desiredSize.width;\n children.actualSize.height = actualObject.wrapper.desiredSize.height;\n }\n }\n if (actualObject && actualObject.shapeAnnotationType === 'FreeText' && actualObject.subject === 'Text Box') {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else if (children[1].childNodes.length === 1) {\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Right') {\n children[1].horizontalAlignment = 'Right';\n children[1].setOffsetWithRespectToBounds(0.97, 0, null);\n }\n else if (actualObject.textAlign === 'Left') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Center') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0.46, 0, null);\n }\n }\n for (var i_11 = 0; i_11 < children.length; i_11++) {\n if (children[parseInt(i_11.toString(), 10)].textNodes && children[parseInt(i_11.toString(), 10)].textNodes.length > 0) {\n children[parseInt(i_11.toString(), 10)].isDirt = true;\n var childNodeHeight = children[parseInt(i_11.toString(), 10)].textNodes.length * children[parseInt(i_11.toString(), 10)].textNodes[0].dy;\n var heightDiff = actualObject.bounds.height - childNodeHeight;\n if (heightDiff > 0 && heightDiff < children[parseInt(i_11.toString(), 10)].textNodes[0].dy) {\n childNodeHeight = childNodeHeight + children[parseInt(i_11.toString(), 10)].textNodes[0].dy;\n }\n if (childNodeHeight > actualObject.bounds.height) {\n var contString = '';\n for (var index = 0; index < children[parseInt(i_11.toString(), 10)].textNodes.length; index++) {\n // eslint-disable-next-line\n var childHeight = children[i_11].textNodes[0].dy * (index + 1);\n // eslint-disable-next-line\n childHeight = childHeight;\n contString = contString + children[parseInt(i_11.toString(), 10)].textNodes[parseInt(index.toString(), 10)].text;\n }\n children[parseInt(i_11.toString(), 10)].content = contString;\n }\n }\n /** set text node width less than the parent */\n children[parseInt(i_11.toString(), 10)].width = actualObject.bounds.width;\n }\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n }\n this.pdfViewer.renderDrawing(undefined, actualObject.pageIndex);\n if (actualObject && actualObject.shapeAnnotationType === 'FreeText') {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (children[1].childNodes.length === 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0.5, 0, null);\n }\n else if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n }\n }\n };\n Drawing.prototype.fontSizeCalculation = function (actualObject, element, boundsWidth) {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + actualObject.pageIndex);\n var context = canvas.getContext(\"2d\");\n var textwidth = 0;\n var newsize = 0;\n var fontStyle = '';\n if (element.style.italic && element.style.bold) {\n fontStyle = 'bold italic ';\n }\n else if (element.style.bold) {\n fontStyle = 'bold ';\n }\n else if (element.style.italic) {\n fontStyle = 'italic ';\n }\n while (boundsWidth > textwidth) {\n context.font = fontStyle + newsize + 'px ' + element.style.fontFamily;\n textwidth = context.measureText(actualObject.dynamicText).width;\n newsize += 0.1;\n }\n newsize -= 0.1;\n return newsize;\n };\n // eslint-disable-next-line\n Drawing.prototype.setLineDistance = function (actualObject, points, segment, leader) {\n var node1;\n if (leader) {\n node1 = initLeader(actualObject, points[1], points[0], leader);\n }\n else {\n node1 = initLeader(actualObject, points[0], points[1], leader);\n }\n segment.data = node1.data;\n segment.offsetX = node1.offsetX;\n segment.offsetY = node1.offsetY;\n segment.rotateAngle = node1.rotateAngle;\n segment.width = node1.width;\n segment.height = node1.height;\n segment.pivot = node1.pivot;\n segment.canMeasurePath = true;\n segment.isDirt = true;\n };\n /**\n * @private\n * @param {number} sx - Specified the sx value.\n * @param {number} sy - Specified the sy value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n var obj = this.pdfViewer.selectedItems;\n return this.scale(obj, sx, sy, pivot);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} obj - Specified the annotaion object.\n * @param {number} sx - Specified the sx value.\n * @param {number} sy - Specified the sy value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scale = function (obj, sx, sy, pivot) {\n var checkBoundaryConstraints = true;\n if (obj instanceof Selector) {\n if (obj.annotations && obj.annotations.length) {\n for (var _i = 0, _a = obj.annotations; _i < _a.length; _i++) {\n var node = _a[_i];\n checkBoundaryConstraints = this.scaleAnnotation(node, sx, sy, pivot, obj);\n }\n }\n else if (obj.formFields && obj.formFields.length) {\n for (var _b = 0, _c = obj.formFields; _b < _c.length; _b++) {\n var node = _c[_b];\n checkBoundaryConstraints = this.scaleAnnotation(node, sx, sy, pivot, obj);\n }\n }\n }\n else {\n checkBoundaryConstraints = this.scaleAnnotation(obj, sx, sy, pivot, undefined);\n }\n return checkBoundaryConstraints;\n };\n /**\n * @private\n * @param {number} sw - Specified the sw value.\n * @param {number} sh - Specified the sh value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {IElement} obj - Specified the annotation object.\n * @param {DrawingElement} element - Specified the annotation element.\n * @param {IElement} refObject - Specified the annotation reference object.\n * @returns {void}\n */\n Drawing.prototype.scaleObject = function (sw, sh, pivot, obj, element, refObject) {\n sw = sw < 0 ? 1 : sw;\n sh = sh < 0 ? 1 : sh;\n if (sw !== 1 || sh !== 1) {\n var width = void 0;\n var height = void 0;\n if (!isLineShapes(obj)) {\n var node = obj;\n var isResize = void 0;\n var bound = void 0;\n width = node.wrapper.actualSize.width * sw;\n height = node.wrapper.actualSize.height * sh;\n if (isResize) {\n width = Math.max(width, (bound.right - node.wrapper.bounds.x));\n height = Math.max(height, (bound.bottom - node.wrapper.bounds.y));\n }\n sw = width / node.wrapper.actualSize.width;\n sh = height / node.wrapper.actualSize.height;\n }\n var matrix = identityMatrix();\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n rotateMatrix(matrix, -refWrapper.rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, sw, sh, pivot.x, pivot.y);\n rotateMatrix(matrix, refWrapper.rotateAngle, pivot.x, pivot.y);\n if (!isLineShapes(obj)) {\n var node = obj;\n var newPosition = transformPointByMatrix(matrix, { x: node.wrapper.offsetX, y: node.wrapper.offsetY });\n if (width > 0) {\n node.wrapper.width = width;\n node.wrapper.offsetX = newPosition.x;\n }\n if (height > 0) {\n node.wrapper.height = height;\n node.wrapper.offsetY = newPosition.y;\n }\n this.nodePropertyChange(obj, {\n bounds: { width: node.wrapper.width, height: node.wrapper.height, x: node.wrapper.offsetX, y: node.wrapper.offsetY }\n });\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} sw - Specified the sw value.\n * @param {number} sh - Specified the sh value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {IElement} refObject - Specified the reference object.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scaleAnnotation = function (obj, sw, sh, pivot, refObject) {\n // eslint-disable-next-line\n var node = this.pdfViewer.nameTable[obj.id];\n var tempNode = node;\n var elements = [];\n var element = node.wrapper;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n var x = refWrapper.offsetX - refWrapper.actualSize.width * refWrapper.pivot.x;\n var y = refWrapper.offsetY - refWrapper.actualSize.height * refWrapper.pivot.y;\n var refPoint = this.getShapePoint(x, y, refWrapper.actualSize.width, refWrapper.actualSize.height, refWrapper.rotateAngle, refWrapper.offsetX, refWrapper.offsetY, pivot);\n if (element.actualSize.width !== undefined && element.actualSize.height !== undefined) {\n this.scaleObject(sw, sh, refPoint, node, element, refObject);\n }\n // eslint-disable-next-line max-len\n var constraints = this.checkBoundaryConstraints(undefined, undefined, obj.pageIndex, obj.wrapper.bounds);\n if (!constraints) {\n this.scaleObject(1 / sw, 1 / sh, refPoint, node, element, refObject);\n //bug (EJ2-62649) : fixed an issue with difficulty on moving/ resizing free text annotation that added in edge of viewer \n // eslint-disable-next-line\n if (obj.shapeAnnotationType === 'FreeText' && (obj.id.slice(0, 9) === 'free_text' || obj.id.slice(0, 8) === 'freetext')) {\n var newDiff = this.moveInsideViewer(obj);\n this.nodePropertyChange(obj, {\n bounds: { width: obj.wrapper.width, height: obj.wrapper.height, x: obj.wrapper.offsetX + newDiff.tx, y: obj.wrapper.offsetY + newDiff.ty }\n });\n }\n }\n return constraints;\n };\n //bug (EJ2-62649) : Implemnted method for calculating optimal bound for free text annotation that outside viewer container \n Drawing.prototype.moveInsideViewer = function (obj, tx, ty) {\n tx = tx ? tx : 0;\n ty = ty ? ty : 0;\n if (obj.shapeAnnotationType === 'FreeText' && (obj.id.slice(0, 9) === 'free_text' || obj.id.slice(0, 8) === 'freetext')) {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + obj.pageIndex);\n if (canvas) {\n var bounds = obj.wrapper.bounds;\n var width = canvas.clientWidth / this.pdfViewer.viewerBase.getZoomFactor();\n var height = canvas.clientHeight / this.pdfViewer.viewerBase.getZoomFactor();\n var right = bounds.right;\n var left = bounds.left;\n var top_1 = bounds.top;\n var bottom = bounds.bottom;\n // eslint-disable-next-line\n if (!(right + tx <= width - 3 && left + tx >= 1 && bottom + ty <= height - 3 && top_1 + ty >= 1)) {\n var txNew = 0;\n var tyNew = 0;\n if (!(right <= width - 3)) {\n txNew = width - right - 3;\n }\n if (!(left >= 1)) {\n txNew = txNew - left + 1;\n }\n if (!(bottom <= height - 3)) {\n tyNew = height - bottom - 3;\n }\n if (!(top_1 >= 1)) {\n tyNew = tyNew - top_1 + 1;\n }\n if (txNew !== 0) {\n tx = txNew;\n }\n if (tyNew !== 0) {\n ty = tyNew;\n }\n }\n }\n }\n return { tx: tx, ty: ty };\n };\n /**\n * @private\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {number} pageIndex - Specified the page index value.\n * @param {Rect} nodeBounds - Specified the node bounds value.\n * @param {boolean} isStamp - Specified the annotation is stamp or not.\n * @param {boolean} isSkip - Specified the annotaion is skip or not.\n * @returns {boolean} - Returns true or false.\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.checkBoundaryConstraints = function (tx, ty, pageIndex, nodeBounds, isStamp, isSkip) {\n var selectorBounds = !nodeBounds ? this.pdfViewer.selectedItems.wrapper.bounds : undefined;\n var bounds = nodeBounds;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n var heightDifference = 1;\n if (canvas) {\n var width = canvas.clientWidth / this.pdfViewer.viewerBase.getZoomFactor();\n var height = canvas.clientHeight / this.pdfViewer.viewerBase.getZoomFactor();\n var right = (nodeBounds ? bounds.right : selectorBounds.right) + (tx || 0);\n var left = (nodeBounds ? bounds.left : selectorBounds.left) + (tx || 0);\n var top_2 = (nodeBounds ? bounds.top : selectorBounds.top) + (ty || 0);\n var bottom = (nodeBounds ? bounds.bottom : selectorBounds.bottom) + (ty || 0);\n if (isStamp) {\n heightDifference = 50;\n if (this.pdfViewer.viewerBase.eventArgs && this.pdfViewer.viewerBase.eventArgs.source) {\n if (this.RestrictStamp(this.pdfViewer.viewerBase.eventArgs.source)) {\n return false;\n }\n }\n }\n if ((right <= width - 3 && left >= 1 && bottom <= height - 3 && top_2 >= heightDifference) || isSkip) {\n return true;\n }\n }\n return false;\n };\n // eslint-disable-next-line\n Drawing.prototype.RestrictStamp = function (source) {\n // eslint-disable-next-line max-len\n if (source && source.pageIndex !== undefined && this.pdfViewer.viewerBase.activeElements && source.pageIndex !== this.pdfViewer.viewerBase.activeElements.activePageID) {\n return true;\n }\n return false;\n };\n /**\n * @private\n * @param {DrawingElement} shapeElement - Specified the shape element.\n * @returns {Rect} - Returns the rectangle object.\n */\n Drawing.prototype.getShapeBounds = function (shapeElement) {\n var shapeBounds = new Rect();\n var shapeCorners = cornersPointsBeforeRotation(shapeElement);\n var shapeMiddleLeft = shapeCorners.middleLeft;\n var shapeTopCenter = shapeCorners.topCenter;\n var shapeBottomCenter = shapeCorners.bottomCenter;\n var shapeMiddleRight = shapeCorners.middleRight;\n var shapeTopLeft = shapeCorners.topLeft;\n var shapeTopRight = shapeCorners.topRight;\n var shapeBottomLeft = shapeCorners.bottomLeft;\n var shapeBottomRight = shapeCorners.bottomRight;\n shapeElement.corners = {\n topLeft: shapeTopLeft, topCenter: shapeTopCenter, topRight: shapeTopRight, middleLeft: shapeMiddleLeft,\n middleRight: shapeMiddleRight, bottomLeft: shapeBottomLeft, bottomCenter: shapeBottomCenter, bottomRight: shapeBottomRight\n };\n if (shapeElement.rotateAngle !== 0 || shapeElement.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, shapeElement.rotateAngle + shapeElement.parentTransform, shapeElement.offsetX, shapeElement.offsetY);\n shapeElement.corners.topLeft = shapeTopLeft = transformPointByMatrix(matrix, shapeTopLeft);\n shapeElement.corners.topCenter = shapeTopCenter = transformPointByMatrix(matrix, shapeTopCenter);\n shapeElement.corners.topRight = shapeTopRight = transformPointByMatrix(matrix, shapeTopRight);\n shapeElement.corners.middleLeft = shapeMiddleLeft = transformPointByMatrix(matrix, shapeMiddleLeft);\n shapeElement.corners.middleRight = shapeMiddleRight = transformPointByMatrix(matrix, shapeMiddleRight);\n shapeElement.corners.bottomLeft = shapeBottomLeft = transformPointByMatrix(matrix, shapeBottomLeft);\n shapeElement.corners.bottomCenter = shapeBottomCenter = transformPointByMatrix(matrix, shapeBottomCenter);\n shapeElement.corners.bottomRight = shapeBottomRight = transformPointByMatrix(matrix, shapeBottomRight);\n //Set corners based on rotate angle\n }\n shapeBounds = Rect.toBounds([shapeTopLeft, shapeTopRight, shapeBottomLeft, shapeBottomRight]);\n shapeElement.corners.left = shapeBounds.left;\n shapeElement.corners.right = shapeBounds.right;\n shapeElement.corners.top = shapeBounds.top;\n shapeElement.corners.bottom = shapeBounds.bottom;\n shapeElement.corners.center = shapeBounds.center;\n shapeElement.corners.width = shapeBounds.width;\n shapeElement.corners.height = shapeBounds.height;\n return shapeBounds;\n };\n /**\n * @private\n * @param {number} x - Specified the x value.\n * @param {number} y - Specified the y value.\n * @param {number} w - Specified the w value.\n * @param {number} h - Specified the h value.\n * @param {number} angle - Specified the angle value.\n * @param {number} offsetX - Specified the offset x value.\n * @param {number} offsetY - Specified the offset y value.\n * @param {PointModel} cornerPoint - Specified the corner point value.\n * @returns {PointModel} - Returns the point model.\n */\n Drawing.prototype.getShapePoint = function (x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivotPoint = { x: 0, y: 0 };\n var transformMatrix = identityMatrix();\n rotateMatrix(transformMatrix, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 1:\n switch (cornerPoint.y) {\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y + h }));\n break;\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y + h / 2 }));\n break;\n }\n break;\n case 0:\n switch (cornerPoint.y) {\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y + h }));\n break;\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivotPoint.x, y: pivotPoint.y };\n };\n /**\n * @private\n * @param {string} endPoint - Specified the end point value.\n * @param {IElement} obj - Specified the annotaion object.\n * @param {PointModel} point - Specified the annotation points.\n * @param {PointModel} segment - Specified the annotaion segment.\n * @param {IElement} target - Specified the target element.\n * @param {string} targetPortId - Specified the target port id.\n * @param {any} currentSelector - Specified the current selector value.\n * @returns {boolean} - Returns true or false.\n */\n // eslint-disable-next-line\n Drawing.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId, currentSelector) {\n var selectorModel;\n var connector;\n var node;\n var tx;\n var segmentPoint;\n var ty;\n var index;\n // eslint-disable-next-line\n var checkBezierThumb = false;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.annotations[0];\n }\n else {\n connector = obj;\n }\n point = { x: point.x / this.pdfViewer.viewerBase.getZoomFactor(), y: point.y / this.pdfViewer.viewerBase.getZoomFactor() };\n if (this.checkBoundaryConstraints(undefined, undefined, connector.pageIndex, connector.wrapper.bounds)) {\n if (connector.shapeAnnotationType === 'Distance') {\n var leader = isLeader(connector, endPoint);\n if (endPoint === 'Leader0') {\n if (this.pdfViewer.viewerBase.tool instanceof LineTool) {\n connector.vertexPoints[0].x = point.x;\n connector.vertexPoints[0].y = point.y;\n }\n else {\n tx = point.x - leader.point.x;\n ty = point.y - leader.point.y;\n connector.vertexPoints[0].x += tx;\n connector.vertexPoints[0].y += ty;\n }\n }\n else if (endPoint === 'Leader1') {\n var length_2 = connector.vertexPoints.length - 1;\n if (this.pdfViewer.viewerBase.tool instanceof LineTool) {\n connector.vertexPoints[parseInt(length_2.toString(), 10)].x = point.x;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].y = point.y;\n }\n else {\n tx = point.x - leader.point.x;\n ty = point.y - leader.point.y;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].y += ty;\n }\n }\n else {\n // eslint-disable-next-line\n var angle = Point.findAngle(connector.sourcePoint, connector.targetPoint);\n // eslint-disable-next-line\n var center = obj.wrapper.children[0].bounds.center;\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, center.x, center.y);\n // eslint-disable-next-line\n var rotatedPoint = transformPointByMatrix(matrix, { x: point.x, y: point.y });\n if (endPoint.split('_')[0] === 'ConnectorSegmentPoint') {\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, center.x, center.y);\n // eslint-disable-next-line\n var rotatedPoint1 = transformPointByMatrix(matrix, connector.vertexPoints[0]);\n // eslint-disable-next-line\n var rotatedPoint2 = transformPointByMatrix(matrix, connector.vertexPoints[connector.vertexPoints.length - 1]);\n ty = rotatedPoint.y - rotatedPoint1.y;\n if (connector.leaderHeight === 0 && connector.leaderHeight != null) {\n connector.leaderHeight = this.pdfViewer.distanceSettings.leaderLength;\n }\n else {\n connector.leaderHeight += ty;\n rotatedPoint1.y += ty;\n rotatedPoint2.y += ty;\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n connector.vertexPoints[0] = transformPointByMatrix(matrix, rotatedPoint1);\n connector.vertexPoints[connector.vertexPoints.length - 1] = transformPointByMatrix(matrix, rotatedPoint2);\n }\n }\n }\n }\n else if (endPoint.split('_')[0] === 'ConnectorSegmentPoint') {\n var i = Number(endPoint.split('_')[1]);\n tx = point.x - connector.vertexPoints[parseInt(i.toString(), 10)].x;\n ty = point.y - connector.vertexPoints[parseInt(i.toString(), 10)].y;\n connector.vertexPoints[parseInt(i.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(i.toString(), 10)].y += ty;\n if (connector.vertexPoints.length > 2 && obj.measureType !== 'Perimeter') {\n if (parseFloat(endPoint.split('_')[1]) === 0) {\n connector.vertexPoints[connector.vertexPoints.length - 1].x += tx;\n connector.vertexPoints[connector.vertexPoints.length - 1].y += ty;\n }\n else if (parseFloat(endPoint.split('_')[1]) === connector.vertexPoints.length - 1) {\n connector.vertexPoints[0].x += tx;\n connector.vertexPoints[0].y += ty;\n }\n }\n }\n this.nodePropertyChange(connector, { vertexPoints: connector.vertexPoints });\n this.renderSelector(connector.pageIndex, currentSelector);\n }\n this.pdfViewer.renderDrawing();\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the y value.\n * @param {number} i - Specified the index value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.dragSourceEnd = function (obj, tx, ty, i) {\n // eslint-disable-next-line\n var connector = this.pdfViewer.nameTable[obj.id];\n connector.vertexPoints[parseInt(i.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(i.toString(), 10)].y += ty;\n this.pdfViewer.renderDrawing();\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the connector object.\n * @param {PointModel[]} points - Specified the points value.\n * @returns {void}\n */\n Drawing.prototype.updateConnector = function (connector, points) {\n var srcDecorator;\n var tarDecorator;\n var targetPoint;\n connector.vertexPoints = points;\n updateSegmentElement(connector, points, connector.wrapper.children[0]);\n var srcPoint = connector.sourcePoint;\n var anglePoint = connector.vertexPoints;\n // points = this.clipDecorators(connector, points);\n var element = connector.wrapper.children[0];\n element.canMeasurePath = true;\n for (var i = 0; i < connector.wrapper.children.length; i++) {\n element = connector.wrapper.children[parseInt(i.toString(), 10)];\n if (connector.shapeAnnotationType !== 'Polygon') {\n if (element.id.indexOf('srcDec') > -1) {\n updateDecoratorElement(connector, element, points[0], anglePoint[1], true);\n }\n targetPoint = connector.targetPoint;\n if (element.id.indexOf('tarDec') > -1) {\n updateDecoratorElement(connector, element, points[points.length - 1], anglePoint[anglePoint.length - 2], false);\n }\n }\n }\n };\n /**\n * @private\n * @returns {Object} - Returns the object.\n */\n Drawing.prototype.copy = function () {\n if (((this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen) || this.pdfViewer.annotationModule) && (this.pdfViewer.designerMode || this.pdfViewer.enableAnnotation) && (this.pdfViewer.selectedItems.formFields.length !== 0 || this.pdfViewer.selectedItems.annotations.length !== 0)) {\n this.pdfViewer.clipboardData.pasteIndex = 1;\n this.pdfViewer.clipboardData.clipObject = this.copyObjects();\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isPropertyDialogOpen || isSearchboxDialogOpen) {\n this.pdfViewer.clipboardData.clipObject = {};\n }\n return this.pdfViewer.clipboardData.clipObject;\n };\n /**\n * @private\n * @returns {Object[]} - Returns the object array.\n */\n Drawing.prototype.copyObjects = function () {\n var selectedItems = [];\n var obj = [];\n this.pdfViewer.clipboardData.childTable = {};\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n selectedItems = this.pdfViewer.selectedItems.annotations;\n for (var j = 0; j < selectedItems.length; j++) {\n var element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n obj.push(element);\n }\n }\n if (this.pdfViewer.selectedItems.formFields.length > 0) {\n selectedItems = this.pdfViewer.selectedItems.formFields;\n for (var j = 0; j < selectedItems.length; j++) {\n var element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n obj.push(element);\n }\n }\n if (this.pdfViewer.clipboardData.pasteIndex === 0) {\n for (var _i = 0, selectedItems_1 = selectedItems; _i < selectedItems_1.length; _i++) {\n var item = selectedItems_1[_i];\n // eslint-disable-next-line\n if (this.pdfViewer.nameTable[item.id]) {\n if (!item.formFieldAnnotationType) {\n if (item.annotName)\n this.pdfViewer.annotationModule.deleteAnnotationById(item.annotName);\n else\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n else {\n this.pdfViewer.clearSelection(item.pageIndex);\n this.pdfViewer.formDesignerModule.deleteFormField(item.id);\n }\n }\n }\n //this.endGroupAction();\n }\n this.sortByZIndex(obj, 'zIndex');\n return obj;\n };\n Drawing.prototype.getNewObject = function (obj) {\n var newObj;\n var newobjs = [];\n this.pdfViewer.clipboardData.pasteIndex = 1;\n for (var i = 0; i < obj.length; i++) {\n newObj = cloneObject(obj[parseInt(i.toString(), 10)]);\n newobjs.push(newObj);\n }\n return newobjs;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel[]} obj - Specified the annotation object.\n * @param {number} index - Specified the annotation index.\n * @returns {void}\n */\n Drawing.prototype.paste = function (obj, index) {\n var zoomfactor = this.pdfViewer.viewerBase.getZoomFactor();\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var fieldId;\n if (obj || this.pdfViewer.clipboardData.clipObject) {\n var copiedItems = obj ? this.getNewObject(obj) :\n this.pdfViewer.clipboardData.clipObject;\n if (copiedItems) {\n var objectTable = {};\n if (this.pdfViewer.clipboardData.pasteIndex !== 0) {\n this.pdfViewer.clearSelection(index);\n }\n for (var _i = 0, copiedItems_1 = copiedItems; _i < copiedItems_1.length; _i++) {\n var copy = copiedItems_1[_i];\n fieldId = copy.id;\n copy.id += randomId();\n var fieldName = this.splitFormFieldName(copy);\n var maxNumber = 0; // this.pdfViewer.formFieldCollection.length;\n if (this.pdfViewer.formDesigner) {\n this.pdfViewer.formDesigner.setFormFieldIndex();\n maxNumber = this.pdfViewer.formDesigner.formFieldIndex;\n copy.name = fieldName + maxNumber;\n }\n // eslint-disable-next-line\n objectTable[copy.id] = copy;\n }\n for (var j = 0; j < copiedItems.length; j++) {\n var copy = copiedItems[parseInt(j.toString(), 10)];\n var pageDiv = this.pdfViewer.viewerBase.getElement('_pageDiv_' + copy.pageIndex);\n // eslint-disable-next-line\n var events = event;\n if (events && !events.clientX && !events.clientY) {\n events = { clientX: this.pdfViewer.viewerBase.mouseLeft, clientY: this.pdfViewer.viewerBase.mouseTop };\n }\n if (isBlazor()) {\n events = this.pdfViewer.viewerBase.mouseDownEvent;\n }\n if (isLineShapes(copy)) {\n this.calculateCopyPosition(copy, pageDiv, events);\n }\n else {\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n copy.bounds.x = (events.clientX - pageCurrentRect.left) / zoomfactor;\n copy.bounds.y = (events.clientY - pageCurrentRect.top) / zoomfactor;\n }\n }\n var newNode = cloneObject(copy);\n if (this.pdfViewer.viewerBase.contextMenuModule.previousAction !== 'Cut') {\n newNode.id += randomId();\n if (this.pdfViewer.annotationModule && newNode.shapeAnnotationType !== 'HandWrittenSignature') {\n newNode.annotName = newNode.id;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationCollection(newNode, copiedItems[0], false);\n }\n if (newNode.shapeAnnotationType === 'SignatureText' || newNode.shapeAnnotationType === 'HandWrittenSignature' || newNode.shapeAnnotationType === 'SignatureImage') {\n this.pdfViewer.viewerBase.signatureModule.storeSignatureData(newNode.pageIndex, newNode);\n }\n if (!newNode.formFieldAnnotationType) {\n this.pdfViewer.annotation.addAction(this.pdfViewer.viewerBase.getActivePage(false), null, newNode, 'Addition', '', newNode, newNode);\n }\n }\n else {\n if (this.pdfViewer.annotationModule) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationCollection(newNode, copiedItems[0], true);\n }\n if (newNode.shapeAnnotationType === 'SignatureText' || newNode.shapeAnnotationType === 'HandWrittenSignature' || newNode.shapeAnnotationType === 'SignatureImage') {\n this.pdfViewer.viewerBase.signatureModule.storeSignatureData(newNode.pageIndex, newNode);\n }\n }\n var addedAnnot = this.add(newNode);\n if (this.pdfViewer.formDesigner && addedAnnot.formFieldAnnotationType) {\n this.pdfViewer.annotation.addAction(this.pdfViewer.viewerBase.getActivePage(true), null, addedAnnot, 'Addition', '', addedAnnot, addedAnnot);\n }\n if ((newNode.shapeAnnotationType === 'FreeText' || newNode.enableShapeLabel) && addedAnnot) {\n this.nodePropertyChange(addedAnnot, {});\n }\n if (addedAnnot.formFieldAnnotationType && addedAnnot.pageIndex === index) {\n this.pdfViewer.formFieldCollection.push(addedAnnot);\n // eslint-disable-next-line max-len\n var formField = {\n id: addedAnnot.id, name: addedAnnot.name, value: addedAnnot.value, type: addedAnnot.formFieldAnnotationType,\n isReadOnly: addedAnnot.isReadonly, fontFamily: addedAnnot.fontFamily,\n // eslint-disable-next-line max-len\n fontSize: addedAnnot.fontSize, fontStyle: addedAnnot.fontStyle, color: addedAnnot.color, backgroundColor: addedAnnot.backgroundColor,\n // eslint-disable-next-line max-len\n alignment: addedAnnot.alignment, visibility: addedAnnot.visibility, maxLength: addedAnnot.maxLength, isRequired: addedAnnot.isRequired,\n // eslint-disable-next-line max-len\n isPrint: addedAnnot.isPrint, isSelected: addedAnnot.isSelected, isChecked: addedAnnot.isChecked, tooltip: addedAnnot.tooltip, bounds: addedAnnot.bounds, thickness: addedAnnot.thickness, borderColor: addedAnnot.borderColor, signatureIndicatorSettings: addedAnnot.signatureIndicatorSettings\n };\n if (addedAnnot.options && addedAnnot.options.length > 0) {\n formField.options = addedAnnot.options;\n }\n this.pdfViewer.formFieldCollections.push(formField);\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesigner.drawHTMLContent(addedAnnot.formFieldAnnotationType, addedAnnot.wrapper.children[0], addedAnnot, addedAnnot.pageIndex, this.pdfViewer, fieldId);\n }\n this.pdfViewer.select([newNode.id], this.pdfViewer.annotationSelectorSettings);\n if (!addedAnnot.formFieldAnnotationType) {\n this.pdfViewer.annotationModule.triggerAnnotationAddEvent(newNode);\n }\n ;\n }\n }\n this.pdfViewer.renderDrawing(undefined, index);\n this.pdfViewer.clipboardData.pasteIndex++;\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n Drawing.prototype.splitFormFieldName = function (obj) {\n // eslint-disable-next-line\n var field = null;\n if (obj) {\n switch (obj.formFieldAnnotationType) {\n case 'Textbox':\n field = \"Textbox\";\n break;\n case 'PasswordField':\n field = \"Password\";\n break;\n case 'Checkbox':\n field = \"Check Box\";\n break;\n case 'RadioButton':\n field = \"Radio Button\";\n break;\n case 'DropdownList':\n field = \"Dropdown\";\n break;\n case 'ListBox':\n field = \"List Box\";\n break;\n case 'SignatureField':\n field = \"Signature\";\n break;\n case 'InitialField':\n field = \"Initial\";\n break;\n }\n }\n return field;\n };\n Drawing.prototype.calculateCopyPosition = function (copy, pageDiv, events) {\n var zoomfactor = this.pdfViewer.viewerBase.getZoomFactor();\n var x1;\n var y1;\n var x2;\n var y2;\n for (var i = 0; i < copy.vertexPoints.length; i++) {\n if (pageDiv) {\n if (i === 0) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n x1 = copy.vertexPoints[parseInt(i.toString(), 10)].x;\n y1 = copy.vertexPoints[parseInt(i.toString(), 10)].y;\n copy.vertexPoints[parseInt(i.toString(), 10)].x = (events.clientX - pageCurrentRect.left) / zoomfactor;\n copy.vertexPoints[parseInt(i.toString(), 10)].y = (events.clientY - pageCurrentRect.top) / zoomfactor;\n x2 = copy.vertexPoints[parseInt(i.toString(), 10)].x;\n y2 = copy.vertexPoints[parseInt(i.toString(), 10)].y;\n }\n else {\n copy.vertexPoints[parseInt(i.toString(), 10)].x += x2 - x1;\n copy.vertexPoints[parseInt(i.toString(), 10)].y += y2 - y1;\n }\n }\n }\n };\n /**\n * @private\n * @param {number} index - Specified the annotaion index.\n * @returns {void}\n */\n Drawing.prototype.cut = function (index) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.removedAnnotationCollection = [];\n }\n if (((this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen) || this.pdfViewer.selectedItems.annotations.length > 0) && (this.pdfViewer.designerMode || this.pdfViewer.selectedItems.annotations.length > 0) && (this.pdfViewer.selectedItems.formFields.length !== 0 || this.pdfViewer.selectedItems.annotations.length !== 0)) {\n this.pdfViewer.clipboardData.pasteIndex = 0;\n this.pdfViewer.clipboardData.clipObject = this.copyObjects();\n this.pdfViewer.renderDrawing(undefined, index);\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isPropertyDialogOpen || isSearchboxDialogOpen) {\n this.pdfViewer.clipboardData.clipObject = {};\n }\n };\n /**\n * @private\n * @param {Object[]} nodeArray - Specified the node array.\n * @param {string} sortID - Specified the sort id.\n * @returns {Object[]} - Returns the node array.\n */\n Drawing.prototype.sortByZIndex = function (nodeArray, sortID) {\n var id = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n // eslint-disable-next-line\n return a[id] - b[id];\n });\n return nodeArray;\n };\n return Drawing;\n}());\nexport { Drawing };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/* eslint-disable */\n// eslint-disable-next-line max-len\nimport { Component, NotifyPropertyChanges, ChildProperty, L10n, Collection, Complex, isBlazor, Browser } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, Property, Event } from '@syncfusion/ej2-base';\nimport { PdfViewerBase } from './index';\n// eslint-disable-next-line max-len\nimport { FontStyle, AnnotationResizerLocation, CursorType, ContextMenuItem, DynamicStampItem, SignStampItem, StandardBusinessStampItem, AnnotationDataFormat, DisplayMode, FormFieldDataFormat } from './base/types';\nimport { FormFields } from './index';\nimport { PdfAnnotationBase, PdfFormFieldBase } from './drawing/pdf-annotation';\nimport { Drawing } from './drawing/drawing';\nimport { Selector } from './drawing/selector';\nimport { renderAdornerLayer } from './drawing/dom-util';\n/**\n * The `ToolbarSettings` module is used to provide the toolbar settings of PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * toolbarItems: [\n * \"OpenOption\",\n * \"UndoRedoTool\",\n * \"PageNavigationTool\",\n * \"MagnificationTool\",\n * \"PanTool\",\n * \"SelectionTool\",\n * \"CommentTool\",\n * \"SubmitForm\",\n * \"AnnotationEditTool\",\n * \"FormDesignerEditTool\",\n * \"FreeTextAnnotationOption\",\n * \"InkAnnotationOption\",\n * \"ShapeAnnotationOption\",\n * \"StampAnnotation\",\n * \"SignatureOption\",\n * \"SearchOption\",\n * \"PrintOption\",\n * \"DownloadOption\"\n * ],\n * annotationToolbarItems: [\n * \"HighlightTool\",\n * \"UnderlineTool\",\n * \"StrikethroughTool\",\n * \"ColorEditTool\",\n * \"OpacityEditTool\",\n * \"AnnotationDeleteTool\",\n * \"StampAnnotationTool\",\n * \"HandWrittenSignatureTool\",\n * \"InkAnnotationTool\",\n * \"ShapeTool\",\n * \"CalibrateTool\",\n * \"StrokeColorEditTool\",\n * \"ThicknessEditTool\",\n * \"FreeTextAnnotationTool\",\n * \"FontFamilyAnnotationTool\",\n * \"FontSizeAnnotationTool\",\n * \"FontStylesAnnotationTool\",\n * \"FontAlignAnnotationTool\",\n * \"FontColorAnnotationTool\",\n * \"CommentPanelTool\"\n * ],\n * formDesignerToolbarItems: [\n * \"TextboxTool\",\n * \"PasswordTool\",\n * \"CheckBoxTool\",\n * \"RadioButtonTool\",\n * \"DropdownTool\",\n * \"ListboxTool\",\n * \"DrawSignatureTool\",\n * \"DeleteTool\"\n * ]\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ToolbarSettings = /** @class */ (function (_super) {\n __extends(ToolbarSettings, _super);\n function ToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"toolbarItems\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"annotationToolbarItems\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"formDesignerToolbarItems\", void 0);\n return ToolbarSettings;\n}(ChildProperty));\nexport { ToolbarSettings };\n/**\n * The `AjaxRequestSettings` module is used to set the ajax Request Headers of PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // HTTP header \"X-Custom-Header\": \"Custom header value\" // Custom HTTP header\n * viewer.ajaxRequestSettings = {\n * ajaxHeaders: [\n * {\n * headerName : \"Authorization\",\n * headerValue : \"Bearer\"\n * }\n * ],\n * withCredentials: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AjaxRequestSettings = /** @class */ (function (_super) {\n __extends(AjaxRequestSettings, _super);\n function AjaxRequestSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], AjaxRequestSettings.prototype, \"ajaxHeaders\", void 0);\n __decorate([\n Property(false)\n ], AjaxRequestSettings.prototype, \"withCredentials\", void 0);\n return AjaxRequestSettings;\n}(ChildProperty));\nexport { AjaxRequestSettings };\n/**\n * The `CustomStamp` module is used to provide the custom stamp added in stamp menu of the PDF Viewer toolbar.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Add your custom stamp image source as base64 image.\n * viewer.customStamp = [\n * {\n * customStampName: 'Sample',\n * customStampImageSource: \"data:image/png;base64, Syncfusion pdf viewer\"\n * }\n * ];\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CustomStamp = /** @class */ (function (_super) {\n __extends(CustomStamp, _super);\n function CustomStamp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CustomStamp.prototype, \"customStampName\", void 0);\n __decorate([\n Property('')\n ], CustomStamp.prototype, \"customStampImageSource\", void 0);\n return CustomStamp;\n}(ChildProperty));\nexport { CustomStamp };\n/**\n * The `AnnotationToolbarSettings` module is used to provide the annotation toolbar settings of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * annotationToolbarItems: [\n * \"HighlightTool\",\n * \"UnderlineTool\",\n * \"StrikethroughTool\",\n * \"ColorEditTool\",\n * \"OpacityEditTool\",\n * \"AnnotationDeleteTool\",\n * \"StampAnnotationTool\",\n * \"HandWrittenSignatureTool\",\n * \"InkAnnotationTool\",\n * \"ShapeTool\",\n * \"CalibrateTool\",\n * \"StrokeColorEditTool\",\n * \"ThicknessEditTool\",\n * \"FreeTextAnnotationTool\",\n * \"FontFamilyAnnotationTool\",\n * \"FontSizeAnnotationTool\",\n * \"FontStylesAnnotationTool\",\n * \"FontAlignAnnotationTool\",\n * \"FontColorAnnotationTool\",\n * \"CommentPanelTool\"\n * ],\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationToolbarSettings = /** @class */ (function (_super) {\n __extends(AnnotationToolbarSettings, _super);\n function AnnotationToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], AnnotationToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], AnnotationToolbarSettings.prototype, \"annotationToolbarItem\", void 0);\n return AnnotationToolbarSettings;\n}(ChildProperty));\nexport { AnnotationToolbarSettings };\n/**\n * The `FormDesignerToolbarSettings` module is used to provide the Form designer toolbar settings of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the form field tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * formDesignerToolbarItems: [\n * \"TextboxTool\",\n * \"PasswordTool\",\n * \"CheckBoxTool\",\n * \"RadioButtonTool\",\n * \"DropdownTool\",\n * \"ListboxTool\",\n * \"DrawSignatureTool\",\n * \"DeleteTool\"\n * ]\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar FormDesignerToolbarSettings = /** @class */ (function (_super) {\n __extends(FormDesignerToolbarSettings, _super);\n function FormDesignerToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], FormDesignerToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], FormDesignerToolbarSettings.prototype, \"formDesignerToolbarItem\", void 0);\n return FormDesignerToolbarSettings;\n}(ChildProperty));\nexport { FormDesignerToolbarSettings };\n/**\n * The `SignatureFieldSettings` module is used to set the properties of signature field in PDF Viewer\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature field settings.\n * viewer.signatureFieldSettings = {\n * name: \"\",\n * isReadOnly: true,\n * visibility: \"visible\",\n * isRequired: true,\n * isPrint: false,\n * tooltip: \"\",\n * thickness: 1,\n * signatureIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: \"orange\",\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: \"black\"\n * },\n * signatureDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureFieldSettings = /** @class */ (function (_super) {\n __extends(SignatureFieldSettings, _super);\n function SignatureFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], SignatureFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], SignatureFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], SignatureFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], SignatureFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], SignatureFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], SignatureFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property()\n ], SignatureFieldSettings.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property()\n ], SignatureFieldSettings.prototype, \"signatureIndicatorSettings\", void 0);\n return SignatureFieldSettings;\n}(ChildProperty));\nexport { SignatureFieldSettings };\n/**\n * The `InitialFieldSettings` module is used to set the properties of initial field in PDF Viewer\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Changes the initial field settings.\n * viewer.initialFieldSettings = {\n * name: \"\",\n * isReadOnly: true,\n * visibility: \"visible\",\n * isRequired: true,\n * isPrint: true,\n * tooltip: \"\",\n * thickness: 1,\n * initialIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: \"orange\",\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: \"black\"\n * },\n * initialDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar InitialFieldSettings = /** @class */ (function (_super) {\n __extends(InitialFieldSettings, _super);\n function InitialFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], InitialFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], InitialFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], InitialFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], InitialFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], InitialFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], InitialFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isInitialField\", void 0);\n __decorate([\n Property()\n ], InitialFieldSettings.prototype, \"initialDialogSettings\", void 0);\n __decorate([\n Property()\n ], InitialFieldSettings.prototype, \"initialIndicatorSettings\", void 0);\n return InitialFieldSettings;\n}(ChildProperty));\nexport { InitialFieldSettings };\n/**\n * The `SignatureIndicatorSettings` module is used to provide the properties of signature Indicator in the signature field.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature indicator settings.\n * viewer.signatureFieldSettings = {\n * signatureIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: 'orange',\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: 'black'\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureIndicatorSettings = /** @class */ (function (_super) {\n __extends(SignatureIndicatorSettings, _super);\n function SignatureIndicatorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], SignatureIndicatorSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('orange')\n ], SignatureIndicatorSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(19)\n ], SignatureIndicatorSettings.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], SignatureIndicatorSettings.prototype, \"height\", void 0);\n __decorate([\n Property(10)\n ], SignatureIndicatorSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(null)\n ], SignatureIndicatorSettings.prototype, \"text\", void 0);\n __decorate([\n Property('black')\n ], SignatureIndicatorSettings.prototype, \"color\", void 0);\n return SignatureIndicatorSettings;\n}(ChildProperty));\nexport { SignatureIndicatorSettings };\n/**\n * The `SignatureDialogSettings` module is used to customize the signature dialog box.\n *\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature dialog settings.\n * viewer.signatureDialogSettings = {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureDialogSettings = /** @class */ (function (_super) {\n __extends(SignatureDialogSettings, _super);\n function SignatureDialogSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload)\n ], SignatureDialogSettings.prototype, \"displayMode\", void 0);\n __decorate([\n Property(false)\n ], SignatureDialogSettings.prototype, \"hideSaveSignature\", void 0);\n return SignatureDialogSettings;\n}(ChildProperty));\nexport { SignatureDialogSettings };\n/**\n * The `ServerActionSettings` module is used to provide the server action methods of PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the server action settings.\n * viewer.serverActionSettings = {\n * load: \"Load\",\n * renderPages: \"RenderPdfPages\",\n * unload: \"Unload\",\n * download: \"Download\",\n * renderThumbnail: \"RenderThumbnailImages\",\n * print: \"PrintImages\",\n * renderComments: \"RenderAnnotationComments\",\n * importAnnotations: \"ImportAnnotations\",\n * exportAnnotations: \"ExportAnnotations\",\n * importFormFields: \"ImportFormFields\",\n * exportFormFields: \"ExportFormFields\",\n * renderTexts: \"RenderPdfTexts\"\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ServerActionSettings = /** @class */ (function (_super) {\n __extends(ServerActionSettings, _super);\n function ServerActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Load')\n ], ServerActionSettings.prototype, \"load\", void 0);\n __decorate([\n Property('Unload')\n ], ServerActionSettings.prototype, \"unload\", void 0);\n __decorate([\n Property('RenderPdfPages')\n ], ServerActionSettings.prototype, \"renderPages\", void 0);\n __decorate([\n Property('RenderPdfPages')\n ], ServerActionSettings.prototype, \"print\", void 0);\n __decorate([\n Property('Download')\n ], ServerActionSettings.prototype, \"download\", void 0);\n __decorate([\n Property('RenderThumbnailImages')\n ], ServerActionSettings.prototype, \"renderThumbnail\", void 0);\n __decorate([\n Property('RenderAnnotationComments')\n ], ServerActionSettings.prototype, \"renderComments\", void 0);\n __decorate([\n Property('ImportAnnotations')\n ], ServerActionSettings.prototype, \"importAnnotations\", void 0);\n __decorate([\n Property('ExportAnnotations')\n ], ServerActionSettings.prototype, \"exportAnnotations\", void 0);\n __decorate([\n Property('ImportFormFields')\n ], ServerActionSettings.prototype, \"importFormFields\", void 0);\n __decorate([\n Property('ExportFormFields')\n ], ServerActionSettings.prototype, \"exportFormFields\", void 0);\n __decorate([\n Property('RenderPdfTexts')\n ], ServerActionSettings.prototype, \"renderTexts\", void 0);\n return ServerActionSettings;\n}(ChildProperty));\nexport { ServerActionSettings };\n/**\n * The `StrikethroughSettings` module is used to provide the properties to Strikethrough annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the strike through annotation settings.\n * viewer.strikethroughSettings = {\n * opacity: 1,\n * color: '#ff0000',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StrikethroughSettings = /** @class */ (function (_super) {\n __extends(StrikethroughSettings, _super);\n function StrikethroughSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], StrikethroughSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], StrikethroughSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], StrikethroughSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], StrikethroughSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], StrikethroughSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], StrikethroughSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], StrikethroughSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StrikethroughSettings.prototype, \"isPrint\", void 0);\n return StrikethroughSettings;\n}(ChildProperty));\nexport { StrikethroughSettings };\n/**\n * The `UnderlineSettings` module is used to provide the properties to Underline annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the underline annotation settings.\n * viewer.underlineSettings = {\n * opacity: 1,\n * color: '#9c2592',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar UnderlineSettings = /** @class */ (function (_super) {\n __extends(UnderlineSettings, _super);\n function UnderlineSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], UnderlineSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], UnderlineSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#00ff00')\n ], UnderlineSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], UnderlineSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], UnderlineSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], UnderlineSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], UnderlineSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], UnderlineSettings.prototype, \"isPrint\", void 0);\n return UnderlineSettings;\n}(ChildProperty));\nexport { UnderlineSettings };\n/**\n * The `HighlightSettings` module is used to provide the properties to Highlight annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the highlight annotation settings.\n * viewer.highlightSettings = {\n * opacity: 1,\n * color: '#ff0000',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar HighlightSettings = /** @class */ (function (_super) {\n __extends(HighlightSettings, _super);\n function HighlightSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], HighlightSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], HighlightSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffff00')\n ], HighlightSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], HighlightSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], HighlightSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], HighlightSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], HighlightSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], HighlightSettings.prototype, \"isPrint\", void 0);\n return HighlightSettings;\n}(ChildProperty));\nexport { HighlightSettings };\n/**\n * The `LineSettings` module is used to provide the properties to line annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the line annotation settings.\n * viewer.lineSettings = {\n * opacity: 1,\n * color: '#9c2592',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar LineSettings = /** @class */ (function (_super) {\n __extends(LineSettings, _super);\n function LineSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], LineSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], LineSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], LineSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], LineSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], LineSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], LineSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], LineSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], LineSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], LineSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], LineSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], LineSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], LineSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], LineSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], LineSettings.prototype, \"isPrint\", void 0);\n return LineSettings;\n}(ChildProperty));\nexport { LineSettings };\n/**\n * The `ArrowSettings` module is used to provide the properties to arrow annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the arrow annotation settings.\n * viewer.arrowSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Closed',\n * lineHeadEndStyle: 'Closed',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ArrowSettings = /** @class */ (function (_super) {\n __extends(ArrowSettings, _super);\n function ArrowSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], ArrowSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], ArrowSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], ArrowSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], ArrowSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], ArrowSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], ArrowSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], ArrowSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], ArrowSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], ArrowSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], ArrowSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], ArrowSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], ArrowSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], ArrowSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], ArrowSettings.prototype, \"isPrint\", void 0);\n return ArrowSettings;\n}(ChildProperty));\nexport { ArrowSettings };\n/**\n * The `RectangleSettings` module is used to provide the properties to rectangle annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the rectangle annotation settings.\n * viewer.rectangleSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RectangleSettings = /** @class */ (function (_super) {\n __extends(RectangleSettings, _super);\n function RectangleSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], RectangleSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], RectangleSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], RectangleSettings.prototype, \"width\", void 0);\n __decorate([\n Property(50)\n ], RectangleSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], RectangleSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], RectangleSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], RectangleSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], RectangleSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], RectangleSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], RectangleSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], RectangleSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], RectangleSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], RectangleSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], RectangleSettings.prototype, \"isPrint\", void 0);\n return RectangleSettings;\n}(ChildProperty));\nexport { RectangleSettings };\n/**\n * The `CircleSettings` module is used to provide the properties to circle annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the circle annotation settings.\n * viewer.circleSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CircleSettings = /** @class */ (function (_super) {\n __extends(CircleSettings, _super);\n function CircleSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], CircleSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], CircleSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], CircleSettings.prototype, \"width\", void 0);\n __decorate([\n Property(100)\n ], CircleSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], CircleSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], CircleSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], CircleSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], CircleSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], CircleSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], CircleSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], CircleSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], CircleSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], CircleSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], CircleSettings.prototype, \"isPrint\", void 0);\n return CircleSettings;\n}(ChildProperty));\nexport { CircleSettings };\n/**\n * The `ShapeLabelSettings` module is used to provide the properties to rectangle annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the shape label settings.\n * viewer.shapeLabelSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * borderColor: '#ff0000',\n * fontColor: '#000',\n * fontSize: 16,\n * labelHeight: 24.6,\n * labelMaxWidth: 151,\n * labelContent: 'Label'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ShapeLabelSettings = /** @class */ (function (_super) {\n __extends(ShapeLabelSettings, _super);\n function ShapeLabelSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], ShapeLabelSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], ShapeLabelSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#000')\n ], ShapeLabelSettings.prototype, \"fontColor\", void 0);\n __decorate([\n Property(16)\n ], ShapeLabelSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], ShapeLabelSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('Label')\n ], ShapeLabelSettings.prototype, \"labelContent\", void 0);\n __decorate([\n Property('')\n ], ShapeLabelSettings.prototype, \"notes\", void 0);\n return ShapeLabelSettings;\n}(ChildProperty));\nexport { ShapeLabelSettings };\n/**\n * The `PolygonSettings` module is used to provide the properties to polygon annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the polygon annotation settings.\n * viewer.polygonSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PolygonSettings = /** @class */ (function (_super) {\n __extends(PolygonSettings, _super);\n function PolygonSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], PolygonSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], PolygonSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], PolygonSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PolygonSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], PolygonSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], PolygonSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], PolygonSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], PolygonSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PolygonSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], PolygonSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], PolygonSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PolygonSettings.prototype, \"isPrint\", void 0);\n return PolygonSettings;\n}(ChildProperty));\nexport { PolygonSettings };\n/**\n * The `stampSettings` module is used to provide the properties to stamp annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the stamp annotation settings.\n * viewer.stampSettings = {\n * opacity: 1,\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 5,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * dynamicStamps: [\n * DynamicStampItem.Revised,\n * DynamicStampItem.Reviewed,\n * DynamicStampItem.Received,\n * DynamicStampItem.Confidential,\n * DynamicStampItem.Approved,\n * DynamicStampItem.NotApproved\n * ],\n * signStamps: [\n * SignStampItem.Witness,\n * SignStampItem.InitialHere,\n * SignStampItem.SignHere,\n * SignStampItem.Accepted,\n * SignStampItem.Rejected\n * ],\n * standardBusinessStamps: [\n * StandardBusinessStampItem.Approved,\n * StandardBusinessStampItem.NotApproved,\n * StandardBusinessStampItem.Draft,\n * StandardBusinessStampItem.Final,\n * StandardBusinessStampItem.Completed,\n * StandardBusinessStampItem.Confidential,\n * StandardBusinessStampItem.ForPublicRelease,\n * StandardBusinessStampItem.NotForPublicRelease,\n * StandardBusinessStampItem.ForComment,\n * StandardBusinessStampItem.Void,\n * StandardBusinessStampItem.PreliminaryResults,\n * StandardBusinessStampItem.InformationOnly\n * ],\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StampSettings = /** @class */ (function (_super) {\n __extends(StampSettings, _super);\n function StampSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], StampSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], StampSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(150)\n ], StampSettings.prototype, \"width\", void 0);\n __decorate([\n Property(50)\n ], StampSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], StampSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('Guest')\n ], StampSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], StampSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], StampSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], StampSettings.prototype, \"customData\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"dynamicStamps\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"signStamps\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"standardBusinessStamps\", void 0);\n __decorate([\n Property(['None'])\n ], StampSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StampSettings.prototype, \"isPrint\", void 0);\n return StampSettings;\n}(ChildProperty));\nexport { StampSettings };\n/**\n * The `CustomStampSettings` module is used to provide the properties to customstamp annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n *\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the custom stamp annotation settings.\n * viewer.customStampSettings = {\n * opacity: 1,\n * author: 'Guest',\n * width: 0,\n * height: 0,\n * left: 0,\n * top: 0,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * enableCustomStamp: true,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CustomStampSettings = /** @class */ (function (_super) {\n __extends(CustomStampSettings, _super);\n function CustomStampSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], CustomStampSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], CustomStampSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], CustomStampSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('Guest')\n ], CustomStampSettings.prototype, \"author\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"top\", void 0);\n __decorate([\n Property(false)\n ], CustomStampSettings.prototype, \"isAddToMenu\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], CustomStampSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], CustomStampSettings.prototype, \"customStamps\", void 0);\n __decorate([\n Property(true)\n ], CustomStampSettings.prototype, \"enableCustomStamp\", void 0);\n __decorate([\n Property(['None'])\n ], CustomStampSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], CustomStampSettings.prototype, \"isPrint\", void 0);\n return CustomStampSettings;\n}(ChildProperty));\nexport { CustomStampSettings };\n/**\n * The `DistanceSettings` module is used to provide the properties to distance calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n *\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the distance annotation settings.\n * viewer.distanceSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Closed',\n * lineHeadEndStyle: 'Closed',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * leaderLength: 40,\n * resizeCursorType: CursorType.move,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar DistanceSettings = /** @class */ (function (_super) {\n __extends(DistanceSettings, _super);\n function DistanceSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], DistanceSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], DistanceSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], DistanceSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], DistanceSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], DistanceSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], DistanceSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], DistanceSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], DistanceSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], DistanceSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], DistanceSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], DistanceSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], DistanceSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(40)\n ], DistanceSettings.prototype, \"leaderLength\", void 0);\n __decorate([\n Property(CursorType.move)\n ], DistanceSettings.prototype, \"resizeCursorType\", void 0);\n __decorate([\n Property(['None'])\n ], DistanceSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], DistanceSettings.prototype, \"isPrint\", void 0);\n return DistanceSettings;\n}(ChildProperty));\nexport { DistanceSettings };\n/**\n * The `PerimeterSettings` module is used to provide the properties to perimeter calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the perimeter annotation settings.\n * viewer.perimeterSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Open',\n * lineHeadEndStyle: 'Open',\n * minHeight: 0, minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PerimeterSettings = /** @class */ (function (_super) {\n __extends(PerimeterSettings, _super);\n function PerimeterSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], PerimeterSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], PerimeterSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], PerimeterSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PerimeterSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], PerimeterSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], PerimeterSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], PerimeterSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], PerimeterSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], PerimeterSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PerimeterSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], PerimeterSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], PerimeterSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PerimeterSettings.prototype, \"isPrint\", void 0);\n return PerimeterSettings;\n}(ChildProperty));\nexport { PerimeterSettings };\n/**\n * The `AreaSettings` module is used to provide the properties to area calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the area annotation settings.\n * viewer.areaSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AreaSettings = /** @class */ (function (_super) {\n __extends(AreaSettings, _super);\n function AreaSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], AreaSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], AreaSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], AreaSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], AreaSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], AreaSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], AreaSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], AreaSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], AreaSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], AreaSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], AreaSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], AreaSettings.prototype, \"isPrint\", void 0);\n return AreaSettings;\n}(ChildProperty));\nexport { AreaSettings };\n/**\n * The `RadiusSettings` module is used to provide the properties to radius calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the radius annotation settings.\n * viewer.radiusSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RadiusSettings = /** @class */ (function (_super) {\n __extends(RadiusSettings, _super);\n function RadiusSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], RadiusSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], RadiusSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], RadiusSettings.prototype, \"width\", void 0);\n __decorate([\n Property(90)\n ], RadiusSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], RadiusSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], RadiusSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], RadiusSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], RadiusSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], RadiusSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], RadiusSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], RadiusSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], RadiusSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], RadiusSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], RadiusSettings.prototype, \"isPrint\", void 0);\n return RadiusSettings;\n}(ChildProperty));\nexport { RadiusSettings };\n/**\n * The `VolumeSettings` module is used to provide the properties to volume calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the volume annotation settings.\n * viewer.volumeSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar VolumeSettings = /** @class */ (function (_super) {\n __extends(VolumeSettings, _super);\n function VolumeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], VolumeSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], VolumeSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], VolumeSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], VolumeSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], VolumeSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], VolumeSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], VolumeSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], VolumeSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], VolumeSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], VolumeSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], VolumeSettings.prototype, \"isPrint\", void 0);\n return VolumeSettings;\n}(ChildProperty));\nexport { VolumeSettings };\n/**\n * The `Ink` module is used to provide the properties to Ink annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the ink annotation settings.\n * viewer.inkAnnotationSettings = {\n * author: 'Guest',\n * opacity: 1,\n * strokeColor: '#ff0000',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar InkAnnotationSettings = /** @class */ (function (_super) {\n __extends(InkAnnotationSettings, _super);\n function InkAnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], InkAnnotationSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"path\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], InkAnnotationSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], InkAnnotationSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(false)\n ], InkAnnotationSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('Guest')\n ], InkAnnotationSettings.prototype, \"author\", void 0);\n __decorate([\n Property(['None'])\n ], InkAnnotationSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(null)\n ], InkAnnotationSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(true)\n ], InkAnnotationSettings.prototype, \"isPrint\", void 0);\n return InkAnnotationSettings;\n}(ChildProperty));\nexport { InkAnnotationSettings };\n/**\n * The `stickyNotesSettings` module is used to provide the properties to sticky notes annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the sticky notes annotation settings.\n * viewer.stickyNotesSettings = {\n * author: 'Guest',\n * opacity: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StickyNotesSettings = /** @class */ (function (_super) {\n __extends(StickyNotesSettings, _super);\n function StickyNotesSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], StickyNotesSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], StickyNotesSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('Guest')\n ], StickyNotesSettings.prototype, \"author\", void 0);\n __decorate([\n Property(1)\n ], StickyNotesSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('')\n ], StickyNotesSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], StickyNotesSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], StickyNotesSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(['None'])\n ], StickyNotesSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StickyNotesSettings.prototype, \"isPrint\", void 0);\n return StickyNotesSettings;\n}(ChildProperty));\nexport { StickyNotesSettings };\n/**\n * The `MeasurementSettings` module is used to provide the settings to measurement annotations.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the measurement annotation settings.\n * viewer.measurementSettings = {\n * conversionUnit: 'cm',\n * displayUnit: 'cm',\n * scaleRatio: 1,\n * depth: 96\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar MeasurementSettings = /** @class */ (function (_super) {\n __extends(MeasurementSettings, _super);\n function MeasurementSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], MeasurementSettings.prototype, \"scaleRatio\", void 0);\n __decorate([\n Property('in')\n ], MeasurementSettings.prototype, \"conversionUnit\", void 0);\n __decorate([\n Property('in')\n ], MeasurementSettings.prototype, \"displayUnit\", void 0);\n __decorate([\n Property(96)\n ], MeasurementSettings.prototype, \"depth\", void 0);\n return MeasurementSettings;\n}(ChildProperty));\nexport { MeasurementSettings };\n/**\n * The `FreeTextSettings` module is used to provide the properties to free text annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the free text annotation settings.\n * viewer.freeTextSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * borderColor: '#4070FF',\n * author: 'Guest',\n * borderWidth: 1,\n * width: 151,\n * fontSize: 16,\n * height: 24.6,\n * fontColor: '#000',\n * fontFamily: 'Courier',\n * defaultText: 'Type Here',\n * textAlignment: 'Right',\n * fontStyle: FontStyle.Italic,\n * allowTextOnly: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true,\n * isReadonly: false,\n * enableAutoFit: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar FreeTextSettings = /** @class */ (function (_super) {\n __extends(FreeTextSettings, _super);\n function FreeTextSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], FreeTextSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], FreeTextSettings.prototype, \"borderColor\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"borderWidth\", void 0);\n __decorate([\n Property('solid')\n ], FreeTextSettings.prototype, \"borderStyle\", void 0);\n __decorate([\n Property('Guest')\n ], FreeTextSettings.prototype, \"author\", void 0);\n __decorate([\n Property('#ffffff00')\n ], FreeTextSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property(16)\n ], FreeTextSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(151)\n ], FreeTextSettings.prototype, \"width\", void 0);\n __decorate([\n Property(24.6)\n ], FreeTextSettings.prototype, \"height\", void 0);\n __decorate([\n Property('#000')\n ], FreeTextSettings.prototype, \"fontColor\", void 0);\n __decorate([\n Property('Helvetica')\n ], FreeTextSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('TypeHere')\n ], FreeTextSettings.prototype, \"defaultText\", void 0);\n __decorate([\n Property('None')\n ], FreeTextSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('Left')\n ], FreeTextSettings.prototype, \"textAlignment\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"allowEditTextOnly\", void 0);\n __decorate([\n Property('')\n ], FreeTextSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], FreeTextSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], FreeTextSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], FreeTextSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"enableAutoFit\", void 0);\n return FreeTextSettings;\n}(ChildProperty));\nexport { FreeTextSettings };\n/**\n * The `AnnotationSelectorSettings` module is used to provide the properties to annotation selectors.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation selector settings.\n * viewer.annotationSelectorSettings = {\n * selectionBorderColor: '',\n * resizerBorderColor: 'Circle',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationSelectorSettings = /** @class */ (function (_super) {\n __extends(AnnotationSelectorSettings, _super);\n function AnnotationSelectorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], AnnotationSelectorSettings.prototype, \"selectionBorderColor\", void 0);\n __decorate([\n Property('black')\n ], AnnotationSelectorSettings.prototype, \"resizerBorderColor\", void 0);\n __decorate([\n Property('#FF4081')\n ], AnnotationSelectorSettings.prototype, \"resizerFillColor\", void 0);\n __decorate([\n Property(8)\n ], AnnotationSelectorSettings.prototype, \"resizerSize\", void 0);\n __decorate([\n Property(1)\n ], AnnotationSelectorSettings.prototype, \"selectionBorderThickness\", void 0);\n __decorate([\n Property('Square')\n ], AnnotationSelectorSettings.prototype, \"resizerShape\", void 0);\n __decorate([\n Property('')\n ], AnnotationSelectorSettings.prototype, \"selectorLineDashArray\", void 0);\n __decorate([\n Property(AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges)\n ], AnnotationSelectorSettings.prototype, \"resizerLocation\", void 0);\n __decorate([\n Property(null)\n ], AnnotationSelectorSettings.prototype, \"resizerCursorType\", void 0);\n return AnnotationSelectorSettings;\n}(ChildProperty));\nexport { AnnotationSelectorSettings };\n/**\n * The `TextSearchColorSettings` module is used to set the settings for the color of the text search highlight.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the text search color settings.\n * viewer.textSearchColorSettings = {\n * searchHighlightColor: '#4070FF',\n * searchColor: '#FF4081'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TextSearchColorSettings = /** @class */ (function (_super) {\n __extends(TextSearchColorSettings, _super);\n function TextSearchColorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('#fdd835')\n ], TextSearchColorSettings.prototype, \"searchHighlightColor\", void 0);\n __decorate([\n Property('#8b4c12')\n ], TextSearchColorSettings.prototype, \"searchColor\", void 0);\n return TextSearchColorSettings;\n}(ChildProperty));\nexport { TextSearchColorSettings };\n/**\n * The `HandWrittenSignatureSettings` module is used to provide the properties to handwritten signature.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the hand written signature settings.\n * viewer.handWrittenSignatureSettings = {\n * signatureItem: [\n * 'Signature',\n * 'Initial'\n * ],\n * saveSignatureLimit: 1,\n * saveInitialLimit: 1,\n * opacity: 1,\n * strokeColor: '#000000',\n * width: 150,\n * height: 100,\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * signatureDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false\n * },\n * initialDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar HandWrittenSignatureSettings = /** @class */ (function (_super) {\n __extends(HandWrittenSignatureSettings, _super);\n function HandWrittenSignatureSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#000000')\n ], HandWrittenSignatureSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(150)\n ], HandWrittenSignatureSettings.prototype, \"width\", void 0);\n __decorate([\n Property(100)\n ], HandWrittenSignatureSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"saveSignatureLimit\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"saveInitialLimit\", void 0);\n __decorate([\n Property([])\n ], HandWrittenSignatureSettings.prototype, \"signatureItem\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"typeSignatureFonts\", void 0);\n __decorate([\n Property('')\n ], HandWrittenSignatureSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"initialDialogSettings\", void 0);\n return HandWrittenSignatureSettings;\n}(ChildProperty));\nexport { HandWrittenSignatureSettings };\n/**\n * The `AnnotationSettings` module is used to provide the properties to annotations.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation settings.\n * viewer.annotationSettings = {\n * author: 'Guest',\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * skipPrint: false,\n * skipDownload: false,\n * allowedInteractions: ['None']\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationSettings = /** @class */ (function (_super) {\n __extends(AnnotationSettings, _super);\n function AnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Guest')\n ], AnnotationSettings.prototype, \"author\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"skipPrint\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"skipDownload\", void 0);\n __decorate([\n Property(null)\n ], AnnotationSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], AnnotationSettings.prototype, \"allowedInteractions\", void 0);\n return AnnotationSettings;\n}(ChildProperty));\nexport { AnnotationSettings };\n/**\n * The `DocumentTextCollectionSettings` module is used to provide the properties to DocumentTextCollection.\n */\nvar DocumentTextCollectionSettings = /** @class */ (function (_super) {\n __extends(DocumentTextCollectionSettings, _super);\n function DocumentTextCollectionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"textData\", void 0);\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"pageText\", void 0);\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"pageSize\", void 0);\n return DocumentTextCollectionSettings;\n}(ChildProperty));\nexport { DocumentTextCollectionSettings };\n/**\n * The `TextDataSettings` module is used to provide the properties of text data.\n */\nvar TextDataSettings = /** @class */ (function (_super) {\n __extends(TextDataSettings, _super);\n function TextDataSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], TextDataSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property()\n ], TextDataSettings.prototype, \"text\", void 0);\n return TextDataSettings;\n}(ChildProperty));\nexport { TextDataSettings };\n/**\n * The `RectangleBounds` module is used to provide the properties of rectangle bounds.\n */\nvar RectangleBounds = /** @class */ (function (_super) {\n __extends(RectangleBounds, _super);\n function RectangleBounds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"size\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"x\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"y\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"left\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"top\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"right\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"bottom\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"isEmpty\", void 0);\n return RectangleBounds;\n}(ChildProperty));\nexport { RectangleBounds };\n/**\n * The `TileRenderingSettings` module is used to provide the tile rendering settings of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the tile rendering settings.\n * viewer.tileRenderingSettings = {\n * author: 'Guest',\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * skipPrint: false,\n * skipDownload: false,\n * allowedInteractions: ['None']\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TileRenderingSettings = /** @class */ (function (_super) {\n __extends(TileRenderingSettings, _super);\n function TileRenderingSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], TileRenderingSettings.prototype, \"enableTileRendering\", void 0);\n __decorate([\n Property(0)\n ], TileRenderingSettings.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], TileRenderingSettings.prototype, \"y\", void 0);\n return TileRenderingSettings;\n}(ChildProperty));\nexport { TileRenderingSettings };\n/**\n * The `ScrollSettings` module is used to provide the settings of the scroll of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the scroll settings.\n * viewer.scrollSettings = {\n * delayPageRequestTimeOnScroll: 150\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ScrollSettings = /** @class */ (function (_super) {\n __extends(ScrollSettings, _super);\n function ScrollSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(100)\n ], ScrollSettings.prototype, \"delayPageRequestTimeOnScroll\", void 0);\n return ScrollSettings;\n}(ChildProperty));\nexport { ScrollSettings };\n/**\n * The `FormField` is used to store the form fields of PDF document.\n */\nvar FormField = /** @class */ (function (_super) {\n __extends(FormField, _super);\n function FormField() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], FormField.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isChecked\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isSelected\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property([''])\n ], FormField.prototype, \"signatureType\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"fontName\", void 0);\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], FormField.prototype, \"bounds\", void 0);\n __decorate([\n Property('Helvetica')\n ], FormField.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], FormField.prototype, \"fontSize\", void 0);\n __decorate([\n Property('None')\n ], FormField.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], FormField.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], FormField.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], FormField.prototype, \"alignment\", void 0);\n __decorate([\n Property('visible')\n ], FormField.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], FormField.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"options\", void 0);\n __decorate([\n Property()\n ], FormField.prototype, \"signatureIndicatorSettings\", void 0);\n __decorate([\n Property(1)\n ], FormField.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], FormField.prototype, \"borderColor\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isMultiline\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"insertSpaces\", void 0);\n __decorate([\n Property(-1)\n ], FormField.prototype, \"pageIndex\", void 0);\n return FormField;\n}(ChildProperty));\nexport { FormField };\n/**\n * The `ContextMenuSettings` is used to show the context menu of PDF document.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the settings of the context menu option.\n * viewer.contextMenuOption = \"RightClick\";\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ContextMenuSettings = /** @class */ (function (_super) {\n __extends(ContextMenuSettings, _super);\n function ContextMenuSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('RightClick')\n ], ContextMenuSettings.prototype, \"contextMenuAction\", void 0);\n __decorate([\n Property([])\n ], ContextMenuSettings.prototype, \"contextMenuItems\", void 0);\n return ContextMenuSettings;\n}(ChildProperty));\nexport { ContextMenuSettings };\n/**\n * The `TextFieldSettings` is used to to show and customize the appearance of text box HTML element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the text field settings.\n * viewer.textFieldSettings = {\n * name: '',\n * value: '',\n * fontFamily: 'Courier',\n * fontSize: 10,\n * fontStyle: 'None',\n * color: 'black',\n * borderColor: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * maxLength: 0,\n * isRequired: false,\n * isPrint: true,\n * tooltip: '',\n * thickness: 1,\n * isMultiline: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TextFieldSettings = /** @class */ (function (_super) {\n __extends(TextFieldSettings, _super);\n function TextFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], TextFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], TextFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], TextFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], TextFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], TextFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], TextFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], TextFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], TextFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], TextFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], TextFieldSettings.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], TextFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], TextFieldSettings.prototype, \"borderColor\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isMultiline\", void 0);\n return TextFieldSettings;\n}(ChildProperty));\nexport { TextFieldSettings };\n/**\n * The `PasswordFieldSettings` is used to to show and customize the appearance of password input HTML element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the password field settings.\n * viewer.passwordFieldSettings = {\n * name: '',\n * value: '',\n * fontFamily: 'Courier',\n * fontSize: 10,\n * fontStyle: 'None',\n * color: 'black',\n * borderColor: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * maxLength: 0,\n * isRequired: false,\n * isPrint: true,\n * tooltip: '',\n * thickness: 1\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PasswordFieldSettings = /** @class */ (function (_super) {\n __extends(PasswordFieldSettings, _super);\n function PasswordFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], PasswordFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property(0)\n ], PasswordFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('Helvetica')\n ], PasswordFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], PasswordFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property('None')\n ], PasswordFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], PasswordFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], PasswordFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], PasswordFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], PasswordFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], PasswordFieldSettings.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], PasswordFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], PasswordFieldSettings.prototype, \"borderColor\", void 0);\n return PasswordFieldSettings;\n}(ChildProperty));\nexport { PasswordFieldSettings };\n/**\n * The `CheckBoxFieldSettings` is used to to show and customize the appearance of check box element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the check box field settings.\n * viewer.checkBoxFieldSettings = {\n * name: '',\n * isChecked: true,\n * backgroundColor: 'white',\n * isReadOnly: false,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 5,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CheckBoxFieldSettings = /** @class */ (function (_super) {\n __extends(CheckBoxFieldSettings, _super);\n function CheckBoxFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], CheckBoxFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], CheckBoxFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isChecked\", void 0);\n __decorate([\n Property('white')\n ], CheckBoxFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], CheckBoxFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property(0)\n ], CheckBoxFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('')\n ], CheckBoxFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(1)\n ], CheckBoxFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], CheckBoxFieldSettings.prototype, \"borderColor\", void 0);\n return CheckBoxFieldSettings;\n}(ChildProperty));\nexport { CheckBoxFieldSettings };\n/**\n * The `RadioButtonFieldSettings` is used to to show and customize the appearance of radio button element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the radio button field settings.\n * viewer.radioButtonFieldSettings = {\n * name: '',\n * isSelected: false,\n * backgroundColor: 'white',\n * isReadOnly: false,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 1,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RadioButtonFieldSettings = /** @class */ (function (_super) {\n __extends(RadioButtonFieldSettings, _super);\n function RadioButtonFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], RadioButtonFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], RadioButtonFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isSelected\", void 0);\n __decorate([\n Property('white')\n ], RadioButtonFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(0)\n ], RadioButtonFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('visible')\n ], RadioButtonFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], RadioButtonFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], RadioButtonFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], RadioButtonFieldSettings.prototype, \"borderColor\", void 0);\n return RadioButtonFieldSettings;\n}(ChildProperty));\nexport { RadioButtonFieldSettings };\n/**\n * The `DropdownFieldSettings` is used to to show and customize the appearance of drop down element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the drop down field settings.\n * viewer.DropdownFieldSettings = {\n * name: '',\n * isSelected: false,\n * backgroundColor: 'white',\n * isReadOnly: true,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 5,\n * borderColor: 'blue'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar DropdownFieldSettings = /** @class */ (function (_super) {\n __extends(DropdownFieldSettings, _super);\n function DropdownFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], DropdownFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], DropdownFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], DropdownFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], DropdownFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], DropdownFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], DropdownFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], DropdownFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], DropdownFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], DropdownFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"options\", void 0);\n __decorate([\n Property(1)\n ], DropdownFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], DropdownFieldSettings.prototype, \"borderColor\", void 0);\n return DropdownFieldSettings;\n}(ChildProperty));\nexport { DropdownFieldSettings };\n/**\n * The `ListBoxFieldSettings` is used to to show and customize the appearance of list box element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the list box field settings.\n * viewer.listBoxFieldSettings = {\n * name: '',\n * fontFamily: 'Courier',\n * fontSize: 5,\n * fontStyle: 'None',\n * color: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * isRequired: false,\n * isPrint: false,\n * tooltip: '',\n * options: [],\n * thickness: 1,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ListBoxFieldSettings = /** @class */ (function (_super) {\n __extends(ListBoxFieldSettings, _super);\n function ListBoxFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], ListBoxFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], ListBoxFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], ListBoxFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], ListBoxFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], ListBoxFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], ListBoxFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], ListBoxFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], ListBoxFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], ListBoxFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property([])\n ], ListBoxFieldSettings.prototype, \"options\", void 0);\n __decorate([\n Property(1)\n ], ListBoxFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], ListBoxFieldSettings.prototype, \"borderColor\", void 0);\n return ListBoxFieldSettings;\n}(ChildProperty));\nexport { ListBoxFieldSettings };\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"itemName\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"itemValue\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n/**\n * Represents the PDF viewer component.\n * ```html\n *
    \n * \n * ```\n */\nvar PdfViewer = /** @class */ (function (_super) {\n __extends(PdfViewer, _super);\n function PdfViewer(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Get the Loaded document signature Collections in the PdfViewer control.\n *\n * {% codeBlock src='pdfviewer/signatureCollection/index.md' %}{% endcodeBlock %}\n *\n */\n // eslint-disable-next-line\n _this.signatureCollection = [];\n /**\n * Gets or sets the document name loaded in the PdfViewer control.\n *\n * {% codeBlock src='pdfviewer/fileName/index.md' %}{% endcodeBlock %}\n *\n */\n _this.fileName = null;\n /**\n * @private\n */\n _this.zIndex = -1;\n /**\n * @private\n */\n _this.nameTable = {};\n /** @private */\n _this.clipboardData = {};\n /**\n * @private\n */\n _this.zIndexTable = [];\n _this.isTextSelectionStarted = false;\n /**\n * @private\n */\n _this.touchPadding = 10;\n /**\n * @private\n */\n _this.paddingDifferenceValue = 10;\n /** @hidden */\n _this.defaultLocale = {\n 'PdfViewer': 'PDF Viewer',\n 'Cancel': 'Cancel',\n 'Download file': 'Download file',\n 'Download': 'Download',\n 'Enter Password': 'This document is password protected. Please enter a password.',\n 'File Corrupted': 'File Corrupted',\n 'File Corrupted Content': 'The file is corrupted and cannot be opened.',\n 'Fit Page': 'Fit Page',\n 'Fit Width': 'Fit Width',\n 'Automatic': 'Automatic',\n 'Go To First Page': 'Show first page',\n 'Invalid Password': 'Incorrect Password. Please try again.',\n 'Next Page': 'Show next page',\n 'OK': 'OK',\n 'Open': 'Open file',\n 'Page Number': 'Current page number',\n 'Previous Page': 'Show previous page',\n 'Go To Last Page': 'Show last page',\n 'Zoom': 'Zoom',\n 'Zoom In': 'Zoom in',\n 'Zoom Out': 'Zoom out',\n 'Page Thumbnails': 'Page thumbnails',\n 'Bookmarks': 'Bookmarks',\n 'Print': 'Print file',\n 'Password Protected': 'Password Required',\n 'Copy': 'Copy',\n 'Text Selection': 'Text selection tool',\n 'Panning': 'Pan mode',\n 'Text Search': 'Find text',\n 'Find in document': 'Find in document',\n 'Match case': 'Match case',\n 'Apply': 'Apply',\n 'GoToPage': 'Go to Page',\n // eslint-disable-next-line max-len\n 'No matches': 'Viewer has finished searching the document. No more matches were found',\n 'No Text Found': 'No Text Found',\n 'Undo': 'Undo',\n 'Redo': 'Redo',\n 'Annotation': 'Add or Edit annotations',\n 'FormDesigner': 'Add and Edit Form Fields',\n 'Highlight': 'Highlight Text',\n 'Underline': 'Underline Text',\n 'Strikethrough': 'Strikethrough Text',\n 'Delete': 'Delete annotation',\n 'Opacity': 'Opacity',\n 'Color edit': 'Change Color',\n 'Opacity edit': 'Change Opacity',\n 'Highlight context': 'Highlight',\n 'Underline context': 'Underline',\n 'Strikethrough context': 'Strikethrough',\n // eslint-disable-next-line max-len\n 'Server error': 'Web-service is not listening. PDF Viewer depends on web-service for all it\\'s features. Please start the web service to continue.',\n // eslint-disable-next-line max-len\n 'Client error': 'Client-side error is found. Please check the custom headers provided in the AjaxRequestSettings property and web action methods in the ServerActionSettings property.',\n 'Open text': 'Open',\n 'First text': 'First Page',\n 'Previous text': 'Previous Page',\n 'Next text': 'Next Page',\n 'Last text': 'Last Page',\n 'Zoom in text': 'Zoom In',\n 'Zoom out text': 'Zoom Out',\n 'Selection text': 'Selection',\n 'Pan text': 'Pan',\n 'Print text': 'Print',\n 'Search text': 'Search',\n 'Annotation Edit text': 'Edit Annotation',\n 'FormDesigner Edit text': 'Add and Edit Form Fields',\n 'Line Thickness': 'Line Thickness',\n 'Line Properties': 'Line Properties',\n 'Start Arrow': 'Start Arrow',\n 'End Arrow': 'End Arrow',\n 'Line Style': 'Line Style',\n 'Fill Color': 'Fill Color',\n 'Line Color': 'Line Color',\n 'None': 'None',\n 'Open Arrow': 'Open',\n 'Closed Arrow': 'Closed',\n 'Round Arrow': 'Round',\n 'Square Arrow': 'Square',\n 'Diamond Arrow': 'Diamond',\n 'Butt': 'Butt',\n 'Cut': 'Cut',\n 'Paste': 'Paste',\n 'Delete Context': 'Delete',\n 'Properties': 'Properties',\n 'Add Stamp': 'Add Stamp',\n 'Add Shapes': 'Add Shapes',\n 'Stroke edit': 'Change Stroke Color',\n 'Change thickness': 'Change Border Thickness',\n 'Add line': 'Add Line',\n 'Add arrow': 'Add Arrow',\n 'Add rectangle': 'Add Rectangle',\n 'Add circle': 'Add Circle',\n 'Add polygon': 'Add Polygon',\n 'Add Comments': 'Add Comments',\n 'Comments': 'Comments',\n 'SubmitForm': 'Submit Form',\n 'No Comments Yet': 'No Comments Yet',\n 'Accepted': 'Accepted',\n 'Completed': 'Completed',\n 'Cancelled': 'Cancelled',\n 'Rejected': 'Rejected',\n 'Leader Length': 'Leader Length',\n 'Scale Ratio': 'Scale Ratio',\n 'Calibrate': 'Calibrate',\n 'Calibrate Distance': 'Calibrate Distance',\n 'Calibrate Perimeter': 'Calibrate Perimeter',\n 'Calibrate Area': 'Calibrate Area',\n 'Calibrate Radius': 'Calibrate Radius',\n 'Calibrate Volume': 'Calibrate Volume',\n 'Depth': 'Depth',\n 'Closed': 'Closed',\n 'Round': 'Round',\n 'Square': 'Square',\n 'Diamond': 'Diamond',\n 'Edit': 'Edit',\n 'Comment': 'Comment',\n 'Comment Panel': 'Comment Panel',\n 'Set Status': 'Set Status',\n 'Post': 'Post',\n 'Page': 'Page',\n 'Add a comment': 'Add a comment',\n 'Add a reply': 'Add a reply',\n 'Import Annotations': 'Import annotations from JSON file',\n 'Export Annotations': 'Export annotation to JSON file',\n 'Export XFDF': 'Export annotation to XFDF file',\n 'Import XFDF': 'Import annotations from XFDF file',\n 'Add': 'Add',\n 'Clear': 'Clear',\n 'Bold': 'Bold',\n 'Italic': 'Italic',\n 'Strikethroughs': 'Strikethrough',\n 'Underlines': 'Underline',\n 'Superscript': 'Superscript',\n 'Subscript': 'Subscript',\n 'Align left': 'Align Left',\n 'Align right': 'Align Right',\n 'Center': 'Center',\n 'Justify': 'Justify',\n 'Font color': 'Font Color',\n 'Text Align': 'Text Align',\n 'Text Properties': 'Font Style',\n 'SignatureFieldDialogHeaderText': 'Add Signature',\n 'HandwrittenSignatureDialogHeaderText': 'Add Signature',\n 'InitialFieldDialogHeaderText': 'Add Initial',\n 'HandwrittenInitialDialogHeaderText': 'Add Initial',\n 'Draw Ink': 'Draw Ink',\n 'Create': 'Create',\n 'Font family': 'Font Family',\n 'Font size': 'Font Size',\n 'Free Text': 'Free Text',\n 'Import Failed': 'Invalid JSON file type or file name; please select a valid JSON file',\n 'Import PDF Failed': 'Invalid PDF file type or PDF file not found. Please select a valid PDF file',\n 'File not found': 'Imported JSON file is not found in the desired location',\n 'Export Failed': 'Export annotations action has failed; please ensure annotations are added properly',\n 'of': 'of ',\n 'Dynamic': 'Dynamic',\n 'Standard Business': 'Standard Business',\n 'Sign Here': 'Sign Here',\n 'Custom Stamp': 'Custom Stamp',\n 'Enter Signature as Name': 'Enter your name',\n 'Draw-hand Signature': 'DRAW',\n 'Type Signature': 'TYPE',\n 'Upload Signature': 'UPLOAD',\n 'Browse Signature Image': 'BROWSE',\n 'Save Signature': 'Save Signature',\n 'Save Initial': 'Save Initial',\n 'Textbox': 'Textbox',\n 'Password': 'Password',\n 'Check Box': 'Checkbox',\n 'Radio Button': 'Radio Button',\n 'Dropdown': 'Drop Down',\n 'List Box': 'List Box',\n 'Signature': 'Signature',\n 'Delete FormField': 'Delete Form Field',\n 'Textbox Properties': 'Textbox Properties',\n 'Name': 'Name',\n 'Tooltip': 'Tooltip',\n 'Value': 'Value',\n 'Form Field Visibility': 'Form Field Visibility',\n 'Read Only': 'Read Only',\n 'Required': 'Required',\n 'Checked': 'Checked',\n 'Show Printing': 'Show Printing',\n 'Formatting': 'Format',\n 'Fill': 'Fill',\n 'Border': 'Border',\n 'Border Color': 'Border Color',\n 'Thickness': 'Thickness',\n 'Max Length': 'Max Length',\n 'List Item': 'Item Name',\n 'Export Value': 'Item Value',\n 'Dropdown Item List': 'Dropdown Item List',\n 'List Box Item List': 'List Box Item List',\n 'General': 'GENERAL',\n 'Appearance': 'APPEARANCE',\n 'Options': 'OPTIONS',\n 'Delete Item': 'Delete',\n 'Up': 'Up',\n 'Down': 'Down',\n 'Multiline': 'Multiline',\n 'Revised': 'Revised',\n 'Reviewed': 'Reviewed',\n 'Received': 'Received',\n 'Confidential': 'Confidential',\n 'Approved': 'Approved',\n 'Not Approved': 'Not Approved',\n 'Witness': 'Witness',\n 'Initial Here': 'Initial Here',\n 'Draft': 'Draft',\n 'Final': 'Final',\n 'For Public Release': 'For Public Release',\n 'Not For Public Release': 'Not For Public Release',\n 'For Comment': 'For Comment',\n 'Void': 'Void',\n 'Preliminary Results': 'Preliminary Results',\n 'Information Only': 'Information Only',\n 'in': 'in',\n 'm': 'm',\n 'ft_in': 'ft_in',\n 'ft': 'ft',\n 'p': 'p',\n 'cm': 'cm',\n 'mm': 'mm',\n 'pt': 'pt',\n 'cu': 'cu',\n 'sq': 'sq',\n 'Initial': 'Initial'\n };\n _this.viewerBase = new PdfViewerBase(_this);\n _this.drawing = new Drawing(_this);\n return _this;\n }\n Object.defineProperty(PdfViewer.prototype, \"zoomPercentage\", {\n /**\n * Returns the current zoom percentage of the PdfViewer control.\n *\n * @asptype int\n * @blazorType int\n */\n get: function () {\n return this.magnificationModule.zoomFactor * 100;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"bookmark\", {\n /**\n * Gets the bookmark view object of the pdf viewer.\n *\n * @asptype BookmarkView\n * @blazorType BookmarkView\n * @returns { BookmarkView }\n */\n get: function () {\n return this.bookmarkViewModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"print\", {\n /**\n * Gets the print object of the pdf viewer.\n *\n * @asptype Print\n * @blazorType Print\n * @returns { Print }\n */\n get: function () {\n return this.printModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"magnification\", {\n /**\n * Gets the magnification object of the pdf viewer.\n *\n * @asptype Magnification\n * @blazorType Magnification\n * @returns { Magnification }\n */\n get: function () {\n return this.magnificationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"navigation\", {\n /**\n * Gets the navigation object of the pdf viewer.\n *\n * @asptype Navigation\n * @blazorType Navigation\n * @returns { Navigation }\n */\n get: function () {\n return this.navigationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"textSearch\", {\n /**\n * Gets the text search object of the pdf viewer.\n *\n * @asptype TextSearch\n * @blazorType TextSearch\n * @returns { TextSearch }\n */\n get: function () {\n return this.textSearchModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"toolbar\", {\n /**\n * Gets the toolbar object of the pdf viewer.\n *\n * @asptype Toolbar\n * @blazorType Toolbar\n * @returns { Toolbar }\n */\n get: function () {\n return this.toolbarModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"thumbnailView\", {\n /**\n * Gets the thumbnail-view object of the pdf viewer.\n *\n * @asptype ThumbnailView\n * @blazorType ThumbnailView\n * @returns { ThumbnailView }\n */\n get: function () {\n return this.thumbnailViewModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"annotation\", {\n /**\n * Gets the annotation object of the pdf viewer.\n *\n * @asptype Annotation\n * @blazorType Annotation\n * @returns { Annotation }\n */\n get: function () {\n return this.annotationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"formDesigner\", {\n /**\n * Gets the FormDesigner object of the pdf viewer.\n *\n * @asptype FormDesigner\n * @blazorType FormDesigner\n * @returns { FormDesigner }\n */\n get: function () {\n return this.formDesignerModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"textSelection\", {\n /**\n * Gets the TextSelection object of the pdf viewer.\n *\n * @asptype TextSelection\n * @blazorType TextSelection\n * @returns { TextSelection }\n */\n get: function () {\n return this.textSelectionModule;\n },\n enumerable: true,\n configurable: true\n });\n PdfViewer.prototype.preRender = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n if (!isNullOrUndefined(this.element) && this.element.id == \"\") {\n //Set unique id, if id is empty\n this.element.id = this.getUniqueElementId();\n }\n if (Browser.isDevice) {\n //EJ2-63562 - Reduced the touchPadding of mobile devices to 16 to improve selection of fields without affecting resizing ability.\n this.touchPadding = 16;\n }\n };\n PdfViewer.prototype.getUniqueElementId = function () {\n return 'pdfViewer_' + Date.now().toString(36) + Math.random().toString(36).substring(2);\n };\n PdfViewer.prototype.render = function () {\n this.viewerBase.initializeComponent();\n if (!this.enableFormFields) {\n this.formFieldsModule = new FormFields(this, this.viewerBase);\n this.formFieldsModule.formFieldsReadOnly(this.enableFormFields);\n }\n if (this.enableTextSelection && this.textSelectionModule) {\n this.textSelectionModule.enableTextSelectionMode();\n }\n else {\n this.viewerBase.disableTextSelectionMode();\n }\n this.drawing.renderLabels(this);\n this.renderComplete();\n };\n PdfViewer.prototype.getModuleName = function () {\n return 'PdfViewer';\n };\n /**\n * @private\n */\n PdfViewer.prototype.getLocaleConstants = function () {\n return this.defaultLocale;\n };\n /**\n * To modify the Json Data in ajax request.\n *\n * @param jsonData\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.setJsonData = function (jsonData) {\n this.viewerBase.ajaxData = jsonData;\n };\n PdfViewer.prototype.onPropertyChanged = function (newProp, oldProp) {\n var requireRefresh = false;\n if (this.isDestroyed) {\n return;\n }\n var properties = Object.keys(newProp);\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var prop = properties_1[_i];\n switch (prop) {\n case 'locale':\n if (this.viewerBase.loadedData) {\n // eslint-disable-next-line\n var data = null;\n if (this.formFieldsModule) {\n data = this.viewerBase.getItemFromSessionStorage('_formfields');\n }\n if (data) {\n this.viewerBase.formfieldvalue = JSON.parse(data);\n // eslint-disable-next-line\n var annotCollection = this.annotationCollection;\n var filename = this.viewerBase.jsonDocumentId;\n _super.prototype.refresh.call(this);\n this.load(this.viewerBase.loadedData, null);\n this.addAnnotation(annotCollection);\n this.viewerBase.loadedData = null;\n this.downloadFileName = filename;\n this.fileName = filename;\n }\n }\n break;\n case 'toolbarSettings':\n if (!Browser.isDevice || this.enableDesktopMode) {\n this.toolbar.applyToolbarSettings();\n this.toolbar.annotationToolbarModule.applyAnnotationToolbarSettings();\n this.toolbar.formDesignerToolbarModule.applyFormDesignerToolbarSettings();\n }\n else {\n this.toolbar.applyToolbarSettingsForMobile();\n this.toolbar.annotationToolbarModule.applyMobileAnnotationToolbarSettings();\n }\n break;\n case 'enableToolbar':\n this.notify('', { module: 'toolbar', enable: this.enableToolbar });\n requireRefresh = true;\n break;\n case 'enableCommentPanel':\n this.notify('', { module: 'annotation', enable: this.enableCommentPanel });\n requireRefresh = true;\n if (this.toolbarModule && this.toolbarModule.annotationToolbarModule) {\n this.toolbarModule.annotationToolbarModule.enableCommentPanelTool(this.enableCommentPanel);\n }\n if (!this.enableCommentPanel) {\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.closeCommentPanelContainer();\n }\n }\n break;\n case 'documentPath':\n if (!isBlazor()) {\n this.load(newProp.documentPath, null);\n }\n else {\n this._dotnetInstance.invokeMethodAsync('LoadDocumentFromClient', newProp.documentPath);\n }\n break;\n case 'interactionMode':\n this.interactionMode = newProp.interactionMode;\n if (newProp.interactionMode === 'Pan') {\n this.viewerBase.initiatePanning();\n if (this.toolbar) {\n this.toolbar.updateInteractionTools(false);\n }\n }\n else if (newProp.interactionMode === 'TextSelection') {\n this.viewerBase.initiateTextSelectMode();\n if (this.toolbar) {\n this.toolbar.updateInteractionTools(true);\n }\n }\n break;\n case 'height':\n this.height = newProp.height;\n this.viewerBase.updateHeight();\n this.viewerBase.onWindowResize();\n if (this.toolbar && this.toolbar.annotationToolbarModule) {\n if (this.toolbar.annotationToolbarModule.isToolbarHidden) {\n this.toolbar.annotationToolbarModule.adjustViewer(false);\n }\n else {\n this.toolbar.annotationToolbarModule.adjustViewer(true);\n }\n }\n break;\n case 'width':\n this.width = newProp.width;\n this.viewerBase.updateWidth();\n this.viewerBase.onWindowResize();\n break;\n case 'customStamp':\n this.renderCustomerStamp(this.customStamp[0]);\n break;\n case 'customStampSettings':\n if (newProp.customStampSettings.customStamps) {\n this.renderCustomerStamp(this.customStampSettings.customStamps[0]);\n }\n break;\n case 'enableFormFields':\n if (this.enableFormFields && this.formFieldsModule) {\n for (var m = 0; m < this.pageCount; m++) {\n this.formFieldsModule.renderFormFields(m, false);\n }\n }\n else {\n this.formFieldsModule = new FormFields(this, this.viewerBase);\n this.formFieldsModule.formFieldsReadOnly(this.enableFormFields);\n }\n break;\n case 'designerMode':\n if (this.designerMode) {\n this.formDesignerModule.setMode('designer');\n }\n else {\n this.formDesignerModule.setMode('edit');\n }\n break;\n case 'highlightSettings':\n case 'underlineSettings':\n case 'strikethroughSettings':\n if (this.annotationModule && this.annotationModule.textMarkupAnnotationModule) {\n this.annotationModule.textMarkupAnnotationModule.updateTextMarkupSettings(prop);\n }\n break;\n case 'signatureFieldSettings':\n case 'initialFieldSettings':\n if (this.formDesignerModule) {\n var isInitialField = (prop === \"initialFieldSettings\");\n this.formDesignerModule.updateSignatureSettings(newProp[prop], isInitialField);\n }\n break;\n case 'textFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateTextFieldSettings(newProp[prop]);\n }\n break;\n case 'passwordFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updatePasswordFieldSettings(newProp[prop]);\n }\n break;\n case 'checkBoxFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateCheckBoxFieldSettings(newProp[prop]);\n }\n break;\n case 'radioButtonFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateRadioButtonFieldSettings(newProp[prop]);\n }\n break;\n case 'DropdownFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateDropDownFieldSettings(newProp[prop]);\n }\n break;\n case 'listBoxFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateListBoxFieldSettings(newProp[prop]);\n }\n break;\n case 'isFormDesignerToolbarVisible':\n if (this.formDesignerModule && !oldProp.isFormDesignerToolbarVisible && newProp.isFormDesignerToolbarVisible) {\n if (this.isAnnotationToolbarVisible) {\n this.isAnnotationToolbarVisible = false;\n this.toolbarModule.annotationToolbarModule.showAnnotationToolbar();\n }\n this.toolbarModule.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n break;\n }\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.renderCustomerStamp = function (customStamp) {\n this.annotation.stampAnnotationModule.isStampAddMode = true;\n this.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.viewerBase.stampAdded = true;\n this.viewerBase.isAlreadyAdded = false;\n // eslint-disable-next-line max-len\n this.annotation.stampAnnotationModule.createCustomStampAnnotation(customStamp.customStampImageSource, customStamp.customStampName);\n };\n PdfViewer.prototype.getPersistData = function () {\n return 'PdfViewer';\n };\n PdfViewer.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableMagnification) {\n modules.push({\n member: 'Magnification', args: [this, this.viewerBase]\n });\n }\n if (this.enableNavigation) {\n modules.push({\n member: 'Navigation', args: [this, this.viewerBase]\n });\n }\n if (this.enableToolbar || this.enableNavigationToolbar || this.enableAnnotationToolbar || this.enableFormDesignerToolbar) {\n modules.push({\n member: 'Toolbar', args: [this, this.viewerBase]\n });\n }\n if (this.enableHyperlink) {\n modules.push({\n member: 'LinkAnnotation', args: [this, this.viewerBase]\n });\n }\n if (this.enableThumbnail) {\n modules.push({\n member: 'ThumbnailView', args: [this, this.viewerBase]\n });\n }\n if (this.enableBookmark) {\n modules.push({\n member: 'BookmarkView', args: [this, this.viewerBase]\n });\n }\n if (this.enableTextSelection) {\n modules.push({\n member: 'TextSelection', args: [this, this.viewerBase]\n });\n }\n if (this.enableTextSearch) {\n modules.push({\n member: 'TextSearch', args: [this, this.viewerBase]\n });\n }\n if (this.enablePrint) {\n modules.push({\n member: 'Print', args: [this, this.viewerBase]\n });\n }\n if (this.enableAnnotation) {\n modules.push({\n member: 'Annotation', args: [this, this.viewerBase]\n });\n }\n if (this.enableFormFields) {\n modules.push({\n member: 'FormFields', args: [this, this.viewerBase]\n });\n }\n if (this.enableFormDesigner && !isBlazor()) {\n modules.push({\n member: 'FormDesigner', args: [this, this.viewerBase]\n });\n }\n return modules;\n };\n /**\n * Loads the given PDF document in the PDF viewer control\n *\n * @param {string} document - Specifies the document name for load\n * @param {string} password - Specifies the Given document password\n * @returns void\n */\n PdfViewer.prototype.load = function (document, password) {\n if (this.pageCount !== 0) {\n this.viewerBase.clear(true);\n }\n else {\n this.viewerBase.clear(false);\n }\n this.pageCount = 0;\n this.currentPageNumber = 0;\n if (!isBlazor()) {\n if (this.toolbarModule) {\n this.toolbarModule.resetToolbar();\n }\n }\n else {\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n }\n this.viewerBase.initiatePageRender(document, password);\n };\n /**\n * Loads the given PDF document in the PDF viewer control\n * @private\n */\n PdfViewer.prototype.loadDocument = function (documentId, isFileName, fileName) {\n if (this.pageCount !== 0) {\n this.viewerBase.clear(true);\n }\n else {\n this.viewerBase.clear(false);\n }\n this.pageCount = 0;\n this.currentPageNumber = 0;\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n this.fileName = fileName;\n this.viewerBase.initiateLoadDocument(documentId, isFileName, fileName);\n };\n /**\n * Loads the PDF document with the document details in the PDF viewer control\n * @private\n */\n PdfViewer.prototype.loadSuccess = function (documentDetails, password) {\n this.viewerBase.loadSuccess(documentDetails, password);\n };\n /**\n * Set the focus of the given element\n * @private\n */\n PdfViewer.prototype.focusElement = function (elementId) {\n var element = document.getElementById(elementId);\n if (element != null) {\n element.focus();\n }\n };\n /**\n * Downloads the PDF document being loaded in the ejPdfViewer control.\n *\n * @returns void\n */\n PdfViewer.prototype.download = function () {\n if (this.enableDownload) {\n this.viewerBase.download();\n }\n };\n /**\n * Saves the PDF document being loaded in the PDF Viewer control as blob.\n *\n * @returns Promise\n */\n PdfViewer.prototype.saveAsBlob = function () {\n var _this = this;\n if (this.enableDownload) {\n return new Promise(function (resolve, reject) {\n resolve(_this.viewerBase.saveAsBlob());\n });\n }\n else {\n return null;\n }\n };\n /**\n * updates the PDF Viewer container width and height from externally.\n *\n * @returns void\n */\n PdfViewer.prototype.updateViewerContainer = function () {\n this.viewerBase.updateViewerContainer();\n };\n /**\n * Specifies the message to be displayed in the popup.\n *\n * @param errorString\n * @returns void\n */\n PdfViewer.prototype.showNotificationPopup = function (errorString) {\n this.viewerBase.showNotificationPopup(errorString);\n };\n /**\n * Focus a form field in a document by its field name or the field object.\n *\n * @param field\n * @returns void\n */\n PdfViewer.prototype.focusFormField = function (field) {\n var _this = this;\n if (typeof (field) === \"string\") {\n var fieldCollections = this.retrieveFormFields();\n for (var i = 0; i < fieldCollections.length; i++) {\n if (fieldCollections[i].name === field) {\n field = fieldCollections[i];\n }\n }\n }\n if (field) {\n this.viewerBase.isFocusField = true;\n this.viewerBase.focusField = field;\n if (this.formDesignerModule) {\n this.navigationModule.goToPage(field.pageIndex + 1);\n }\n else {\n var pageIndex = parseFloat(field.id.split('_')[1]);\n this.navigationModule.goToPage(pageIndex + 1);\n }\n setTimeout(function () {\n var currentField = document.getElementById(field.id);\n if (_this.formDesignerModule && field.type === \"Checkbox\") {\n currentField = document.getElementById(field.id + \"_input\");\n }\n if (currentField) {\n if (_this.formDesignerModule && (field.type === \"SignatureField\" || field.type === \"InitialField\")) {\n currentField.parentElement.focus();\n }\n else {\n currentField.focus();\n _this.viewerBase.isFocusField = false;\n _this.viewerBase.focusField = [];\n }\n }\n }, 100);\n }\n };\n /**\n * Update the form field values from externally.\n *\n * @param fieldValue\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateFormFieldsValue = function (fieldValue) {\n // eslint-disable-next-line\n var target = document.getElementById(fieldValue.id);\n var isformDesignerModuleListBox = false;\n if (target) {\n target = target ? target : document.getElementById(fieldValue.id + '_content_html_element').children[0].children[0];\n if (target && fieldValue.type === 'Textbox' || fieldValue.type === 'Password' || fieldValue.type === 'PasswordField') {\n target.value = fieldValue.value;\n }\n else if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n if (fieldValue.type === 'CheckBox') {\n target.style.appearance = 'auto';\n }\n if (this.formDesignerModule) {\n if (fieldValue.type === 'RadioButton') {\n var radioButtonOption = { isSelected: fieldValue.isSelected };\n this.formDesignerModule.updateFormField(fieldValue, radioButtonOption);\n }\n else {\n var checkBoxOption = { isChecked: fieldValue.isChecked };\n this.formDesignerModule.updateFormField(fieldValue, checkBoxOption);\n }\n }\n else {\n if (fieldValue.type === 'RadioButton') {\n target.selected = fieldValue.isSelected;\n }\n else {\n target.checked = fieldValue.isChecked;\n }\n }\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n if (this.formDesignerModule) {\n isformDesignerModuleListBox = true;\n var dropDownListOption = { options: fieldValue.value };\n this.formDesignerModule.updateFormField(fieldValue, dropDownListOption);\n }\n else {\n target.value = fieldValue.value;\n }\n }\n if (fieldValue.type === 'SignatureField' || fieldValue.type === 'InitialField') {\n if (fieldValue.signatureType || fieldValue.initialType) {\n if (typeof fieldValue.signatureType === 'string') {\n fieldValue.signatureType = fieldValue.signatureType;\n }\n else {\n fieldValue.signatureType = fieldValue.initialType;\n }\n }\n fieldValue.fontName = fieldValue.fontName ? fieldValue.fontName : fieldValue.fontFamily;\n var currentValue = fieldValue.value;\n var signatureField = this.getFormFieldByID(fieldValue.id);\n var isSameValue = this.formDesignerModule ? signatureField.value === fieldValue.value : signatureField.Value === fieldValue.value;\n if (target.classList.contains('e-pdfviewer-signatureformfields-signature') && !isSameValue) {\n if (this.formDesignerModule)\n this.annotation.deleteAnnotationById(fieldValue.id.split('_')[0] + '_content');\n else\n this.annotation.deleteAnnotationById(fieldValue.id);\n }\n if (!fieldValue.signatureType || !fieldValue.value) {\n fieldValue.value = currentValue;\n if (fieldValue.value) {\n fieldValue.signatureType = (fieldValue.value.indexOf('base64')) > -1 ? 'Image' : ((fieldValue.value.startsWith('M') && fieldValue.value.split(',')[1].split(' ')[1].startsWith('L')) ? 'Path' : 'Type');\n }\n }\n if (!isSameValue)\n this.formFieldsModule.drawSignature(fieldValue.signatureType, fieldValue.value, target, fieldValue.fontName);\n }\n else {\n if (!isformDesignerModuleListBox) {\n this.formFieldsModule.updateDataInSession(target);\n }\n }\n }\n else {\n var data = this.viewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n var FormFieldsData = JSON.parse(data);\n for (var m = 0; m < FormFieldsData.length; m++) {\n var currentData = FormFieldsData[m];\n var fieldName = void 0;\n if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n fieldName = currentData.GroupName;\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n fieldName = currentData.Text;\n }\n else {\n fieldName = currentData.FieldName;\n }\n if (fieldName === fieldValue.name) {\n if (fieldValue.type === 'Textbox' || fieldValue.type === 'Password' || fieldValue.type === 'PasswordField') {\n if (fieldValue.value) {\n currentData.Text = fieldValue.value;\n currentData.Value = fieldValue.value;\n }\n }\n else if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n fieldValue.isSelected || fieldValue.isChecked ? currentData.Selected = true : currentData.Selected = false;\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n currentData.SelectedValue = fieldValue.value;\n var index = currentData.TextList ? currentData.TextList.indexOf(fieldValue.value) : 0;\n currentData.selectedIndex = index > -1 ? index : 0;\n fieldValue.type === 'ListBox' ? currentData.SelectedListed = [currentData.selectedIndex] : [];\n }\n else if (fieldValue.type === 'SignatureField' || fieldValue.type === 'InitialField') {\n if (fieldValue.value) {\n currentData.Value = fieldValue.value;\n currentData = this.updateSignatureValue(currentData, fieldValue);\n }\n }\n this.formFieldsModule.updateFormFieldsCollection(currentData);\n }\n }\n }\n window.sessionStorage.removeItem(this.viewerBase.documentId + '_formfields');\n this.viewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.getFormFieldByID = function (id) {\n if (this.formDesignerModule) {\n return this.nameTable[id.split('_')[0]];\n }\n var data = window.sessionStorage.getItem(this.viewerBase.documentId + '_formfields');\n var formFieldsData = JSON.parse(data);\n return formFieldsData[formFieldsData.findIndex(function (el) { return el.uniqueID === id; })];\n };\n /**\n * @param number\n */\n // eslint-disable-next-line\n PdfViewer.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @param currentData - Current form field data.\n * @param fieldValue - Form Field.\n * @returns - Returns the updated the current Data.\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateSignatureValue = function (currentData, fieldValue) {\n if (!fieldValue.signatureType) {\n fieldValue.signatureType = (fieldValue.value.indexOf('base64')) > -1 ? 'Image' : ((fieldValue.value.startsWith('M') && fieldValue.split(',')[1].split(' ')[1].startsWith('L')) ? 'Path' : 'Type');\n }\n var bound = currentData.LineBounds;\n var left = this.ConvertPointToPixel(bound.X);\n var top = this.ConvertPointToPixel(bound.Y);\n var width = this.ConvertPointToPixel(bound.Width);\n var height = this.ConvertPointToPixel(bound.Height);\n var bounds;\n if (fieldValue.signatureType === 'Type') {\n if (!currentData.FontFamily) {\n currentData.FontFamily = 'Helvetica';\n }\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n if (this.signatureFitMode === 'Default') {\n bounds = this.formFieldsModule.getDefaultBoundsforSign(bounds);\n }\n currentData.Bounds = bounds;\n var fontSize = bounds.height / 1.35;\n var textWidth = this.formFieldsModule.getTextWidth(currentData.value, fontSize, currentData.FontFamily);\n var widthRatio = 1;\n if (textWidth > bounds.width)\n widthRatio = bounds.width / textWidth;\n currentData.FontSize = this.formFieldsModule.getFontSize(Math.floor((fontSize * widthRatio)));\n }\n else if (fieldValue.signatureType === 'Image') {\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n var image_1 = new Image();\n image_1.src = currentData.Value;\n var proxy_1 = this;\n image_1.onload = function () {\n proxy_1.imageOnLoad(bounds, image_1, currentData);\n };\n }\n else {\n if ((currentData.Value.indexOf('base64')) !== -1) {\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n if (this.signatureFitMode === 'Default') {\n bounds = this.formFieldsModule.getDefaultBoundsforSign(bounds);\n }\n }\n else {\n if (this.signatureFitMode === 'Default') {\n // eslint-disable-next-line\n var signBounds = this.formFieldsModule.updateSignatureAspectRatio(currentData.Value, false, null, currentData);\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, signBounds.width, signBounds.height, true);\n bounds.x = bounds.x + signBounds.left;\n bounds.y = bounds.y + signBounds.top;\n }\n else {\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n }\n }\n currentData.Bounds = bounds;\n }\n return currentData;\n };\n PdfViewer.prototype.imageOnLoad = function (bounds, image, currentData) {\n if (this.signatureFitMode === 'Default') {\n var padding = Math.min(bounds.height / this.paddingDifferenceValue, bounds.width / this.paddingDifferenceValue);\n var maxHeight = bounds.height - padding;\n var maxWidth = bounds.width - padding;\n var imageWidth = image.width;\n var imageHeight = image.height;\n var beforeWidth = bounds.width;\n var beforeHeight = bounds.height;\n var ratio = Math.min(maxWidth / imageWidth, maxHeight / imageHeight);\n bounds.width = imageWidth * ratio;\n bounds.height = imageHeight * ratio;\n bounds.x = bounds.x + (beforeWidth - bounds.width) / 2;\n bounds.y = bounds.y + (beforeHeight - bounds.height) / 2;\n var data = this.viewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n var FormFieldsData = JSON.parse(data);\n for (var i = 0; i < FormFieldsData.length; i++) {\n if (FormFieldsData[i].FieldName == currentData.FieldName) {\n FormFieldsData[i].Bounds = bounds;\n this.formFieldsModule.updateFormFieldsCollection(FormFieldsData[i]);\n }\n }\n window.sessionStorage.removeItem(this.viewerBase.documentId + '_formfields');\n this.viewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n }\n };\n /**\n * Perform undo action for the edited annotations\n *\n * @returns void\n */\n PdfViewer.prototype.undo = function () {\n if (this.annotationModule) {\n this.annotationModule.undo();\n }\n };\n /**\n * Perform redo action for the edited annotations\n *\n * @returns void\n */\n PdfViewer.prototype.redo = function () {\n if (this.annotationModule) {\n this.annotationModule.redo();\n }\n };\n /**\n * Unloads the PDF document being displayed in the PDF viewer.\n *\n * @returns void\n */\n PdfViewer.prototype.unload = function () {\n this.viewerBase.clear(true);\n this.pageCount = 0;\n if (!isBlazor()) {\n if (this.toolbarModule) {\n this.viewerBase.pageCount = 0;\n this.toolbarModule.resetToolbar();\n }\n }\n else {\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n }\n this.magnificationModule.zoomTo(100);\n };\n /**\n * Destroys all managed resources used by this object.\n *\n * @returns void\n */\n PdfViewer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (!isNullOrUndefined(this.element)) {\n if (!this.refreshing) {\n this.element.classList.remove('e-pdfviewer');\n }\n this.element.innerHTML = '';\n }\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.restrictUpdateZoomValue = false;\n }\n this.viewerBase.destroy();\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.restrictUpdateZoomValue = true;\n }\n };\n // eslint-disable-next-line\n /**\n * Perform imports annotations action in the PDF Viewer\n * @param {any} importData - Specifies the data for annotation imports\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.importAnnotation = function (importData, annotationDataFormat) {\n if (this.annotationModule) {\n if (typeof (importData) === 'string') {\n var isXfdfFile = ((importData.indexOf('.xfdf') > -1) || (annotationDataFormat.indexOf('Xfdf') > -1)) ? true : false;\n if (annotationDataFormat) {\n if (importData.indexOf('') > -1) {\n this.viewerBase.importAnnotations(importData, annotationDataFormat, false);\n }\n else {\n this.viewerBase.importAnnotations(importData, annotationDataFormat, isXfdfFile);\n }\n }\n else {\n if (importData.split('.')[1] === 'json') {\n this.viewerBase.importAnnotations(importData, AnnotationDataFormat.Json);\n }\n else {\n this.viewerBase.importAnnotations(importData, AnnotationDataFormat.Xfdf, isXfdfFile);\n }\n }\n }\n else {\n this.viewerBase.importAnnotations(importData);\n }\n }\n };\n /**\n * Perform export annotations action in the PDF Viewer\n *\n * @param annotationDataFormat\n * @returns void\n */\n PdfViewer.prototype.exportAnnotation = function (annotationDataFormat) {\n if (this.annotationModule) {\n if (annotationDataFormat && annotationDataFormat === 'Xfdf') {\n this.viewerBase.exportAnnotations(AnnotationDataFormat.Xfdf);\n }\n else {\n this.viewerBase.exportAnnotations(AnnotationDataFormat.Json);\n }\n }\n };\n /**\n * Perform export annotations action in the PDF Viewer\n *\n * @returns Promise\n */\n PdfViewer.prototype.exportAnnotationsAsObject = function () {\n var _this = this;\n if (this.annotationModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.exportAnnotationsAsObject().then(function (value) {\n var jsonData = JSON.parse(value);\n var jsonstring = JSON.stringify(jsonData);\n resolve(jsonstring);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * Export annotations and returns a base64 string for both Json and XFDF formats\n *\n * @param {AnnotationDataFormat} annotationDataFormat\n * @returns Promise\n */\n PdfViewer.prototype.exportAnnotationsAsBase64String = function (annotationDataFormat) {\n var _this = this;\n if (this.annotationModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.createRequestForExportAnnotations(false, annotationDataFormat, true).then(function (value) {\n resolve(value);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * Perform to add annotations in the PDF Viewer\n *\n * @param annotation\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.addAnnotation = function (annotation) {\n if (this.viewerBase) {\n this.viewerBase.addAnnotation(annotation);\n }\n };\n // eslint-disable-next-line\n /**\n * Imports the form fields data into the current PDF document.\n *\n * @param {string} data - The path for importing the fields.\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.importFormFields = function (data, formFieldDataFormat) {\n if (this.formFieldsModule) {\n if (isNullOrUndefined(formFieldDataFormat)) {\n formFieldDataFormat = FormFieldDataFormat.Json;\n }\n this.viewerBase.importFormFields(data, formFieldDataFormat);\n }\n };\n /**\n * Exports the form field data in the specified data format.\n *\n * @param {string} data - The path for exporting the fields.\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns void\n */\n PdfViewer.prototype.exportFormFields = function (data, formFieldDataFormat) {\n if (this.formFieldsModule) {\n this.viewerBase.exportFormFields(data, formFieldDataFormat);\n }\n };\n /**\n * Returns an object which represents the form field data in the specified data format.\n *\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns Promise\n */\n PdfViewer.prototype.exportFormFieldsAsObject = function (formFieldDataFormat) {\n var _this = this;\n if (this.formFieldsModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.exportFormFieldsAsObject(formFieldDataFormat).then(function (value) {\n resolve(value);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * reset all form fields data\n *\n * @returns void\n */\n PdfViewer.prototype.resetFormFields = function () {\n this.formFieldsModule.resetFormFields();\n };\n /**\n * Clears data from the form fields.\n * Parameter - Specifies the form field object.\n *\n * @param formField\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.clearFormFields = function (formField) {\n this.formFieldsModule.clearFormFields(formField);\n };\n /**\n * To delete the annotation Collections in the PDF Document.\n *\n * @returns void\n */\n PdfViewer.prototype.deleteAnnotations = function () {\n if (this.annotationModule) {\n this.viewerBase.deleteAnnotations();\n }\n };\n /**\n * To retrieve the form fields in the PDF Document.\n *\n * @returns void\n */\n PdfViewer.prototype.retrieveFormFields = function () {\n return this.formFieldCollections;\n };\n /**\n * To update the form fields in the PDF Document.\n *\n * @param formFields\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateFormFields = function (formFields) {\n this.updateFormFieldsValue(formFields);\n this.formFieldsModule.updateFormFieldValues(formFields);\n };\n /**\n * @param JsonData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAjaxRequestInitiate = function (JsonData) {\n var eventArgs = { name: 'ajaxRequestInitiate', JsonData: JsonData };\n this.trigger('ajaxRequestInitiate', eventArgs);\n };\n /**\n * @param value\n * @param fieldName\n * @param id\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireButtonFieldClickEvent = function (value, fieldName, id) {\n var eventArgs = { name: 'buttonFieldClicked', buttonFieldValue: value, buttonFieldName: fieldName, id: id };\n this.trigger('buttonFieldClick', eventArgs);\n };\n /**\n * @param name\n * @param field\n * @param cancel\n * @param isLeftClick - becomes true on signature panel left click.\n * @private\n */\n PdfViewer.prototype.fireFormFieldClickEvent = function (name, field, cancel, isLeftClick) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs, target, formFieldCollectionsValue, readOnly;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { name: name, field: field, cancel: cancel };\n if (!isBlazor()) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('formFieldClick', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n eventArgs.field.type = field.type;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('formFieldClick', eventArgs);\n _a.label = 3;\n case 3:\n if (field.type === 'SignatureField' || field.type === 'InitialField') {\n if (field.type === 'InitialField')\n this.viewerBase.isInitialField = true;\n else\n this.viewerBase.isInitialField = false;\n target = document.getElementById(field.id);\n if (target.style.visibility === \"hidden\") {\n target.disabled = true;\n }\n target = target ? target : (document.getElementById(field.id + '_content_html_element') ? document.getElementById(field.id + '_content_html_element').children[0].children[0] : null);\n formFieldCollectionsValue = this.formFieldCollections.filter(function (item) { return item.id === field.id; });\n if (formFieldCollectionsValue) {\n readOnly = formFieldCollectionsValue[0].isReadOnly;\n if ((!readOnly) && !eventArgs.cancel && target && !target.disabled && target.classList.contains('e-pdfviewer-signatureformfields') && (isLeftClick || isNullOrUndefined(isLeftClick))) {\n this.viewerBase.signatureModule.showSignatureDialog(true);\n }\n else if (readOnly) {\n target.disabled = true;\n }\n }\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field add event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldAddEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.viewerBase.isFormFieldSelect = false;\n this.trigger('formFieldAdd', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field remove event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldRemoveEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldRemove', eventArgs);\n };\n /**\n * @param name - Returns the event name.\n * @param field - Returns the double-clicked form field object.\n * @param cancel - If TRUE, property panel of the form field does not open. FALSE by default.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldDoubleClickEvent = function (eventArgs) {\n this.trigger('formFieldDoubleClick', eventArgs);\n return eventArgs;\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field properties change event.\n * @param pageIndex - Get the page number.\n * @param isAlignmentChanged - Specifies whether the text alignment of the form field is changed or not.\n * @param isBackgroundColorChanged - Specifies whether the background color of the form field is changed or not.\n * @param isBorderColorChanged - Specifies whether the border color of the form field is changed or not.\n * @param isBorderWidthChanged - Specifies whether the border width of the form field is changed or not.\n * @param isColorChanged - Specifies whether the font color of the form field is changed or not.\n * @param isFontFamilyChanged - Specifies whether the font family of the form field is changed or not.\n * @param isFontSizeChanged - Specifies whether the font size of the form field is changed or not.\n * @param isFontStyleChanged - Specifies whether the font style of the form field is changed or not.\n * @param isMaxLengthChanged - Specifies whether the max length of the form field is changed or not.\n * @param isPrintChanged - Specifies whether the print option of the form field is changed or not.\n * @param isReadOnlyChanged - Specifies the Read Only of Form field is changed or not.\n * @param isRequiredChanged - Specifies whether the is required option of the form field is changed or not.\n * @param isToolTipChanged - Specifies whether the tool tip property is changed or not.\n * @param isValueChanged - Specifies whether the form field value is changed or not.\n * @param isVisibilityChanged - Specifies whether the form field visibility is changed or not.\n * @param newValue - Specifies the new value of the form field.\n * @param oldValue - Specifies the old value of the form field.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldPropertiesChangeEvent = function (name, field, pageIndex, isValueChanged, isFontFamilyChanged, isFontSizeChanged, isFontStyleChanged, isColorChanged, isBackgroundColorChanged, isBorderColorChanged, isBorderWidthChanged, isAlignmentChanged, isReadOnlyChanged, isVisibilityChanged, isMaxLengthChanged, isRequiredChanged, isPrintChanged, isToolTipChanged, oldValue, newValue, isNamechanged) {\n var eventArgs = {\n name: name, field: field, pageIndex: pageIndex, isValueChanged: isValueChanged, isFontFamilyChanged: isFontFamilyChanged, isFontSizeChanged: isFontSizeChanged,\n isFontStyleChanged: isFontStyleChanged, isColorChanged: isColorChanged, isBackgroundColorChanged: isBackgroundColorChanged, isBorderColorChanged: isBorderColorChanged,\n isBorderWidthChanged: isBorderWidthChanged, isAlignmentChanged: isAlignmentChanged, isReadOnlyChanged: isReadOnlyChanged, isVisibilityChanged: isVisibilityChanged,\n isMaxLengthChanged: isMaxLengthChanged, isRequiredChanged: isRequiredChanged, isPrintChanged: isPrintChanged,\n isToolTipChanged: isToolTipChanged, oldValue: oldValue, newValue: newValue, isNameChanged: !isNullOrUndefined(isNamechanged) ? isNamechanged : false\n };\n this.trigger('formFieldPropertiesChange', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field mouse leave event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMouseLeaveEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldMouseLeave', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field mouse over event.\n * @param pageIndex - Get the page number.\n * @param pageX - Get the mouse over x position with respect to the page container.\n * @param pageY - Get the mouse over y position with respect to the page container.\n * @param X - Specifies the mouse over x position with respect to the viewer container.\n * @param Y - Specifies the mouse over y position with respect to the viewer container.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMouseoverEvent = function (name, field, pageIndex, pageX, pageY, X, Y) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, pageX: pageX, pageY: pageY, X: X, Y: Y };\n this.trigger('formFieldMouseover', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field move event.\n * @param pageIndex - Get the page number.\n * @param previousPosition - Get the previous position of the form field in the page.\n * @param currentPosition - Current position of form field in the page.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMoveEvent = function (name, field, pageIndex, previousPosition, currentPosition) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('formFieldMove', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field resize event.\n * @param pageIndex - Get the page number.\n * @param previousPosition - Get the previous position of the form field in the page.\n * @param currentPosition - Current position of form field in the page.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldResizeEvent = function (name, field, pageIndex, previousPosition, currentPosition) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('formFieldResize', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field select event.\n * @param pageIndex - Get the page number.\n * @param isProgrammaticSelection - Specifies whether the the form field is selected programmatically or by UI.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldSelectEvent = function (name, field, pageIndex, isProgrammaticSelection) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, isProgrammaticSelection: isProgrammaticSelection };\n this.trigger('formFieldSelect', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field unselect event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldUnselectEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldUnselect', eventArgs);\n };\n /**\n * @param pageData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireDocumentLoad = function (pageData) {\n var eventArgs = { name: 'documentLoad', documentName: this.fileName, pageData: pageData };\n this.trigger('documentLoad', eventArgs);\n if (isBlazor()) {\n this._dotnetInstance.invokeMethodAsync('LoadDocument', null);\n this.viewerBase.blazorUIAdaptor.loadDocument();\n }\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireDocumentUnload = function (fileName) {\n var eventArgs = { name: 'documentUnload', documentName: fileName };\n this.trigger('documentUnload', eventArgs);\n };\n /**\n * @param isPasswordRequired\n * @param password\n * @private\n */\n PdfViewer.prototype.fireDocumentLoadFailed = function (isPasswordRequired, password) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'documentLoadFailed', documentName: this.fileName, isPasswordRequired: isPasswordRequired, password: password };\n this.trigger('documentLoadFailed', eventArgs);\n };\n /**\n * @param errorStatusCode\n * @param errorMessage\n * @param action\n * @param retryCount\n * @private\n */\n PdfViewer.prototype.fireAjaxRequestFailed = function (errorStatusCode, errorMessage, action, retryCount) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'ajaxRequestFailed', documentName: this.fileName, errorStatusCode: errorStatusCode, errorMessage: errorMessage, action: action };\n if (retryCount) {\n eventArgs.retryCount = true;\n }\n this.trigger('ajaxRequestFailed', eventArgs);\n };\n /**\n * @param action\n * @param data\n * @private\n */\n PdfViewer.prototype.fireAjaxRequestSuccess = function (action, data) {\n var eventArgs = { name: 'ajaxRequestSuccess', documentName: this.fileName, action: action, data: data, cancel: false };\n this.trigger('ajaxRequestSuccess', eventArgs);\n if (eventArgs.cancel) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @param action\n * @private\n */\n PdfViewer.prototype.fireValidatedFailed = function (action) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n var eventArgs = { formField: this.formFieldCollections, documentName: this.fileName, nonFillableFields: this.viewerBase.nonFillableFields };\n this.trigger('validateFormFields', eventArgs);\n }\n else {\n // eslint-disable-next-line\n var eventArgs = {};\n eventArgs.documentName = this.fileName;\n eventArgs.formFields = this.formFieldCollections;\n eventArgs.nonFillableFields = this.viewerBase.nonFillableFields;\n this.trigger('validateFormFields', eventArgs);\n }\n };\n /**\n * @param x\n * @param y\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.firePageClick = function (x, y, pageNumber) {\n var eventArgs = { name: 'pageClick', documentName: this.fileName, x: x, y: y, pageNumber: pageNumber };\n this.trigger('pageClick', eventArgs);\n };\n /**\n * @param previousPageNumber\n * @private\n */\n PdfViewer.prototype.firePageChange = function (previousPageNumber) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'pageChange', documentName: this.fileName, currentPageNumber: this.currentPageNumber, previousPageNumber: previousPageNumber };\n this.trigger('pageChange', eventArgs);\n if (isBlazor()) {\n //this._dotnetInstance.invokeMethodAsync('OnPageChanged', this.currentPageNumber);\n this.viewerBase.blazorUIAdaptor.pageChanged(this.currentPageNumber);\n }\n };\n /**\n * @private\n */\n PdfViewer.prototype.fireZoomChange = function () {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'zoomChange', zoomValue: this.magnificationModule.zoomFactor * 100, previousZoomValue: this.magnificationModule.previousZoomFactor * 100 };\n this.trigger('zoomChange', eventArgs);\n };\n /**\n * @param hyperlink\n * @param hyperlinkElement\n * @private\n */\n PdfViewer.prototype.fireHyperlinkClick = function (hyperlink, hyperlinkElement) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { name: 'hyperlinkClick', hyperlink: hyperlink, hyperlinkElement: hyperlinkElement, cancel: false };\n if (!isBlazor()) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('hyperlinkClick', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('hyperlinkClick', eventArgs);\n _a.label = 3;\n case 3:\n if (eventArgs.hyperlinkElement.href != eventArgs.hyperlink) {\n hyperlinkElement.href = eventArgs.hyperlink;\n }\n if (eventArgs.cancel) {\n return [2 /*return*/, false];\n }\n else {\n return [2 /*return*/, true];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param hyperlinkElement\n * @private\n */\n PdfViewer.prototype.fireHyperlinkHover = function (hyperlinkElement) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'hyperlinkMouseOver', hyperlinkElement: hyperlinkElement };\n this.trigger('hyperlinkMouseOver', eventArgs);\n };\n /**\n * @param fieldName\n * @param value\n * @private\n */\n PdfViewer.prototype.fireFocusOutFormField = function (fieldName, value) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'formFieldFocusOut', fieldName: fieldName, value: value };\n // eslint-disable-next-line\n this.trigger('formFieldFocusOut', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param settings\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param labelSettings\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationAdd = function (pageNumber, index, type, bounds, settings, textMarkupContent, tmStartIndex, tmEndIndex, labelSettings, multiPageCollection, customStampName) {\n var eventArgs = { name: 'annotationAdd', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBound: bounds, annotationSettings: settings };\n if (textMarkupContent) {\n if (isBlazor()) {\n eventArgs.annotationSettings.textMarkupContent = textMarkupContent;\n eventArgs.annotationSettings.textMarkupStartIndex = tmStartIndex;\n eventArgs.annotationSettings.textMarkupEndIndex = tmEndIndex;\n }\n else {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n }\n if (labelSettings) {\n eventArgs.labelSettings = labelSettings;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n if (type === 'Image') {\n eventArgs.customStampName = customStampName;\n }\n this.viewerBase.isAnnotationSelect = false;\n this.trigger('annotationAdd', eventArgs);\n if (isBlazor()) {\n // this._dotnetInstance.invokeMethodAsync('AnnotationAdd', null);\n this.viewerBase.blazorUIAdaptor.annotationAdd();\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationRemove = function (pageNumber, index, type, bounds, textMarkupContent, tmStartIndex, tmEndIndex, multiPageCollection) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationRemove', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBounds: bounds };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationRemove', eventArgs);\n };\n /**\n * @param value\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireBeforeAddFreeTextAnnotation = function (value) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'beforeAddFreeText', value: value };\n // eslint-disable-next-line\n this.trigger('beforeAddFreeText', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentAdd = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentAdd', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentAdd', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentEdit = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentEdit', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentEdit', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentDelete = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentDelete', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentDelete', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentSelect = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentSelect', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentSelect', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @param statusChange\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentStatusChanged = function (id, text, annotation, statusChange) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentStatusChanged', id: id, text: text, annotation: annotation, status: statusChange };\n // eslint-disable-next-line\n this.trigger('commentStatusChanged', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param isColorChanged\n * @param isOpacityChanged\n * @param isTextChanged\n * @param isCommentsChanged\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationPropertiesChange = function (pageNumber, index, type, isColorChanged, isOpacityChanged, isTextChanged, isCommentsChanged, textMarkupContent, tmStartIndex, tmEndIndex, multiPageCollection) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationPropertiesChange', pageIndex: pageNumber, annotationId: index, annotationType: type, isColorChanged: isColorChanged, isOpacityChanged: isOpacityChanged, isTextChanged: isTextChanged, isCommentsChanged: isCommentsChanged };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationPropertiesChange', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureAdd = function (pageNumber, index, type, bounds, opacity, strokeColor, thickness, data) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, bounds: bounds, opacity: opacity };\n if (thickness) {\n eventArgs.thickness = thickness;\n }\n if (strokeColor) {\n eventArgs.strokeColor = strokeColor;\n }\n if (data) {\n eventArgs.data = data;\n }\n this.trigger('addSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureRemove = function (pageNumber, index, type, bounds) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, bounds: bounds };\n this.trigger('removeSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureMove = function (pageNumber, id, type, opacity, strokeColor, thickness, previousPosition, currentPosition) {\n var eventArgs = { pageIndex: pageNumber, id: id, type: type, opacity: opacity, strokeColor: strokeColor, thickness: thickness, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('moveSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param isStrokeColorChanged\n * @param isOpacityChanged\n * @param isThicknessChanged\n * @param oldProp\n * @param newProp\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignaturePropertiesChange = function (pageNumber, index, type, isStrokeColorChanged, isOpacityChanged, isThicknessChanged, oldProp, newProp) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, isStrokeColorChanged: isStrokeColorChanged, isOpacityChanged: isOpacityChanged, isThicknessChanged: isThicknessChanged, oldValue: oldProp, newValue: newProp };\n this.trigger('signaturePropertiesChange', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param currentPosition\n * @param previousPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureResize = function (pageNumber, index, type, opacity, strokeColor, thickness, currentPosition, previousPosition) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, opacity: opacity, strokeColor: strokeColor, thickness: thickness, currentPosition: currentPosition, previousPosition: previousPosition };\n this.trigger('resizeSignature', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureSelect = function (id, pageNumber, signature) {\n var eventArgs = { id: id, pageIndex: pageNumber, signature: signature };\n this.trigger('signatureSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @param annotationCollection\n * @param multiPageCollection\n * @param isSelected\n * @param annotationAddMode\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationSelect = function (id, pageNumber, annotation, annotationCollection, multiPageCollection, isSelected, annotationAddMode) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n if (annotationCollection) {\n // eslint-disable-next-line max-len\n eventArgs = { name: 'annotationSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation, annotationCollection: annotationCollection };\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n if (isSelected) {\n eventArgs.isProgrammaticSelection = isSelected;\n }\n if (annotationAddMode) {\n eventArgs.annotationAddMode = annotationAddMode;\n }\n if (isBlazor()) {\n if (annotation.type === 'FreeText') {\n // eslint-disable-next-line\n var fontStyle = { isBold: false, isItalic: false, isStrikeout: false, isUnderline: false };\n if (annotation.fontStyle === 1) {\n fontStyle.isBold = true;\n }\n else if (annotation.fontStyle === 2) {\n fontStyle.isItalic = true;\n }\n else if (annotation.fontStyle === 3) {\n fontStyle.isStrikeout = true;\n }\n else if (annotation.fontStyle === 4) {\n fontStyle.isUnderline = true;\n }\n annotation.fontStyle = fontStyle;\n }\n //this._dotnetInstance.invokeMethodAsync('AnnotationSelect', annotation.type);\n this.viewerBase.blazorUIAdaptor.annotationSelect(annotation.type);\n }\n this.trigger('annotationSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationUnSelect = function (id, pageNumber, annotation) {\n if (isBlazor()) {\n this.viewerBase.blazorUIAdaptor.annotationUnSelect();\n }\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationUnSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n this.trigger('annotationUnSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationDoubleClick = function (id, pageNumber, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationDblClick', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n this.trigger('annotationDoubleClick', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.fireTextSelectionStart = function (pageNumber) {\n this.isTextSelectionStarted = true;\n var eventArgs = { pageIndex: pageNumber };\n this.trigger('textSelectionStart', eventArgs);\n };\n /**\n * @param pageNumber\n * @param text\n * @param bound\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSelectionEnd = function (pageNumber, text, bound) {\n if (this.isTextSelectionStarted) {\n var eventArgs = { pageIndex: pageNumber, textContent: text, textBounds: bound };\n this.trigger('textSelectionEnd', eventArgs);\n this.isTextSelectionStarted = false;\n }\n };\n /**\n * @param canvas\n * @param index\n * @private\n */\n PdfViewer.prototype.renderDrawing = function (canvas, index) {\n if (isNullOrUndefined(index) && this.viewerBase.activeElements.activePageID && !this.viewerBase.isPrint) {\n index = this.viewerBase.activeElements.activePageID;\n }\n if (this.annotation) {\n this.annotation.renderAnnotations(index, null, null, null, canvas);\n }\n else if (this.formDesignerModule) {\n this.formDesignerModule.updateCanvas(index, canvas);\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param settings\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param labelSettings\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationResize = function (pageNumber, index, type, bounds, settings, textMarkupContent, tmStartIndex, tmEndIndex, labelSettings, multiPageCollection) {\n var eventArgs = { name: 'annotationResize', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBound: bounds, annotationSettings: settings };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (labelSettings) {\n eventArgs.labelSettings = labelSettings;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationResize', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param annotationSettings\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMoving = function (pageNumber, id, type, annotationSettings, previousPosition, currentPosition) {\n var eventArgs = { name: 'annotationMoving', pageIndex: pageNumber, annotationId: id, annotationType: type, annotationSettings: annotationSettings, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('annotationMoving', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param annotationSettings\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMove = function (pageNumber, id, type, annotationSettings, previousPosition, currentPosition) {\n var eventArgs = { name: 'annotationMove', pageIndex: pageNumber, annotationId: id, annotationType: type, annotationSettings: annotationSettings, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('annotationMove', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotationType\n * @param bounds\n * @param annotation\n * @param currentPosition\n * @param mousePosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMouseover = function (id, pageNumber, annotationType, bounds, annotation, currentPosition, mousePosition) {\n var eventArgs = { name: 'annotationMouseover', annotationId: id, pageIndex: pageNumber, annotationType: annotationType, annotationBounds: bounds, annotation: annotation, pageX: currentPosition.left, pageY: currentPosition.top, X: mousePosition.left, Y: mousePosition.top };\n if (isBlazor()) {\n if (annotation.subject === 'Perimeter calculation') {\n eventArgs.annotationType = 'Perimeter';\n }\n else if (annotation.subject === 'Area calculation') {\n eventArgs.annotationType = 'Area';\n }\n else if (annotation.subject === 'Volume calculation') {\n eventArgs.annotationType = 'Volume';\n }\n else if (annotation.subject === 'Arrow') {\n eventArgs.annotationType = 'Arrow';\n }\n else if (annotation.subject === 'Circle') {\n eventArgs.annotationType = 'Circle';\n }\n }\n this.trigger('annotationMouseover', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMouseLeave = function (pageNumber) {\n var eventArgs = { name: 'annotationMouseLeave', pageIndex: pageNumber };\n this.trigger('annotationMouseLeave', eventArgs);\n };\n /**\n * @param pageX\n * @param pageY\n * @private\n */\n PdfViewer.prototype.firePageMouseover = function (pageX, pageY) {\n var eventArgs = { pageX: pageX, pageY: pageY };\n this.trigger('pageMouseover', eventArgs);\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireDownloadStart = function (fileName) {\n var eventArgs = { fileName: fileName };\n this.trigger('downloadStart', eventArgs);\n };\n /**\n * @param fileName\n * @param downloadData\n * @private\n */\n PdfViewer.prototype.fireDownloadEnd = function (fileName, downloadData) {\n var eventArgs = { fileName: fileName, downloadDocument: downloadData };\n this.trigger('downloadEnd', eventArgs);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.firePrintStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { fileName: this.downloadFileName, cancel: false };\n if (!isBlazor) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('printStart', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('printStart', eventArgs);\n _a.label = 3;\n case 3:\n if (!eventArgs.cancel) {\n this.printModule.print();\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param eventName\n * @param args\n * @param eventName\n * @param args\n * @private\n */\n PdfViewer.prototype.triggerEvent = function (eventName, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.trigger(eventName, args)];\n case 1:\n eventArgs = _a.sent();\n if (isBlazor && typeof eventArgs === 'string') {\n eventArgs = JSON.parse(eventArgs);\n }\n return [2 /*return*/, eventArgs];\n }\n });\n });\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.firePrintEnd = function (fileName) {\n var eventArgs = { fileName: fileName };\n this.trigger('printEnd', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.fireThumbnailClick = function (pageNumber) {\n var eventArgs = { name: 'thumbnailClick', pageNumber: pageNumber };\n this.trigger('thumbnailClick', eventArgs);\n };\n /**\n * @param pageNumber\n * @param position\n * @param text\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireBookmarkClick = function (pageNumber, position, text, fileName) {\n // eslint-disable-next-line\n var eventArgs = { name: 'bookmarkClick', pageNumber: pageNumber, position: position, text: text, fileName: fileName };\n this.trigger('bookmarkClick', eventArgs);\n };\n /**\n * @param importData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportStart = function (importData) {\n var eventArgs = { name: 'importAnnotationsStart', importData: importData, formFieldData: null };\n this.trigger('importStart', eventArgs);\n };\n /**\n * @param exportData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportStart = function (exportData) {\n var eventArgs = { name: 'exportAnnotationsStart', exportData: exportData, formFieldData: null };\n this.trigger('exportStart', eventArgs);\n };\n /**\n * @param importData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportSuccess = function (importData) {\n var eventArgs = { name: 'importAnnotationsSuccess', importData: importData, formFieldData: null };\n this.trigger('importSuccess', eventArgs);\n };\n /**\n * @param exportData\n * @param fileName\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportSuccess = function (exportData, fileName) {\n var eventArgs = { name: 'exportAnnotationsSuccess', exportData: exportData, fileName: fileName, formFieldData: null };\n this.trigger('exportSuccess', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'importAnnotationsFailed', importData: data, errorDetails: errorDetails, formFieldData: null };\n this.trigger('importFailed', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'exportAnnotationsFailed', exportData: data, errorDetails: errorDetails, formFieldData: null };\n this.trigger('exportFailed', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportStarted = function (data) {\n var eventArgs = { name: 'importFormFieldsStart', importData: null, formFieldData: data };\n this.trigger('importStart', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportStarted = function (data) {\n var eventArgs = { name: 'exportFormFieldsStart', exportData: null, formFieldData: data };\n this.trigger('exportStart', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportSuccess = function (data) {\n var eventArgs = { name: 'importFormFieldsSuccess', importData: data, formFieldData: data };\n this.trigger('importSuccess', eventArgs);\n };\n /**\n * @param data\n * @param fileName\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportSuccess = function (data, fileName) {\n var eventArgs = { name: 'exportFormFieldsSuccess', exportData: data, fileName: fileName, formFieldData: data };\n this.trigger('exportSuccess', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'importFormFieldsfailed', importData: data, errorDetails: errorDetails, formFieldData: data };\n this.trigger('importFailed', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'exportFormFieldsFailed', exportData: data, errorDetails: errorDetails, formFieldData: data };\n this.trigger('exportFailed', eventArgs);\n };\n /**\n * @param documentCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextExtractionCompleted = function (documentCollection) {\n var eventArgs = { documentTextCollection: documentCollection };\n this.trigger('extractTextCompleted', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchStart = function (searchText, isMatchcase) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchStart', searchText: searchText, matchCase: isMatchcase };\n this.trigger('textSearchStart', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchComplete = function (searchText, isMatchcase) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchComplete', searchText: searchText, matchCase: isMatchcase };\n this.trigger('textSearchComplete', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @param bounds\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchHighlight = function (searchText, isMatchcase, bounds, pageNumber) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchHighlight', searchText: searchText, matchCase: isMatchcase, bounds: bounds, pageNumber: pageNumber };\n this.trigger('textSearchHighlight', eventArgs);\n };\n /**\n * @param bounds\n * @param commonStyle\n * @param cavas\n * @param index\n * @private\n */\n PdfViewer.prototype.renderAdornerLayer = function (bounds, commonStyle, cavas, index) {\n renderAdornerLayer(bounds, commonStyle, cavas, index, this);\n };\n /**\n * @param index\n * @param currentSelector\n * @private\n */\n PdfViewer.prototype.renderSelector = function (index, currentSelector) {\n this.drawing.renderSelector(index, currentSelector);\n };\n /**\n * @param objArray\n * @param currentSelector\n * @param multipleSelection\n * @param preventUpdate\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.select = function (objArray, currentSelector, multipleSelection, preventUpdate) {\n var allowServerDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n if (this.annotationModule) {\n var module = this.annotationModule.textMarkupAnnotationModule;\n var annotationSelect = module && module.selectTextMarkupCurrentPage;\n // eslint-disable-next-line\n var annotation = this.selectedItems.annotations[0];\n if (annotationSelect) {\n // eslint-disable-next-line\n var currentAnnot = this.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n this.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(annotationSelect, true);\n this.fireAnnotationUnSelect(currentAnnot.annotName, currentAnnot.pageNumber, currentAnnot);\n }\n if (!multipleSelection) {\n if (this.viewerBase.activeElements && this.viewerBase.activeElements.activePageID >= 0) {\n if (!this.viewerBase.isNewStamp && annotation && annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage') {\n this.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n }\n }\n }\n if (this.formDesignerModule) {\n var formField = this.selectedItems.formFields[0];\n if (formField) {\n if (this.formDesignerModule && formField && formField.formFieldAnnotationType) {\n var field = {\n name: formField.name, id: formField.id, value: formField.value, fontFamily: formField.fontFamily, fontSize: formField.fontSize, fontStyle: formField.fontStyle,\n color: formField.color, backgroundColor: formField.backgroundColor, borderColor: formField.borderColor,\n thickness: formField.thickness, alignment: formField.alignment, isReadonly: formField.isReadonly, visibility: formField.visibility,\n maxLength: formField.maxLength, isRequired: formField.isRequired, isPrint: formField.isPrint, rotation: formField.rotateAngle, tooltip: formField.tooltip, options: formField.options,\n isChecked: formField.isChecked, isSelected: formField.isSelected\n };\n this.fireFormFieldUnselectEvent(\"formFieldUnselect\", field, formField.pageIndex);\n }\n }\n }\n var proxy = this;\n this.viewerBase.renderedPagesList.forEach(function (item) {\n proxy.clearSelection(item);\n });\n this.drawing.select(objArray, currentSelector, multipleSelection, preventUpdate);\n this.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @param pageId\n * @private\n */\n PdfViewer.prototype.getPageTable = function (pageId) {\n return this.drawing.getPageTable(pageId);\n };\n /**\n * @param diffX\n * @param diffY\n * @param pageIndex\n * @param currentSelector\n * @param helper\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.dragSelectedObjects = function (diffX, diffY, pageIndex, currentSelector, helper) {\n return this.drawing.dragSelectedObjects(diffX, diffY, pageIndex, currentSelector, helper);\n };\n /**\n * @param sx\n * @param sy\n * @param pivot\n * @private\n */\n PdfViewer.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n return this.drawing.scaleSelectedItems(sx, sy, pivot);\n };\n /**\n * @param endPoint\n * @param obj\n * @param point\n * @param segment\n * @param target\n * @param targetPortId\n * @param currentSelector\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId, currentSelector) {\n return this.drawing.dragConnectorEnds(endPoint, obj, point, segment, target, null, currentSelector);\n };\n /**\n * @param pageId\n * @private\n */\n PdfViewer.prototype.clearSelection = function (pageId) {\n var allowServerDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var selectormodel = this.selectedItems;\n var node = selectormodel.annotations.length > 0 ? this.selectedItems.annotations[0] : this.selectedItems.formFields[0];\n if (selectormodel.annotations.length > 0) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.annotations = [];\n selectormodel.wrapper = null;\n }\n else if (selectormodel.formFields.length > 0) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.formFields = [];\n selectormodel.wrapper = null;\n }\n this.drawing.clearSelectorLayer(pageId);\n this.viewerBase.isAnnotationSelect = false;\n this.viewerBase.isFormFieldSelect = false;\n if (this.annotationModule) {\n var module = this.annotationModule.textMarkupAnnotationModule;\n if (module) {\n var annotationSelect = module.selectTextMarkupCurrentPage;\n this.annotationModule.textMarkupAnnotationModule.clearCurrentSelectedAnnotation();\n this.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(annotationSelect);\n }\n }\n this.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * Get page number from the user coordinates x and y.\n *\n * @param {Point} clientPoint - The user will provide a x, y coordinates.\n * @returns number\n */\n PdfViewer.prototype.getPageNumberFromClientPoint = function (clientPoint) {\n var pageNumber = this.viewerBase.getPageNumberFromClientPoint(clientPoint);\n return pageNumber;\n };\n /**\n * Convert user coordinates to the PDF page coordinates.\n *\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertClientPointToPagePoint = function (clientPoint, pageNumber) {\n var pagePoint = this.viewerBase.convertClientPointToPagePoint(clientPoint, pageNumber);\n return pagePoint;\n };\n /**\n * Convert page coordinates to the user coordinates.\n *\n * @param {Point} pagePoint - The user should provide a page x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertPagePointToClientPoint = function (pagePoint, pageNumber) {\n var clientPoint = this.viewerBase.convertPagePointToClientPoint(pagePoint, pageNumber);\n return clientPoint;\n };\n /**\n * Convert page coordinates to the scrolling coordinates.\n *\n * @param {Point} pagePoint - The user should provide a page x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertPagePointToScrollingPoint = function (pagePoint, pageNumber) {\n var scrollingPoint = this.viewerBase.convertPagePointToScrollingPoint(pagePoint, pageNumber);\n return scrollingPoint;\n };\n /**\n * Brings the given rectangular region to view and zooms in the document to fit the region in client area (view port).\n *\n * @param {Rect} rectangle - Specifies the region in client coordinates that is to be brought to view.\n */\n PdfViewer.prototype.zoomToRect = function (rectangle) {\n this.magnificationModule.zoomToRect(rectangle);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.add = function (obj) {\n return this.drawing.add(obj);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.remove = function (obj) {\n return this.drawing.remove(obj);\n };\n /**\n * @private\n */\n PdfViewer.prototype.copy = function () {\n if (this.annotation)\n this.annotation.isShapeCopied = true;\n else if (this.formDesigner && this.designerMode)\n this.formDesigner.isShapeCopied = true;\n return this.drawing.copy();\n };\n /**\n * @param angle\n * @param currentSelector\n * @private\n */\n PdfViewer.prototype.rotate = function (angle, currentSelector) {\n return this.drawing.rotate(this.selectedItems, angle, null, currentSelector);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.paste = function (obj) {\n var index;\n if (this.viewerBase.activeElements.activePageID) {\n index = this.viewerBase.activeElements.activePageID;\n }\n return this.drawing.paste(obj, index || 0);\n };\n /**\n * @private\n */\n PdfViewer.prototype.refresh = function () {\n for (var i = 0; i < this.annotations.length; i++) {\n if (this.zIndexTable.length !== undefined) {\n var notFound = true;\n for (var i_1 = 0; i_1 < this.zIndexTable.length; i_1++) {\n var objects = this.zIndexTable[i_1].objects;\n for (var j = 0; j < objects.length; j++) {\n objects.splice(j, 1);\n }\n delete this.zIndexTable[i_1];\n }\n if (this.annotations[i]) {\n delete this.annotations[i];\n }\n if (this.selectedItems.annotations && this.selectedItems.annotations[i]) {\n delete this.selectedItems.annotations[i];\n }\n this.zIndexTable = [];\n this.renderDrawing();\n }\n if (this.annotations && this.annotations.length !== 0) {\n this.annotations.length = 0;\n this.selectedItems.annotations.length = 0;\n }\n }\n };\n /**\n * @private\n */\n PdfViewer.prototype.cut = function () {\n var index;\n if (this.viewerBase.activeElements.activePageID) {\n index = this.viewerBase.activeElements.activePageID;\n }\n if (this.annotation)\n this.annotation.isShapeCopied = true;\n else if (this.formDesigner && this.designerMode)\n this.formDesigner.isShapeCopied = true;\n return this.drawing.cut(index || 0);\n };\n /**\n * @param actualObject\n * @param node\n * @private\n */\n PdfViewer.prototype.nodePropertyChange = function (actualObject, node) {\n this.drawing.nodePropertyChange(actualObject, node);\n };\n /**\n * enableServerDataBinding method\n *\n * @returns { void } enableServerDataBinding method.\n * @param {boolean} enable - provide the node value.\n *\n * @private\n */\n PdfViewer.prototype.enableServerDataBinding = function (enable, clearBulkChanges) {\n if (clearBulkChanges === void 0) { clearBulkChanges = false; }\n if (isBlazor()) {\n this.allowServerDataBinding = enable;\n if (clearBulkChanges) {\n this.bulkChanges = {};\n }\n }\n };\n /**\n * @param tx\n * @param ty\n * @param pageIndex\n * @param nodeBounds\n * @param isStamp\n * @param isSkip\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.checkBoundaryConstraints = function (tx, ty, pageIndex, nodeBounds, isStamp, isSkip) {\n return this.drawing.checkBoundaryConstraints(tx, ty, pageIndex, nodeBounds, isStamp, isSkip);\n };\n __decorate([\n Property()\n ], PdfViewer.prototype, \"serviceUrl\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"pageCount\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isDocumentEdited\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"currentPageNumber\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"documentPath\", void 0);\n __decorate([\n Property(null)\n ], PdfViewer.prototype, \"exportAnnotationFileName\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"downloadFileName\", void 0);\n __decorate([\n Property('auto')\n ], PdfViewer.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], PdfViewer.prototype, \"width\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableToolbar\", void 0);\n __decorate([\n Property(1)\n ], PdfViewer.prototype, \"retryCount\", void 0);\n __decorate([\n Property([500])\n ], PdfViewer.prototype, \"retryStatusCodes\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"showNotificationDialog\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableNavigationToolbar\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableCommentPanel\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isCommandPanelOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableMultiLineOverlap\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isValidFreeText\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isAnnotationToolbarOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isAnnotationToolbarVisible\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isFormDesignerToolbarVisible\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableDownload\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePrint\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePrintRotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableThumbnail\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isThumbnailViewOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isSignatureEditable\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableBookmark\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableBookmarkStyles\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableHyperlink\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableHandwrittenSignature\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableInkAnnotation\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"restrictZoomRequest\", void 0);\n __decorate([\n Property('CurrentTab')\n ], PdfViewer.prototype, \"hyperlinkOpenState\", void 0);\n __decorate([\n Property('RightClick')\n ], PdfViewer.prototype, \"contextMenuOption\", void 0);\n __decorate([\n Property([])\n ], PdfViewer.prototype, \"disableContextMenuItems\", void 0);\n __decorate([\n Property({ name: '', id: '', type: '', isReadOnly: false, isSelected: false, isChecked: false, value: '', signatureType: [''], fontName: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', visibility: 'visible', maxLength: 0, isRequired: false, isPrint: false, tooltip: '', pageIndex: -1, options: [], signatureIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' } })\n ], PdfViewer.prototype, \"formFieldCollections\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableNavigation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAutoComplete\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableMagnification\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableShapeLabel\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableImportAnnotationMeasurement\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePinchZoom\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextSelection\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextSearch\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormFields\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormDesigner\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"designerMode\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableFormFieldsValidation\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isFormFieldDocument\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableDesktopMode\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"hideSaveSignature\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFreeText\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextMarkupAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableShapeAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableMeasureAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableStampAnnotations\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableStickyNotesAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAnnotationToolbar\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormDesignerToolbar\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isBookmarkPanelOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isInitialFieldToolbarSelection\", void 0);\n __decorate([\n Property('TextSelection')\n ], PdfViewer.prototype, \"interactionMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"zoomMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"signatureFitMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"printMode\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"zoomValue\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableZoomOptimization\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isExtractText\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isMaintainSelection\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"hideEmptyDigitalSignatureFields\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"showDigitalSignatureAppearance\", void 0);\n __decorate([\n Property('M/d/yyyy h:mm:ss a')\n ], PdfViewer.prototype, \"dateTimeFormat\", void 0);\n __decorate([\n Property({ showTooltip: true, toolbarItems: ['OpenOption', 'UndoRedoTool', 'PageNavigationTool', 'MagnificationTool', 'PanTool', 'SelectionTool', 'CommentTool', 'SubmitForm', 'AnnotationEditTool', 'FormDesignerEditTool', 'FreeTextAnnotationOption', 'InkAnnotationOption', 'ShapeAnnotationOption', 'StampAnnotation', 'SignatureOption', 'SearchOption', 'PrintOption', 'DownloadOption'], annotationToolbarItems: ['HighlightTool', 'UnderlineTool', 'StrikethroughTool', 'ColorEditTool', 'OpacityEditTool', 'AnnotationDeleteTool', 'StampAnnotationTool', 'HandWrittenSignatureTool', 'InkAnnotationTool', 'ShapeTool', 'CalibrateTool', 'StrokeColorEditTool', 'ThicknessEditTool', 'FreeTextAnnotationTool', 'FontFamilyAnnotationTool', 'FontSizeAnnotationTool', 'FontStylesAnnotationTool', 'FontAlignAnnotationTool', 'FontColorAnnotationTool', 'CommentPanelTool'], formDesignerToolbarItems: ['TextboxTool', 'PasswordTool', 'CheckBoxTool', 'RadioButtonTool', 'DropdownTool', 'ListboxTool', 'DrawSignatureTool', 'DeleteTool'] })\n ], PdfViewer.prototype, \"toolbarSettings\", void 0);\n __decorate([\n Property({ ajaxHeaders: [], withCredentials: false })\n ], PdfViewer.prototype, \"ajaxRequestSettings\", void 0);\n __decorate([\n Property({ customStampName: '', customStampImageSource: '' })\n ], PdfViewer.prototype, \"customStamp\", void 0);\n __decorate([\n Property({ load: 'Load', renderPages: 'RenderPdfPages', unload: 'Unload', download: 'Download', renderThumbnail: 'RenderThumbnailImages', print: 'PrintImages', renderComments: 'RenderAnnotationComments', importAnnotations: 'ImportAnnotations', exportAnnotations: 'ExportAnnotations', importFormFields: 'ImportFormFields', exportFormFields: 'ExportFormFields', renderTexts: 'RenderPdfTexts' })\n ], PdfViewer.prototype, \"serverActionSettings\", void 0);\n __decorate([\n Property({ name: '', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', thickness: 1, signatureIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' }, signatureDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"signatureFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', thickness: 1, initialIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' }, initialDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"initialFieldSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#FFDF56', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"highlightSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#ff0000', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"strikethroughSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#00ff00', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"underlineSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'None', lineHeadEndStyle: 'None', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"lineSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Closed', lineHeadEndStyle: 'Closed', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"arrowSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"rectangleSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', borderColor: '#ff0000', fontColor: '#000', fontSize: 16, labelHeight: 24.6, labelMaxWidth: 151, labelContent: 'Label' })\n ], PdfViewer.prototype, \"shapeLabelSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"circleSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"polygonSettings\", void 0);\n __decorate([\n Property({ opacity: 1, author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, dynamicStamps: [DynamicStampItem.Revised, DynamicStampItem.Reviewed, DynamicStampItem.Received, DynamicStampItem.Confidential, DynamicStampItem.Approved, DynamicStampItem.NotApproved], signStamps: [SignStampItem.Witness, SignStampItem.InitialHere, SignStampItem.SignHere, SignStampItem.Accepted, SignStampItem.Rejected], standardBusinessStamps: [StandardBusinessStampItem.Approved, StandardBusinessStampItem.NotApproved, StandardBusinessStampItem.Draft, StandardBusinessStampItem.Final, StandardBusinessStampItem.Completed, StandardBusinessStampItem.Confidential, StandardBusinessStampItem.ForPublicRelease, StandardBusinessStampItem.NotForPublicRelease, StandardBusinessStampItem.ForComment, StandardBusinessStampItem.Void, StandardBusinessStampItem.PreliminaryResults, StandardBusinessStampItem.InformationOnly], allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"stampSettings\", void 0);\n __decorate([\n Property({ opacity: 1, author: 'Guest', width: 0, height: 0, left: 0, top: 0, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, enableCustomStamp: true, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"customStampSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Closed', lineHeadEndStyle: 'Closed', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, leaderLength: 40, resizeCursorType: CursorType.move, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"distanceSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Open', lineHeadEndStyle: 'Open', minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"perimeterSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"areaSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"radiusSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"volumeSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', opacity: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"stickyNotesSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', borderColor: '#ffffff00', author: 'Guest', borderWidth: 1, width: 151, fontSize: 16, height: 24.6, fontColor: '#000', fontFamily: 'Helvetica', defaultText: 'Type Here', textAlignment: 'Left', fontStyle: FontStyle.None, allowTextOnly: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true, isReadonly: false, enableAutoFit: false })\n ], PdfViewer.prototype, \"freeTextSettings\", void 0);\n __decorate([\n Property({ conversionUnit: 'in', displayUnit: 'in', scaleRatio: 1, depth: 96 })\n ], PdfViewer.prototype, \"measurementSettings\", void 0);\n __decorate([\n Property({ selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null })\n ], PdfViewer.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property({ searchHighlightColor: '#fdd835', searchColor: '#8b4c12' })\n ], PdfViewer.prototype, \"textSearchColorSettings\", void 0);\n __decorate([\n Property({ displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false })\n ], PdfViewer.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property({ displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false })\n ], PdfViewer.prototype, \"initialDialogSettings\", void 0);\n __decorate([\n Property({ signatureItem: ['Signature', 'Initial'], saveSignatureLimit: 1, saveInitialLimit: 1, opacity: 1, strokeColor: '#000000', width: 150, height: 100, thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], signatureDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false }, initialDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"handWrittenSignatureSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', opacity: 1, strokeColor: '#ff0000', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"inkAnnotationSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, skipPrint: false, skipDownload: false, allowedInteractions: ['None'] })\n ], PdfViewer.prototype, \"annotationSettings\", void 0);\n __decorate([\n Property({ enableTileRendering: true, x: 0, y: 0 })\n ], PdfViewer.prototype, \"tileRenderingSettings\", void 0);\n __decorate([\n Property({ delayPageRequestTimeOnScroll: 100 })\n ], PdfViewer.prototype, \"scrollSettings\", void 0);\n __decorate([\n Property({ name: '', value: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', borderColor: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', maxLength: 0, isRequired: false, isPrint: true, tooltip: '', thickness: 1, isMultiline: false })\n ], PdfViewer.prototype, \"textFieldSettings\", void 0);\n __decorate([\n Property({ name: '', value: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', borderColor: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', maxLength: 0, isRequired: false, isPrint: true, tooltip: '', thickness: 1 })\n ], PdfViewer.prototype, \"passwordFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isChecked: false, backgroundColor: 'white', isReadOnly: false, visibility: 'visible', isPrint: true, tooltip: '', isRequired: false, thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"checkBoxFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isSelected: false, backgroundColor: 'white', isReadOnly: false, visibility: 'visible', isPrint: true, tooltip: '', isRequired: false, thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"radioButtonFieldSettings\", void 0);\n __decorate([\n Property({ name: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', options: [], thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"DropdownFieldSettings\", void 0);\n __decorate([\n Property({ name: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: false, tooltip: '', options: [], thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"listBoxFieldSettings\", void 0);\n __decorate([\n Property({ contextMenuAction: 'RightClick', contextMenuItems: [ContextMenuItem.Comment, ContextMenuItem.Copy, ContextMenuItem.Cut, ContextMenuItem.Delete, ContextMenuItem.Highlight, ContextMenuItem.Paste, ContextMenuItem.Properties, ContextMenuItem.ScaleRatio, ContextMenuItem.Strikethrough, ContextMenuItem.Underline] })\n ], PdfViewer.prototype, \"contextMenuSettings\", void 0);\n __decorate([\n Complex({}, Selector)\n ], PdfViewer.prototype, \"selectedItems\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentLoad\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentUnload\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentLoadFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"validateFormFields\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"hyperlinkClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"hyperlinkMouseOver\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"zoomChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationRemove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationPropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationResize\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"addSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"removeSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"moveSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"signaturePropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"resizeSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"signatureSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationUnSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationDoubleClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMoving\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMouseLeave\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"extractTextCompleted\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"thumbnailClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"bookmarkClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSelectionStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSelectionEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"downloadStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"buttonFieldClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"downloadEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"printStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"printEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchComplete\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchHighlight\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestInitiate\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentEdit\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentDelete\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentStatusChanged\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"beforeAddFreeText\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldFocusOut\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldRemove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldPropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMouseLeave\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldResize\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldUnselect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldDoubleClick\", void 0);\n __decorate([\n Collection([], PdfAnnotationBase)\n ], PdfViewer.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PdfFormFieldBase)\n ], PdfViewer.prototype, \"formFields\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"drawingObject\", void 0);\n PdfViewer = __decorate([\n NotifyPropertyChanges\n ], PdfViewer);\n return PdfViewer;\n}(Component));\nexport { PdfViewer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * React Component Base\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { extend, isNullOrUndefined, setValue, getValue, isObject } from '@syncfusion/ej2-base';\nvar defaulthtmlkeys = ['alt', 'className', 'disabled', 'form', 'id',\n 'readOnly', 'style', 'tabIndex', 'title', 'type', 'name',\n 'onClick', 'onFocus', 'onBlur'];\nvar delayUpdate = ['accordion', 'tab', 'splitter'];\nvar reactUid = 0;\nvar isColEName = new RegExp('\\]');\n// tslint:disable\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar ComponentBase = /** @class */ (function (_super) {\n __extends(ComponentBase, _super);\n function ComponentBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.mountingState = false;\n _this.attrKeys = [];\n _this.cachedTimeOut = 0;\n _this.isAppendCalled = false;\n _this.initRenderCalled = false;\n _this.isReactForeceUpdate = false;\n _this.isReact = true;\n _this.isshouldComponentUpdateCalled = false;\n _this.isCreated = false;\n return _this;\n }\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentWillMount\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.componentDidMount = function () {\n this.refreshChild(true);\n this.canDelayUpdate = delayUpdate.indexOf(this.getModuleName()) !== -1;\n // Used timeout to resolve template binding\n // Reference link: https://github.com/facebook/react/issues/10309#issuecomment-318433235\n // tslint:disable-next-line:no-any\n this.renderReactComponent();\n if (this.portals && this.portals.length) {\n this.mountingState = true;\n this.renderReactTemplates();\n this.mountingState = false;\n }\n };\n ComponentBase.prototype.componentDidUpdate = function (prev) {\n if (!this.isshouldComponentUpdateCalled && this.initRenderCalled && !this.isReactForeceUpdate) {\n this.isshouldComponentUpdateCalled = true;\n if (prev !== this.props) {\n this.refreshProperties(this.props, true);\n }\n }\n };\n ComponentBase.prototype.renderReactComponent = function () {\n var ele = this.reactElement;\n if (ele && !this.isAppendCalled) {\n this.isAppendCalled = true;\n this.appendTo(ele);\n }\n };\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops\n // tslint:disable-next-line:no-any\n /**\n * @private\n */\n ComponentBase.prototype.shouldComponentUpdate = function (nextProps) {\n this.isshouldComponentUpdateCalled = true;\n if (!this.initRenderCalled) {\n this.updateProperties(nextProps, true);\n return true;\n }\n if (!this.isAppendCalled) {\n clearTimeout(this.cachedTimeOut);\n this.isAppendCalled = true;\n this.appendTo(this.reactElement);\n }\n this.updateProperties(nextProps);\n return true;\n };\n /**\n * @private\n */\n ComponentBase.prototype.updateProperties = function (nextProps, silent) {\n var _this = this;\n var dProps = extend({}, nextProps);\n var keys = Object.keys(nextProps);\n var templateProps = ['valueTemplate', 'itemTemplate', 'headerTemplate', 'content'];\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] : templateProps;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var propkey = keys_1[_i];\n var isClassName = propkey === 'className';\n if (propkey === 'children') {\n continue;\n }\n if (!isClassName && !isNullOrUndefined(this.htmlattributes[\"\" + propkey]) &&\n this.htmlattributes[\"\" + propkey] !== dProps[\"\" + propkey]) {\n this.htmlattributes[\"\" + propkey] = dProps[\"\" + propkey];\n }\n if (this.compareValues(this.props[\"\" + propkey], nextProps[\"\" + propkey])) {\n delete dProps[\"\" + propkey];\n }\n else if (this.attrKeys.indexOf(propkey) !== -1) {\n if (isClassName) {\n this.clsName = true;\n var propsClsName = this.props[\"\" + propkey].split(' ');\n for (var i = 0; i < propsClsName.length; i++) {\n this.element.classList.remove(propsClsName[parseInt(i.toString(), 10)]);\n }\n var dpropsClsName = dProps[\"\" + propkey].split(' ');\n for (var j = 0; j < dpropsClsName.length; j++) {\n this.element.classList.add(dpropsClsName[parseInt(j.toString(), 10)]);\n }\n }\n else if (propkey !== 'disabled') {\n delete dProps[\"\" + propkey];\n }\n }\n else if (propkey === 'value' && nextProps[\"\" + propkey] === this[\"\" + propkey]) {\n delete dProps[\"\" + propkey];\n }\n else if (statelessTemplates.indexOf(propkey) > -1 && ((propkey === 'content' && typeof dProps[\"\" + propkey] === 'function') || (nextProps[\"\" + propkey].toString() === this[\"\" + propkey].toString()))) {\n delete dProps[\"\" + propkey];\n }\n }\n if (dProps['children']) {\n delete dProps['children'];\n }\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && (this.canDelayUpdate || this.props.delayUpdate)) {\n setTimeout(function () {\n _this.refreshProperties(dProps, nextProps, silent);\n });\n }\n else {\n this.refreshProperties(dProps, nextProps, silent);\n }\n };\n ComponentBase.prototype.refreshProperties = function (dProps, nextProps, silent) {\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] : [];\n if (Object.keys(dProps).length) {\n if (!silent) {\n // tslint:disable-next-line:no-any\n this.processComplexTemplate(dProps, this);\n }\n this.setProperties(dProps, silent);\n }\n if (statelessTemplates.indexOf('directiveTemplates') === -1) {\n this.refreshChild(silent, nextProps);\n }\n };\n ComponentBase.prototype.processComplexTemplate = function (curObject, context) {\n var compTemplate = context.complexTemplate;\n if (compTemplate) {\n for (var prop in compTemplate) {\n var PropVal = compTemplate[\"\" + prop];\n if (curObject[\"\" + prop]) {\n setValue(PropVal, getValue(prop, curObject), curObject);\n }\n }\n }\n };\n ComponentBase.prototype.getDefaultAttributes = function () {\n var _this = this;\n this.isReact = true;\n var propKeys = Object.keys(this.props);\n var stringValue = ['autocomplete', 'dropdownlist', 'combobox'];\n // if ((stringValue.indexOf(this.getModuleName()) !== -1) && (!isNullOrUndefined(this.props[\"value\"]))) {\n // this.value = (<{ [key: string]: Object }>this.props)[\"value\"];\n // }\n if (!this.htmlattributes) {\n this.htmlattributes = {};\n }\n this.attrKeys = defaulthtmlkeys.concat(this.controlAttributes || []);\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var prop = propKeys_1[_i];\n if (prop.indexOf('data-') !== -1 || prop.indexOf('aria-') !== -1 || this.attrKeys.indexOf(prop) !== -1) {\n if (this.htmlattributes[\"\" + prop] !== this.props[\"\" + prop]) {\n this.htmlattributes[\"\" + prop] = this.props[\"\" + prop];\n }\n }\n }\n if (!this.htmlattributes.ref) {\n /* tslint:disable:no-any */\n this.htmlattributes.ref = function (ele) {\n _this.reactElement = ele;\n };\n var keycompoentns = ['autocomplete', 'combobox', 'dropdownlist', 'dropdowntree', 'multiselect',\n 'listbox', 'colorpicker', 'numerictextbox', 'textbox',\n 'uploader', 'maskedtextbox', 'slider', 'datepicker', 'datetimepicker', 'daterangepicker', 'timepicker', 'checkbox', 'switch', 'radio'];\n if (keycompoentns.indexOf(this.getModuleName()) !== -1) {\n this.htmlattributes.key = '' + ComponentBase.reactUid;\n ComponentBase.reactUid++;\n }\n }\n if (this.clsName) {\n var clsList = this.element.classList;\n var className = this.htmlattributes['className'];\n for (var i = 0; i < clsList.length; i++) {\n if ((className.indexOf(clsList[parseInt(i.toString(), 10)]) === -1)) {\n this.htmlattributes['className'] = this.htmlattributes['className'] + ' ' + clsList[parseInt(i.toString(), 10)];\n }\n }\n this.clsName = false;\n }\n return this.htmlattributes;\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.trigger = function (eventName, eventProp, successHandler) {\n var _this = this;\n if (this.isDestroyed !== true && this.modelObserver) {\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n if ((eventName === 'change' || eventName === 'input')) {\n if (this.props.onChange && eventProp.event) {\n this.props.onChange.call(undefined, {\n syntheticEvent: eventProp.event,\n nativeEvent: { text: eventProp.value },\n value: eventProp.value,\n target: this\n });\n }\n }\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n if (eventName === 'created') {\n setTimeout(function () {\n _this.isCreated = true;\n if (!_this.isDestroyed) {\n _this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n }, 10);\n }\n else {\n this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n this.isProtectedOnChange = prevDetection;\n }\n };\n ComponentBase.prototype.compareValues = function (value1, value2) {\n var typeVal = typeof value1;\n var typeVal2 = typeof value2;\n if (typeVal === typeVal2) {\n if (value1 === value2) {\n return true;\n }\n if ((!isNullOrUndefined(value1) && value1.constructor) !== (!isNullOrUndefined(value2) && value2.constructor)) {\n return false;\n }\n if (value1 instanceof Date ||\n value1 instanceof RegExp ||\n value1 instanceof String ||\n value1 instanceof Number) {\n return value1.toString() === value2.toString();\n }\n if (isObject(value1) || Array.isArray(value1)) {\n var tempVal = value1;\n var tempVal2 = value2;\n if (isObject(tempVal)) {\n tempVal = [value1];\n tempVal2 = [value2];\n }\n return this.compareObjects(tempVal, tempVal2).status;\n }\n }\n return false;\n };\n ComponentBase.prototype.compareObjects = function (oldProps, newProps, propName) {\n var status = true;\n var lenSimilarity = (oldProps.length === newProps.length);\n var diffArray = [];\n if (lenSimilarity) {\n for (var i = 0, len = newProps.length; i < len; i++) {\n var curObj = {};\n var oldProp = oldProps[parseInt(i.toString(), 10)];\n var newProp = newProps[parseInt(i.toString(), 10)];\n var keys = Object.keys(newProp);\n if (keys.length !== 0) {\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var oldValue = oldProp[\"\" + key];\n var newValue = newProp[\"\" + key];\n if (key === 'items') {\n for (var _j = 0; _j < newValue.length; _j++) {\n if (this.getModuleName() === 'richtexteditor' && typeof (newValue[parseInt(_j.toString(), 10)]) === 'object') {\n return { status: true };\n }\n }\n }\n if (this.getModuleName() === 'grid' && key === 'field') {\n curObj[\"\" + key] = newValue;\n }\n if (!oldProp.hasOwnProperty(key) || !this.compareValues(oldValue, newValue)) {\n if (!propName) {\n return { status: false };\n }\n status = false;\n curObj[\"\" + key] = newValue;\n }\n }\n }\n else if (newProps[parseInt(i.toString(), 10)] === oldProps[parseInt(i.toString(), 10)]) {\n status = true;\n }\n else {\n if (!propName) {\n return { status: false };\n }\n status = false;\n }\n if (Object.keys(curObj).length) {\n diffArray.push({ index: i, value: curObj, key: propName });\n }\n }\n }\n else {\n status = false;\n }\n return { status: status, changedProperties: diffArray };\n };\n ComponentBase.prototype.refreshChild = function (silent, props) {\n if (this.checkInjectedModules) {\n var prevModule = this.getInjectedModules() || [];\n var curModule = this.getInjectedServices() || [];\n for (var _i = 0, curModule_1 = curModule; _i < curModule_1.length; _i++) {\n var mod = curModule_1[_i];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.injectedModules = prevModule;\n }\n if (this.directivekeys) {\n var changedProps = [];\n var directiveValue = this.validateChildren({}, this.directivekeys, (props || this.props));\n if (directiveValue && Object.keys(directiveValue).length) {\n if (!silent && this.skipRefresh) {\n for (var _a = 0, _b = this.skipRefresh; _a < _b.length; _a++) {\n var fields = _b[_a];\n delete directiveValue[\"\" + fields];\n }\n }\n if (this.prevProperties) {\n var dKeys = Object.keys(this.prevProperties);\n for (var i = 0; i < dKeys.length; i++) {\n var key = dKeys[parseInt(i.toString(), 10)];\n if (!directiveValue.hasOwnProperty(key)) {\n continue;\n }\n var compareOutput = this.compareObjects(this.prevProperties[\"\" + key], directiveValue[\"\" + key], key);\n if (compareOutput.status) {\n delete directiveValue[\"\" + key];\n }\n else {\n if (compareOutput.changedProperties.length) {\n changedProps = changedProps.concat(compareOutput.changedProperties);\n }\n var obj = {};\n obj[\"\" + key] = directiveValue[\"\" + key];\n this.prevProperties = extend(this.prevProperties, obj);\n }\n }\n }\n else {\n this.prevProperties = extend({}, directiveValue, {}, true);\n }\n if (changedProps.length) {\n if (this.getModuleName() === 'grid' && key === 'columns') {\n for (var _c1 = 0, allColumns = this.columns; _c1 < allColumns.length; _c1++) {\n var compareField1 = getValue('field', allColumns[parseInt(_c1.toString(), 10)]);\n var compareField2 = getValue(_c1 + '.value.field', changedProps);\n if (compareField1 === compareField2) {\n var propInstance = getValue(changedProps[parseInt(_c1.toString(), 10)].key + '.' + changedProps[parseInt(_c1.toString(), 10)].index, this);\n if (propInstance && propInstance.setProperties) {\n propInstance.setProperties(changedProps[parseInt(_c1.toString(), 10)].value);\n }\n else {\n extend(propInstance, changedProps[parseInt(_c1.toString(), 10)].value);\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n else {\n for (var _c = 0, changedProps_1 = changedProps; _c < changedProps_1.length; _c++) {\n var changes = changedProps_1[_c];\n var propInstance_1 = getValue(changes.key + '.' + changes.index, this);\n if (propInstance_1 && propInstance_1.setProperties) {\n propInstance_1.setProperties(changes.value);\n }\n else {\n extend(propInstance_1, changes.value);\n }\n }\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n };\n ComponentBase.prototype.componentWillUnmount = function () {\n clearTimeout(this.cachedTimeOut);\n var modulesName = ['dropdowntree', 'checkbox'];\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && this.isAppendCalled && this.element && ((!modulesName.indexOf(this.getModuleName())) ? document.body.contains(this.element) : true) && !this.isDestroyed && this.isCreated) {\n this.destroy();\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.appendReactElement = function (element, container) {\n var portal = ReactDOM.createPortal(element, container);\n if (!this.portals) {\n this.portals = [portal];\n }\n else {\n this.portals.push(portal);\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.renderReactTemplates = function (callback) {\n this.isReactForeceUpdate = true;\n if (callback) {\n this.forceUpdate(callback);\n }\n else {\n this.forceUpdate();\n }\n this.isReactForeceUpdate = false;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.clearTemplate = function (templateNames, index, callback) {\n var _this = this;\n var tempPortal = [];\n if (templateNames && templateNames.length) {\n Array.prototype.forEach.call(templateNames, function (propName) {\n var indexCount = 0;\n var propIndexCount = 0;\n _this.portals.forEach(function (portal) {\n if (portal.propName === propName) {\n tempPortal.push(propIndexCount);\n propIndexCount++;\n }\n });\n if (!isNullOrUndefined(index) && _this.portals[tempPortal[(\"\" + index)[parseInt(indexCount.toString(), 10)]]].propName === propName) {\n _this.portals.splice(index, 1);\n indexCount++;\n }\n else {\n for (var i = 0; i < _this.portals.length; i++) {\n if (_this.portals[parseInt(i.toString(), 10)].propName === propName) {\n _this.portals.splice(i, 1);\n i--;\n }\n }\n }\n });\n }\n else {\n this.portals = [];\n }\n this.renderReactTemplates(callback);\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.validateChildren = function (childCache, mapper, props) {\n var flag = false;\n var childs = React.Children.toArray(props.children);\n for (var _i = 0, childs_1 = childs; _i < childs_1.length; _i++) {\n var child = childs_1[_i];\n var ifield = this.getChildType(child);\n var key = mapper[\"\" + ifield];\n if (ifield && mapper) {\n // tslint:disable\n var childProps = this.getChildProps(React.Children.toArray(child.props.children), key);\n if (childProps.length) {\n flag = true;\n // tslint:disable\n childCache[child.type.propertyName || ifield] = childProps;\n }\n }\n }\n if (flag) {\n return childCache;\n }\n return null;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getChildType = function (child) {\n if (child.type && child.type.isDirective) {\n return child.type.moduleName || '';\n }\n return '';\n };\n ComponentBase.prototype.getChildProps = function (subChild, matcher) {\n var ret = [];\n for (var _i = 0, subChild_1 = subChild; _i < subChild_1.length; _i++) {\n var child = subChild_1[_i];\n var accessProp = false;\n var key = void 0;\n if (typeof matcher === 'string') {\n accessProp = true;\n key = matcher;\n }\n else {\n key = Object.keys(matcher)[0];\n }\n var prop = child.props;\n // tslint:disable-next-line:no-any\n var field = this.getChildType(child);\n if (field === key) {\n if (accessProp || !prop.children) {\n // tslint:disable\n var cacheVal = extend({}, prop, {}, true);\n // tslint:disable\n this.processComplexTemplate(cacheVal, child.type);\n ret.push(cacheVal);\n }\n else {\n var cachedValue = this.validateChildren(extend({}, prop), matcher[\"\" + key], prop) || prop;\n if (cachedValue['children']) {\n delete cachedValue['children'];\n }\n // tslint:disable\n this.processComplexTemplate(cachedValue, child.type);\n ret.push(cachedValue);\n }\n }\n }\n return ret;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getInjectedServices = function () {\n var childs = React.Children.toArray(this.props.children);\n for (var _i = 0, childs_2 = childs; _i < childs_2.length; _i++) {\n var child = childs_2[_i];\n /* tslint:disable:no-any */\n if (child.type.isService) {\n return child.props.services;\n }\n }\n return [];\n };\n /**\n * @private\n */\n ComponentBase.reactUid = 1;\n return ComponentBase;\n}(React.Component));\nexport { ComponentBase };\n/* tslint:enable:no-any */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * Directory base\n */\nvar ComplexBase = /** @class */ (function (_super) {\n __extends(ComplexBase, _super);\n function ComplexBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComplexBase.prototype.render = function () {\n return null;\n };\n ComplexBase.isDirective = true;\n return ComplexBase;\n}(React.PureComponent));\nexport { ComplexBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Dependency injection\n */\nimport * as React from 'react';\nvar Inject = /** @class */ (function (_super) {\n __extends(Inject, _super);\n function Inject() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // eslint-disable-next-line\n Inject.prototype.render = function () {\n return null;\n };\n Inject.isService = true;\n return Inject;\n}(React.PureComponent));\nexport { Inject };\n","/**\n * Template compiler for react\n */\nimport { setTemplateEngine, getTemplateEngine, extend } from '@syncfusion/ej2-base';\nimport * as ReactDOM from 'react-dom';\nimport * as React from 'react';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar stringCompiler = getTemplateEngine();\n// eslint-disable-next-line\nexport function compile(templateElement, helper) {\n if (typeof templateElement === 'string') {\n return stringCompiler(templateElement, helper);\n }\n else {\n return function (data, component, prop, element) {\n var actTemplate = templateElement;\n var actData = data;\n if (typeof actTemplate === 'object') {\n actTemplate = templateElement.template;\n actData = extend({}, data, templateElement.data || {});\n }\n var cEle;\n if (element) {\n cEle = element;\n }\n else {\n cEle = document.createElement('div');\n }\n var rele = React.createElement(actTemplate, actData);\n var portal = ReactDOM.createPortal(rele, cEle);\n portal.propName = prop;\n if (!component.portals) {\n component.portals = [portal];\n }\n else {\n component.portals.push(portal);\n }\n if (!element) {\n return [cEle];\n }\n };\n }\n}\nsetTemplateEngine({ compile: compile });\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { PdfViewer } from '@syncfusion/ej2-pdfviewer';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `Represents the react PdfViewer Component.\n * ```tsx\n * \n * ```\n */\nvar PdfViewerComponent = /** @class */ (function (_super) {\n __extends(PdfViewerComponent, _super);\n function PdfViewerComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n PdfViewerComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return PdfViewerComponent;\n}(PdfViewer));\nexport { PdfViewerComponent };\napplyMixins(PdfViewerComponent, [ComponentBase, React.Component]);\n","// eslint-disable-next-line\nexport function applyMixins(derivedClass, baseClass) {\n // tslint:disable:typedef\n baseClass.forEach(function (baseClass) {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {\n if (name !== 'isMounted' && name !== 'replaceState') {\n derivedClass.prototype[\"\" + name] = baseClass.prototype[\"\" + name];\n }\n });\n });\n}\n","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\nvar globalTimeOut = {};\nvar DEFT_MAT_WIDTH = 30;\nvar DEFT_FAB_WIDTH = 30;\nvar DEFT_FLUENT_WIDTH = 30;\nvar DEFT_BOOT_WIDTH = 30;\nvar DEFT_BOOT4_WIDTH = 36;\nvar DEFT_BOOT5_WIDTH = 36;\nvar CLS_SHOWSPIN = 'e-spin-show';\nvar CLS_HIDESPIN = 'e-spin-hide';\nvar CLS_MATERIALSPIN = 'e-spin-material';\nvar CLS_FABRICSPIN = 'e-spin-fabric';\nvar CLS_FLUENTSPIN = 'e-spin-fluent';\nvar CLS_TAILWINDSPIN = 'e-spin-tailwind';\nvar CLS_BOOTSPIN = 'e-spin-bootstrap';\nvar CLS_BOOT4SPIN = 'e-spin-bootstrap4';\nvar CLS_BOOT5SPIN = 'e-spin-bootstrap5';\nvar CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast';\nvar CLS_SPINWRAP = 'e-spinner-pane';\nvar CLS_SPININWRAP = 'e-spinner-inner';\nvar CLS_SPINCIRCLE = 'e-path-circle';\nvar CLS_SPINARC = 'e-path-arc';\nvar CLS_SPINLABEL = 'e-spin-label';\nvar CLS_SPINTEMPLATE = 'e-spin-template';\nvar spinTemplate = null;\nvar spinCSSClass = null;\n// eslint-disable-next-line\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : blazorSpinner({ action: \"Create\", options: {target: targetElement}, type: \"\" });\n * ```\n *\n * @param {string} action - specifies the string\n * @param {CreateArgs} options - specifies the args\n * @param {string} target - specifies the target\n * @param {string} type - specifes the type\n * @returns {void}\n * @private\n */\nexport function Spinner(action, options, target, type) {\n switch (action) {\n case 'Create':\n /* eslint-disable */\n var element = document.querySelector(options.target);\n var args = { type: type, target: element, cssClass: options.cssClass,\n label: options.label, width: options.width };\n /* eslint-enable */\n createSpinner(args);\n break;\n case 'Show':\n showSpinner(document.querySelector(target));\n break;\n case 'Hide':\n hideSpinner(document.querySelector(target));\n break;\n case 'Set':\n // eslint-disable-next-line\n var setArgs = { cssClass: options.cssClass, type: type };\n setSpinner(setArgs);\n break;\n }\n}\n/**\n * Create a spinner for the specified target element.\n * ```\n * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' });\n * ```\n *\n * @param {SpinnerArgs} args - specifies the args\n * @param {CreateElementArgs} internalCreateElement - specifis the element args\n * @returns {void}\n * @private\n */\nexport function createSpinner(args, internalCreateElement) {\n if (!args.target) {\n return;\n }\n var radius;\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n // eslint-disable-next-line\n var container = create_spinner_container(args.target, makeElement);\n if (!isNullOrUndefined(args.cssClass)) {\n container.wrap.classList.add(args.cssClass);\n }\n if (!isNullOrUndefined(args.template) || !isNullOrUndefined(spinTemplate)) {\n var template = !isNullOrUndefined(args.template) ? args.template : spinTemplate;\n container.wrap.classList.add(CLS_SPINTEMPLATE);\n replaceContent(container.wrap, template, spinCSSClass);\n }\n else {\n var theme = !isNullOrUndefined(args.type) ? args.type : getTheme(container.wrap);\n var width = !isNullOrUndefined(args.width) ? args.width : undefined;\n radius = calculateRadius(width, theme);\n setTheme(theme, container.wrap, radius, makeElement);\n if (!isNullOrUndefined(args.label)) {\n createLabel(container.inner_wrap, args.label, makeElement);\n }\n }\n container.wrap.classList.add(CLS_HIDESPIN);\n container = null;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} label - specifies the string\n * @param {createElementParams} makeElement - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction createLabel(container, label, makeElement) {\n var labelEle = makeElement('div', {});\n labelEle.classList.add(CLS_SPINLABEL);\n labelEle.innerHTML = label;\n container.appendChild(labelEle);\n return labelEle;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createMaterialSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_MATERIALSPIN);\n mat_calculate_attributes(radius, container, 'Material', CLS_MATERIALSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrap4Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_BOOT4SPIN);\n mat_calculate_attributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrap5Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_BOOT5SPIN);\n mat_calculate_attributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} uniqueID - specifies the id.\n * @param {number} radius - specifies the radius\n * @returns {void}\n */\nfunction startMatAnimate(container, uniqueID, radius) {\n var globalObject = {};\n var timeOutVar = 0;\n globalTimeOut[\"\" + uniqueID].timeOut = 0;\n globalObject[\"\" + uniqueID] = globalVariables(uniqueID, radius, 0, 0);\n // eslint-disable-next-line\n var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar };\n animateMaterial(spinnerInfo);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createFabricSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius };\n create_fabric_element(container, uniqueID, CLS_FABRICSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_FABRICSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createFluentSinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fluent', radius: radius };\n create_fabric_element(container, uniqueID, CLS_FLUENTSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_FLUENTSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createTailwindSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius };\n create_fabric_element(container, uniqueID, CLS_TAILWINDSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_TAILWINDSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createHighContrastSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius };\n create_fabric_element(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_HIGHCONTRASTSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @returns {string} - returns the string\n */\nfunction getTheme(container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n}\n/**\n *\n * @param {string} theme - specifies the theme\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction setTheme(theme, container, radius, makeElement) {\n var innerContainer = container.querySelector('.' + CLS_SPININWRAP);\n var svg = innerContainer.querySelector('svg');\n if (!isNullOrUndefined(svg)) {\n innerContainer.removeChild(svg);\n }\n switch (theme) {\n case 'Material':\n createMaterialSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fabric':\n createFabricSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fluent':\n createFluentSinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap':\n createBootstrapSpinner(innerContainer, radius, makeElement);\n break;\n case 'HighContrast':\n createHighContrastSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap4':\n createBootstrap4Spinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap5':\n createBootstrap5Spinner(innerContainer, radius, makeElement);\n break;\n case 'Tailwind':\n case 'Tailwind-dark':\n createTailwindSpinner(innerContainer, radius, makeElement);\n break;\n }\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrapSpinner(innerContainer, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius };\n create_bootstrap_element(innerContainer, uniqueID, makeElement);\n boot_calculate_attributes(innerContainer, radius);\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {string} uniqueID - specifies the id\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_bootstrap_element(innerContainer, uniqueID, makeElement) {\n var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var viewBoxValue = 64;\n var trans = 32;\n var defaultRadius = 2;\n svgBoot.setAttribute('id', uniqueID);\n svgBoot.setAttribute('class', CLS_BOOTSPIN);\n svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue);\n innerContainer.insertBefore(svgBoot, innerContainer.firstChild);\n for (var item = 0; item <= 7; item++) {\n var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item);\n bootCircle.setAttribute('r', defaultRadius + '');\n bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')');\n svgBoot.appendChild(bootCircle);\n }\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {number} radius - specifies the radius\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction boot_calculate_attributes(innerContainer, radius) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var x = 0;\n var y = 0;\n var rad = 24;\n svg.style.width = svg.style.height = radius + 'px';\n var startArc = 90;\n for (var item = 0; item <= 7; item++) {\n var start = defineArcPoints(x, y, rad, startArc);\n var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item);\n circleEle.setAttribute('cx', start.x + '');\n circleEle.setAttribute('cy', start.y + '');\n startArc = startArc >= 360 ? 0 : startArc;\n startArc = startArc + 45;\n }\n}\n/**\n *\n * @param {number} begin - specifies the number\n * @param {number} stop - specifirs the number\n * @returns {number[]} - returns the array of number\n */\nfunction generateSeries(begin, stop) {\n var series = [];\n var start = begin;\n var end = stop;\n // eslint-disable-next-line\n var increment = false, count = 1;\n formSeries(start);\n /**\n *\n * @param {number} i - specifies the number\n * @returns {void}\n */\n function formSeries(i) {\n series.push(i);\n if (i !== end || count === 1) {\n if (i <= start && i > 1 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n else if (i === 1) {\n i = 7;\n i = parseFloat((i + 0.2).toFixed(2));\n increment = true;\n }\n else if (i < 8 && increment) {\n i = parseFloat((i + 0.2).toFixed(2));\n if (i === 8) {\n increment = false;\n }\n }\n else if (i <= 8 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n ++count;\n formSeries(i);\n }\n }\n return series;\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @returns {void}\n */\nfunction animateBootstrap(innerContainer) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var id = svg.getAttribute('id');\n for (var i = 1; i <= 8; i++) {\n var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' +\n (i === 8 ? 0 : i))[0]);\n rotation(circleEle, i, i, generateSeries(i, i), id);\n }\n /**\n *\n * @param {SVGCircleElement} circle - specifies the circl element\n * @param {number} start - specifies the number\n * @param {number} end - specifies the end number\n * @param {number} series - specifies the series\n * @param {string} id - specifies the id\n * @returns {void}\n */\n function rotation(circle, start, end, series, id) {\n var count = 0;\n boot_animate(start);\n // eslint-disable-next-line\n function boot_animate(radius) {\n if (globalTimeOut[\"\" + id].isAnimate) {\n ++count;\n circle.setAttribute('r', radius + '');\n if (count >= series.length) {\n count = 0;\n }\n // eslint-disable-next-line\n globalTimeOut[id].timeOut = setTimeout(boot_animate.bind(null, series[count]), 18);\n }\n }\n }\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} template - specifies the template\n * @param {string} cssClass - specifies the css class.\n * @returns {void}\n */\nfunction replaceContent(container, template, cssClass) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var inner = container.querySelector('.e-spinner-inner');\n inner.innerHTML = template;\n}\n/**\n *\n * @param {string} width - specifies the width\n * @param {string} theme - specifies the string\n * @returns {number} - returns the number\n */\nfunction calculateRadius(width, theme) {\n var defaultSize;\n switch (theme) {\n case 'Material':\n defaultSize = DEFT_MAT_WIDTH;\n break;\n case 'Fabric':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Tailwind':\n case 'Tailwind-dark':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Fluent':\n defaultSize = DEFT_FLUENT_WIDTH;\n break;\n case 'Bootstrap4':\n defaultSize = DEFT_BOOT4_WIDTH;\n break;\n case 'Bootstrap5':\n defaultSize = DEFT_BOOT5_WIDTH;\n break;\n default:\n defaultSize = DEFT_BOOT_WIDTH;\n }\n width = width ? parseFloat(width + '') : defaultSize;\n return theme === 'Bootstrap' ? width : width / 2;\n}\n/**\n *\n * @param {string} id - specifies the id\n * @param {number} radius - specifies the radius\n * @param {number} count - specifies the number count\n * @param {number} previousId - specifies the previous id\n * @returns {GlobalVariables} - returns the variables\n */\nfunction globalVariables(id, radius, count, previousId) {\n return {\n radius: radius,\n count: count,\n previousId: previousId\n };\n}\n/**\n * @returns {string} - returns the string\n */\n// eslint-disable-next-line\nfunction random_generator() {\n var random = '';\n var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 5; i++) {\n random += combine.charAt(Math.floor(Math.random() * combine.length));\n }\n return random;\n}\n/**\n *\n * @param {HTMLElement} innerCon - specifies the element\n * @param {string} uniqueID - specifies the unique id\n * @param {string} themeClass - specifies the string\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_fabric_element(innerCon, uniqueID, themeClass, makeElement) {\n var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgFabric.setAttribute('id', uniqueID);\n svgFabric.setAttribute('class', themeClass);\n var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCircleArc.setAttribute('class', CLS_SPINARC);\n innerCon.insertBefore(svgFabric, innerCon.firstChild);\n svgFabric.appendChild(fabricCirclePath);\n svgFabric.appendChild(fabricCircleArc);\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {string} uniqueID - specifies the unique id\n * @param {createElementParams} makeElement - specifies the element\n * @param {string} cls - specifies the string\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_material_element(innerContainer, uniqueID, makeElement, cls) {\n var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svgMaterial.setAttribute('class', cls);\n svgMaterial.setAttribute('id', uniqueID);\n matCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n innerContainer.insertBefore(svgMaterial, innerContainer.firstChild);\n svgMaterial.appendChild(matCirclePath);\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_spinner_container(target, makeElement) {\n var spinnerContainer = makeElement('div', {});\n var spinnerInnerContainer = makeElement('div', {});\n spinnerContainer.classList.add(CLS_SPINWRAP);\n spinnerInnerContainer.classList.add(CLS_SPININWRAP);\n target.appendChild(spinnerContainer);\n spinnerContainer.appendChild(spinnerInnerContainer);\n // eslint-disable-next-line\n return { wrap: spinnerContainer, inner_wrap: spinnerInnerContainer };\n}\n/**\n *\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner\n * @returns {void}\n */\nfunction animateMaterial(spinnerInfo) {\n var start = 1;\n var end = 149;\n var duration = 1333;\n var max = 75;\n createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo);\n spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4;\n}\n/**\n *\n * @param {number} start - specifies the number\n * @param {number} end - specifies the end number\n * @param {Function} easing - specifies the function\n * @param {number} duration - specifies the duration\n * @param {number} count - specifies the count\n * @param {number} max - specifies the max number\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner info\n * @returns {void}\n */\nfunction createCircle(start, end, easing, duration, count, max, spinnerInfo) {\n var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId;\n var startTime = new Date().getTime();\n var change = end - start;\n var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + '');\n var strokeSize = getStrokeSize(diameter);\n var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0);\n mat_animation(spinnerInfo);\n // eslint-disable-next-line\n function mat_animation(spinnerInfo) {\n var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration));\n updatePath(easing(currentTime, start, change, duration), spinnerInfo.container);\n if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) {\n // eslint-disable-next-line\n globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(mat_animation.bind(null, spinnerInfo), 1);\n }\n else {\n animateMaterial(spinnerInfo);\n }\n }\n /**\n *\n * @param {number} value - specifies the number value\n * @param {HTMLElement} container - specifies the container\n * @returns {void}\n */\n function updatePath(value, container) {\n if ((!isNullOrUndefined(container.querySelector('svg.e-spin-material')))\n && (!isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle')))) {\n var svg = container.querySelector('svg.e-spin-material');\n var path = svg.querySelector('path.e-path-circle');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + '');\n path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')');\n }\n }\n}\n/**\n *\n * @param {number} radius - specifies the number\n * @param {HTMLElement} container - specifies the element\n * @param {string} type - specifies the string type\n * @param {string} cls - specifies the string\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction mat_calculate_attributes(radius, container, type, cls) {\n var diameter = radius * 2;\n var svg = container.querySelector('svg.' + cls);\n var path = svg.querySelector('path.e-path-circle');\n var strokeSize = getStrokeSize(diameter);\n var transformOrigin = (diameter / 2) + 'px';\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.width = svg.style.height = diameter + 'px';\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n path.setAttribute('d', drawArc(diameter, strokeSize));\n if (type === 'Material') {\n path.setAttribute('stroke-width', strokeSize + '');\n path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + '');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + '');\n }\n}\n/**\n *\n * @param {string} value - specifies the value\n * @returns {number} - returns the number\n */\nfunction getSize(value) {\n var parsed = parseFloat(value);\n return parsed;\n}\n/**\n *\n * @param {number} diameter - specifies the diameter\n * @param {number} strokeSize - specifies the size\n * @returns {string} - returns the string\n */\nfunction drawArc(diameter, strokeSize) {\n var radius = diameter / 2;\n var offset = strokeSize / 2;\n return 'M' + radius + ',' + offset\n + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius;\n}\n/**\n *\n * @param {number} diameter - specifies the number\n * @returns {number} - returns the number\n */\nfunction getStrokeSize(diameter) {\n return 10 / 100 * diameter;\n}\n/**\n *\n * @param {number} diameter - specifies the number\n * @param {number} strokeSize - specifies the stroke size\n * @param {number} value - specifies the value\n * @param {number} max - specifies the max number\n * @returns {number} - returns the number\n */\nfunction getDashOffset(diameter, strokeSize, value, max) {\n return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100));\n}\n/**\n *\n * @param {number} current - specifies the number\n * @param {number} start - specifies the stroke size\n * @param {number} change - specifies the value\n * @param {number} duration - specifies the max number\n * @returns {number} - returns the number\n */\nfunction easeAnimation(current, start, change, duration) {\n var timestamp = (current /= duration) * current;\n var timecount = timestamp * current;\n return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount);\n}\n/**\n *\n * @param {number} radius - specifies the number\n * @param {HTMLElement} innerConainer - specifies the element\n * @param {string} trgClass - specifies the class\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction fb_calculate_attributes(radius, innerConainer, trgClass) {\n var centerX = radius;\n var centerY = radius;\n var diameter = radius * 2;\n // eslint-disable-next-line\n var startArc = 315, endArc = 45;\n var svg = innerConainer.querySelector('.' + trgClass);\n var circle = svg.querySelector('.e-path-circle');\n var path = svg.querySelector('.e-path-arc');\n var transformOrigin = (diameter / 2) + 'px';\n circle.setAttribute('d', defineCircle(centerX, centerY, radius));\n path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc));\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n svg.style.width = svg.style.height = diameter + 'px';\n}\n/**\n *\n * @param {number} centerX - specifies the number\n * @param {number} centerY - specifies the stroke size\n * @param {number} radius - specifies the value\n * @param {number} angle - specifies the max number\n * @returns {number} - returns the number\n */\nfunction defineArcPoints(centerX, centerY, radius, angle) {\n var radians = (angle - 90) * Math.PI / 180.0;\n return {\n x: centerX + (radius * Math.cos(radians)),\n y: centerY + (radius * Math.sin(radians))\n };\n}\n/**\n *\n * @param {number} x - specifies the number\n * @param {number} y - specifies the stroke size\n * @param {number} radius - specifies the radius\n * @param {number} startArc - specifies the value\n * @param {number} endArc - specifies the max number\n * @returns {number} - returns the number\n */\nfunction defineArc(x, y, radius, startArc, endArc) {\n var start = defineArcPoints(x, y, radius, endArc);\n var end = defineArcPoints(x, y, radius, startArc);\n var d = [\n 'M', start.x, start.y,\n 'A', radius, radius, 0, 0, 0, end.x, end.y\n ].join(' ');\n return d;\n}\n/**\n *\n * @param {number} x - specifies the number\n * @param {number} y - specifies the stroke size\n * @param {number} radius - specifies the value\n * @returns {string} - returns the string\n */\nfunction defineCircle(x, y, radius) {\n var d = [\n 'M', x, y,\n 'm', -radius, 0,\n 'a', radius, radius, 0, 1, 0, radius * 2, 0,\n 'a', radius, radius, 0, 1, 0, -radius * 2, 0\n ].join(' ');\n return d;\n}\n/**\n * Function to show the Spinner.\n *\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n * @private\n */\nexport function showSpinner(container) {\n showHideSpinner(container, false);\n container = null;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {boolean} isHide - specifies the boolean\n * @returns {void}\n */\nfunction showHideSpinner(container, isHide) {\n var spinnerWrap;\n if (container) {\n spinnerWrap = container.classList.contains(CLS_SPINWRAP) ? container :\n container.querySelector('.' + CLS_SPINWRAP);\n }\n if (container && spinnerWrap) {\n var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP);\n var spinCheck = void 0;\n // eslint-disable-next-line\n spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) :\n !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN);\n if (spinCheck) {\n var svgEle = spinnerWrap.querySelector('svg');\n if (isNullOrUndefined(svgEle)) {\n return;\n }\n var id = svgEle.getAttribute('id');\n globalTimeOut[\"\" + id].isAnimate = !isHide;\n switch (globalTimeOut[\"\" + id].type) {\n case 'Material':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius);\n break;\n case 'Bootstrap':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner);\n break;\n }\n }\n // eslint-disable-next-line\n isHide ? classList(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : classList(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]);\n container = null;\n }\n}\n/**\n * Function to hide the Spinner.\n *\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n * @private\n */\nexport function hideSpinner(container) {\n showHideSpinner(container, true);\n container = null;\n}\n// eslint-disable-next-line\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' });\n * ```\n *\n * @param {SetSpinnerArgs} args - specifies the args\n * @param {createElementParams} internalCreateElement - specifies the element params\n * @returns {void}\n * @private\n */\nexport function setSpinner(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.template !== undefined) {\n spinTemplate = args.template;\n if (args.template !== undefined) {\n spinCSSClass = args.cssClass;\n }\n }\n var container = document.querySelectorAll('.' + CLS_SPINWRAP);\n for (var index = 0; index < container.length; index++) {\n ensureTemplate(args.template, container[index], args.type, args.cssClass, makeElement);\n }\n}\n/**\n *\n * @param {string} template - specifies the string\n * @param {HTMLElement} container - specifies the container\n * @param {string} theme - specifies the theme\n * @param {string} cssClass - specifies the string class\n * @param {createElementParams} makeEle - specifies the params\n * @returns {void}\n */\nfunction ensureTemplate(template, container, theme, cssClass, makeEle) {\n if (isNullOrUndefined(template) && !container.classList.contains(CLS_SPINTEMPLATE)) {\n replaceTheme(container, theme, cssClass, makeEle);\n if (container.classList.contains(CLS_SHOWSPIN)) {\n container.classList.remove(CLS_SHOWSPIN);\n showSpinner(container);\n }\n else {\n container.classList.remove(CLS_HIDESPIN);\n hideSpinner(container);\n }\n }\n else {\n spinTemplate = template;\n if (!isNullOrUndefined(cssClass)) {\n spinCSSClass = cssClass;\n }\n }\n}\n/**\n *\n * @param {HTMLElement} container - specifies the container\n * @param {string} theme - specifies the theme\n * @param {string} cssClass - specifies the string class\n * @param {createElementParams} makeEle - specifies the params\n * @returns {void}\n */\nfunction replaceTheme(container, theme, cssClass, makeEle) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var svgElement = container.querySelector('svg');\n var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2;\n var classNames = svgElement.getAttribute('class');\n var svgClassList = classNames.split(/\\s/);\n if (svgClassList.indexOf('e-spin-material') >= 0) {\n var id = svgElement.getAttribute('id');\n clearTimeout(globalTimeOut[\"\" + id].timeOut);\n }\n setTheme(theme, container, radius, makeEle);\n}\n","var queryString = '';\nvar prevString = '';\nvar matches = [];\nvar activeClass = 'e-active';\nvar prevElementId = '';\n/**\n * Search and focus the list item based on key code matches with list text content\n *\n * @param { number } keyCode - Specifies the key code which pressed on keyboard events.\n * @param { HTMLElement[]} items - Specifies an array of HTMLElement, from which matches find has done.\n * @param { number } selectedIndex - Specifies the selected item in list item, so that search will happen\n * after selected item otherwise it will do from initial.\n * @param { boolean } ignoreCase - Specifies the case consideration when search has done.\n * @param {string} elementId - Specifies the list element ID.\n * @returns {Element} Returns list item based on key code matches with list text content.\n */\nexport function incrementalSearch(keyCode, items, selectedIndex, ignoreCase, elementId) {\n queryString += String.fromCharCode(keyCode);\n setTimeout(function () {\n queryString = '';\n }, 1000);\n var index;\n queryString = ignoreCase ? queryString.toLowerCase() : queryString;\n if (prevElementId === elementId && prevString === queryString) {\n for (var i = 0; i < matches.length; i++) {\n if (matches[i].classList.contains(activeClass)) {\n index = i;\n break;\n }\n }\n index = index + 1;\n return matches[index] ? matches[index] : matches[0];\n }\n else {\n var listItems = items;\n var strLength = queryString.length;\n var text = void 0;\n var item = void 0;\n selectedIndex = selectedIndex ? selectedIndex + 1 : 0;\n var i = selectedIndex;\n matches = [];\n do {\n if (i === listItems.length) {\n i = -1;\n }\n if (i === -1) {\n index = 0;\n }\n else {\n index = i;\n }\n item = listItems[index];\n text = ignoreCase ? item.innerText.toLowerCase() : item.innerText;\n if (text.substr(0, strLength) === queryString) {\n matches.push(listItems[index]);\n }\n i++;\n } while (i !== selectedIndex);\n prevString = queryString;\n prevElementId = elementId;\n return matches[0];\n }\n}\n/**\n * Search the list item based on given input value matches with search type.\n *\n * @param {string} inputVal - Specifies the given input value.\n * @param {HTMLElement[]} items - Specifies the list items.\n * @param {SearchType} searchType - Specifies the filter type.\n * @param {boolean} ignoreCase - Specifies the case sensitive option for search operation.\n * @returns {Element | number} Returns the search matched items.\n */\nexport function Search(inputVal, items, searchType, ignoreCase, dataSource, fields, type) {\n var listItems = items;\n ignoreCase = ignoreCase !== undefined && ignoreCase !== null ? ignoreCase : true;\n var itemData = { item: null, index: null };\n if (inputVal && inputVal.length) {\n var strLength = inputVal.length;\n var queryStr = ignoreCase ? inputVal.toLocaleLowerCase() : inputVal;\n queryStr = escapeCharRegExp(queryStr);\n var _loop_1 = function (i, itemsData) {\n var item = itemsData[i];\n var text = void 0;\n var filterValue;\n if (items && dataSource) {\n var checkField_1 = item;\n var fieldValue_1 = fields.text.split('.');\n dataSource.filter(function (data) {\n Array.prototype.slice.call(fieldValue_1).forEach(function (value) {\n if (type === 'object' && checkField_1.textContent.toString().indexOf(data[value]) !== -1 && checkField_1.getAttribute('data-value') === data[fields.value].toString() || type === 'string' && checkField_1.textContent.toString().indexOf(data) !== -1) {\n filterValue = type === 'object' ? data[value] : data;\n }\n });\n });\n }\n text = dataSource && filterValue ? (ignoreCase ? filterValue.toLocaleLowerCase() : filterValue).replace(/^\\s+|\\s+$/g, '') : (ignoreCase ? item.textContent.toLocaleLowerCase() : item.textContent).replace(/^\\s+|\\s+$/g, '');\n if ((searchType === 'Equal' && text === queryStr) || (searchType === 'StartsWith' && text.substr(0, strLength) === queryStr) || (searchType === 'EndsWith' && text.substr(text.length - queryStr.length) === queryStr) || (searchType === 'Contains' && new RegExp(queryStr, \"g\").test(text))) {\n itemData.item = item;\n itemData.index = i;\n return { value: { item: item, index: i } };\n }\n };\n for (var i = 0, itemsData = listItems; i < itemsData.length; i++) {\n var state_1 = _loop_1(i, itemsData);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return itemData;\n }\n return itemData;\n}\nexport function escapeCharRegExp(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nexport function resetIncrementalSearchValues(elementId) {\n if (prevElementId === elementId) {\n prevElementId = '';\n prevString = '';\n queryString = '';\n matches = [];\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, addClass, append, Property, Event, L10n, compile } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, extend, removeClass, prepend, isNullOrUndefined, detach, getValue } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, rippleEffect, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { DataManager, Query, DataUtil } from '@syncfusion/ej2-data';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { select, selectAll } from '@syncfusion/ej2-base';\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"htmlAttributes\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\nexport var dropDownBaseClasses = {\n root: 'e-dropdownbase',\n rtl: 'e-rtl',\n content: 'e-content',\n selected: 'e-active',\n hover: 'e-hover',\n noData: 'e-nodata',\n fixedHead: 'e-fixed-head',\n focus: 'e-item-focus',\n li: 'e-list-item',\n group: 'e-list-group-item',\n disabled: 'e-disabled',\n grouping: 'e-dd-group'\n};\nvar ITEMTEMPLATE_PROPERTY = 'ItemTemplate';\nvar DISPLAYTEMPLATE_PROPERTY = 'DisplayTemplate';\nvar SPINNERTEMPLATE_PROPERTY = 'SpinnerTemplate';\nvar VALUETEMPLATE_PROPERTY = 'ValueTemplate';\nvar GROUPTEMPLATE_PROPERTY = 'GroupTemplate';\nvar HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';\nvar FOOTERTEMPLATE_PROPERTY = 'FooterTemplate';\nvar NORECORDSTEMPLATE_PROPERTY = 'NoRecordsTemplate';\nvar ACTIONFAILURETEMPLATE_PROPERTY = 'ActionFailureTemplate';\nvar HIDE_GROUPLIST = 'e-hide-group-header';\n/**\n * DropDownBase component will generate the list items based on given data and act as base class to drop-down related components\n */\nvar DropDownBase = /** @class */ (function (_super) {\n __extends(DropDownBase, _super);\n /**\n * * Constructor for DropDownBase class\n *\n * @param {DropDownBaseModel} options - Specifies the DropDownBase model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function DropDownBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.isPreventChange = false;\n _this.isDynamicDataChange = false;\n _this.addedNewItem = false;\n return _this;\n }\n DropDownBase.prototype.getPropObject = function (prop, newProp, oldProp) {\n var newProperty = new Object();\n var oldProperty = new Object();\n var propName = function (prop) {\n return prop;\n };\n newProperty[propName(prop)] = newProp[propName(prop)];\n oldProperty[propName(prop)] = oldProp[propName(prop)];\n var data = new Object();\n data.newProperty = newProperty;\n data.oldProperty = oldProperty;\n return data;\n };\n DropDownBase.prototype.getValueByText = function (text, ignoreCase, ignoreAccent) {\n var value = null;\n if (!isNullOrUndefined(this.listData)) {\n if (ignoreCase) {\n value = this.checkValueCase(text, true, ignoreAccent);\n }\n else {\n value = this.checkValueCase(text, false, ignoreAccent);\n }\n }\n return value;\n };\n DropDownBase.prototype.checkValueCase = function (text, ignoreCase, ignoreAccent, isTextByValue) {\n var _this = this;\n var value = null;\n if (isTextByValue) {\n value = text;\n }\n var dataSource = this.listData;\n var fields = this.fields;\n var type = this.typeOfData(dataSource).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n for (var _i = 0, dataSource_1 = dataSource; _i < dataSource_1.length; _i++) {\n var item = dataSource_1[_i];\n if (!isNullOrUndefined(item)) {\n if (ignoreAccent) {\n value = this.checkingAccent(String(item), text, ignoreCase);\n }\n else {\n if (ignoreCase) {\n if (this.checkIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n else {\n if (this.checkNonIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase, isTextByValue);\n }\n }\n }\n }\n }\n }\n else {\n if (ignoreCase) {\n dataSource.filter(function (item) {\n var itemValue = getValue(fields.value, item);\n if (!isNullOrUndefined(itemValue) && _this.checkIgnoreCase(getValue(fields.text, item).toString(), text)) {\n value = getValue(fields.value, item);\n }\n });\n }\n else {\n if (isTextByValue) {\n var compareValue_1 = null;\n compareValue_1 = value;\n dataSource.filter(function (item) {\n var itemValue = getValue(fields.value, item);\n if (!isNullOrUndefined(itemValue) && !isNullOrUndefined(value) && itemValue.toString() === compareValue_1.toString()) {\n value = getValue(fields.text, item);\n }\n });\n }\n else {\n dataSource.filter(function (item) {\n if (_this.checkNonIgnoreCase(getValue(fields.text, item), text)) {\n value = getValue(fields.value, item);\n }\n });\n }\n }\n }\n return value;\n };\n DropDownBase.prototype.checkingAccent = function (item, text, ignoreCase) {\n var dataItem = DataUtil.ignoreDiacritics(String(item));\n var textItem = DataUtil.ignoreDiacritics(text.toString());\n var value = null;\n if (ignoreCase) {\n if (this.checkIgnoreCase(dataItem, textItem)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n else {\n if (this.checkNonIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n return value;\n };\n DropDownBase.prototype.checkIgnoreCase = function (item, text) {\n return String(item).toLowerCase() === text.toString().toLowerCase() ? true : false;\n };\n DropDownBase.prototype.checkNonIgnoreCase = function (item, text) {\n return String(item) === text.toString() ? true : false;\n };\n DropDownBase.prototype.getItemValue = function (dataItem, typedText, ignoreCase, isTextByValue) {\n var value = null;\n var dataSource = this.listData;\n var type = this.typeOfData(dataSource).typeof;\n if (isTextByValue) {\n value = dataItem.toString();\n }\n else {\n if (ignoreCase) {\n value = type === 'string' ? String(dataItem) : this.getFormattedValue(String(dataItem));\n }\n else {\n value = type === 'string' ? typedText : this.getFormattedValue(typedText);\n }\n }\n return value;\n };\n DropDownBase.prototype.templateCompiler = function (baseTemplate) {\n var checkTemplate = false;\n if (baseTemplate) {\n try {\n checkTemplate = (selectAll(baseTemplate, document).length) ? true : false;\n }\n catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n DropDownBase.prototype.l10nUpdate = function (actionFailure) {\n var ele = this.getModuleName() === 'listbox' ? this.ulElement : this.list;\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var compiledString = void 0;\n var templateId = actionFailure ? this.actionFailureTemplateId : this.noRecordsTemplateId;\n ele.innerHTML = '';\n var tempaltecheck = this.templateCompiler(template);\n if (tempaltecheck) {\n compiledString = compile(select(template, document).innerHTML.trim());\n }\n else {\n compiledString = compile(template);\n }\n var templateName = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var noDataCompTemp = compiledString({}, this, templateName, templateId, this.isStringTemplate, null, ele);\n if (noDataCompTemp && noDataCompTemp.length > 0) {\n for (var i = 0; i < noDataCompTemp.length; i++) {\n ele.appendChild(noDataCompTemp[i]);\n }\n }\n this.renderReactTemplates();\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request failed' };\n var componentLocale = new L10n(this.getLocaleName(), {}, this.locale);\n if (componentLocale.getConstant('actionFailureTemplate') !== '') {\n this.l10n = componentLocale;\n }\n else {\n this.l10n = new L10n(this.getModuleName() === 'listbox' ? 'listbox' :\n this.getModuleName() === 'mention' ? 'mention' : 'dropdowns', l10nLocale, this.locale);\n }\n var content = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n if (this.getModuleName() === 'listbox') {\n var liElem = this.createElement('li');\n liElem.textContent = content;\n ele.appendChild(liElem);\n liElem.classList.add('e-list-nrt');\n liElem.setAttribute('role', 'option');\n }\n else {\n if (!isNullOrUndefined(ele)) {\n ele.innerHTML = content;\n }\n }\n }\n };\n DropDownBase.prototype.getLocaleName = function () {\n return 'drop-down-base';\n };\n DropDownBase.prototype.getTextByValue = function (value) {\n var text = this.checkValueCase(value, false, false, true);\n return text;\n };\n DropDownBase.prototype.getFormattedValue = function (value) {\n if (this.listData && this.listData.length) {\n var item = this.typeOfData(this.listData);\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'number'\n || item.typeof === 'number') {\n return parseFloat(value);\n }\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'boolean'\n || item.typeof === 'boolean') {\n return ((value === 'true') || ('' + value === 'true'));\n }\n }\n return value;\n };\n /**\n * Sets RTL to dropdownbase wrapper\n *\n * @returns {void}\n */\n DropDownBase.prototype.setEnableRtl = function () {\n if (!isNullOrUndefined(this.enableRtlElements)) {\n if (this.list) {\n this.enableRtlElements.push(this.list);\n }\n if (this.enableRtl) {\n addClass(this.enableRtlElements, dropDownBaseClasses.rtl);\n }\n else {\n removeClass(this.enableRtlElements, dropDownBaseClasses.rtl);\n }\n }\n };\n /**\n * Initialize the Component.\n *\n * @returns {void}\n */\n DropDownBase.prototype.initialize = function (e) {\n this.bindEvent = true;\n this.actionFailureTemplateId = \"\" + this.element.id + ACTIONFAILURETEMPLATE_PROPERTY;\n if (this.element.tagName === 'UL') {\n var jsonElement = ListBase.createJsonFromElement(this.element);\n this.setProperties({ fields: { text: 'text', value: 'text' } }, true);\n this.resetList(jsonElement, this.fields);\n }\n else if (this.element.tagName === 'SELECT') {\n var dataSource = this.dataSource instanceof Array ? (this.dataSource.length > 0 ? true : false)\n : !isNullOrUndefined(this.dataSource) ? true : false;\n if (!dataSource) {\n this.renderItemsBySelect();\n }\n else if (this.isDynamicDataChange) {\n this.setListData(this.dataSource, this.fields, this.query);\n }\n }\n else {\n this.setListData(this.dataSource, this.fields, this.query, e);\n }\n };\n /**\n * Get the properties to be maintained in persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n DropDownBase.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Sets the enabled state to DropDownBase.\n *\n * @param {string} value - Specifies the attribute values to add on the input element.\n * @returns {void}\n */\n DropDownBase.prototype.updateDataAttribute = function (value) {\n var invalidAttr = ['class', 'style', 'id', 'type', 'aria-expanded', 'aria-autocomplete', 'aria-readonly'];\n var attr = {};\n for (var a = 0; a < this.element.attributes.length; a++) {\n if (invalidAttr.indexOf(this.element.attributes[a].name) === -1 &&\n !(this.getModuleName() === 'dropdownlist' && this.element.attributes[a].name === 'readonly')) {\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\n }\n }\n extend(attr, value, attr);\n this.setProperties({ htmlAttributes: attr }, true);\n };\n DropDownBase.prototype.renderItemsBySelect = function () {\n var element = this.element;\n var fields = { value: 'value', text: 'text' };\n var jsonElement = [];\n var group = element.querySelectorAll('select>optgroup');\n var option = element.querySelectorAll('select>option');\n this.getJSONfromOption(jsonElement, option, fields);\n if (group.length) {\n for (var i = 0; i < group.length; i++) {\n var item = group[i];\n var optionGroup = {};\n optionGroup[fields.text] = item.label;\n optionGroup.isHeader = true;\n var child = item.querySelectorAll('option');\n jsonElement.push(optionGroup);\n this.getJSONfromOption(jsonElement, child, fields);\n }\n element.querySelectorAll('select>option');\n }\n this.updateFields(fields.text, fields.value, this.fields.groupBy, this.fields.htmlAttributes, this.fields.iconCss);\n this.resetList(jsonElement, fields);\n };\n DropDownBase.prototype.updateFields = function (text, value, groupBy, htmlAttributes, iconCss) {\n var field = {\n 'fields': {\n text: text,\n value: value,\n groupBy: !isNullOrUndefined(groupBy) ? groupBy : this.fields && this.fields.groupBy,\n htmlAttributes: !isNullOrUndefined(htmlAttributes) ? htmlAttributes : this.fields && this.fields.htmlAttributes,\n iconCss: !isNullOrUndefined(iconCss) ? iconCss : this.fields && this.fields.iconCss\n }\n };\n this.setProperties(field, true);\n };\n DropDownBase.prototype.getJSONfromOption = function (items, options, fields) {\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var option = options_1[_i];\n var json = {};\n json[fields.text] = option.innerText;\n json[fields.value] = !isNullOrUndefined(option.getAttribute(fields.value)) ?\n option.getAttribute(fields.value) : option.innerText;\n items.push(json);\n }\n };\n /**\n * Execute before render the list items\n *\n * @private\n * @returns {void}\n */\n DropDownBase.prototype.preRender = function () {\n // there is no event handler\n this.scrollTimer = -1;\n this.enableRtlElements = [];\n this.isRequested = false;\n this.isDataFetched = false;\n this.itemTemplateId = \"\" + this.element.id + ITEMTEMPLATE_PROPERTY;\n this.displayTemplateId = \"\" + this.element.id + DISPLAYTEMPLATE_PROPERTY;\n this.spinnerTemplateId = \"\" + this.element.id + SPINNERTEMPLATE_PROPERTY;\n this.valueTemplateId = \"\" + this.element.id + VALUETEMPLATE_PROPERTY;\n this.groupTemplateId = \"\" + this.element.id + GROUPTEMPLATE_PROPERTY;\n this.headerTemplateId = \"\" + this.element.id + HEADERTEMPLATE_PROPERTY;\n this.footerTemplateId = \"\" + this.element.id + FOOTERTEMPLATE_PROPERTY;\n this.noRecordsTemplateId = \"\" + this.element.id + NORECORDSTEMPLATE_PROPERTY;\n };\n /**\n * Creates the list items of DropDownBase component.\n *\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {void}\n */\n DropDownBase.prototype.setListData = function (dataSource, fields, query, event) {\n var _this = this;\n fields = fields ? fields : this.fields;\n var ulElement;\n this.isActive = true;\n var eventArgs = { cancel: false, data: dataSource, query: query };\n this.isPreventChange = this.isAngular && this.preventChange ? true : this.isPreventChange;\n this.trigger('actionBegin', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.showSpinner();\n if (dataSource instanceof DataManager) {\n _this.isRequested = true;\n if (_this.isDataFetched) {\n _this.emptyDataRequest(fields);\n return;\n }\n eventArgs.data.executeQuery(_this.getQuery(eventArgs.query)).then(function (e) {\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\n _this.trigger('actionComplete', e, function (e) {\n if (!e.cancel) {\n var listItems = e.result;\n if (listItems.length === 0) {\n _this.isDataFetched = true;\n }\n ulElement = _this.renderItems(listItems, fields);\n _this.onActionComplete(ulElement, listItems, e);\n if (_this.groupTemplate) {\n _this.renderGroupTemplate(ulElement);\n }\n _this.isRequested = false;\n _this.bindChildItems(listItems, ulElement, fields, e);\n }\n });\n }).catch(function (e) {\n _this.isRequested = false;\n _this.onActionFailure(e);\n _this.hideSpinner();\n });\n }\n else {\n var dataManager = new DataManager(eventArgs.data);\n var listItems = (_this.getQuery(eventArgs.query)).executeLocal(dataManager);\n var localDataArgs = { cancel: false, result: listItems };\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\n _this.trigger('actionComplete', localDataArgs, function (localDataArgs) {\n if (!localDataArgs.cancel) {\n ulElement = _this.renderItems(localDataArgs.result, fields);\n _this.onActionComplete(ulElement, localDataArgs.result, event);\n if (_this.groupTemplate) {\n _this.renderGroupTemplate(ulElement);\n }\n _this.bindChildItems(localDataArgs.result, ulElement, fields);\n setTimeout(function () {\n if (_this.getModuleName() === 'multiselect' && _this.itemTemplate != null && (ulElement.childElementCount > 0 && (ulElement.children[0].childElementCount > 0 || (_this.fields.groupBy && ulElement.children[1] && ulElement.children[1].childElementCount > 0)))) {\n _this.updateDataList();\n }\n });\n }\n });\n }\n }\n });\n };\n DropDownBase.prototype.bindChildItems = function (listItems, ulElement, fields, e) {\n var _this = this;\n if (listItems.length >= 100 && this.getModuleName() === 'autocomplete') {\n setTimeout(function () {\n var childNode = _this.remainingItems(_this.sortedData, fields);\n append(childNode, ulElement);\n _this.liCollections = _this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n _this.updateListValues();\n _this.raiseDataBound(listItems, e);\n }, 0);\n }\n else {\n this.raiseDataBound(listItems, e);\n }\n };\n DropDownBase.prototype.updateListValues = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.findListElement = function (list, findNode, attribute, value) {\n var liElement = null;\n if (list) {\n var listArr = [].slice.call(list.querySelectorAll(findNode));\n for (var index = 0; index < listArr.length; index++) {\n if (listArr[index].getAttribute(attribute) === (value + '')) {\n liElement = listArr[index];\n break;\n }\n }\n }\n return liElement;\n };\n DropDownBase.prototype.raiseDataBound = function (listItems, e) {\n this.hideSpinner();\n var dataBoundEventArgs = {\n items: listItems,\n e: e\n };\n this.trigger('dataBound', dataBoundEventArgs);\n };\n DropDownBase.prototype.remainingItems = function (dataSource, fields) {\n var spliceData = new DataManager(dataSource).executeLocal(new Query().skip(100));\n if (this.itemTemplate) {\n var listElements = this.templateListItem(spliceData, fields);\n return [].slice.call(listElements.childNodes);\n }\n var type = this.typeOfData(spliceData).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n return ListBase.createListItemFromArray(this.createElement, spliceData, true, this.listOption(spliceData, fields), this);\n }\n return ListBase.createListItemFromJson(this.createElement, spliceData, this.listOption(spliceData, fields), 1, true, this);\n };\n DropDownBase.prototype.emptyDataRequest = function (fields) {\n var listItems = [];\n this.onActionComplete(this.renderItems(listItems, fields), listItems);\n this.isRequested = false;\n this.hideSpinner();\n };\n DropDownBase.prototype.showSpinner = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.hideSpinner = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.onActionFailure = function (e) {\n this.liCollections = [];\n this.trigger('actionFailure', e);\n this.l10nUpdate(true);\n if (!isNullOrUndefined(this.list)) {\n addClass([this.list], dropDownBaseClasses.noData);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DropDownBase.prototype.onActionComplete = function (ulElement, list, e) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n this.listData = list;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['itemTemplate', 'groupTemplate', 'actionFailureTemplate', 'noRecordsTemplate']);\n }\n this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;\n if (this.getModuleName() === 'multiselect' && this.properties.allowCustomValue && this.fields.groupBy) {\n for (var i = 0; i < ulElement.childElementCount; i++) {\n if (ulElement.children[i].classList.contains('e-list-group-item')) {\n if (isNullOrUndefined(ulElement.children[i].innerHTML) || ulElement.children[i].innerHTML == \"\") {\n addClass([ulElement.children[i]], HIDE_GROUPLIST);\n }\n }\n }\n }\n if (!isNullOrUndefined(this.list)) {\n this.list.innerHTML = '';\n this.list.appendChild(ulElement);\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.ulElement = this.list.querySelector('ul');\n this.postRender(this.list, list, this.bindEvent);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DropDownBase.prototype.postRender = function (listElement, list, bindEvent) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n var focusItem = listElement.querySelector('.' + dropDownBaseClasses.li);\n var selectedItem = listElement.querySelector('.' + dropDownBaseClasses.selected);\n if (focusItem && !selectedItem) {\n focusItem.classList.add(dropDownBaseClasses.focus);\n }\n if (list.length <= 0) {\n this.l10nUpdate();\n addClass([listElement], dropDownBaseClasses.noData);\n }\n else {\n listElement.classList.remove(dropDownBaseClasses.noData);\n }\n };\n /**\n * Get the query to do the data operation before list item generation.\n *\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {Query} Returns the query to do the data query operation.\n */\n DropDownBase.prototype.getQuery = function (query) {\n return query ? query : this.query ? this.query : new Query();\n };\n /**\n * To render the template content for group header element.\n *\n * @param {HTMLElement} listEle - Specifies the group list elements.\n * @returns {void}\n */\n DropDownBase.prototype.renderGroupTemplate = function (listEle) {\n if (this.fields.groupBy !== null && this.dataSource || this.element.querySelector('.' + dropDownBaseClasses.group)) {\n var dataSource = this.dataSource;\n var option = { groupTemplateID: this.groupTemplateId, isStringTemplate: this.isStringTemplate };\n var headerItems = listEle.querySelectorAll('.' + dropDownBaseClasses.group);\n var groupcheck = this.templateCompiler(this.groupTemplate);\n if (groupcheck) {\n var groupValue = select(this.groupTemplate, document).innerHTML.trim();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var tempHeaders = ListBase.renderGroupTemplate(groupValue, dataSource, this.fields.properties, headerItems, option, this);\n //EJ2-55168- Group checkbox is not working with group template\n if (this.isGroupChecking) {\n for (var i = 0; i < tempHeaders.length; i++) {\n this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });\n }\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var tempHeaders = ListBase.renderGroupTemplate(this.groupTemplate, dataSource, this.fields.properties, headerItems, option, this);\n //EJ2-55168- Group checkbox is not working with group template\n if (this.isGroupChecking) {\n for (var i = 0; i < tempHeaders.length; i++) {\n this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });\n }\n }\n }\n this.renderReactTemplates();\n }\n };\n /**\n * To create the ul li list items\n *\n * @param {object []} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @returns {HTMLElement} Return the ul li list items.\n */\n DropDownBase.prototype.createListItems = function (dataSource, fields) {\n if (dataSource && fields.groupBy || this.element.querySelector('optgroup')) {\n if (fields.groupBy) {\n if (this.sortOrder !== 'None') {\n dataSource = this.getSortedDataSource(dataSource);\n }\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\n }\n addClass([this.list], dropDownBaseClasses.grouping);\n }\n else {\n dataSource = this.getSortedDataSource(dataSource);\n }\n var options = this.listOption(dataSource, fields);\n var spliceData = (dataSource.length > 100) ?\n new DataManager(dataSource).executeLocal(new Query().take(100))\n : dataSource;\n this.sortedData = dataSource;\n return ListBase.createList(this.createElement, (this.getModuleName() === 'autocomplete') ? spliceData : dataSource, options, true, this);\n };\n DropDownBase.prototype.listOption = function (dataSource, fields) {\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\n var fieldValues = !isNullOrUndefined(fields.properties) ?\n fields.properties : fields;\n var options = (fields.text !== null || fields.value !== null) ? {\n fields: fieldValues,\n showIcon: iconCss, ariaAttributes: { groupItemRole: 'presentation' }\n } : { fields: { value: 'text' } };\n return extend({}, options, fields, true);\n };\n DropDownBase.prototype.setFloatingHeader = function (e) {\n if (!isNullOrUndefined(this.list) && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (isNullOrUndefined(this.fixedHeaderElement)) {\n this.fixedHeaderElement = this.createElement('div', { className: dropDownBaseClasses.fixedHead });\n if (!isNullOrUndefined(this.list) && !this.list.querySelector('li').classList.contains(dropDownBaseClasses.group)) {\n this.fixedHeaderElement.style.display = 'none';\n }\n if (!isNullOrUndefined(this.fixedHeaderElement) && !isNullOrUndefined(this.list)) {\n prepend([this.fixedHeaderElement], this.list);\n }\n this.setFixedHeader();\n }\n if (!isNullOrUndefined(this.fixedHeaderElement) && this.fixedHeaderElement.style.zIndex === '0') {\n this.setFixedHeader();\n }\n this.scrollStop(e);\n }\n };\n DropDownBase.prototype.scrollStop = function (e) {\n var target = !isNullOrUndefined(e) ? e.target : this.list;\n var liHeight = parseInt(getComputedStyle(this.getValidLi(), null).getPropertyValue('height'), 10);\n var topIndex = Math.round(target.scrollTop / liHeight);\n var liCollections = this.list.querySelectorAll('li' + ':not(.e-hide-listitem)');\n for (var i = topIndex; i > -1; i--) {\n if (!isNullOrUndefined(liCollections[i]) && liCollections[i].classList.contains(dropDownBaseClasses.group)) {\n var currentLi = liCollections[i];\n this.fixedHeaderElement.innerHTML = currentLi.innerHTML;\n this.fixedHeaderElement.style.top = target.scrollTop + 'px';\n this.fixedHeaderElement.style.display = 'block';\n break;\n }\n else {\n this.fixedHeaderElement.style.display = 'none';\n this.fixedHeaderElement.style.top = 'none';\n }\n }\n };\n DropDownBase.prototype.getValidLi = function () {\n return this.liCollections[0];\n };\n /**\n * To render the list items\n *\n * @param {object[]} listData - Specifies the list of array of data.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @returns {HTMLElement} Return the list items.\n */\n DropDownBase.prototype.renderItems = function (listData, fields) {\n var ulElement;\n if (this.itemTemplate && listData) {\n var dataSource = listData;\n if (dataSource && fields.groupBy) {\n if (this.sortOrder !== 'None') {\n dataSource = this.getSortedDataSource(dataSource);\n }\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\n }\n else {\n dataSource = this.getSortedDataSource(dataSource);\n }\n this.sortedData = dataSource;\n var spliceData = (dataSource.length > 100) ?\n new DataManager(dataSource).executeLocal(new Query().take(100))\n : dataSource;\n ulElement = this.templateListItem((this.getModuleName() === 'autocomplete') ? spliceData : dataSource, fields);\n }\n else {\n ulElement = this.createListItems(listData, fields);\n }\n return ulElement;\n };\n DropDownBase.prototype.templateListItem = function (dataSource, fields) {\n var option = this.listOption(dataSource, fields);\n option.templateID = this.itemTemplateId;\n option.isStringTemplate = this.isStringTemplate;\n var itemcheck = this.templateCompiler(this.itemTemplate);\n if (itemcheck) {\n var itemValue = select(this.itemTemplate, document).innerHTML.trim();\n return ListBase.renderContentTemplate(this.createElement, itemValue, dataSource, fields.properties, option, this);\n }\n else {\n return ListBase.renderContentTemplate(this.createElement, this.itemTemplate, dataSource, fields.properties, option, this);\n }\n };\n DropDownBase.prototype.typeOfData = function (items) {\n var item = { typeof: null, item: null };\n for (var i = 0; (!isNullOrUndefined(items) && i < items.length); i++) {\n if (!isNullOrUndefined(items[i])) {\n var listDataType = typeof (items[i]) === 'string' ||\n typeof (items[i]) === 'number' || typeof (items[i]) === 'boolean';\n var isNullData = listDataType ? isNullOrUndefined(items[i]) :\n isNullOrUndefined(getValue((this.fields.value ? this.fields.value : 'value'), items[i]));\n if (!isNullData) {\n return item = { typeof: typeof items[i], item: items[i] };\n }\n }\n }\n return item;\n };\n DropDownBase.prototype.setFixedHeader = function () {\n if (!isNullOrUndefined(this.list)) {\n this.list.parentElement.style.display = 'block';\n }\n var borderWidth = 0;\n if (this.list && this.list.parentElement) {\n borderWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-width'), 10);\n /*Shorthand property not working in Firefox for getComputedStyle method.\n Refer bug report https://bugzilla.mozilla.org/show_bug.cgi?id=137688\n Refer alternate solution https://stackoverflow.com/a/41696234/9133493*/\n if (isNaN(borderWidth)) {\n var borderTopWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-top-width'), 10);\n var borderBottomWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-bottom-width'), 10);\n var borderLeftWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-left-width'), 10);\n var borderRightWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-right-width'), 10);\n borderWidth = (borderTopWidth + borderBottomWidth + borderLeftWidth + borderRightWidth);\n }\n }\n if (!isNullOrUndefined(this.liCollections)) {\n var liWidth = this.getValidLi().offsetWidth - borderWidth;\n this.fixedHeaderElement.style.width = liWidth.toString() + 'px';\n }\n setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\n };\n DropDownBase.prototype.getSortedDataSource = function (dataSource) {\n if (dataSource && this.sortOrder !== 'None') {\n var textField = this.fields.text ? this.fields.text : 'text';\n if (this.typeOfData(dataSource).typeof === 'string' || this.typeOfData(dataSource).typeof === 'number'\n || this.typeOfData(dataSource).typeof === 'boolean') {\n textField = '';\n }\n dataSource = ListBase.getDataSource(dataSource, ListBase.addSorting(this.sortOrder, textField));\n }\n return dataSource;\n };\n /**\n * Return the index of item which matched with given value in data source\n *\n * @param {string | number | boolean} value - Specifies given value.\n * @returns {number} Returns the index of the item.\n */\n DropDownBase.prototype.getIndexByValue = function (value) {\n var index;\n var listItems = this.getItems();\n for (var i = 0; i < listItems.length; i++) {\n if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {\n index = i;\n break;\n }\n }\n return index;\n };\n /**\n * To dispatch the event manually\n *\n * @param {HTMLElement} element - Specifies the element to dispatch the event.\n * @param {string} type - Specifies the name of the event.\n * @returns {void}\n */\n DropDownBase.prototype.dispatchEvent = function (element, type) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent(type, false, true);\n element.dispatchEvent(evt);\n };\n /**\n * To set the current fields\n *\n * @returns {void}\n */\n DropDownBase.prototype.setFields = function () {\n if (this.fields.value && !this.fields.text) {\n this.updateFields(this.fields.value, this.fields.value);\n }\n else if (!this.fields.value && this.fields.text) {\n this.updateFields(this.fields.text, this.fields.text);\n }\n else if (!this.fields.value && !this.fields.text) {\n this.updateFields('text', 'text');\n }\n };\n /**\n * reset the items list.\n *\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {void}\n */\n DropDownBase.prototype.resetList = function (dataSource, fields, query, e) {\n if (this.list) {\n if ((this.element.tagName === 'SELECT' && this.element.options.length > 0)\n || (this.element.tagName === 'UL' && this.element.childNodes.length > 0)) {\n var data = dataSource instanceof Array ? (dataSource.length > 0)\n : !isNullOrUndefined(dataSource);\n if (!data && this.selectData && this.selectData.length > 0) {\n dataSource = this.selectData;\n }\n }\n dataSource = this.getModuleName() === 'combobox' && this.selectData && dataSource instanceof Array && dataSource.length < this.selectData.length && this.addedNewItem ? this.selectData : dataSource;\n this.addedNewItem = false;\n this.setListData(dataSource, fields, query, e);\n }\n };\n DropDownBase.prototype.updateSelectElementData = function (isFiltering) {\n if (isFiltering && isNullOrUndefined(this.selectData) && this.listData && this.listData.length > 0) {\n this.selectData = this.listData;\n }\n };\n DropDownBase.prototype.updateSelection = function () {\n // This is for after added the item, need to update the selected index values.\n };\n DropDownBase.prototype.renderList = function () {\n // This is for render the list items.\n this.render();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateDataSource = function (props) {\n this.resetList(this.dataSource);\n };\n DropDownBase.prototype.setUpdateInitial = function (props, newProp) {\n this.isDataFetched = false;\n var updateData = {};\n for (var j = 0; props.length > j; j++) {\n if (newProp[props[j]] && props[j] === 'fields') {\n this.setFields();\n updateData[props[j]] = newProp[props[j]];\n }\n else if (newProp[props[j]]) {\n updateData[props[j]] = newProp[props[j]];\n }\n }\n if (Object.keys(updateData).length > 0) {\n if (Object.keys(updateData).indexOf('dataSource') === -1) {\n updateData.dataSource = this.dataSource;\n }\n this.updateDataSource(updateData);\n }\n };\n /**\n * When property value changes happened, then onPropertyChanged method will execute the respective changes in this component.\n *\n * @param {DropDownBaseModel} newProp - Returns the dynamic property value of the component.\n * @param {DropDownBaseModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.getModuleName() === 'dropdownbase') {\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n this.setUpdateInitial(['sortOrder', 'itemTemplate'], newProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'query':\n case 'sortOrder':\n case 'dataSource':\n case 'itemTemplate':\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'groupTemplate':\n this.renderGroupTemplate(this.list);\n if (this.ulElement && this.fixedHeaderElement) {\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group);\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\n }\n break;\n case 'locale':\n if (this.list && (!isNullOrUndefined(this.liCollections) && this.liCollections.length === 0)) {\n this.l10nUpdate();\n }\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n this.setZIndex();\n break;\n }\n }\n };\n /**\n * Build and render the component\n *\n * @param {boolean} isEmptyData - Specifies the component to initialize with list data or not.\n * @private\n * @returns {void}\n */\n DropDownBase.prototype.render = function (e, isEmptyData) {\n this.list = this.createElement('div', { className: dropDownBaseClasses.content, attrs: { 'tabindex': '0' } });\n this.list.classList.add(dropDownBaseClasses.root);\n this.setFields();\n var rippleModel = { duration: 300, selector: '.' + dropDownBaseClasses.li };\n this.rippleFun = rippleEffect(this.list, rippleModel);\n var group = this.element.querySelector('select>optgroup');\n if ((this.fields.groupBy || !isNullOrUndefined(group)) && !this.isGroupChecking) {\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\n }\n if (this.getModuleName() === 'dropdownbase') {\n if (this.element.getAttribute('tabindex')) {\n this.list.setAttribute('tabindex', this.element.getAttribute('tabindex'));\n }\n removeClass([this.element], dropDownBaseClasses.root);\n this.element.style.display = 'none';\n var wrapperElement = this.createElement('div');\n this.element.parentElement.insertBefore(wrapperElement, this.element);\n wrapperElement.appendChild(this.element);\n wrapperElement.appendChild(this.list);\n }\n this.setEnableRtl();\n if (!isEmptyData) {\n this.initialize(e);\n }\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n DropDownBase.prototype.getModuleName = function () {\n return 'dropdownbase';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n DropDownBase.prototype.getItems = function () {\n return this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n\n */\n DropDownBase.prototype.addItem = function (items, itemIndex) {\n if (!this.list || (this.list.textContent === this.noRecordsTemplate && this.getModuleName() !== 'listbox')) {\n this.renderList();\n }\n if (this.sortOrder !== 'None' && isNullOrUndefined(itemIndex)) {\n var newList = [].slice.call(this.listData);\n newList.push(items);\n newList = this.getSortedDataSource(newList);\n if (this.fields.groupBy) {\n newList = ListBase.groupDataSource(newList, this.fields.properties, this.sortOrder);\n itemIndex = newList.indexOf(items);\n }\n else {\n itemIndex = newList.indexOf(items);\n }\n }\n var itemsCount = this.getItems().length;\n var selectedItemValue = this.list.querySelector('.' + dropDownBaseClasses.selected);\n items = (items instanceof Array ? items : [items]);\n var index;\n index = (isNullOrUndefined(itemIndex) || itemIndex < 0 || itemIndex > itemsCount - 1) ? itemsCount : itemIndex;\n var fields = this.fields;\n if (items && fields.groupBy) {\n items = ListBase.groupDataSource(items, fields.properties);\n }\n var liCollections = [];\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var isHeader = item.isHeader;\n var li = this.createElement('li', { className: isHeader ? dropDownBaseClasses.group : dropDownBaseClasses.li, id: 'option-add-' + i });\n var itemText = item instanceof Object ? getValue(fields.text, item) : item;\n if (isHeader) {\n li.innerText = itemText;\n }\n if (this.itemTemplate && !isHeader) {\n var itemCheck = this.templateCompiler(this.itemTemplate);\n var compiledString = itemCheck ? compile(select(this.itemTemplate, document).innerHTML.trim()) : compile(this.itemTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var addItemTemplate = compiledString(item, this, 'itemTemplate', this.itemTemplateId, this.isStringTemplate, null, li);\n if (addItemTemplate) {\n append(addItemTemplate, li);\n }\n }\n else if (!isHeader) {\n li.appendChild(document.createTextNode(itemText));\n }\n li.setAttribute('data-value', item instanceof Object ? getValue(fields.value, item) : item);\n li.setAttribute('role', 'option');\n this.notify('addItem', { module: 'CheckBoxSelection', item: li });\n liCollections.push(li);\n this.listData.push(item);\n if (this.sortOrder === 'None' && isNullOrUndefined(itemIndex) && index === 0) {\n index = null;\n }\n this.updateActionCompleteData(li, item, index);\n //Listbox event\n this.trigger('beforeItemRender', { element: li, item: item });\n }\n if (itemsCount === 0 && isNullOrUndefined(this.list.querySelector('ul'))) {\n if (!isNullOrUndefined(this.list)) {\n this.list.innerHTML = '';\n this.list.classList.remove(dropDownBaseClasses.noData);\n if (!isNullOrUndefined(this.ulElement)) {\n this.list.appendChild(this.ulElement);\n }\n }\n this.liCollections = liCollections;\n if (!isNullOrUndefined(liCollections) && !isNullOrUndefined(this.ulElement)) {\n append(liCollections, this.ulElement);\n }\n this.updateAddItemList(this.list, itemsCount);\n }\n else {\n if (this.getModuleName() === 'listbox' && itemsCount === 0) {\n this.ulElement.innerHTML = '';\n }\n var attr = [];\n for (var i = 0; i < items.length; i++) {\n var listGroupItem = this.ulElement.querySelectorAll('.e-list-group-item');\n for (var j = 0; j < listGroupItem.length; j++) {\n attr[j] = listGroupItem[j].innerText;\n }\n if (attr.indexOf(liCollections[i].innerText) > -1 && fields.groupBy) {\n for (var j = 0; j < listGroupItem.length; j++) {\n if (attr[j] === liCollections[i].innerText) {\n if (this.sortOrder === 'None') {\n this.ulElement.insertBefore(liCollections[i + 1], listGroupItem[j + 1]);\n }\n else {\n this.ulElement.insertBefore(liCollections[i + 1], this.ulElement.childNodes[itemIndex]);\n }\n i = i + 1;\n break;\n }\n }\n }\n else {\n if (this.liCollections[index]) {\n this.liCollections[index].parentNode.insertBefore(liCollections[i], this.liCollections[index]);\n }\n else {\n this.ulElement.appendChild(liCollections[i]);\n }\n }\n var tempLi = [].slice.call(this.liCollections);\n tempLi.splice(index, 0, liCollections[i]);\n this.liCollections = tempLi;\n index += 1;\n if (this.getModuleName() === 'multiselect') {\n this.updateDataList();\n }\n }\n }\n if (selectedItemValue || itemIndex === 0) {\n this.updateSelection();\n }\n this.addedNewItem = true;\n };\n DropDownBase.prototype.validationAttribute = function (target, hidden) {\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n hidden.setAttribute('name', name);\n target.removeAttribute('name');\n var attributes = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attributes.length; i++) {\n if (!target.getAttribute(attributes[i])) {\n continue;\n }\n var attr = target.getAttribute(attributes[i]);\n hidden.setAttribute(attributes[i], attr);\n target.removeAttribute(attributes[i]);\n }\n };\n DropDownBase.prototype.setZIndex = function () {\n // this is for component wise\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateActionCompleteData = function (li, item, index) {\n // this is for ComboBox custom value\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateAddItemList = function (list, itemCount) {\n // this is for multiselect add item\n };\n DropDownBase.prototype.updateDataList = function () {\n // this is for multiselect update list items\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n */\n DropDownBase.prototype.getDataByValue = function (value) {\n if (!isNullOrUndefined(this.listData)) {\n var type = this.typeOfData(this.listData).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n for (var _i = 0, _a = this.listData; _i < _a.length; _i++) {\n var item = _a[_i];\n if (!isNullOrUndefined(item) && item === value) {\n return item;\n }\n }\n }\n else {\n for (var _b = 0, _c = this.listData; _b < _c.length; _b++) {\n var item = _c[_b];\n if (!isNullOrUndefined(item) && getValue((this.fields.value ? this.fields.value : 'value'), item) === value) {\n return item;\n }\n }\n }\n }\n return null;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n DropDownBase.prototype.destroy = function () {\n if (document.body.contains(this.list)) {\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\n if (!isNullOrUndefined(this.rippleFun)) {\n this.rippleFun();\n }\n detach(this.list);\n }\n this.liCollections = null;\n this.ulElement = null;\n this.list = null;\n this.enableRtlElements = null;\n this.rippleFun = null;\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\n ], DropDownBase.prototype, \"fields\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], DropDownBase.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property('Request failed')\n ], DropDownBase.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('None')\n ], DropDownBase.prototype, \"sortOrder\", void 0);\n __decorate([\n Property([])\n ], DropDownBase.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"query\", void 0);\n __decorate([\n Property('StartsWith')\n ], DropDownBase.prototype, \"filterType\", void 0);\n __decorate([\n Property(true)\n ], DropDownBase.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(1000)\n ], DropDownBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], DropDownBase.prototype, \"ignoreAccent\", void 0);\n __decorate([\n Property()\n ], DropDownBase.prototype, \"locale\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"destroyed\", void 0);\n DropDownBase = __decorate([\n NotifyPropertyChanges\n ], DropDownBase);\n return DropDownBase;\n}(Component));\nexport { DropDownBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { EventHandler, Property, Event, compile, KeyboardEvents, append, select } from '@syncfusion/ej2-base';\nimport { attributes, isNullOrUndefined, getUniqueID, formatUnit, isUndefined, getValue } from '@syncfusion/ej2-base';\nimport { Animation, Browser, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, closest, prepend, detach, classList } from '@syncfusion/ej2-base';\nimport { Popup, isCollide, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { incrementalSearch, resetIncrementalSearchValues } from '../common/incremental-search';\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\n// don't use space in classnames\nexport var dropDownListClasses = {\n root: 'e-dropdownlist',\n hover: dropDownBaseClasses.hover,\n selected: dropDownBaseClasses.selected,\n rtl: dropDownBaseClasses.rtl,\n li: dropDownBaseClasses.li,\n disable: dropDownBaseClasses.disabled,\n base: dropDownBaseClasses.root,\n focus: dropDownBaseClasses.focus,\n input: 'e-input-group',\n inputFocus: 'e-input-focus',\n icon: 'e-input-group-icon e-ddl-icon',\n iconAnimation: 'e-icon-anim',\n value: 'e-input-value',\n device: 'e-ddl-device',\n backIcon: 'e-input-group-icon e-back-icon e-icons',\n filterBarClearIcon: 'e-input-group-icon e-clear-icon e-icons',\n filterInput: 'e-input-filter',\n filterParent: 'e-filter-parent',\n mobileFilter: 'e-ddl-device-filter',\n footer: 'e-ddl-footer',\n header: 'e-ddl-header',\n clearIcon: 'e-clear-icon',\n clearIconHide: 'e-clear-icon-hide',\n popupFullScreen: 'e-popup-full-page',\n disableIcon: 'e-ddl-disable-icon',\n hiddenElement: 'e-ddl-hidden'\n};\nvar inputObject = {\n container: null,\n buttons: []\n};\n/**\n * The DropDownList component contains a list of predefined values from which you can\n * choose a single value.\n * ```html\n * \n * ```\n * ```typescript\n * let dropDownListObj:DropDownList = new DropDownList();\n * dropDownListObj.appendTo(\"#list\");\n * ```\n */\nvar DropDownList = /** @class */ (function (_super) {\n __extends(DropDownList, _super);\n /**\n * * Constructor for creating the DropDownList component.\n *\n * @param {DropDownListModel} options - Specifies the DropDownList model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function DropDownList(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isListSearched = false;\n _this.preventChange = false;\n _this.isAngular = false;\n return _this;\n }\n /**\n * Initialize the event handler.\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.preRender = function () {\n this.valueTempElement = null;\n this.element.style.opacity = '0';\n this.initializeData();\n _super.prototype.preRender.call(this);\n this.activeIndex = this.index;\n this.queryString = '';\n };\n DropDownList.prototype.initializeData = function () {\n this.isPopupOpen = false;\n this.isDocumentClick = false;\n this.isInteracted = false;\n this.isFilterFocus = false;\n this.beforePopupOpen = false;\n this.initial = true;\n this.initRemoteRender = false;\n this.isNotSearchList = false;\n this.isTyped = false;\n this.isSelected = false;\n this.preventFocus = false;\n this.preventAutoFill = false;\n this.isValidKey = false;\n this.typedString = '';\n this.isEscapeKey = false;\n this.isPreventBlur = false;\n this.isTabKey = false;\n this.actionCompleteData = { isUpdated: false };\n this.actionData = { isUpdated: false };\n this.prevSelectPoints = {};\n this.isSelectCustom = false;\n this.isDropDownClick = false;\n this.preventAltUp = false;\n this.isCustomFilter = false;\n this.isSecondClick = false;\n this.previousValue = null;\n this.keyConfigure = {\n tab: 'tab',\n enter: '13',\n escape: '27',\n end: '35',\n home: '36',\n down: '40',\n up: '38',\n pageUp: '33',\n pageDown: '34',\n open: 'alt+40',\n close: 'shift+tab',\n hide: 'alt+38',\n space: '32'\n };\n };\n DropDownList.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ 'zIndex': this.zIndex });\n }\n };\n DropDownList.prototype.renderList = function (e, isEmptyData) {\n _super.prototype.render.call(this, e, isEmptyData);\n this.unWireListEvents();\n this.wireListEvents();\n };\n DropDownList.prototype.floatLabelChange = function () {\n if (this.getModuleName() === 'dropdownlist' && this.floatLabelType === 'Auto') {\n var floatElement = this.inputWrapper.container.querySelector('.e-float-text');\n if (this.inputElement.value !== '' || this.isInteracted) {\n classList(floatElement, ['e-label-top'], ['e-label-bottom']);\n }\n else {\n classList(floatElement, ['e-label-bottom'], ['e-label-top']);\n }\n }\n };\n DropDownList.prototype.resetHandler = function (e) {\n e.preventDefault();\n this.clearAll(e);\n };\n DropDownList.prototype.resetFocusElement = function () {\n this.removeHover();\n this.removeSelection();\n this.removeFocus();\n this.list.scrollTop = 0;\n if (this.getModuleName() !== 'autocomplete' && !isNullOrUndefined(this.ulElement)) {\n var li = this.ulElement.querySelector('.' + dropDownListClasses.li);\n if (li) {\n li.classList.add(dropDownListClasses.focus);\n }\n }\n };\n DropDownList.prototype.clearAll = function (e, properties) {\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\n if (isNullOrUndefined(properties) || (!isNullOrUndefined(properties) &&\n (isNullOrUndefined(properties.dataSource) ||\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\n this.isActive = true;\n this.resetSelection(properties);\n }\n var dataItem = this.getItemData();\n if (this.previousValue === dataItem.value) {\n return;\n }\n this.onChangeEvent(e);\n };\n DropDownList.prototype.resetSelection = function (properties) {\n if (this.list) {\n if ((!isNullOrUndefined(properties) &&\n (isNullOrUndefined(properties.dataSource) ||\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\n this.selectedLI = null;\n this.actionCompleteData.isUpdated = false;\n this.actionCompleteData.ulElement = null;\n this.actionCompleteData.list = null;\n this.resetList(properties.dataSource);\n }\n else {\n if (this.allowFiltering && this.getModuleName() !== 'autocomplete'\n && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list) && this.actionCompleteData.list.length > 0) {\n this.onActionComplete(this.actionCompleteData.ulElement.cloneNode(true), this.actionCompleteData.list);\n }\n this.resetFocusElement();\n }\n }\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n }\n if (!isNullOrUndefined(this.inputElement)) {\n this.inputElement.value = '';\n }\n this.value = null;\n this.itemData = null;\n this.text = null;\n this.index = null;\n this.activeIndex = null;\n this.item = null;\n this.queryString = '';\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n this.setSelection(null, null);\n this.isSelectCustom = false;\n this.updateIconState();\n this.cloneElements();\n };\n DropDownList.prototype.setHTMLAttributes = function () {\n if (Object.keys(this.htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n if (htmlAttr === 'class') {\n var updatedClassValue = (this.htmlAttributes[\"\" + htmlAttr].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValue !== '') {\n addClass([this.inputWrapper.container], updatedClassValue.split(' '));\n }\n }\n else if (htmlAttr === 'disabled' && this.htmlAttributes[\"\" + htmlAttr] === 'disabled') {\n this.enabled = false;\n this.setEnable();\n }\n else if (htmlAttr === 'readonly' && !isNullOrUndefined(this.htmlAttributes[\"\" + htmlAttr])) {\n this.readonly = true;\n this.dataBind();\n }\n else if (htmlAttr === 'style') {\n this.inputWrapper.container.setAttribute('style', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n var defaultAttr = ['title', 'id', 'placeholder',\n 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n defaultAttr.push('tabindex');\n }\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(this.htmlAttributes[\"\" + htmlAttr], this.inputElement);\n }\n else {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n else {\n this.inputWrapper.container.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputWrapper.container.removeAttribute('tabindex');\n }\n };\n DropDownList.prototype.getAriaAttributes = function () {\n return {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'aria-expanded': 'false',\n 'aria-live': 'polite',\n 'aria-labelledby': this.hiddenElement.id\n };\n };\n DropDownList.prototype.setEnableRtl = function () {\n Input.setEnableRtl(this.enableRtl, [this.inputElement.parentElement]);\n if (this.popupObj) {\n this.popupObj.enableRtl = this.enableRtl;\n this.popupObj.dataBind();\n }\n };\n DropDownList.prototype.setEnable = function () {\n Input.setEnabled(this.enabled, this.inputElement);\n if (this.enabled) {\n removeClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.hidePopup();\n addClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.targetElement().tabIndex = -1;\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n DropDownList.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n DropDownList.prototype.getLocaleName = function () {\n return 'drop-down-list';\n };\n DropDownList.prototype.preventTabIndex = function (element) {\n if (this.getModuleName() === 'dropdownlist') {\n element.tabIndex = -1;\n }\n };\n DropDownList.prototype.targetElement = function () {\n return !isNullOrUndefined(this.inputWrapper) ? this.inputWrapper.container : null;\n };\n DropDownList.prototype.getNgDirective = function () {\n return 'EJS-DROPDOWNLIST';\n };\n DropDownList.prototype.getElementByText = function (text) {\n return this.getElementByValue(this.getValueByText(text));\n };\n DropDownList.prototype.getElementByValue = function (value) {\n var item;\n var listItems = this.getItems();\n for (var _i = 0, listItems_1 = listItems; _i < listItems_1.length; _i++) {\n var liItem = listItems_1[_i];\n if (this.getFormattedValue(liItem.getAttribute('data-value')) === value) {\n item = liItem;\n break;\n }\n }\n return item;\n };\n DropDownList.prototype.initValue = function () {\n this.renderList();\n if (this.dataSource instanceof DataManager) {\n this.initRemoteRender = true;\n }\n else {\n this.updateValues();\n }\n };\n DropDownList.prototype.updateValues = function () {\n if (!isNullOrUndefined(this.value)) {\n this.setSelection(this.getElementByValue(this.value), null);\n }\n else if (this.text && isNullOrUndefined(this.value)) {\n var element = this.getElementByText(this.text);\n if (isNullOrUndefined(element)) {\n this.setProperties({ text: null });\n return;\n }\n else {\n this.setSelection(element, null);\n }\n }\n else {\n this.setSelection(this.liCollections[this.activeIndex], null);\n }\n this.setHiddenValue();\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n DropDownList.prototype.onBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n var target = e.relatedTarget;\n var currentTarget = e.target;\n var isPreventBlur = this.isPreventBlur;\n this.isPreventBlur = false;\n //IE 11 - issue\n if (isPreventBlur && !this.isDocumentClick && this.isPopupOpen && (!isNullOrUndefined(currentTarget) ||\n !this.isFilterLayout() && isNullOrUndefined(target))) {\n if (this.getModuleName() === 'dropdownlist' && this.allowFiltering && this.isPopupOpen) {\n this.filterInput.focus();\n }\n else {\n this.targetElement().focus();\n }\n return;\n }\n if (this.isDocumentClick || (!isNullOrUndefined(this.popupObj)\n && document.body.contains(this.popupObj.element) &&\n this.popupObj.element.classList.contains(dropDownListClasses.mobileFilter))) {\n if (!this.beforePopupOpen) {\n this.isDocumentClick = false;\n }\n return;\n }\n if (((this.getModuleName() === 'dropdownlist' && !this.isFilterFocus && target !== this.inputElement)\n && (document.activeElement !== target || (document.activeElement === target &&\n currentTarget.classList.contains(dropDownListClasses.inputFocus)))) ||\n (isNullOrUndefined(target) && this.getModuleName() === 'dropdownlist' && this.allowFiltering &&\n currentTarget !== this.inputWrapper.container) || this.getModuleName() !== 'dropdownlist' &&\n !this.inputWrapper.container.contains(target) || this.isTabKey) {\n this.isDocumentClick = this.isPopupOpen ? true : false;\n this.focusOutAction(e);\n this.isTabKey = false;\n }\n if (this.isRequested && !this.isPopupOpen && !this.isPreventBlur) {\n this.isActive = false;\n this.beforePopupOpen = false;\n }\n };\n DropDownList.prototype.focusOutAction = function (e) {\n this.isInteracted = false;\n this.focusOut(e);\n this.onFocusOut();\n };\n DropDownList.prototype.onFocusOut = function () {\n if (!this.enabled) {\n return;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(null);\n }\n this.floatLabelChange();\n this.dispatchEvent(this.hiddenElement, 'change');\n if (this.getModuleName() === 'dropdownlist' && this.element.tagName !== 'INPUT') {\n this.dispatchEvent(this.inputElement, 'blur');\n }\n if (this.inputWrapper.clearButton) {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n this.trigger('blur');\n };\n DropDownList.prototype.onFocus = function (e) {\n if (!this.isInteracted) {\n this.isInteracted = true;\n var args = { isInteracted: e ? true : false, event: e };\n this.trigger('focus', args);\n }\n this.updateIconState();\n };\n DropDownList.prototype.resetValueHandler = function (e) {\n var formElement = closest(this.inputElement, 'form');\n if (formElement && e.target === formElement) {\n var val = (this.element.tagName === this.getNgDirective()) ? null : this.inputElement.getAttribute('value');\n this.text = val;\n }\n };\n DropDownList.prototype.wireEvent = function () {\n EventHandler.add(this.inputWrapper.container, 'mousedown', this.dropDownClick, this);\n EventHandler.add(this.inputWrapper.container, 'focus', this.focusIn, this);\n EventHandler.add(this.inputWrapper.container, 'keypress', this.onSearch, this);\n this.bindCommonEvent();\n };\n DropDownList.prototype.bindCommonEvent = function () {\n EventHandler.add(this.targetElement(), 'blur', this.onBlurHandler, this);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\n }\n if (!Browser.isDevice) {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.keyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\n });\n }\n else {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.mobileKeyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\n });\n }\n this.bindClearEvent();\n };\n DropDownList.prototype.bindClearEvent = function () {\n if (this.showClearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\n }\n };\n DropDownList.prototype.unBindCommonEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper) && this.targetElement()) {\n EventHandler.remove(this.targetElement(), 'blur', this.onBlurHandler);\n }\n var formElement = this.inputElement && closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\n }\n if (!Browser.isDevice) {\n this.keyboardModule.destroy();\n }\n if (this.showClearButton) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown', this.resetHandler);\n }\n };\n DropDownList.prototype.updateIconState = function () {\n if (this.showClearButton) {\n if (this.inputElement.value !== '' && !this.readonly) {\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n else {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n };\n /**\n * Event binding for list\n *\n * @returns {void}\n */\n DropDownList.prototype.wireListEvents = function () {\n if (!isNullOrUndefined(this.list)) {\n EventHandler.add(this.list, 'click', this.onMouseClick, this);\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\n }\n };\n DropDownList.prototype.onSearch = function (e) {\n if (e.charCode !== 32 && e.charCode !== 13) {\n if (this.list === undefined) {\n this.renderList();\n }\n this.searchKeyEvent = e;\n this.onServerIncrementalSearch(e);\n }\n };\n DropDownList.prototype.onServerIncrementalSearch = function (e) {\n if (!this.isRequested && !isNullOrUndefined(this.list) &&\n !isNullOrUndefined(this.list.querySelector('li')) && this.enabled && !this.readonly) {\n this.incrementalSearch(e);\n }\n };\n DropDownList.prototype.onMouseClick = function (e) {\n var target = e.target;\n var li = closest(target, '.' + dropDownBaseClasses.li);\n if (!this.isValidLI(li)) {\n return;\n }\n this.setSelection(li, e);\n if (Browser.isDevice && this.isFilterLayout()) {\n history.back();\n }\n else {\n var delay = 100;\n this.closePopup(delay, e);\n }\n };\n DropDownList.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n this.setHover(currentLi);\n };\n DropDownList.prototype.setHover = function (li) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.hover)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n };\n DropDownList.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n DropDownList.prototype.removeHover = function () {\n if (this.list) {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.hover);\n }\n }\n };\n DropDownList.prototype.isValidLI = function (li) {\n return (li && li.hasAttribute('role') && li.getAttribute('role') === 'option');\n };\n DropDownList.prototype.incrementalSearch = function (e) {\n if (this.liCollections.length > 0) {\n var li = incrementalSearch(e.charCode, this.liCollections, this.activeIndex, true, this.element.id);\n if (!isNullOrUndefined(li)) {\n this.setSelection(li, e);\n this.setScrollPosition();\n }\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\n this.spinnerElement.innerHTML = '';\n this.spinnerElement = null;\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = Browser.isDevice && !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[1] ||\n !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[0] || this.inputWrapper.buttons[0];\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n };\n DropDownList.prototype.keyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n var preventAction = e.action === 'pageUp' || e.action === 'pageDown';\n var preventHomeEnd = this.getModuleName() !== 'dropdownlist' && (e.action === 'home' || e.action === 'end');\n this.isEscapeKey = e.action === 'escape';\n this.isTabKey = !this.isPopupOpen && e.action === 'tab';\n var isNavAction = e.action === 'down' || e.action === 'up' || e.action === 'home' || e.action === 'end';\n var isNavigation = (e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown'\n || e.action === 'home' || e.action === 'end');\n if ((this.isEditTextBox() || preventAction || preventHomeEnd) && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n var isTabAction = e.action === 'tab' || e.action === 'close';\n if (isNullOrUndefined(this.list) && !this.isRequested && !isTabAction && e.action !== 'escape') {\n this.searchKeyEvent = e;\n this.renderList(e);\n }\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\n isNavigation && this.liCollections.length === 0) || this.isRequested) {\n return;\n }\n if ((isTabAction && this.getModuleName() !== 'autocomplete') && this.isPopupOpen\n || e.action === 'escape') {\n e.preventDefault();\n }\n this.isSelected = e.action === 'escape' ? false : this.isSelected;\n this.isTyped = (isNavigation || e.action === 'escape') ? false : this.isTyped;\n switch (e.action) {\n case 'down':\n case 'up':\n this.updateUpDownAction(e);\n break;\n case 'pageUp':\n this.pageUpSelection(this.activeIndex - this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'pageDown':\n this.pageDownSelection(this.activeIndex + this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'home':\n this.updateHomeEndAction(e);\n break;\n case 'end':\n this.updateHomeEndAction(e);\n break;\n case 'space':\n if (this.getModuleName() === 'dropdownlist') {\n if (!this.beforePopupOpen) {\n this.showPopup();\n }\n }\n break;\n case 'open':\n this.showPopup(e);\n break;\n case 'hide':\n this.preventAltUp = this.isPopupOpen;\n this.hidePopup(e);\n this.focusDropDown(e);\n break;\n case 'enter':\n this.selectCurrentItem(e);\n break;\n case 'tab':\n this.selectCurrentValueOnTab(e);\n break;\n case 'escape':\n case 'close':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n break;\n }\n }\n };\n DropDownList.prototype.updateUpDownAction = function (e) {\n var focusEle = this.list.querySelector('.' + dropDownListClasses.focus);\n if (this.isSelectFocusItem(focusEle)) {\n this.setSelection(focusEle, e);\n }\n else if (!isNullOrUndefined(this.liCollections)) {\n var index = e.action === 'down' ? this.activeIndex + 1 : this.activeIndex - 1;\n var startIndex = 0;\n if (this.getModuleName() === 'autocomplete') {\n startIndex = e.action === 'down' && isNullOrUndefined(this.activeIndex) ? 0 : this.liCollections.length - 1;\n index = index < 0 ? this.liCollections.length - 1 : index === this.liCollections.length ? 0 : index;\n }\n var nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex] : this.liCollections[index];\n if (!isNullOrUndefined(nextItem)) {\n this.setSelection(nextItem, e);\n }\n }\n e.preventDefault();\n };\n DropDownList.prototype.updateHomeEndAction = function (e) {\n if (this.getModuleName() === 'dropdownlist') {\n var findLi = 0;\n if (e.action === 'home') {\n findLi = 0;\n }\n else {\n findLi = this.getItems().length - 1;\n }\n e.preventDefault();\n if (this.activeIndex === findLi) {\n return;\n }\n this.setSelection(this.liCollections[findLi], e);\n }\n };\n DropDownList.prototype.selectCurrentValueOnTab = function (e) {\n if (this.getModuleName() === 'autocomplete') {\n this.selectCurrentItem(e);\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n }\n };\n DropDownList.prototype.mobileKeyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if ((this.isEditTextBox()) && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n if (this.list === undefined && !this.isRequested) {\n this.searchKeyEvent = e;\n this.renderList();\n }\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\n this.liCollections.length === 0) || this.isRequested) {\n return;\n }\n if (e.action === 'enter') {\n this.selectCurrentItem(e);\n }\n }\n };\n DropDownList.prototype.selectCurrentItem = function (e) {\n if (this.isPopupOpen) {\n var li = this.list.querySelector('.' + dropDownListClasses.focus);\n if (li) {\n this.setSelection(li, e);\n this.isTyped = false;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n else {\n this.showPopup();\n }\n };\n DropDownList.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n DropDownList.prototype.getPageCount = function () {\n var liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :\n getComputedStyle(this.getItems()[0], null).getPropertyValue('height');\n return Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));\n };\n DropDownList.prototype.pageUpSelection = function (steps, event) {\n var previousItem = steps >= 0 ? this.liCollections[steps + 1] : this.liCollections[0];\n this.setSelection(previousItem, event);\n };\n DropDownList.prototype.pageDownSelection = function (steps, event) {\n var list = this.getItems();\n var previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];\n this.setSelection(previousItem, event);\n };\n DropDownList.prototype.unWireEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper)) {\n EventHandler.remove(this.inputWrapper.container, 'mousedown', this.dropDownClick);\n EventHandler.remove(this.inputWrapper.container, 'keypress', this.onSearch);\n EventHandler.remove(this.inputWrapper.container, 'focus', this.focusIn);\n }\n this.unBindCommonEvent();\n };\n /**\n * Event un binding for list items.\n *\n * @returns {void}\n */\n DropDownList.prototype.unWireListEvents = function () {\n if (this.list) {\n EventHandler.remove(this.list, 'click', this.onMouseClick);\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\n }\n };\n DropDownList.prototype.checkSelector = function (id) {\n return '[id=\"' + id.replace(/(:|\\.|\\[|\\]|,|=|@|\\\\|\\/|#)/g, '\\\\$1') + '\"]';\n };\n DropDownList.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, this.checkSelector(this.popupObj.element.id))) &&\n !isNullOrUndefined(this.inputWrapper) && !this.inputWrapper.container.contains(e.target)) {\n if (this.inputWrapper.container.classList.contains(dropDownListClasses.inputFocus) || this.isPopupOpen) {\n this.isDocumentClick = true;\n var isActive = this.isRequested;\n this.isInteracted = false;\n this.hidePopup(e);\n if (!isActive) {\n this.onFocusOut();\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n }\n }\n else if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput)\n && !(this.getModuleName() === 'combobox' &&\n !this.allowFiltering && Browser.isDevice && target === this.inputWrapper.buttons[0])) {\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.targetElement() ||\n document.activeElement === this.filterInput);\n e.preventDefault();\n }\n };\n DropDownList.prototype.activeStateChange = function () {\n if (this.isDocumentClick) {\n this.hidePopup();\n this.onFocusOut();\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n };\n DropDownList.prototype.focusDropDown = function (e) {\n if (!this.initial && this.isFilterLayout()) {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.dropDownClick = function (e) {\n if (e.which === 3 || e.button === 2) {\n return;\n }\n if (this.targetElement().classList.contains(dropDownListClasses.disable) || this.inputWrapper.clearButton === e.target) {\n return;\n }\n var target = e.target;\n if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput) && this.getModuleName() !== 'combobox') {\n e.preventDefault();\n }\n if (!this.readonly) {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n if (this.isFilterLayout()) {\n this.focusDropDown(e);\n }\n }\n else {\n this.focusIn(e);\n this.floatLabelChange();\n this.queryString = this.inputElement.value.trim() === '' ? null : this.inputElement.value;\n this.isDropDownClick = true;\n this.showPopup(e);\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n // eslint-disable-next-line max-len\n var duration = (this.element.tagName === this.getNgDirective() && this.itemTemplate) ? 500 : 100;\n if (!this.isSecondClick) {\n setTimeout(function () {\n proxy_1.cloneElements();\n proxy_1.isSecondClick = true;\n }, duration);\n }\n }\n else {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.cloneElements = function () {\n if (this.list) {\n var ulElement = this.list.querySelector('ul');\n if (ulElement) {\n ulElement = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n this.actionCompleteData.ulElement = ulElement;\n }\n }\n };\n DropDownList.prototype.updateSelectedItem = function (li, e, preventSelect, isSelection) {\n var _this = this;\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n var value = this.getFormattedValue(li.getAttribute('data-value'));\n var selectedData = this.getDataByValue(value);\n if (!this.initial && !preventSelect && !isNullOrUndefined(e)) {\n var items = this.detachChanges(selectedData);\n this.isSelected = true;\n var eventArgs = {\n e: e,\n item: li,\n itemData: items,\n isInteracted: e ? true : false,\n cancel: false\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n li.classList.remove(dropDownBaseClasses.selected);\n }\n else {\n _this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n _this.setSelectOptions(li, e);\n }\n }\n });\n }\n else {\n this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n this.setSelectOptions(li, e);\n }\n }\n };\n DropDownList.prototype.selectEventCallback = function (li, e, preventSelect, selectedData, value) {\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\n if (this.itemData != selectedData) {\n this.previousValue = (!isNullOrUndefined(this.itemData)) ? typeof this.itemData == \"object\" ? this.checkFieldValue(this.itemData, this.fields.value.split('.')) : this.itemData : null;\n }\n this.item = li;\n this.itemData = selectedData;\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (focusedItem) {\n removeClass([focusedItem], dropDownBaseClasses.focus);\n }\n li.setAttribute('aria-selected', 'true');\n this.activeIndex = this.getIndexByValue(value);\n };\n DropDownList.prototype.activeItem = function (li) {\n if (this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.selected)) {\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n li.setAttribute('aria-selected', 'true');\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.setValue = function (e) {\n var dataItem = this.getItemData();\n if (dataItem.value === null) {\n Input.setValue(null, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n Input.setValue(dataItem.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n }\n else if (!isNullOrUndefined(this.valueTempElement) && this.inputElement.previousSibling === this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n }\n var clearIcon = dropDownListClasses.clearIcon;\n var isFilterElement = this.isFiltering() && this.filterInput && (this.getModuleName() === 'combobox');\n var clearElement = isFilterElement && this.filterInput.parentElement.querySelector('.' + clearIcon);\n if (this.isFiltering() && clearElement) {\n clearElement.style.removeProperty('visibility');\n }\n if (this.previousValue === dataItem.value) {\n this.isSelected = false;\n return true;\n }\n else {\n this.isSelected = !this.initial ? true : false;\n this.isSelectCustom = false;\n if (this.getModuleName() === 'dropdownlist') {\n this.updateIconState();\n }\n return false;\n }\n };\n DropDownList.prototype.setSelection = function (li, e) {\n if (this.isValidLI(li) && (!li.classList.contains(dropDownBaseClasses.selected) || (this.isPopupOpen && this.isSelected\n && li.classList.contains(dropDownBaseClasses.selected)))) {\n this.updateSelectedItem(li, e, false, true);\n }\n else {\n this.setSelectOptions(li, e);\n }\n };\n DropDownList.prototype.setSelectOptions = function (li, e) {\n if (this.list) {\n this.removeHover();\n }\n this.previousSelectedLI = (!isNullOrUndefined(this.selectedLI)) ? this.selectedLI : null;\n this.selectedLI = li;\n if (this.setValue(e)) {\n return;\n }\n if ((!this.isPopupOpen && !isNullOrUndefined(li)) || (this.isPopupOpen && !isNullOrUndefined(e) &&\n (e.type !== 'keydown' || e.type === 'keydown' && e.action === 'enter'))) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.selectedLI) && this.itemData !== null && (!e || e.type !== 'click')) {\n this.setScrollPosition(e);\n }\n if (Browser.info.name !== 'mozilla') {\n if (this.targetElement()) {\n attributes(this.targetElement(), { 'aria-label': this.inputElement.value });\n attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id != '' ? this.inputElement.id : this.element.id });\n this.targetElement().removeAttribute('aria-live');\n }\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n else if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id });\n }\n };\n DropDownList.prototype.dropdownCompiler = function (dropdownTemplate) {\n var checkTemplate = false;\n if (dropdownTemplate) {\n try {\n checkTemplate = (document.querySelectorAll(dropdownTemplate).length) ? true : false;\n }\n catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n DropDownList.prototype.setValueTemplate = function () {\n var compiledString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['valueTemplate']);\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n }\n if (!this.valueTempElement) {\n this.valueTempElement = this.createElement('span', { className: dropDownListClasses.value });\n this.inputElement.parentElement.insertBefore(this.valueTempElement, this.inputElement);\n this.inputElement.style.display = 'none';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.valueTempElement.innerHTML = '';\n }\n var valuecheck = this.dropdownCompiler(this.valueTemplate);\n if (valuecheck) {\n compiledString = compile(document.querySelector(this.valueTemplate).innerHTML.trim());\n }\n else {\n compiledString = compile(this.valueTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var valueCompTemp = compiledString(this.itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, this.valueTempElement);\n if (valueCompTemp && valueCompTemp.length > 0) {\n for (var i = 0; i < valueCompTemp.length; i++) {\n this.valueTempElement.appendChild(valueCompTemp[i]);\n }\n }\n this.renderReactTemplates();\n };\n DropDownList.prototype.removeSelection = function () {\n if (this.list) {\n var selectedItems = this.list.querySelectorAll('.' + dropDownBaseClasses.selected);\n if (selectedItems.length) {\n removeClass(selectedItems, dropDownBaseClasses.selected);\n selectedItems[0].removeAttribute('aria-selected');\n }\n }\n };\n DropDownList.prototype.getItemData = function () {\n var fields = this.fields;\n var dataItem = null;\n dataItem = this.itemData;\n var dataValue;\n var dataText;\n if (!isNullOrUndefined(dataItem)) {\n dataValue = getValue(fields.value, dataItem);\n dataText = getValue(fields.text, dataItem);\n }\n var value = (!isNullOrUndefined(dataItem) &&\n !isUndefined(dataValue) ? dataValue : dataItem);\n var text = (!isNullOrUndefined(dataItem) &&\n !isUndefined(dataValue) ? dataText : dataItem);\n return { value: value, text: text };\n };\n /**\n * To trigger the change event for list.\n *\n * @param {MouseEvent | KeyboardEvent | TouchEvent} eve - Specifies the event arguments.\n * @returns {void}\n */\n DropDownList.prototype.onChangeEvent = function (eve) {\n var dataItem = this.getItemData();\n var index = this.isSelectCustom ? null : this.activeIndex;\n this.setProperties({ 'index': index, 'text': dataItem.text, 'value': dataItem.value }, true);\n this.detachChangeEvent(eve);\n };\n DropDownList.prototype.detachChanges = function (value) {\n var items;\n if (typeof value === 'string' ||\n typeof value === 'boolean' ||\n typeof value === 'number') {\n items = Object.defineProperties({}, {\n value: {\n value: value,\n enumerable: true\n },\n text: {\n value: value,\n enumerable: true\n }\n });\n }\n else {\n items = value;\n }\n return items;\n };\n DropDownList.prototype.detachChangeEvent = function (eve) {\n this.isSelected = false;\n this.previousValue = this.value;\n this.activeIndex = this.index;\n this.typedString = !isNullOrUndefined(this.text) ? this.text : '';\n if (!this.initial) {\n var items = this.detachChanges(this.itemData);\n var preItems = void 0;\n if (typeof this.previousItemData === 'string' ||\n typeof this.previousItemData === 'boolean' ||\n typeof this.previousItemData === 'number') {\n preItems = Object.defineProperties({}, {\n value: {\n value: this.previousItemData,\n enumerable: true\n },\n text: {\n value: this.previousItemData,\n enumerable: true\n }\n });\n }\n else {\n preItems = this.previousItemData;\n }\n this.setHiddenValue();\n var eventArgs = {\n e: eve,\n item: this.item,\n itemData: items,\n previousItem: this.previousSelectedLI,\n previousItemData: preItems,\n isInteracted: eve ? true : false,\n value: this.value,\n element: this.element,\n event: eve\n };\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n }\n if ((isNullOrUndefined(this.value) || this.value === '') && this.floatLabelType !== 'Always') {\n removeClass([this.inputWrapper.container], 'e-valid-input');\n }\n };\n DropDownList.prototype.setHiddenValue = function () {\n if (!isNullOrUndefined(this.value)) {\n if (this.hiddenElement.querySelector('option')) {\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.textContent = this.text;\n selectedElement.setAttribute('value', this.value.toString());\n }\n else {\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.setAttribute('value', this.value.toString());\n }\n }\n }\n else {\n this.hiddenElement.innerHTML = '';\n }\n };\n /**\n * Filter bar implementation\n *\n * @param {KeyboardEventArgs} e - Specifies the event arguments.\n * @returns {void}\n */\n DropDownList.prototype.onFilterUp = function (e) {\n if (!(e.ctrlKey && e.keyCode === 86) && (this.isValidKey || e.keyCode === 40 || e.keyCode === 38)) {\n this.isValidKey = false;\n switch (e.keyCode) {\n case 38: //up arrow\n case 40: //down arrow\n if (this.getModuleName() === 'autocomplete' && !this.isPopupOpen && !this.preventAltUp && !this.isRequested) {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else {\n this.preventAutoFill = false;\n }\n this.preventAltUp = false;\n if (this.getModuleName() === 'autocomplete' && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n e.preventDefault();\n break;\n case 46: //delete\n case 8: //backspace\n this.typedString = this.filterInput.value;\n if (!this.isPopupOpen && this.typedString !== '' || this.isPopupOpen && this.queryString.length > 0) {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else if (this.typedString === '' && this.queryString === '' && this.getModuleName() !== 'autocomplete') {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else if (this.typedString === '') {\n if (this.list) {\n this.resetFocusElement();\n }\n this.activeIndex = null;\n if (this.getModuleName() !== 'dropdownlist') {\n this.preventAutoFill = true;\n this.searchLists(e);\n if (this.getModuleName() === 'autocomplete') {\n this.hidePopup();\n }\n }\n }\n e.preventDefault();\n break;\n default:\n this.typedString = this.filterInput.value;\n this.preventAutoFill = false;\n this.searchLists(e);\n break;\n }\n }\n else {\n this.isValidKey = false;\n }\n };\n DropDownList.prototype.onFilterDown = function (e) {\n switch (e.keyCode) {\n case 13: //enter\n break;\n case 40: //down arrow\n case 38: //up arrow\n this.queryString = this.filterInput.value;\n e.preventDefault();\n break;\n case 9: //tab\n if (this.isPopupOpen && this.getModuleName() !== 'autocomplete') {\n e.preventDefault();\n }\n break;\n default:\n this.prevSelectPoints = this.getSelectionPoints();\n this.queryString = this.filterInput.value;\n break;\n }\n };\n DropDownList.prototype.removeFillSelection = function () {\n if (this.isInteracted) {\n var selection = this.getSelectionPoints();\n this.inputElement.setSelectionRange(selection.end, selection.end);\n }\n };\n DropDownList.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering && this.filterInput) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n }\n else {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n }\n }\n else {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n DropDownList.prototype.getSelectionPoints = function () {\n var input = this.inputElement;\n return { start: Math.abs(input.selectionStart), end: Math.abs(input.selectionEnd) };\n };\n DropDownList.prototype.searchLists = function (e) {\n var _this = this;\n this.isTyped = true;\n this.activeIndex = null;\n this.isListSearched = true;\n if (this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon)) {\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n clearElement.style.visibility = this.filterInput.value === '' ? 'hidden' : 'visible';\n }\n this.isDataFetched = false;\n if (this.isFiltering()) {\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.filterInput.value,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.filteringAction(dataSource, query, fields);\n },\n baseEventArgs: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isCustomFilter && !eventArgs.preventDefaultAction) {\n _this.filteringAction(_this.dataSource, null, _this.fields);\n }\n });\n }\n };\n /**\n * To filter the data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n\n */\n DropDownList.prototype.filter = function (dataSource, query, fields) {\n this.isCustomFilter = true;\n this.filteringAction(dataSource, query, fields);\n };\n DropDownList.prototype.filteringAction = function (dataSource, query, fields) {\n if (!isNullOrUndefined(this.filterInput)) {\n this.beforePopupOpen = (!this.isPopupOpen && this.getModuleName() === 'combobox' && this.filterInput.value === '') ?\n false : true;\n if (this.filterInput.value.trim() === '' && !this.itemTemplate) {\n this.actionCompleteData.isUpdated = false;\n this.isTyped = false;\n if (!isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list)) {\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list);\n }\n this.isTyped = true;\n if (!isNullOrUndefined(this.itemData) && this.getModuleName() === 'dropdownlist') {\n this.focusIndexItem();\n this.setScrollPosition();\n }\n this.isNotSearchList = true;\n }\n else {\n this.isNotSearchList = false;\n query = (this.filterInput.value.trim() === '') ? null : query;\n this.resetList(dataSource, fields, query);\n }\n this.renderReactTemplates();\n }\n };\n DropDownList.prototype.setSearchBox = function (popupElement) {\n if (this.isFiltering()) {\n var parentElement = popupElement.querySelector('.' + dropDownListClasses.filterParent) ?\n popupElement.querySelector('.' + dropDownListClasses.filterParent) : this.createElement('span', {\n className: dropDownListClasses.filterParent\n });\n this.filterInput = this.createElement('input', {\n attrs: { type: 'text' },\n className: dropDownListClasses.filterInput\n });\n this.element.parentNode.insertBefore(this.filterInput, this.element);\n var backIcon = false;\n if (Browser.isDevice) {\n backIcon = true;\n }\n this.filterInputObj = Input.createInput({\n element: this.filterInput,\n buttons: backIcon ?\n [dropDownListClasses.backIcon, dropDownListClasses.filterBarClearIcon] : [dropDownListClasses.filterBarClearIcon],\n properties: { placeholder: this.filterBarPlaceholder }\n }, this.createElement);\n if (!isNullOrUndefined(this.cssClass)) {\n if (this.cssClass.split(' ').indexOf('e-outline') !== -1) {\n addClass([this.filterInputObj.container], 'e-outline');\n }\n else if (this.cssClass.split(' ').indexOf('e-filled') !== -1) {\n addClass([this.filterInputObj.container], 'e-filled');\n }\n }\n append([this.filterInputObj.container], parentElement);\n prepend([parentElement], popupElement);\n attributes(this.filterInput, {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n });\n this.clearIconElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n if (!Browser.isDevice && this.clearIconElement) {\n EventHandler.add(this.clearIconElement, 'click', this.clearText, this);\n this.clearIconElement.style.visibility = 'hidden';\n }\n if (!Browser.isDevice) {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n else {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.mobileKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n EventHandler.add(this.filterInput, 'input', this.onInput, this);\n EventHandler.add(this.filterInput, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.filterInput, 'keydown', this.onFilterDown, this);\n EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.filterInput, 'paste', this.pasteHandler, this);\n return this.filterInputObj;\n }\n else {\n return inputObject;\n }\n };\n DropDownList.prototype.onInput = function (e) {\n this.isValidKey = true;\n // For filtering works in mobile firefox.\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\n this.typedString = this.filterInput.value;\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n };\n DropDownList.prototype.pasteHandler = function (e) {\n var _this = this;\n setTimeout(function () {\n _this.typedString = _this.filterInput.value;\n _this.searchLists(e);\n });\n };\n DropDownList.prototype.onActionFailure = function (e) {\n _super.prototype.onActionFailure.call(this, e);\n if (this.beforePopupOpen) {\n this.renderPopup();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\n if (this.isNotSearchList) {\n this.isNotSearchList = false;\n return;\n }\n if (this.isActive) {\n var selectedItem = this.selectedLI ? this.selectedLI.cloneNode(true) : null;\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n this.updateSelectElementData(this.allowFiltering);\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent) && this.searchKeyEvent.type === 'keydown') {\n this.isRequested = false;\n this.keyActionHandler(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent)) {\n this.incrementalSearch(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n this.list.scrollTop = 0;\n if (!isNullOrUndefined(ulElement)) {\n attributes(ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });\n }\n if (this.initRemoteRender) {\n this.initial = true;\n this.activeIndex = this.index;\n this.initRemoteRender = false;\n if (this.value && this.dataSource instanceof DataManager) {\n var checkField_1 = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;\n var fieldValue_1 = this.fields.value.split('.');\n var checkVal = list.some(function (x) { return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ? _this.checkFieldValue(x, fieldValue_1) === _this.value : x[checkField_1] === _this.value; });\n if (!checkVal) {\n this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField_1, 'equal', this.value)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, list.length);\n _this.updateValues();\n }\n else {\n _this.updateValues();\n }\n });\n }\n else {\n this.updateValues();\n }\n }\n else {\n this.updateValues();\n }\n this.initial = false;\n }\n else if (this.getModuleName() === 'autocomplete' && this.value) {\n this.setInputValue();\n }\n if (this.getModuleName() !== 'autocomplete' && this.isFiltering() && !this.isTyped) {\n if (!this.actionCompleteData.isUpdated || ((!this.isCustomFilter\n && !this.isFilterFocus) || (isNullOrUndefined(this.itemData) && this.allowFiltering)\n && ((this.dataSource instanceof DataManager)\n || (!isNullOrUndefined(this.dataSource) && !isNullOrUndefined(this.dataSource.length) &&\n this.dataSource.length !== 0)))) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.updateActionCompleteDataValues(ulElement, list);\n }, 0);\n }\n else {\n this.updateActionCompleteDataValues(ulElement, list);\n }\n }\n this.addNewItem(list, selectedItem);\n if (!isNullOrUndefined(this.itemData)) {\n this.focusIndexItem();\n }\n }\n if (this.beforePopupOpen) {\n this.renderPopup(e);\n }\n }\n };\n DropDownList.prototype.checkFieldValue = function (list, fieldValue) {\n var checkField = list;\n fieldValue.forEach(function (value) {\n checkField = checkField[value];\n });\n return checkField;\n };\n DropDownList.prototype.updateActionCompleteDataValues = function (ulElement, list) {\n this.actionCompleteData = { ulElement: ulElement.cloneNode(true), list: list, isUpdated: true };\n if (this.actionData.list !== this.actionCompleteData.list && this.actionCompleteData.ulElement && this.actionCompleteData.list) {\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.addNewItem = function (listData, newElement) {\n var _this = this;\n if (!isNullOrUndefined(this.itemData) && !isNullOrUndefined(newElement)) {\n var value_1 = this.getItemData().value;\n var isExist = listData.some(function (data) {\n return (((typeof data === 'string' || typeof data === 'number') && data === value_1) ||\n (getValue(_this.fields.value, data) === value_1));\n });\n if (!isExist) {\n this.addItem(this.itemData);\n }\n }\n };\n DropDownList.prototype.updateActionCompleteData = function (li, item, index) {\n var _this = this;\n if (this.getModuleName() !== 'autocomplete' && this.actionCompleteData.ulElement) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.actionCompleteDataUpdate(li, item, index);\n }, 0);\n }\n else {\n this.actionCompleteDataUpdate(li, item, index);\n }\n }\n };\n DropDownList.prototype.actionCompleteDataUpdate = function (li, item, index) {\n if (index != null) {\n this.actionCompleteData.ulElement.insertBefore(li.cloneNode(true), this.actionCompleteData.ulElement.childNodes[index]);\n }\n else {\n this.actionCompleteData.ulElement.appendChild(li.cloneNode(true));\n }\n if (this.isFiltering() && this.actionCompleteData.list.indexOf(item) < 0) {\n this.actionCompleteData.list.push(item);\n }\n };\n DropDownList.prototype.focusIndexItem = function () {\n var value = this.getItemData().value;\n this.activeIndex = this.getIndexByValue(value);\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.selectedLI = element;\n this.activeItem(element);\n this.removeFocus();\n };\n DropDownList.prototype.updateSelection = function () {\n var selectedItem = this.list.querySelector('.' + dropDownBaseClasses.selected);\n if (selectedItem) {\n this.setProperties({ 'index': this.getIndexByValue(selectedItem.getAttribute('data-value')) });\n this.activeIndex = this.index;\n }\n else {\n this.removeFocus();\n this.list.querySelector('.' + dropDownBaseClasses.li).classList.add(dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.removeFocus = function () {\n var highlightedItem = this.list.querySelectorAll('.' + dropDownListClasses.focus);\n if (highlightedItem && highlightedItem.length) {\n removeClass(highlightedItem, dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.renderPopup = function (e) {\n var _this = this;\n if (this.popupObj && document.body.contains(this.popupObj.element)) {\n this.refreshPopup();\n return;\n }\n var args = { cancel: false };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n var popupEle = _this.createElement('div', {\n id: _this.element.id + '_popup', className: 'e-ddl e-popup ' + (_this.cssClass != null ? _this.cssClass : '')\n });\n var searchBox = _this.setSearchBox(popupEle);\n _this.listHeight = formatUnit(_this.popupHeight);\n if (_this.headerTemplate) {\n _this.setHeaderTemplate(popupEle);\n }\n append([_this.list], popupEle);\n if (_this.footerTemplate) {\n _this.setFooterTemplate(popupEle);\n }\n document.body.appendChild(popupEle);\n popupEle.style.visibility = 'hidden';\n if (_this.popupHeight !== 'auto') {\n _this.searchBoxHeight = 0;\n if (!isNullOrUndefined(searchBox.container)) {\n _this.searchBoxHeight = (searchBox.container.parentElement).getBoundingClientRect().height;\n _this.listHeight = (parseInt(_this.listHeight, 10) - (_this.searchBoxHeight)).toString() + 'px';\n }\n if (_this.headerTemplate) {\n _this.header = _this.header ? _this.header : popupEle.querySelector('.e-ddl-header');\n var height = Math.round(_this.header.getBoundingClientRect().height);\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n if (_this.footerTemplate) {\n _this.footer = _this.footer ? _this.footer : popupEle.querySelector('.e-ddl-footer');\n var height = Math.round(_this.footer.getBoundingClientRect().height);\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n _this.list.style.maxHeight = (parseInt(_this.listHeight, 10) - 2).toString() + 'px'; // due to box-sizing property\n popupEle.style.maxHeight = formatUnit(_this.popupHeight);\n }\n else {\n popupEle.style.height = 'auto';\n }\n var offsetValue = 0;\n var left = void 0;\n if (!isNullOrUndefined(_this.selectedLI) && (!isNullOrUndefined(_this.activeIndex) && _this.activeIndex >= 0)) {\n _this.setScrollPosition();\n }\n else {\n _this.list.scrollTop = 0;\n }\n if (Browser.isDevice && (!_this.allowFiltering && (_this.getModuleName() === 'dropdownlist' ||\n (_this.isDropDownClick && _this.getModuleName() === 'combobox')))) {\n offsetValue = _this.getOffsetValue(popupEle);\n var firstItem = _this.isEmptyList() ? _this.list : _this.liCollections[0];\n if (!isNullOrUndefined(_this.inputElement)) {\n left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) -\n parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +\n parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));\n }\n }\n _this.getFocusElement();\n _this.createPopup(popupEle, offsetValue, left);\n _this.checkCollision(popupEle);\n if (Browser.isDevice) {\n _this.popupObj.element.classList.add(dropDownListClasses.device);\n if (_this.getModuleName() === 'dropdownlist' || (_this.getModuleName() === 'combobox'\n && !_this.allowFiltering && _this.isDropDownClick)) {\n _this.popupObj.collision = { X: 'fit', Y: 'fit' };\n }\n if (_this.isFilterLayout()) {\n _this.popupObj.element.classList.add(dropDownListClasses.mobileFilter);\n _this.popupObj.position = { X: 0, Y: 0 };\n _this.popupObj.dataBind();\n attributes(_this.popupObj.element, { style: 'left:0px;right:0px;top:0px;bottom:0px;' });\n addClass([document.body, _this.popupObj.element], dropDownListClasses.popupFullScreen);\n _this.setSearchBoxPosition();\n _this.backIconElement = searchBox.container.querySelector('.e-back-icon');\n _this.clearIconElement = searchBox.container.querySelector('.' + dropDownListClasses.clearIcon);\n EventHandler.add(_this.backIconElement, 'click', _this.clickOnBackIcon, _this);\n EventHandler.add(_this.clearIconElement, 'click', _this.clearText, _this);\n }\n }\n popupEle.style.visibility = 'visible';\n addClass([popupEle], 'e-popup-close');\n var scrollParentElements = _this.popupObj.getScrollableParent(_this.inputWrapper.container);\n for (var _i = 0, scrollParentElements_1 = scrollParentElements; _i < scrollParentElements_1.length; _i++) {\n var element = scrollParentElements_1[_i];\n EventHandler.add(element, 'scroll', _this.scrollHandler, _this);\n }\n if (!isNullOrUndefined(_this.list)) {\n _this.unWireListEvents();\n _this.wireListEvents();\n }\n _this.selectedElementID = _this.selectedLI ? _this.selectedLI.id : null;\n attributes(_this.targetElement(), { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });\n _this.inputElement.setAttribute('aria-expanded', 'true');\n var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;\n addClass([inputParent], [dropDownListClasses.inputFocus]);\n var animModel = { name: 'FadeIn', duration: 100 };\n _this.beforePopupOpen = true;\n var popupInstance = _this.popupObj;\n var eventArgs = { popup: popupInstance, event: e, cancel: false, animation: animModel };\n _this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (!isNullOrUndefined(_this.inputWrapper)) {\n addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);\n }\n _this.renderReactTemplates();\n if (!isNullOrUndefined(_this.popupObj)) {\n _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);\n }\n }\n else {\n _this.beforePopupOpen = false;\n _this.destroyPopup();\n }\n });\n }\n else {\n _this.beforePopupOpen = false;\n }\n });\n };\n DropDownList.prototype.checkCollision = function (popupEle) {\n if (!Browser.isDevice || (Browser.isDevice && !(this.getModuleName() === 'dropdownlist' || this.isDropDownClick))) {\n var collision = isCollide(popupEle);\n if (collision.length > 0) {\n popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';\n }\n this.popupObj.resolveCollision();\n }\n };\n DropDownList.prototype.getOffsetValue = function (popupEle) {\n var popupStyles = getComputedStyle(popupEle);\n var borderTop = parseInt(popupStyles.borderTopWidth, 10);\n var borderBottom = parseInt(popupStyles.borderBottomWidth, 10);\n return this.setPopupPosition(borderTop + borderBottom);\n };\n DropDownList.prototype.createPopup = function (element, offsetValue, left) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.setWidth(), targetType: 'relative',\n relateTo: this.inputWrapper.container, collision: { X: 'flip', Y: 'flip' }, offsetY: offsetValue,\n enableRtl: this.enableRtl, offsetX: left, position: { X: 'left', Y: 'bottom' },\n zIndex: this.zIndex,\n close: function () {\n if (!_this.isDocumentClick) {\n _this.focusDropDown();\n }\n // eslint-disable-next-line\n if (_this.isReact) {\n _this.clearTemplate(['headerTemplate', 'footerTemplate']);\n }\n var isResetItem = (_this.getModuleName() === 'autocomplete') ? true : false;\n _this.isNotSearchList = false;\n _this.isDocumentClick = false;\n _this.destroyPopup();\n if (_this.isFiltering() && _this.actionCompleteData.list && _this.actionCompleteData.list[0]) {\n _this.isActive = true;\n _this.onActionComplete(_this.actionCompleteData.ulElement, _this.actionCompleteData.list, null, true);\n }\n },\n open: function () {\n EventHandler.remove(document, 'mousedown', _this.onDocumentClick);\n EventHandler.add(document, 'mousedown', _this.onDocumentClick, _this);\n _this.isPopupOpen = true;\n var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement &&\n _this.actionCompleteData.ulElement.querySelector('li');\n var ulElement = _this.list.querySelector('ul li');\n if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n else if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-active')[0].id });\n }\n if (_this.isFiltering() && _this.itemTemplate && (_this.element.tagName === _this.getNgDirective()) &&\n (actionList && ulElement && actionList.textContent !== ulElement.textContent) &&\n _this.element.tagName !== 'EJS-COMBOBOX') {\n _this.cloneElements();\n }\n if (_this.isFilterLayout()) {\n removeClass([_this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n _this.isFilterFocus = true;\n _this.filterInput.focus();\n if (_this.inputWrapper.clearButton) {\n addClass([_this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n _this.activeStateChange();\n },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n }\n });\n };\n DropDownList.prototype.isEmptyList = function () {\n return !isNullOrUndefined(this.liCollections) && this.liCollections.length === 0;\n };\n DropDownList.prototype.getFocusElement = function () {\n // combo-box used this method\n };\n DropDownList.prototype.isFilterLayout = function () {\n return this.getModuleName() === 'dropdownlist' && this.allowFiltering;\n };\n DropDownList.prototype.scrollHandler = function () {\n if (Browser.isDevice && ((this.getModuleName() === 'dropdownlist' &&\n !this.isFilterLayout()) || (this.getModuleName() === 'combobox' && !this.allowFiltering && this.isDropDownClick))) {\n this.hidePopup();\n }\n };\n DropDownList.prototype.setSearchBoxPosition = function () {\n var searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;\n this.popupObj.element.style.maxHeight = '100%';\n this.popupObj.element.style.width = '100%';\n this.list.style.maxHeight = (window.innerHeight - searchBoxHeight) + 'px';\n this.list.style.height = (window.innerHeight - searchBoxHeight) + 'px';\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n detach(this.filterInput);\n clearElement.parentElement.insertBefore(this.filterInput, clearElement);\n };\n DropDownList.prototype.setPopupPosition = function (border) {\n var offsetValue;\n var popupOffset = border;\n var selectedLI = this.list.querySelector('.' + dropDownListClasses.focus) || this.selectedLI;\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n var lastItem = this.isEmptyList() ? this.list : this.liCollections[this.getItems().length - 1];\n var liHeight = firstItem.getBoundingClientRect().height;\n var listHeight = this.list.offsetHeight / 2;\n var height = isNullOrUndefined(selectedLI) ? firstItem.offsetTop : selectedLI.offsetTop;\n var lastItemOffsetValue = lastItem.offsetTop;\n if (lastItemOffsetValue - listHeight < height && !isNullOrUndefined(this.liCollections) &&\n this.liCollections.length > 0 && !isNullOrUndefined(selectedLI)) {\n var count = this.list.offsetHeight / liHeight;\n var paddingBottom = parseInt(getComputedStyle(this.list).paddingBottom, 10);\n offsetValue = (count - (this.liCollections.length - this.activeIndex)) * liHeight - popupOffset + paddingBottom;\n this.list.scrollTop = selectedLI.offsetTop;\n }\n else if (height > listHeight) {\n offsetValue = listHeight - liHeight / 2;\n this.list.scrollTop = height - listHeight + liHeight / 2;\n }\n else {\n offsetValue = height;\n }\n var inputHeight = this.inputWrapper.container.offsetHeight;\n offsetValue = offsetValue + liHeight + popupOffset - ((liHeight - inputHeight) / 2);\n return -offsetValue;\n };\n DropDownList.prototype.setWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.inputWrapper.container.offsetWidth * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n if (Browser.isDevice && (!this.allowFiltering && (this.getModuleName() === 'dropdownlist' ||\n (this.isDropDownClick && this.getModuleName() === 'combobox')))) {\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n width = (parseInt(width, 10) + (parseInt(getComputedStyle(firstItem).textIndent, 10) -\n parseInt(getComputedStyle(this.inputElement).paddingLeft, 10) +\n parseInt(getComputedStyle(this.inputElement.parentElement).borderLeftWidth, 10)) * 2) + 'px';\n }\n return width;\n };\n DropDownList.prototype.scrollBottom = function (isInitial) {\n if (!isNullOrUndefined(this.selectedLI)) {\n var currentOffset = this.list.offsetHeight;\n var nextBottom = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\n nextOffset = isInitial ? nextOffset + parseInt(getComputedStyle(this.list).paddingTop, 10) * 2 : nextOffset;\n var boxRange = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\n if (this.activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextBottom > currentOffset || !(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = nextOffset;\n }\n }\n };\n DropDownList.prototype.scrollTop = function () {\n if (!isNullOrUndefined(this.selectedLI)) {\n var nextOffset = this.selectedLI.offsetTop - this.list.scrollTop;\n nextOffset = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\n var boxRange = (this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop);\n if (this.activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextOffset < 0) {\n this.list.scrollTop = this.list.scrollTop + nextOffset;\n }\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = this.selectedLI.offsetTop - (this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n this.fixedHeaderElement.offsetHeight : 0);\n }\n }\n };\n DropDownList.prototype.isEditTextBox = function () {\n return false;\n };\n DropDownList.prototype.isFiltering = function () {\n return this.allowFiltering;\n };\n DropDownList.prototype.isPopupButton = function () {\n return true;\n };\n DropDownList.prototype.setScrollPosition = function (e) {\n if (!isNullOrUndefined(e)) {\n switch (e.action) {\n case 'pageDown':\n case 'down':\n case 'end':\n this.scrollBottom();\n break;\n default:\n this.scrollTop();\n break;\n }\n }\n else {\n this.scrollBottom(true);\n }\n };\n DropDownList.prototype.clearText = function () {\n this.filterInput.value = this.typedString = '';\n this.searchLists(null);\n };\n DropDownList.prototype.setEleWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.inputWrapper.container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.inputWrapper.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n DropDownList.prototype.closePopup = function (delay, e) {\n var _this = this;\n this.isTyped = false;\n if (!(this.popupObj && document.body.contains(this.popupObj.element) && (this.beforePopupOpen || this.isEventCancel))) {\n return;\n }\n this.isActive = false;\n this.filterInputObj = null;\n this.isDropDownClick = false;\n this.preventAutoFill = false;\n var scrollableParentElements = this.popupObj.getScrollableParent(this.inputWrapper.container);\n for (var _i = 0, scrollableParentElements_1 = scrollableParentElements; _i < scrollableParentElements_1.length; _i++) {\n var element = scrollableParentElements_1[_i];\n EventHandler.remove(element, 'scroll', this.scrollHandler);\n }\n if (Browser.isDevice && this.isFilterLayout()) {\n removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);\n }\n if (this.isFilterLayout()) {\n if (!Browser.isDevice) {\n this.searchKeyModule.destroy();\n if (this.clearIconElement) {\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n }\n if (this.backIconElement) {\n EventHandler.remove(this.backIconElement, 'click', this.clickOnBackIcon);\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n if (!isNullOrUndefined(this.filterInput)) {\n EventHandler.remove(this.filterInput, 'input', this.onInput);\n EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);\n EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);\n EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);\n EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);\n }\n this.filterInput = null;\n }\n attributes(this.targetElement(), { 'aria-expanded': 'false' });\n this.inputElement.setAttribute('aria-expanded', 'false');\n this.targetElement().removeAttribute('aria-owns');\n this.targetElement().removeAttribute('aria-activedescendant');\n this.inputWrapper.container.classList.remove(dropDownListClasses.iconAnimation);\n if (this.isFiltering()) {\n this.actionCompleteData.isUpdated = false;\n }\n this.beforePopupOpen = false;\n var animModel = {\n name: 'FadeOut',\n duration: 100,\n delay: delay ? delay : 0\n };\n var popupInstance = this.popupObj;\n var eventArgs = { popup: popupInstance, cancel: false, animation: animModel, event: e || null };\n this.trigger('close', eventArgs, function (eventArgs) {\n _this.isEventCancel = eventArgs.cancel;\n if (!isNullOrUndefined(_this.popupObj) &&\n !isNullOrUndefined(_this.popupObj.element.querySelector('.e-fixed-head'))) {\n var fixedHeader = _this.popupObj.element.querySelector('.e-fixed-head');\n fixedHeader.parentNode.removeChild(fixedHeader);\n _this.fixedHeaderElement = null;\n }\n if (!eventArgs.cancel) {\n if (_this.getModuleName() === 'autocomplete') {\n _this.rippleFun();\n }\n if (_this.isPopupOpen) {\n _this.popupObj.hide(new Animation(eventArgs.animation));\n }\n else {\n _this.destroyPopup();\n }\n }\n });\n };\n DropDownList.prototype.destroyPopup = function () {\n this.isPopupOpen = false;\n this.isFilterFocus = false;\n this.popupObj.destroy();\n detach(this.popupObj.element);\n };\n DropDownList.prototype.clickOnBackIcon = function () {\n this.hidePopup();\n this.focusIn();\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.render = function () {\n if (this.element.tagName === 'INPUT') {\n this.inputElement = this.element;\n if (isNullOrUndefined(this.inputElement.getAttribute('role'))) {\n this.inputElement.setAttribute('role', 'combobox');\n }\n if (isNullOrUndefined(this.inputElement.getAttribute('type'))) {\n this.inputElement.setAttribute('type', 'text');\n }\n this.inputElement.setAttribute('aria-expanded', 'false');\n }\n else {\n this.inputElement = this.createElement('input', { attrs: { role: 'combobox', type: 'text' } });\n if (this.element.tagName !== this.getNgDirective()) {\n this.element.style.display = 'none';\n }\n this.element.parentElement.insertBefore(this.inputElement, this.element);\n this.preventTabIndex(this.inputElement);\n }\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n buttons: this.isPopupButton() ? [dropDownListClasses.icon] : null,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.getModuleName() === 'dropdownlist' ? true : this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n }\n }, this.createElement);\n if (this.element.tagName === this.getNgDirective()) {\n this.element.appendChild(this.inputWrapper.container);\n }\n else {\n this.inputElement.parentElement.insertBefore(this.element, this.inputElement);\n }\n this.hiddenElement = this.createElement('select', {\n attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': dropDownListClasses.hiddenElement }\n });\n prepend([this.hiddenElement], this.inputWrapper.container);\n this.validationAttribute(this.element, this.hiddenElement);\n this.setReadOnly();\n this.setFields();\n this.inputWrapper.container.style.width = formatUnit(this.width);\n this.inputWrapper.container.classList.add('e-ddl');\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.wireEvent();\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\n this.element.id = id;\n this.hiddenElement.id = id + '_hidden';\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n attributes(this.targetElement(), this.getAriaAttributes());\n this.updateDataAttribute(this.htmlAttributes);\n this.setHTMLAttributes();\n if (this.targetElement() === this.inputElement) {\n this.inputElement.removeAttribute('aria-labelledby');\n }\n if (this.value !== null || this.activeIndex !== null || this.text !== null) {\n this.initValue();\n }\n else if (this.element.tagName === 'SELECT' && this.element.options[0]) {\n var selectElement = this.element;\n this.value = selectElement.options[selectElement.selectedIndex].value;\n this.text = isNullOrUndefined(this.value) ? null : selectElement.options[selectElement.selectedIndex].textContent;\n this.initValue();\n }\n this.setEnabled();\n this.preventTabIndex(this.element);\n if (!this.enabled) {\n this.targetElement().tabIndex = -1;\n }\n this.initial = false;\n this.element.style.opacity = '';\n this.inputElement.onselect = function (e) {\n e.stopImmediatePropagation();\n };\n this.inputElement.onchange = function (e) {\n e.stopImmediatePropagation();\n };\n if (this.element.hasAttribute('autofocus')) {\n this.focusIn();\n }\n if (!isNullOrUndefined(this.text)) {\n this.inputElement.setAttribute('value', this.text);\n }\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n var floatLabelElement = this.inputWrapper.container.getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(this.element.id) && this.element.id !== '' && !isNullOrUndefined(floatLabelElement)) {\n floatLabelElement.id = 'label_' + this.element.id.replace(/ /g, '_');\n attributes(this.inputElement, { 'aria-labelledby': floatLabelElement.id });\n }\n this.renderComplete();\n };\n DropDownList.prototype.setFooterTemplate = function (popupEle) {\n var compiledString;\n if (this.footer) {\n if (this.isReact) {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], dropDownListClasses.footer);\n }\n var footercheck = this.dropdownCompiler(this.footerTemplate);\n if (footercheck) {\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.footerTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var footerCompTemp = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\n if (footerCompTemp && footerCompTemp.length > 0) {\n for (var i = 0; i < footerCompTemp.length; i++) {\n this.footer.appendChild(footerCompTemp[i]);\n }\n }\n append([this.footer], popupEle);\n };\n DropDownList.prototype.setHeaderTemplate = function (popupEle) {\n var compiledString;\n if (this.header) {\n this.header.innerHTML = '';\n }\n else {\n this.header = this.createElement('div');\n addClass([this.header], dropDownListClasses.header);\n }\n var headercheck = this.dropdownCompiler(this.headerTemplate);\n if (headercheck) {\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.headerTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var headerCompTemp = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\n if (headerCompTemp && headerCompTemp.length) {\n for (var i = 0; i < headerCompTemp.length; i++) {\n this.header.appendChild(headerCompTemp[i]);\n }\n }\n var contentEle = popupEle.querySelector('div.e-content');\n popupEle.insertBefore(this.header, contentEle);\n };\n /**\n * Sets the enabled state to DropDownBase.\n *\n * @returns {void}\n */\n DropDownList.prototype.setEnabled = function () {\n this.element.setAttribute('aria-disabled', (this.enabled) ? 'false' : 'true');\n };\n DropDownList.prototype.setOldText = function (text) {\n this.text = text;\n };\n DropDownList.prototype.setOldValue = function (value) {\n this.value = value;\n };\n DropDownList.prototype.refreshPopup = function () {\n if (!isNullOrUndefined(this.popupObj) && document.body.contains(this.popupObj.element) &&\n ((this.allowFiltering && !(Browser.isDevice && this.isFilterLayout())) || this.getModuleName() === 'autocomplete')) {\n removeClass([this.popupObj.element], 'e-popup-close');\n this.popupObj.refreshPosition(this.inputWrapper.container);\n this.popupObj.resolveCollision();\n }\n };\n DropDownList.prototype.checkData = function (newProp) {\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) && this.itemTemplate && this.allowFiltering &&\n !(this.isListSearched && (newProp.dataSource instanceof DataManager))) {\n this.list = null;\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\n }\n this.isListSearched = false;\n var isChangeValue = Object.keys(newProp).indexOf('value') !== -1 && isNullOrUndefined(newProp.value);\n var isChangeText = Object.keys(newProp).indexOf('text') !== -1 && isNullOrUndefined(newProp.text);\n if (this.getModuleName() !== 'autocomplete' && this.allowFiltering && (isChangeValue || isChangeText)) {\n this.itemData = null;\n }\n if (this.allowFiltering && newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))) {\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\n this.actionData = this.actionCompleteData;\n }\n else if (this.allowFiltering && newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\n this.actionCompleteData = this.getModuleName() === 'combobox' ?\n { ulElement: null, list: null, isUpdated: false } : this.actionCompleteData;\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.updateDataSource = function (props) {\n if (this.inputElement.value !== '' || (!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0)))) {\n this.clearAll(null, props);\n }\n if ((this.fields.groupBy && props.fields) && !this.isGroupChecking && this.list) {\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\n }\n if (!(!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0))) || !(props.dataSource === [])) {\n this.typedString = '';\n this.resetList(this.dataSource);\n }\n if (!this.isCustomFilter && !this.isFilterFocus && document.activeElement !== this.filterInput) {\n this.checkCustomValue();\n }\n };\n DropDownList.prototype.checkCustomValue = function () {\n this.itemData = this.getDataByValue(this.value);\n var dataItem = this.getItemData();\n this.setProperties({ 'text': dataItem.text, 'value': dataItem.value });\n };\n DropDownList.prototype.updateInputFields = function () {\n if (this.getModuleName() === 'dropdownlist') {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n };\n /**\n * Dynamically change the value of properties.\n *\n * @private\n * @param {DropDownListModel} newProp - Returns the dynamic property value of the component.\n * @param {DropDownListModel} oldProp - Returns the previous previous value of the component.\n * @returns {void}\n */\n DropDownList.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n if (this.getModuleName() === 'dropdownlist') {\n this.checkData(newProp);\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n var _loop_1 = function (prop) {\n switch (prop) {\n case 'query':\n case 'dataSource': break;\n case 'htmlAttributes':\n this_1.setHTMLAttributes();\n break;\n case 'width':\n this_1.setEleWidth(newProp.width);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this_1.inputElement);\n break;\n case 'filterBarPlaceholder':\n if (this_1.filterInput) {\n Input.setPlaceholder(newProp.filterBarPlaceholder, this_1.filterInput);\n }\n break;\n case 'readonly':\n if (this_1.getModuleName() !== 'dropdownlist') {\n Input.setReadonly(newProp.readonly, this_1.inputElement);\n }\n this_1.setReadOnly();\n break;\n case 'cssClass':\n this_1.setCssClass(newProp.cssClass, oldProp.cssClass);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'enableRtl':\n this_1.setEnableRtl();\n break;\n case 'enabled':\n this_1.setEnable();\n break;\n case 'text':\n if (newProp.text === null) {\n this_1.clearAll();\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender) {\n var li = this_1.getElementByText(newProp.text);\n if (!this_1.checkValidLi(li)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.text, oldProp.text, 'text');\n }\n else if (newProp.text && this_1.dataSource instanceof DataManager) {\n var listLength_1 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.text) ? this_1.fields.value : this_1.fields.text;\n this_1.typedString = '';\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', newProp.text)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_1);\n _this.updateValues();\n }\n else {\n _this.setOldText(oldProp.text);\n }\n });\n }\n else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n }\n else {\n this_1.setOldText(oldProp.text);\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'value':\n if (newProp.value === null) {\n this_1.clearAll();\n break;\n }\n this_1.notify('beforeValueChange', { newProp: newProp }); // gird component value type change\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender) {\n var item = this_1.getElementByValue(newProp.value);\n if (!this_1.checkValidLi(item)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.value, oldProp.value, 'value');\n }\n else if (newProp.value && this_1.dataSource instanceof DataManager) {\n var listLength_2 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.value) ? this_1.fields.text : this_1.fields.value;\n this_1.typedString = '';\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', newProp.value)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_2);\n _this.updateValues();\n }\n else {\n _this.setOldValue(oldProp.value);\n }\n });\n }\n else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n }\n else {\n this_1.setOldValue(oldProp.value);\n }\n }\n this_1.updateInputFields();\n this_1.preventChange = this_1.isAngular && this_1.preventChange ? !this_1.preventChange : this_1.preventChange;\n }\n break;\n case 'index':\n if (newProp.index === null) {\n this_1.clearAll();\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender && this_1.liCollections) {\n var element = this_1.liCollections[newProp.index];\n if (!this_1.checkValidLi(element)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.index, oldProp.index, 'index');\n }\n else {\n this_1.index = oldProp.index;\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'footerTemplate':\n if (this_1.popupObj) {\n this_1.setFooterTemplate(this_1.popupObj.element);\n }\n break;\n case 'headerTemplate':\n if (this_1.popupObj) {\n this_1.setHeaderTemplate(this_1.popupObj.element);\n }\n break;\n case 'valueTemplate':\n if (!isNullOrUndefined(this_1.itemData) && this_1.valueTemplate != null) {\n this_1.setValueTemplate();\n }\n break;\n case 'allowFiltering':\n if (this_1.allowFiltering) {\n this_1.actionCompleteData = { ulElement: this_1.ulElement,\n list: this_1.listData, isUpdated: true };\n this_1.actionData = this_1.actionCompleteData;\n this_1.updateSelectElementData(this_1.allowFiltering);\n }\n break;\n case 'floatLabelType':\n Input.removeFloating(this_1.inputWrapper);\n Input.addFloating(this_1.inputElement, newProp.floatLabelType, this_1.placeholder, this_1.createElement);\n if (!isNullOrUndefined(this_1.inputWrapper.buttons[0]) && this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0] && this_1.floatLabelType !== 'Never') {\n this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this_1.inputElement, this_1.inputWrapper, null, this_1.createElement);\n this_1.bindClearEvent();\n break;\n default:\n {\n // eslint-disable-next-line max-len\n var ddlProps = this_1.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this_1, ddlProps.newProperty, ddlProps.oldProperty);\n }\n break;\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n };\n DropDownList.prototype.checkValidLi = function (element) {\n if (this.isValidLI(element)) {\n this.setSelection(element, null);\n return true;\n }\n return false;\n };\n DropDownList.prototype.setSelectionData = function (newProp, oldProp, prop) {\n var _this = this;\n var li;\n this.updateListValues = function () {\n if (prop === 'text') {\n li = _this.getElementByText(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldText(oldProp);\n }\n }\n else if (prop === 'value') {\n li = _this.getElementByValue(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldValue(oldProp);\n }\n }\n else if (prop === 'index') {\n li = _this.liCollections[newProp];\n if (!_this.checkValidLi(li)) {\n _this.index = oldProp;\n }\n }\n };\n };\n DropDownList.prototype.setReadOnly = function () {\n if (this.readonly) {\n addClass([this.inputWrapper.container], ['e-readonly']);\n }\n else {\n removeClass([this.inputWrapper.container], ['e-readonly']);\n }\n };\n DropDownList.prototype.setInputValue = function (newProp, oldProp) {\n };\n DropDownList.prototype.setCssClass = function (newClass, oldClass) {\n if (!isNullOrUndefined(oldClass)) {\n oldClass = (oldClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newClass)) {\n newClass = (newClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(newClass, [this.inputWrapper.container], oldClass);\n if (this.popupObj) {\n Input.setCssClass(newClass, [this.popupObj.element], oldClass);\n }\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n DropDownList.prototype.getModuleName = function () {\n return 'dropdownlist';\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n */\n DropDownList.prototype.showPopup = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.isFiltering() && this.dataSource instanceof DataManager && (this.actionData.list != this.actionCompleteData.list) &&\n this.actionData.list && this.actionData.ulElement) {\n this.actionCompleteData = this.actionData;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n }\n if (this.beforePopupOpen) {\n this.refreshPopup();\n return;\n }\n this.beforePopupOpen = true;\n if (this.isFiltering() && !this.isActive && this.actionCompleteData.list && this.actionCompleteData.list[0]) {\n this.isActive = true;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n }\n else if (isNullOrUndefined(this.list) || !isUndefined(this.list) && (this.list.classList.contains(dropDownBaseClasses.noData) ||\n this.list.querySelectorAll('.' + dropDownBaseClasses.li).length <= 0)) {\n this.renderList(e);\n }\n this.invokeRenderPopup(e);\n };\n DropDownList.prototype.invokeRenderPopup = function (e) {\n if (Browser.isDevice && this.isFilterLayout()) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_2 = this;\n window.onpopstate = function () {\n proxy_2.hidePopup();\n };\n history.pushState({}, '');\n }\n if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData))) {\n this.renderPopup(e);\n }\n };\n DropDownList.prototype.renderHightSearch = function () {\n // update high light search\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Hides the popup if it is in an open state.\n *\n * @returns {void}\n */\n DropDownList.prototype.hidePopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (this.isEscapeKey && this.getModuleName() === 'dropdownlist') {\n if (!isNullOrUndefined(this.inputElement)) {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.isEscapeKey = false;\n if (!isNullOrUndefined(this.index)) {\n var element = this.findListElement(this.ulElement, 'li', 'data-value', this.value);\n this.selectedLI = this.liCollections[this.index] || element;\n if (this.selectedLI) {\n this.updateSelectedItem(this.selectedLI, null, true);\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n }\n }\n }\n else {\n this.resetSelection();\n }\n }\n this.closePopup(0, e);\n var dataItem = this.getItemData();\n var isSelectVal = !isNullOrUndefined(this.selectedLI);\n if (this.inputElement && this.inputElement.value.trim() === '' && !this.isInteracted && (this.isSelectCustom ||\n isSelectVal && this.inputElement.value !== dataItem.text)) {\n this.isSelectCustom = false;\n this.clearAll(e);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Sets the focus on the component for interaction.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusIn = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.targetElement().classList.contains(dropDownListClasses.disable)) {\n return;\n }\n var isFocused = false;\n if (this.preventFocus && Browser.isDevice) {\n this.inputWrapper.container.tabIndex = 1;\n this.inputWrapper.container.focus();\n this.preventFocus = false;\n isFocused = true;\n }\n if (!isFocused) {\n this.targetElement().focus();\n }\n addClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n this.onFocus(e);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusOut = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (!this.enabled) {\n return;\n }\n this.isTyped = true;\n this.hidePopup(e);\n if (this.targetElement()) {\n this.targetElement().blur();\n }\n removeClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n DropDownList.prototype.destroy = function () {\n this.isActive = false;\n resetIncrementalSearchValues(this.element.id);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n this.hidePopup();\n this.unWireEvent();\n if (this.list) {\n this.unWireListEvents();\n }\n if (this.element && !this.element.classList.contains('e-' + this.getModuleName())) {\n return;\n }\n if (this.inputElement) {\n var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby',\n 'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize',\n 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputElement.removeAttribute(attrArray[i]);\n }\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n this.inputElement.classList.remove('e-input');\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.element.style.display = 'block';\n if (this.inputWrapper.container.parentElement.tagName === this.getNgDirective()) {\n detach(this.inputWrapper.container);\n }\n else {\n this.inputWrapper.container.parentElement.insertBefore(this.element, this.inputWrapper.container);\n detach(this.inputWrapper.container);\n }\n this.hiddenElement = null;\n this.inputWrapper = null;\n this.keyboardModule = null;\n this.ulElement = null;\n this.list = null;\n this.popupObj = null;\n this.rippleFun = null;\n this.selectedLI = null;\n this.liCollections = null;\n this.item = null;\n this.inputWrapper = null;\n this.footer = null;\n this.header = null;\n this.previousSelectedLI = null;\n this.valueTempElement = null;\n _super.prototype.destroy.call(this);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n DropDownList.prototype.getItems = function () {\n if (!this.list) {\n if (this.dataSource instanceof DataManager) {\n this.initRemoteRender = true;\n }\n this.renderList();\n }\n return this.ulElement ? _super.prototype.getItems.call(this) : [];\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n */\n DropDownList.prototype.getDataByValue = function (value) {\n return _super.prototype.getDataByValue.call(this, value);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Allows you to clear the selected values from the component.\n *\n * @returns {void}\n */\n DropDownList.prototype.clear = function () {\n this.value = null;\n };\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"cssClass\", void 0);\n __decorate([\n Property('100%')\n ], DropDownList.prototype, \"width\", void 0);\n __decorate([\n Property(true)\n ], DropDownList.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('300px')\n ], DropDownList.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], DropDownList.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"placeholder\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property({})\n ], DropDownList.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"index\", void 0);\n __decorate([\n Property('Never')\n ], DropDownList.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"showClearButton\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"focus\", void 0);\n DropDownList = __decorate([\n NotifyPropertyChanges\n ], DropDownList);\n return DropDownList;\n}(DropDownBase));\nexport { DropDownList };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { EventHandler, Property, Event, addClass, Browser, removeClass, detach } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, NotifyPropertyChanges, getValue, setValue } from '@syncfusion/ej2-base';\nimport { DropDownList, dropDownListClasses } from '../drop-down-list/drop-down-list';\nimport { Search } from '../common/incremental-search';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nvar SPINNER_CLASS = 'e-atc-spinner-icon';\ndropDownListClasses.root = 'e-combobox';\nvar inputObject = {\n container: null,\n buttons: []\n};\n/**\n * The ComboBox component allows the user to type a value or choose an option from the list of predefined options.\n * ```html\n * \n * ```\n * ```typescript\n * let games:ComboBox = new ComboBox();\n * games.appendTo(\"#list\");\n * ```\n */\nvar ComboBox = /** @class */ (function (_super) {\n __extends(ComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {ComboBoxModel} options - Specifies the ComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function ComboBox(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n ComboBox.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n ComboBox.prototype.getLocaleName = function () {\n return 'combo-box';\n };\n ComboBox.prototype.wireEvent = function () {\n if (this.getModuleName() === 'combobox') {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputWrapper.container, 'blur', this.onBlurHandler, this);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(this.inputElement, 'focus', this.targetFocus, this);\n if (!this.readonly) {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\n }\n this.bindCommonEvent();\n };\n ComboBox.prototype.preventBlur = function (e) {\n if ((!this.allowFiltering && document.activeElement !== this.inputElement &&\n !document.activeElement.classList.contains(dropDownListClasses.input) && Browser.isDevice || !Browser.isDevice)) {\n e.preventDefault();\n }\n };\n ComboBox.prototype.onBlurHandler = function (e) {\n var inputValue = this.inputElement && this.inputElement.value === '' ?\n null : this.inputElement && this.inputElement.value;\n if (!isNullOrUndefined(this.listData) && !isNullOrUndefined(inputValue) && inputValue !== this.text) {\n this.customValue(e);\n }\n _super.prototype.onBlurHandler.call(this, e);\n };\n ComboBox.prototype.targetElement = function () {\n return this.inputElement;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.setOldText = function (text) {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n this.customValue();\n this.removeSelection();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.setOldValue = function (value) {\n if (this.allowCustom) {\n this.valueMuteChange(this.value);\n }\n else {\n this.valueMuteChange(null);\n }\n this.removeSelection();\n this.setHiddenValue();\n };\n ComboBox.prototype.valueMuteChange = function (value) {\n var inputValue = isNullOrUndefined(value) ? null : value.toString();\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.setProperties({ value: value, text: value, index: null }, true);\n this.activeIndex = this.index;\n var fields = this.fields;\n var dataItem = {};\n dataItem[fields.text] = isNullOrUndefined(value) ? null : value.toString();\n dataItem[fields.value] = isNullOrUndefined(value) ? null : value.toString();\n this.itemData = dataItem;\n this.item = null;\n if (this.previousValue !== this.value) {\n this.detachChangeEvent(null);\n }\n };\n ComboBox.prototype.updateValues = function () {\n if (!isNullOrUndefined(this.value)) {\n var li = this.getElementByValue(this.value);\n if (li) {\n this.setSelection(li, null);\n }\n else if (this.allowCustom) {\n this.valueMuteChange(this.value);\n }\n else {\n this.valueMuteChange(null);\n }\n }\n else if (this.text && isNullOrUndefined(this.value)) {\n var li = this.getElementByText(this.text);\n if (li) {\n this.setSelection(li, null);\n }\n else {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n this.customValue();\n }\n }\n else {\n this.setSelection(this.liCollections[this.activeIndex], null);\n }\n this.setHiddenValue();\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n ComboBox.prototype.updateIconState = function () {\n if (this.showClearButton) {\n if (this.inputElement && this.inputElement.value !== '' && !this.readonly) {\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n else {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n };\n ComboBox.prototype.getAriaAttributes = function () {\n var ariaAttributes = {\n 'role': 'combobox',\n 'aria-autocomplete': 'both',\n 'aria-labelledby': this.hiddenElement.id,\n 'aria-expanded': 'false',\n 'aria-readonly': this.readonly.toString(),\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n };\n return ariaAttributes;\n };\n ComboBox.prototype.searchLists = function (e) {\n this.isTyped = true;\n if (this.isFiltering()) {\n _super.prototype.searchLists.call(this, e);\n if (this.ulElement && this.filterInput.value.trim() === '') {\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\n }\n }\n else {\n if (this.ulElement && this.inputElement.value === '' && this.preventAutoFill) {\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\n }\n this.incrementalSearch(e);\n }\n };\n ComboBox.prototype.getNgDirective = function () {\n return 'EJS-COMBOBOX';\n };\n ComboBox.prototype.setSearchBox = function () {\n this.filterInput = this.inputElement;\n return (this.isFiltering() ? this.inputWrapper : inputObject);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n if (this.isSelectCustom) {\n this.removeSelection();\n }\n if (!this.preventAutoFill && this.getModuleName() === 'combobox' && this.isTyped) {\n setTimeout(function () {\n _this.inlineSearch();\n });\n }\n };\n ComboBox.prototype.getFocusElement = function () {\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\n var selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : this.list;\n var isSelected = dataItem.text === this.inputElement.value && !isNullOrUndefined(selected);\n if (isSelected) {\n return selected;\n }\n if ((Browser.isDevice && !this.isDropDownClick || !Browser.isDevice) &&\n !isNullOrUndefined(this.liCollections) && this.liCollections.length > 0) {\n var inputValue = this.inputElement.value;\n var dataSource = this.sortedData;\n var type = this.typeOfData(dataSource).typeof;\n var activeItem = Search(inputValue, this.liCollections, this.filterType, true, dataSource, this.fields, type);\n var activeElement = activeItem.item;\n if (!isNullOrUndefined(activeElement)) {\n var count = this.getIndexByValue(activeElement.getAttribute('data-value')) - 1;\n var height = parseInt(getComputedStyle(this.liCollections[0], null).getPropertyValue('height'), 10);\n if (!isNaN(height) && this.getModuleName() !== 'autocomplete') {\n this.removeFocus();\n var fixedHead = this.fields.groupBy ? this.liCollections[0].offsetHeight : 0;\n this.list.scrollTop = count * height + fixedHead;\n addClass([activeElement], dropDownListClasses.focus);\n }\n }\n else {\n if (this.isSelectCustom && this.inputElement.value.trim() !== '') {\n this.removeFocus();\n this.list.scrollTop = 0;\n }\n }\n return activeElement;\n }\n else {\n return null;\n }\n };\n ComboBox.prototype.setValue = function (e) {\n if (e && e.type === 'keydown' && e.action === 'enter') {\n this.removeFillSelection();\n }\n if (this.autofill && this.getModuleName() === 'combobox' && e && e.type === 'keydown' && e.action !== 'enter') {\n this.preventAutoFill = false;\n this.inlineSearch(e);\n return false;\n }\n else {\n return _super.prototype.setValue.call(this, e);\n }\n };\n ComboBox.prototype.checkCustomValue = function () {\n this.itemData = this.getDataByValue(this.value);\n var dataItem = this.getItemData();\n if (!(this.allowCustom && isNullOrUndefined(dataItem.value) && isNullOrUndefined(dataItem.text))) {\n this.setProperties({ 'value': dataItem.value }, !this.allowCustom);\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = (this.getModuleName() === 'autocomplete') ? (this.inputWrapper.buttons[0] ||\n this.inputWrapper.clearButton ||\n Input.appendSpan('e-input-group-icon ' + SPINNER_CLASS, this.inputWrapper.container, this.createElement)) :\n (this.inputWrapper.buttons[0] || this.inputWrapper.clearButton);\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\n detach(this.spinnerElement);\n }\n else {\n this.spinnerElement.innerHTML = '';\n }\n this.spinnerElement = null;\n }\n };\n ComboBox.prototype.setAutoFill = function (activeElement, isHover) {\n if (!isHover) {\n this.setHoverList(activeElement);\n }\n if (this.autofill && !this.preventAutoFill) {\n var currentValue = this.getTextByValue(activeElement.getAttribute('data-value')).toString();\n var currentFillValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\n if (this.getModuleName() === 'combobox') {\n if (!this.isSelected && this.previousValue !== currentFillValue) {\n this.updateSelectedItem(activeElement, null);\n this.isSelected = true;\n this.previousValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\n }\n else {\n this.updateSelectedItem(activeElement, null, true);\n }\n }\n if (!this.isAndroidAutoFill(currentValue)) {\n this.setAutoFillSelection(currentValue, isHover);\n }\n }\n };\n ComboBox.prototype.isAndroidAutoFill = function (value) {\n if (Browser.isAndroid) {\n var currentPoints = this.getSelectionPoints();\n var prevEnd = this.prevSelectPoints.end;\n var curEnd = currentPoints.end;\n var prevStart = this.prevSelectPoints.start;\n var curStart = currentPoints.start;\n if (prevEnd !== 0 && ((prevEnd === value.length && prevStart === value.length) ||\n (prevStart > curStart && prevEnd > curEnd) || (prevEnd === curEnd && prevStart === curStart))) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n ComboBox.prototype.clearAll = function (e, property) {\n if (isNullOrUndefined(property) || (!isNullOrUndefined(property) && isNullOrUndefined(property.dataSource))) {\n _super.prototype.clearAll.call(this, e);\n }\n if (this.isFiltering() && !isNullOrUndefined(e) && e.target === this.inputWrapper.clearButton) {\n this.searchLists(e);\n }\n };\n ComboBox.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n ComboBox.prototype.inlineSearch = function (e) {\n var isKeyNavigate = (e && (e.action === 'down' || e.action === 'up' ||\n e.action === 'home' || e.action === 'end' || e.action === 'pageUp' || e.action === 'pageDown'));\n var activeElement = isKeyNavigate ? this.liCollections[this.activeIndex] : this.getFocusElement();\n if (!isNullOrUndefined(activeElement)) {\n if (!isKeyNavigate) {\n var value = this.getFormattedValue(activeElement.getAttribute('data-value'));\n this.activeIndex = this.getIndexByValue(value);\n this.activeIndex = !isNullOrUndefined(this.activeIndex) ? this.activeIndex : null;\n }\n this.preventAutoFill = this.inputElement.value === '' ? false : this.preventAutoFill;\n this.setAutoFill(activeElement, isKeyNavigate);\n }\n else if (this.inputElement.value === '') {\n this.activeIndex = null;\n if (!isNullOrUndefined(this.list)) {\n this.list.scrollTop = 0;\n var focusItem = this.list.querySelector('.' + dropDownListClasses.li);\n this.setHoverList(focusItem);\n }\n }\n else {\n this.activeIndex = null;\n this.removeSelection();\n if (this.liCollections && this.liCollections.length > 0 && !this.isCustomFilter) {\n this.removeFocus();\n }\n }\n };\n ComboBox.prototype.incrementalSearch = function (e) {\n this.showPopup(e);\n if (!isNullOrUndefined(this.listData)) {\n this.inlineSearch(e);\n e.preventDefault();\n }\n };\n ComboBox.prototype.setAutoFillSelection = function (currentValue, isKeyNavigate) {\n if (isKeyNavigate === void 0) { isKeyNavigate = false; }\n var selection = this.getSelectionPoints();\n var value = this.inputElement.value.substr(0, selection.start);\n if (value && (value.toLowerCase() === currentValue.substr(0, selection.start).toLowerCase())) {\n var inputValue = value + currentValue.substr(value.length, currentValue.length);\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.inputElement.setSelectionRange(selection.start, this.inputElement.value.length);\n }\n else if (isKeyNavigate) {\n Input.setValue(currentValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.inputElement.setSelectionRange(0, this.inputElement.value.length);\n }\n };\n ComboBox.prototype.getValueByText = function (text) {\n return _super.prototype.getValueByText.call(this, text, true, this.ignoreAccent);\n };\n ComboBox.prototype.unWireEvent = function () {\n if (this.getModuleName() === 'combobox') {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputWrapper.container, 'blur', this.onBlurHandler);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick);\n }\n if (this.inputElement) {\n EventHandler.remove(this.inputElement, 'focus', this.targetFocus);\n if (!this.readonly) {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\n }\n }\n this.unBindCommonEvent();\n };\n ComboBox.prototype.setSelection = function (li, e) {\n _super.prototype.setSelection.call(this, li, e);\n if (!isNullOrUndefined(li) && !this.autofill && !this.isDropDownClick) {\n this.removeFocus();\n }\n };\n ComboBox.prototype.selectCurrentItem = function (e) {\n var li;\n if (this.isPopupOpen) {\n if (this.isSelected) {\n li = this.list.querySelector('.' + dropDownListClasses.selected);\n }\n else {\n li = this.list.querySelector('.' + dropDownListClasses.focus);\n }\n if (li) {\n this.setSelection(li, e);\n this.isTyped = false;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n }\n if (e.action === 'enter' && this.inputElement.value.trim() === '') {\n this.clearAll(e);\n }\n else if (this.isTyped && !this.isSelected && isNullOrUndefined(li)) {\n this.customValue(e);\n }\n this.hidePopup(e);\n };\n ComboBox.prototype.setHoverList = function (li) {\n this.removeSelection();\n if (this.isValidLI(li) && !li.classList.contains(dropDownListClasses.selected)) {\n this.removeFocus();\n li.classList.add(dropDownListClasses.focus);\n }\n };\n ComboBox.prototype.targetFocus = function (e) {\n if (Browser.isDevice && !this.allowFiltering) {\n this.preventFocus = false;\n }\n this.onFocus(e);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n ComboBox.prototype.dropDownClick = function (e) {\n e.preventDefault();\n if (Browser.isDevice && !this.isFiltering()) {\n this.preventFocus = true;\n }\n _super.prototype.dropDownClick.call(this, e);\n };\n ComboBox.prototype.customValue = function (e) {\n var _this = this;\n var value = this.getValueByText(this.inputElement.value);\n if (!this.allowCustom && this.inputElement.value !== '') {\n var previousValue = this.previousValue;\n var currentValue = this.value;\n this.setProperties({ value: value });\n if (isNullOrUndefined(this.value)) {\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n }\n if (this.autofill && previousValue === this.value && currentValue !== this.value) {\n this.onChangeEvent(null);\n }\n }\n else if (this.inputElement.value.trim() !== '') {\n var previousValue_1 = this.value;\n if (isNullOrUndefined(value)) {\n var value_1 = this.inputElement.value === '' ? null : this.inputElement.value;\n // eslint-disable-next-line max-len\n var eventArgs = { text: value_1, item: {} };\n if (!this.initial) {\n this.trigger('customValueSpecifier', eventArgs, function (eventArgs) {\n _this.updateCustomValueCallback(value_1, eventArgs, previousValue_1, e);\n });\n }\n else {\n this.updateCustomValueCallback(value_1, eventArgs, previousValue_1);\n }\n }\n else {\n this.isSelectCustom = false;\n this.setProperties({ value: value });\n if (previousValue_1 !== this.value) {\n this.onChangeEvent(e);\n }\n }\n }\n else if (this.allowCustom) {\n this.isSelectCustom = true;\n }\n };\n ComboBox.prototype.updateCustomValueCallback = function (value, eventArgs, previousValue, e) {\n var fields = this.fields;\n var item = eventArgs.item;\n var dataItem = {};\n if (item && getValue(fields.text, item) && getValue(fields.value, item)) {\n dataItem = item;\n }\n else {\n setValue(fields.text, value, dataItem);\n setValue(fields.value, value, dataItem);\n }\n this.itemData = dataItem;\n var changeData = {\n text: getValue(fields.text, this.itemData),\n value: getValue(fields.value, this.itemData),\n index: null\n };\n this.setProperties(changeData, true);\n this.setSelection(null, null);\n this.isSelectCustom = true;\n if (previousValue !== this.value) {\n this.onChangeEvent(e);\n }\n };\n /**\n * Dynamically change the value of properties.\n *\n * @param {ComboBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {ComboBoxModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n ComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.getModuleName() === 'combobox') {\n this.checkData(newProp);\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n if (this.readonly) {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\n }\n else {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\n }\n this.setReadOnly();\n break;\n case 'allowFiltering':\n this.setSearchBox();\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\n _super.prototype.renderList.call(this);\n }\n break;\n case 'allowCustom':\n break;\n default: {\n // eslint-disable-next-line max-len\n var comboProps = this.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this, comboProps.newProperty, comboProps.oldProperty);\n if (this.isFiltering() && prop === 'dataSource' && isNullOrUndefined(this.list) && this.itemTemplate &&\n this.getModuleName() === 'combobox') {\n _super.prototype.renderList.call(this);\n }\n break;\n }\n }\n }\n };\n /**\n * To initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n ComboBox.prototype.render = function () {\n _super.prototype.render.call(this);\n this.setSearchBox();\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\n _super.prototype.renderList.call(this);\n }\n this.renderComplete();\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n ComboBox.prototype.getModuleName = function () {\n return 'combobox';\n };\n /**\n * Adds a new item to the combobox popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n\n */\n ComboBox.prototype.addItem = function (items, itemIndex) {\n _super.prototype.addItem.call(this, items, itemIndex);\n };\n /**\n * To filter the data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n\n */\n ComboBox.prototype.filter = function (dataSource, query, fields) {\n _super.prototype.filter.call(this, dataSource, query, fields);\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.showPopup = function (e) {\n _super.prototype.showPopup.call(this, e);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Hides the popup if it is in open state.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.hidePopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n var inputValue = this.inputElement && this.inputElement.value === '' ? null\n : this.inputElement && this.inputElement.value;\n if (!isNullOrUndefined(this.listData)) {\n var isEscape = this.isEscapeKey;\n if (this.isEscapeKey) {\n Input.setValue(this.typedString, this.inputElement, this.floatLabelType, this.showClearButton);\n this.isEscapeKey = false;\n }\n if (this.autofill) {\n this.removeFillSelection();\n }\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\n var selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : null;\n if (this.inputElement && dataItem.text === this.inputElement.value && !isNullOrUndefined(selected)) {\n if (this.isSelected) {\n this.onChangeEvent(e);\n this.isSelectCustom = false;\n }\n _super.prototype.hidePopup.call(this, e);\n return;\n }\n if (this.getModuleName() === 'combobox' && this.inputElement.value.trim() !== '') {\n var dataSource = this.sortedData;\n var type = this.typeOfData(dataSource).typeof;\n var searchItem = Search(this.inputElement.value, this.liCollections, 'Equal', true, dataSource, this.fields, type);\n this.selectedLI = searchItem.item;\n if (isNullOrUndefined(searchItem.index)) {\n searchItem.index = Search(this.inputElement.value, this.liCollections, 'StartsWith', true, dataSource, this.fields, type).index;\n }\n this.activeIndex = searchItem.index;\n if (!isNullOrUndefined(this.selectedLI)) {\n this.updateSelectedItem(this.selectedLI, null, true);\n }\n else if (isEscape) {\n this.isSelectCustom = true;\n this.removeSelection();\n }\n }\n if (!this.isEscapeKey && this.isTyped && !this.isInteracted) {\n this.customValue(e);\n }\n }\n if (isNullOrUndefined(this.listData) && this.allowCustom && !isNullOrUndefined(inputValue) && inputValue !== this.value) {\n this.customValue();\n }\n _super.prototype.hidePopup.call(this, e);\n };\n /**\n * Sets the focus to the component for interaction.\n *\n * @returns {void}\n */\n ComboBox.prototype.focusIn = function () {\n if (!this.enabled) {\n return;\n }\n if (Browser.isDevice && !this.isFiltering()) {\n this.preventFocus = true;\n }\n _super.prototype.focusIn.call(this);\n };\n /**\n * Allows you to clear the selected values from the component.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.clear = function () {\n this.value = null;\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.focusOut = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n _super.prototype.focusOut.call(this, e);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n\n */\n ComboBox.prototype.getItems = function () {\n return _super.prototype.getItems.call(this);\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n\n */\n ComboBox.prototype.getDataByValue = function (value) {\n return _super.prototype.getDataByValue.call(this, value);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n ComboBox.prototype.renderHightSearch = function () {\n // update high light search\n };\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"autofill\", void 0);\n __decorate([\n Property(true)\n ], ComboBox.prototype, \"allowCustom\", void 0);\n __decorate([\n Property({})\n ], ComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"index\", void 0);\n __decorate([\n Property(true)\n ], ComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"enableRtl\", void 0);\n __decorate([\n Event()\n ], ComboBox.prototype, \"customValueSpecifier\", void 0);\n __decorate([\n Event()\n ], ComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property('Never')\n ], ComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('100%')\n ], ComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], ComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], ComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"value\", void 0);\n ComboBox = __decorate([\n NotifyPropertyChanges\n ], ComboBox);\n return ComboBox;\n}(DropDownList));\nexport { ComboBox };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Browser, Complex, getUniqueID, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { MenuBase, FieldSettings } from '../common/menu-base';\nvar VMENU = 'e-vertical';\nvar SCROLLABLE = 'e-scrollable';\nvar HAMBURGER = 'e-hamburger';\n/**\n * The Menu is a graphical user interface that serve as navigation headers for your application or site.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Menu = /** @class */ (function (_super) {\n __extends(Menu, _super);\n /**\n * Constructor for creating the component.\n *\n * @private\n * @param {MenuModel} options - Specifies the menu model\n * @param {string} element - Specifies the element\n */\n function Menu(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.tempItems = [];\n return _this;\n }\n /**\n * Get module name.\n *\n * @private\n * @returns {string} - Module Name\n */\n Menu.prototype.getModuleName = function () {\n return 'menu';\n };\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n Menu.prototype.preRender = function () {\n this.isMenu = true;\n this.element.id = this.element.id || getUniqueID('ej2-menu');\n if (this.template) {\n try {\n if (document.querySelectorAll(this.template).length) {\n this.template = document.querySelector(this.template).innerHTML.trim();\n this.clearChanges();\n }\n }\n catch (e) {\n /* action on catch */\n }\n this.updateMenuItems(this.items);\n }\n else {\n this.updateMenuItems(this.items);\n }\n _super.prototype.preRender.call(this);\n };\n Menu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n if (this.orientation === 'Vertical') {\n this.element.classList.add(VMENU);\n if (this.hamburgerMode && !this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.setAttribute('aria-orientation', 'vertical');\n }\n else {\n if (Browser.isDevice && !this.enableScrolling) {\n this.element.parentElement.classList.add(SCROLLABLE);\n }\n }\n if (this.hamburgerMode) {\n this.element.parentElement.classList.add(HAMBURGER);\n if (this.orientation === 'Horizontal') {\n this.element.classList.add('e-hide-menu');\n }\n }\n };\n Menu.prototype.updateMenuItems = function (items) {\n this.tempItems = items;\n this.items = [];\n this.tempItems.map(this.createMenuItems, this);\n this.setProperties({ items: this.items }, true);\n this.tempItems = [];\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuModel} newProp - Specifies the new properties.\n * @param {MenuModel} oldProp - Specifies the old properties.\n * @returns {void}\n */\n Menu.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'orientation':\n if (newProp.orientation === 'Vertical') {\n this.element.classList.add(VMENU);\n if (this.hamburgerMode) {\n if (!this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.remove('e-hide-menu');\n }\n this.element.setAttribute('aria-orientation', 'vertical');\n }\n else {\n this.element.classList.remove(VMENU);\n if (this.hamburgerMode) {\n if (!this.target) {\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n this.element.classList.add('e-hide-menu');\n }\n this.element.removeAttribute('aria-orientation');\n }\n break;\n case 'items':\n if (!Object.keys(oldProp.items).length) {\n this.updateMenuItems(newProp.items);\n }\n break;\n case 'hamburgerMode':\n if (!this.element.previousElementSibling) {\n _super.prototype.createHeaderContainer.call(this);\n }\n if (newProp.hamburgerMode) {\n this.element.parentElement.classList.add(HAMBURGER);\n [].slice.call(this.element.getElementsByClassName('e-blankicon')).forEach(function (li) {\n li.style[_this.enableRtl ? 'paddingRight' : 'paddingLeft'] = '';\n });\n }\n else {\n this.element.parentElement.classList.remove(HAMBURGER);\n if (this.orientation === 'Vertical') {\n this.setBlankIconStyle(this.element);\n }\n }\n if (this.orientation === 'Vertical') {\n if (!this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.remove('e-hide-menu');\n }\n else {\n if (this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n else {\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n this.element.classList[newProp.hamburgerMode ? 'add' : 'remove']('e-hide-menu');\n }\n break;\n case 'title':\n if (this.hamburgerMode && this.element.previousElementSibling) {\n newProp.title = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(newProp.title) : newProp.title;\n this.element.previousElementSibling.querySelector('.e-menu-title').innerHTML = newProp.title;\n }\n break;\n case 'target':\n if (this.hamburgerMode) {\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n if (this.orientation === 'Horizontal') {\n if (!newProp.target) {\n if (!this.element.previousElementSibling) {\n _super.prototype.createHeaderContainer.call(this);\n }\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n else {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.add('e-hide-menu');\n }\n }\n break;\n }\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n };\n Menu.prototype.createMenuItems = function (item) {\n var idx;\n var i;\n var items = this.items;\n var pIdField = this.getField('parentId');\n if (item[\"\" + pIdField]) {\n idx = this.getIndex(item[\"\" + pIdField].toString(), true);\n for (i = 0; i < idx.length; i++) {\n if (!items[idx[i]].items) {\n items[idx[i]].items = [];\n }\n items = items[idx[i]].items;\n }\n items.push(item);\n }\n else {\n this.items.push(item);\n }\n };\n /**\n * This method is used to open the Menu in hamburger mode.\n *\n * @function open\n * @returns {void}\n */\n Menu.prototype.open = function () {\n _super.prototype.openHamburgerMenu.call(this);\n };\n /**\n * Closes the Menu if it is opened in hamburger mode.\n *\n * @function close\n * @returns {void}\n */\n Menu.prototype.close = function () {\n _super.prototype.closeHamburgerMenu.call(this);\n };\n __decorate([\n Property('Horizontal')\n ], Menu.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Menu.prototype, \"target\", void 0);\n __decorate([\n Property(null)\n ], Menu.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"hamburgerMode\", void 0);\n __decorate([\n Property('Menu')\n ], Menu.prototype, \"title\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], Menu.prototype, \"fields\", void 0);\n Menu = __decorate([\n NotifyPropertyChanges\n ], Menu);\n return Menu;\n}(MenuBase));\nexport { Menu };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a['aria-label'] = this.element.textContent ? this.element.textContent : 'dropdownbutton',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n if ((this.target && !this.isColorPicker()) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n };\n DropDownButton.prototype.popupWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && !this.isColorPicker())) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var eventArgs = void 0;\n var liIdx = void 0;\n var item = void 0;\n var li = this.getLI(trgt);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item };\n this.trigger('select', eventArgs);\n }\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker()) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n if (_this.target) {\n _this.isPopupCreated = _this.createPopupOnClick ? false : true;\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent + ' splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n }\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Property, Event, Complex, Collection } from '@syncfusion/ej2-base';\nimport { L10n, Internationalization } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, setStyleAttribute, detach, closest } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Tooltip, getZindexPartial } from '@syncfusion/ej2-popups';\n/**\n * Configures the ticks data of the Slider.\n */\nvar TicksData = /** @class */ (function (_super) {\n __extends(TicksData, _super);\n function TicksData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], TicksData.prototype, \"placement\", void 0);\n __decorate([\n Property(10)\n ], TicksData.prototype, \"largeStep\", void 0);\n __decorate([\n Property(1)\n ], TicksData.prototype, \"smallStep\", void 0);\n __decorate([\n Property(false)\n ], TicksData.prototype, \"showSmallTicks\", void 0);\n __decorate([\n Property(null)\n ], TicksData.prototype, \"format\", void 0);\n return TicksData;\n}(ChildProperty));\nexport { TicksData };\n/**\n * It illustrates the color track data in slider.\n * {% codeBlock src='slider/colorrange/index.md' %}{% endcodeBlock %}\n */\nvar ColorRangeData = /** @class */ (function (_super) {\n __extends(ColorRangeData, _super);\n function ColorRangeData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"color\", void 0);\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"start\", void 0);\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"end\", void 0);\n return ColorRangeData;\n}(ChildProperty));\nexport { ColorRangeData };\n/**\n * It illustrates the limit data in slider.\n * {% codeBlock src='slider/limits/index.md' %}{% endcodeBlock %}\n */\nvar LimitData = /** @class */ (function (_super) {\n __extends(LimitData, _super);\n function LimitData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], LimitData.prototype, \"enabled\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"minStart\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"minEnd\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"maxStart\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"maxEnd\", void 0);\n __decorate([\n Property(false)\n ], LimitData.prototype, \"startHandleFixed\", void 0);\n __decorate([\n Property(false)\n ], LimitData.prototype, \"endHandleFixed\", void 0);\n return LimitData;\n}(ChildProperty));\nexport { LimitData };\n/**\n * It illustrates the tooltip data in slider.\n */\nvar TooltipData = /** @class */ (function (_super) {\n __extends(TooltipData, _super);\n function TooltipData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], TooltipData.prototype, \"cssClass\", void 0);\n __decorate([\n Property('Before')\n ], TooltipData.prototype, \"placement\", void 0);\n __decorate([\n Property('Focus')\n ], TooltipData.prototype, \"showOn\", void 0);\n __decorate([\n Property(false)\n ], TooltipData.prototype, \"isVisible\", void 0);\n __decorate([\n Property(null)\n ], TooltipData.prototype, \"format\", void 0);\n return TooltipData;\n}(ChildProperty));\nexport { TooltipData };\nvar bootstrapTooltipOffset = 6;\nvar bootstrap4TooltipOffset = 3;\nvar classNames = {\n root: 'e-slider',\n rtl: 'e-rtl',\n sliderHiddenInput: 'e-slider-input',\n controlWrapper: 'e-control-wrapper',\n sliderHandle: 'e-handle',\n rangeBar: 'e-range',\n sliderButton: 'e-slider-button',\n firstButton: 'e-first-button',\n secondButton: 'e-second-button',\n scale: 'e-scale',\n tick: 'e-tick',\n large: 'e-large',\n tickValue: 'e-tick-value',\n sliderTooltip: 'e-slider-tooltip',\n sliderHover: 'e-slider-hover',\n sliderFirstHandle: 'e-handle-first',\n sliderSecondHandle: 'e-handle-second',\n sliderDisabled: 'e-disabled',\n sliderContainer: 'e-slider-container',\n horizontalTooltipBefore: 'e-slider-horizontal-before',\n horizontalTooltipAfter: 'e-slider-horizontal-after',\n verticalTooltipBefore: 'e-slider-vertical-before',\n verticalTooltipAfter: 'e-slider-vertical-after',\n materialTooltip: 'e-material-tooltip',\n materialTooltipOpen: 'e-material-tooltip-open',\n materialTooltipActive: 'e-tooltip-active',\n materialSlider: 'e-material-slider',\n sliderTrack: 'e-slider-track',\n sliderHorizantalColor: 'e-slider-horizantal-color',\n sliderVerticalColor: 'e-slider-vertical-color',\n sliderHandleFocused: 'e-handle-focused',\n verticalSlider: 'e-vertical',\n horizontalSlider: 'e-horizontal',\n sliderHandleStart: 'e-handle-start',\n sliderTooltipStart: 'e-material-tooltip-start',\n sliderTabHandle: 'e-tab-handle',\n sliderButtonIcon: 'e-button-icon',\n sliderSmallSize: 'e-small-size',\n sliderTickPosition: 'e-tick-pos',\n sliderFirstTick: 'e-first-tick',\n sliderLastTick: 'e-last-tick',\n sliderButtonClass: 'e-slider-btn',\n sliderTooltipWrapper: 'e-tooltip-wrap',\n sliderTabTrack: 'e-tab-track',\n sliderTabRange: 'e-tab-range',\n sliderActiveHandle: 'e-handle-active',\n sliderMaterialHandle: 'e-material-handle',\n sliderMaterialRange: 'e-material-range',\n sliderMaterialDefault: 'e-material-default',\n materialTooltipShow: 'e-material-tooltip-show',\n materialTooltipHide: 'e-material-tooltip-hide',\n readonly: 'e-read-only',\n limits: 'e-limits',\n limitBarDefault: 'e-limit-bar',\n limitBarFirst: 'e-limit-first',\n limitBarSecond: 'e-limit-second',\n dragHorizontal: 'e-drag-horizontal',\n dragVertical: 'e-drag-vertical'\n};\n/**\n * The Slider component allows the user to select a value or range\n * of values in-between a min and max range, by dragging the handle over the slider bar.\n * ```html\n *
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar Slider = /** @class */ (function (_super) {\n __extends(Slider, _super);\n function Slider(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.horDir = 'left';\n _this.verDir = 'bottom';\n _this.transition = {\n handle: 'left .4s cubic-bezier(.25, .8, .25, 1), right .4s cubic-bezier(.25, .8, .25, 1), ' +\n 'top .4s cubic-bezier(.25, .8, .25, 1) , bottom .4s cubic-bezier(.25, .8, .25, 1)',\n rangeBar: 'all .4s cubic-bezier(.25, .8, .25, 1)'\n };\n _this.transitionOnMaterialTooltip = {\n handle: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, top 1ms ease-out',\n rangeBar: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, width 1ms ease-out, height 1ms ease-out'\n };\n _this.scaleTransform = 'transform .4s cubic-bezier(.25, .8, .25, 1)';\n _this.customAriaText = null;\n _this.drag = true;\n _this.isDragComplete = false;\n _this.initialTooltip = true;\n return _this;\n }\n Slider.prototype.preRender = function () {\n // eslint-disable-next-line\n var localeText = { incrementTitle: 'Increase', decrementTitle: 'Decrease' };\n this.l10n = new L10n('slider', localeText, this.locale);\n this.isElementFocused = false;\n this.tickElementCollection = [];\n this.tooltipFormatInfo = {};\n this.ticksFormatInfo = {};\n this.initCultureInfo();\n this.initCultureFunc();\n this.formChecker();\n };\n Slider.prototype.formChecker = function () {\n var formElement = closest(this.element, 'form');\n if (formElement) {\n this.isForm = true;\n // this condition needs to be checked, if the slider is going to be refreshed by `refresh()`\n // then we need to revert the slider `value` back to `formResetValue` to preserve the initial value\n if (!isNullOrUndefined(this.formResetValue)) {\n this.setProperties({ 'value': this.formResetValue }, true);\n }\n this.formResetValue = this.value;\n if (this.type === 'Range' &&\n (isNullOrUndefined(this.formResetValue) || typeof (this.formResetValue) !== 'object')) {\n this.formResetValue = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\n }\n else if (isNullOrUndefined(this.formResetValue)) {\n this.formResetValue = parseFloat(formatUnit(this.min));\n }\n this.formElement = formElement;\n }\n else {\n this.isForm = false;\n }\n };\n Slider.prototype.initCultureFunc = function () {\n this.internationalization = new Internationalization(this.locale);\n };\n Slider.prototype.initCultureInfo = function () {\n this.tooltipFormatInfo.format = (!isNullOrUndefined(this.tooltip.format)) ? this.tooltip.format : null;\n this.ticksFormatInfo.format = (!isNullOrUndefined(this.ticks.format)) ? this.ticks.format : null;\n };\n Slider.prototype.formatString = function (value, formatInfo) {\n var formatValue = null;\n var formatString = null;\n if ((value || value === 0)) {\n formatValue = this.formatNumber(value);\n var numberOfDecimals = this.numberOfDecimals(value);\n formatString = this.internationalization.getNumberFormat(formatInfo)(this.makeRoundNumber(value, numberOfDecimals));\n }\n return { elementVal: formatValue, formatString: formatString };\n };\n Slider.prototype.formatNumber = function (value) {\n var numberOfDecimals = this.numberOfDecimals(value);\n return this.internationalization.getNumberFormat({\n maximumFractionDigits: numberOfDecimals,\n minimumFractionDigits: numberOfDecimals, useGrouping: false\n })(value);\n };\n Slider.prototype.numberOfDecimals = function (value) {\n var decimalPart = value.toString().split('.')[1];\n var numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\n return numberOfDecimals;\n };\n Slider.prototype.makeRoundNumber = function (value, precision) {\n var decimals = precision || 0;\n return Number(value.toFixed(decimals));\n };\n Slider.prototype.fractionalToInteger = function (value) {\n value = (this.numberOfDecimals(value) === 0) ? Number(value).toFixed(this.noOfDecimals) : value;\n var tens = 1;\n for (var i = 0; i < this.noOfDecimals; i++) {\n tens *= 10;\n }\n value = Number((value * tens).toFixed(0));\n return value;\n };\n /**\n * To Initialize the control rendering\n * @private\n */\n Slider.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.initRender();\n this.wireEvents();\n this.setZindex();\n this.renderComplete();\n if (this.element.tagName === 'EJS-SLIDER') {\n if (this.getTheme(this.sliderContainer) == \"none\") {\n setTimeout(function () {\n _this.refresh();\n }, 0);\n }\n }\n };\n Slider.prototype.initialize = function () {\n addClass([this.element], classNames.root);\n this.setCSSClass();\n };\n Slider.prototype.setElementWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.sliderContainer.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.sliderContainer.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n Slider.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n Slider.prototype.setEnabled = function () {\n if (!this.enabled) {\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\n this.tooltipElement.classList.add(classNames.sliderDisabled);\n }\n this.unwireEvents();\n }\n else {\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\n this.tooltipElement.classList.remove(classNames.sliderDisabled);\n }\n this.wireEvents();\n }\n };\n Slider.prototype.getTheme = function (container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n };\n /**\n * Initialize the rendering\n * @private\n */\n Slider.prototype.initRender = function () {\n this.sliderContainer = this.createElement('div', { className: classNames.sliderContainer + ' ' + classNames.controlWrapper });\n this.element.parentNode.insertBefore(this.sliderContainer, this.element);\n this.sliderContainer.appendChild(this.element);\n this.sliderTrack = this.createElement('div', { className: classNames.sliderTrack });\n this.element.appendChild(this.sliderTrack);\n this.setElementWidth(this.width);\n this.element.tabIndex = -1;\n this.getThemeInitialization();\n this.setHandler();\n this.createRangeBar();\n if (this.limits.enabled) {\n this.createLimitBar();\n }\n this.setOrientClass();\n this.hiddenInput = (this.createElement('input', {\n attrs: {\n type: 'hidden', value: (isNullOrUndefined(this.value) ? this.min.toString() : this.value.toString()),\n name: this.element.getAttribute('name') || this.element.getAttribute('id') ||\n '_' + (Math.random() * 1000).toFixed(0) + 'slider', class: classNames.sliderHiddenInput\n }\n }));\n this.hiddenInput.tabIndex = -1;\n this.sliderContainer.appendChild(this.hiddenInput);\n if (this.showButtons) {\n this.setButtons();\n }\n this.setEnableRTL();\n if (this.type === 'Range') {\n this.rangeValueUpdate();\n }\n else {\n this.value = isNullOrUndefined(this.value) ? parseFloat(formatUnit(this.min.toString())) : this.value;\n }\n this.previousVal = this.type !== 'Range' ? this.checkHandleValue(parseFloat(formatUnit(this.value.toString()))) :\n [this.checkHandleValue(parseFloat(formatUnit(this.value[0].toString()))),\n this.checkHandleValue(parseFloat(formatUnit(this.value[1].toString())))];\n this.previousChanged = this.previousVal;\n if (!isNullOrUndefined(this.element.hasAttribute('name'))) {\n this.element.removeAttribute('name');\n }\n this.setValue();\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n }\n if (this.tooltip.isVisible) {\n this.renderTooltip();\n }\n if (!this.enabled) {\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\n }\n else {\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n }\n if (this.readonly) {\n addClass([this.sliderContainer], [classNames.readonly]);\n }\n else {\n removeClass([this.sliderContainer], [classNames.readonly]);\n }\n };\n Slider.prototype.getThemeInitialization = function () {\n this.isMaterial = this.getTheme(this.sliderContainer) === 'material'\n || this.getTheme(this.sliderContainer) === 'material-dark';\n this.isBootstrap = this.getTheme(this.sliderContainer) === 'bootstrap'\n || this.getTheme(this.sliderContainer) === 'bootstrap-dark';\n this.isBootstrap4 = this.getTheme(this.sliderContainer) === 'bootstrap4';\n this.isTailwind = this.getTheme(this.sliderContainer) === 'tailwind' || this.getTheme(this.sliderContainer) === 'tailwind-dark';\n this.isBootstrap5 = this.getTheme(this.sliderContainer) === 'bootstrap5';\n this.isFluent = this.getTheme(this.sliderContainer) === 'FluentUI';\n this.isMaterialTooltip = this.isMaterial && this.type !== 'Range' && this.tooltip.isVisible;\n };\n Slider.prototype.createRangeBar = function () {\n if (this.type !== 'Default') {\n this.rangeBar = (this.createElement('div', { attrs: { class: classNames.rangeBar } }));\n this.element.appendChild(this.rangeBar);\n if (this.drag && this.type === 'Range') {\n if (this.orientation === 'Horizontal') {\n this.rangeBar.classList.add(classNames.dragHorizontal);\n }\n else {\n this.rangeBar.classList.add(classNames.dragVertical);\n }\n }\n }\n };\n Slider.prototype.createLimitBar = function () {\n var firstElementClassName = this.type !== 'Range' ? classNames.limitBarDefault :\n classNames.limitBarFirst;\n firstElementClassName += ' ' + classNames.limits;\n this.limitBarFirst = (this.createElement('div', {\n attrs: { class: firstElementClassName }\n }));\n this.element.appendChild(this.limitBarFirst);\n if (this.type === 'Range') {\n this.limitBarSecond = (this.createElement('div', {\n attrs: {\n class: classNames.limitBarSecond + ' ' + classNames.limits\n }\n }));\n this.element.appendChild(this.limitBarSecond);\n }\n };\n Slider.prototype.setOrientClass = function () {\n if (this.orientation !== 'Vertical') {\n this.sliderContainer.classList.remove(classNames.verticalSlider);\n this.sliderContainer.classList.add(classNames.horizontalSlider);\n this.firstHandle.setAttribute('aria-orientation', 'horizontal');\n if (this.type === 'Range') {\n this.secondHandle.setAttribute('aria-orientation', 'horizontal');\n }\n }\n else {\n this.sliderContainer.classList.remove(classNames.horizontalSlider);\n this.sliderContainer.classList.add(classNames.verticalSlider);\n this.firstHandle.setAttribute('aria-orientation', 'vertical');\n if (this.type === 'Range') {\n this.secondHandle.setAttribute('aria-orientation', 'vertical');\n }\n }\n };\n Slider.prototype.setAriaAttributes = function (element) {\n var _this = this;\n var min = this.min;\n var max = this.max;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n min = this.customValues[0];\n max = this.customValues[this.customValues.length - 1];\n }\n if (this.type !== 'Range') {\n attributes(element, {\n 'aria-valuemin': min.toString(), 'aria-valuemax': max.toString()\n });\n }\n else {\n var range = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n [[min.toString(), (this.customValues[this.value[1]]).toString()],\n [(this.customValues[this.value[0]]).toString(), max.toString()]] :\n [[min.toString(), this.value[1].toString()], [this.value[0].toString(), max.toString()]];\n range.forEach(function (range, index) {\n var element = index === 0 ? _this.firstHandle : _this.secondHandle;\n if (element) {\n attributes(element, {\n 'aria-valuemin': range[0], 'aria-valuemax': range[1]\n });\n }\n });\n }\n };\n Slider.prototype.createSecondHandle = function () {\n this.secondHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider'\n }\n });\n this.secondHandle.classList.add(classNames.sliderSecondHandle);\n this.element.appendChild(this.secondHandle);\n };\n Slider.prototype.createFirstHandle = function () {\n this.firstHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider'\n }\n });\n this.firstHandle.classList.add(classNames.sliderFirstHandle);\n this.element.appendChild(this.firstHandle);\n if (this.isMaterialTooltip) {\n this.materialHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle + ' ' +\n classNames.sliderMaterialHandle\n }\n });\n this.element.appendChild(this.materialHandle);\n }\n };\n Slider.prototype.wireFirstHandleEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.firstHandle, 'mousedown touchstart', this.handleFocus, this);\n EventHandler.add(this.firstHandle, 'transitionend', this.transitionEnd, this);\n EventHandler.add(this.firstHandle, 'mouseenter touchenter', this.handleOver, this);\n EventHandler.add(this.firstHandle, 'mouseleave touchend', this.handleLeave, this);\n }\n else {\n EventHandler.remove(this.firstHandle, 'mousedown touchstart', this.handleFocus);\n EventHandler.remove(this.firstHandle, 'transitionend', this.transitionEnd);\n EventHandler.remove(this.firstHandle, 'mouseenter touchenter', this.handleOver);\n EventHandler.remove(this.firstHandle, 'mouseleave touchend', this.handleLeave);\n }\n };\n Slider.prototype.wireSecondHandleEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.secondHandle, 'mousedown touchstart', this.handleFocus, this);\n EventHandler.add(this.secondHandle, 'transitionend', this.transitionEnd, this);\n EventHandler.add(this.secondHandle, 'mouseenter touchenter', this.handleOver, this);\n EventHandler.add(this.secondHandle, 'mouseleave touchend', this.handleLeave, this);\n }\n else {\n EventHandler.remove(this.secondHandle, 'mousedown touchstart', this.handleFocus);\n EventHandler.remove(this.secondHandle, 'transitionend', this.transitionEnd);\n EventHandler.remove(this.secondHandle, 'mouseenter touchenter', this.handleOver);\n EventHandler.remove(this.secondHandle, 'mouseleave touchend', this.handleLeave);\n }\n };\n Slider.prototype.handleStart = function () {\n if (this.type !== 'Range') {\n this.firstHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\n if (this.isMaterialTooltip) {\n this.materialHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\n if (this.tooltipElement) {\n this.tooltipElement.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderTooltipStart);\n }\n }\n }\n };\n Slider.prototype.transitionEnd = function (e) {\n if (e.propertyName !== 'transform') {\n this.handleStart();\n if (!this.enableAnimation) {\n this.getHandle().style.transition = 'none';\n }\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n if (this.isMaterial && this.tooltip.isVisible && this.type === 'Default') {\n this.tooltipElement.style.transition = this.transition.handle;\n }\n this.tooltipToggle(this.getHandle());\n this.closeTooltip();\n }\n };\n Slider.prototype.handleFocusOut = function () {\n if (this.firstHandle.classList.contains(classNames.sliderHandleFocused)) {\n this.firstHandle.classList.remove(classNames.sliderHandleFocused);\n }\n if (this.type === 'Range') {\n if (this.secondHandle.classList.contains(classNames.sliderHandleFocused)) {\n this.secondHandle.classList.remove(classNames.sliderHandleFocused);\n }\n }\n };\n Slider.prototype.handleFocus = function (e) {\n this.focusSliderElement();\n this.sliderBarClick(e);\n if (e.currentTarget === this.firstHandle) {\n this.firstHandle.classList.add(classNames.sliderHandleFocused);\n this.firstHandle.classList.add(classNames.sliderTabHandle);\n }\n else {\n this.secondHandle.classList.add(classNames.sliderHandleFocused);\n this.secondHandle.classList.add(classNames.sliderTabHandle);\n }\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\n };\n Slider.prototype.handleOver = function (e) {\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover') {\n this.tooltipToggle(e.currentTarget);\n }\n if (this.type === 'Default') {\n this.tooltipToggle(this.getHandle());\n }\n };\n Slider.prototype.handleLeave = function (e) {\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover' &&\n !e.currentTarget.classList.contains(classNames.sliderHandleFocused) &&\n !e.currentTarget.classList.contains(classNames.sliderTabHandle)) {\n this.closeTooltip();\n }\n };\n Slider.prototype.setHandler = function () {\n if (this.min > this.max) {\n this.min = this.max;\n }\n this.createFirstHandle();\n if (this.type === 'Range') {\n this.createSecondHandle();\n }\n };\n Slider.prototype.setEnableRTL = function () {\n this.enableRtl && this.orientation !== 'Vertical' ? addClass([this.sliderContainer], classNames.rtl) :\n removeClass([this.sliderContainer], classNames.rtl);\n var preDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\n if (this.enableRtl) {\n this.horDir = 'right';\n this.verDir = 'bottom';\n }\n else {\n this.horDir = 'left';\n this.verDir = 'bottom';\n }\n var currDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\n if (preDir !== currDir) {\n if (this.orientation === 'Horizontal') {\n setStyleAttribute(this.firstHandle, { 'right': '', 'left': 'auto' });\n if (this.type === 'Range') {\n setStyleAttribute(this.secondHandle, { 'top': '', 'left': 'auto' });\n }\n }\n }\n this.setBarColor();\n };\n Slider.prototype.tooltipValue = function () {\n var _this = this;\n var text;\n var args = {\n value: this.value,\n text: ''\n };\n if (this.initialTooltip) {\n this.initialTooltip = false;\n this.setTooltipContent();\n args.text = text = this.tooltipObj.content;\n this.trigger('tooltipChange', args, function (observedArgs) {\n _this.addTooltipClass(observedArgs.text);\n if (text !== observedArgs.text) {\n _this.customAriaText = observedArgs.text;\n _this.tooltipObj.content = observedArgs.text;\n _this.setAriaAttrValue(_this.firstHandle);\n if (_this.type === 'Range') {\n _this.setAriaAttrValue(_this.secondHandle);\n }\n }\n });\n if (this.isMaterialTooltip) {\n this.setPreviousVal('change', this.value);\n }\n }\n };\n Slider.prototype.setTooltipContent = function () {\n var content;\n content = this.formatContent(this.tooltipFormatInfo, false);\n this.tooltipObj.content = content;\n };\n Slider.prototype.formatContent = function (formatInfo, ariaContent) {\n var content = '';\n var handle1 = this.handleVal1;\n var handle2 = this.handleVal2;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n handle1 = this.customValues[this.handleVal1];\n handle2 = this.customValues[this.handleVal2];\n }\n if (!ariaContent) {\n if (this.type === 'Range') {\n if (this.enableRtl && this.orientation !== 'Vertical') {\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle2, formatInfo)\n .formatString + ' - ' + this.formatString(handle1, formatInfo).formatString) :\n (handle2.toString() + ' - ' + handle1.toString());\n }\n else {\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle1, formatInfo)\n .formatString + ' - ' + this.formatString(handle2, formatInfo).formatString) :\n (handle1.toString() + ' - ' + handle2.toString());\n }\n }\n else {\n if (!isNullOrUndefined(handle1)) {\n content = (!isNullOrUndefined(formatInfo.format)) ?\n this.formatString(handle1, formatInfo).formatString : handle1.toString();\n }\n }\n return content;\n }\n else {\n if (this.type === 'Range') {\n if (this.enableRtl && this.orientation !== 'Vertical') {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n (this.formatString(handle2, formatInfo).elementVal + ' - ' +\n this.formatString(handle1, formatInfo).elementVal) :\n (handle2.toString() + ' - ' + handle1.toString());\n }\n else {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n (this.formatString(handle1, formatInfo).elementVal + ' - ' +\n this.formatString(handle2, formatInfo).elementVal) :\n (handle1.toString() + ' - ' + handle2.toString());\n }\n }\n else {\n if (!isNullOrUndefined(handle1)) {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n this.formatString(handle1, formatInfo).elementVal : handle1.toString();\n }\n }\n return content;\n }\n };\n Slider.prototype.addTooltipClass = function (content) {\n if (this.isMaterialTooltip) {\n var count = content.toString().length;\n if (!this.tooltipElement) {\n var cssClass = count > 4 ? classNames.sliderMaterialRange : classNames.sliderMaterialDefault;\n this.tooltipObj.cssClass = classNames.sliderTooltip + ' ' + cssClass;\n }\n else {\n var cssClass = count > 4 ?\n { oldCss: classNames.sliderMaterialDefault, newCss: classNames.sliderMaterialRange } :\n { oldCss: classNames.sliderMaterialRange, newCss: classNames.sliderMaterialDefault };\n this.tooltipElement.classList.remove(cssClass.oldCss);\n if (!this.tooltipElement.classList.contains(cssClass.newCss)) {\n this.tooltipElement.classList.add(cssClass.newCss);\n this.tooltipElement.style.transform = count > 4 ? 'scale(1)' :\n this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n }\n }\n };\n Slider.prototype.tooltipPlacement = function () {\n return this.orientation === 'Horizontal' ? (this.tooltip.placement === 'Before' ? 'TopCenter' : 'BottomCenter') :\n (this.tooltip.placement === 'Before' ? 'LeftCenter' : 'RightCenter');\n };\n Slider.prototype.tooltipBeforeOpen = function (args) {\n this.tooltipElement = args.element;\n if (this.tooltip.cssClass) {\n addClass([this.tooltipElement], this.tooltip.cssClass.split(' ').filter(function (css) { return css; }));\n }\n args.target.removeAttribute('aria-describedby');\n if (this.isMaterialTooltip) {\n this.tooltipElement.firstElementChild.classList.add(classNames.materialTooltipHide);\n this.handleStart();\n this.setTooltipTransform();\n }\n };\n Slider.prototype.tooltipCollision = function (position) {\n if (this.isBootstrap || this.isBootstrap4 || (this.isMaterial && !this.isMaterialTooltip)) {\n var tooltipOffsetValue = this.isBootstrap4 ? bootstrap4TooltipOffset : bootstrapTooltipOffset;\n switch (position) {\n case 'TopCenter':\n this.tooltipObj.setProperties({ 'offsetY': -(tooltipOffsetValue) }, false);\n break;\n case 'BottomCenter':\n this.tooltipObj.setProperties({ 'offsetY': tooltipOffsetValue }, false);\n break;\n case 'LeftCenter':\n this.tooltipObj.setProperties({ 'offsetX': -(tooltipOffsetValue) }, false);\n break;\n case 'RightCenter':\n this.tooltipObj.setProperties({ 'offsetX': tooltipOffsetValue }, false);\n break;\n }\n }\n };\n Slider.prototype.materialTooltipEventCallBack = function (event) {\n this.sliderBarClick(event);\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\n };\n Slider.prototype.wireMaterialTooltipEvent = function (destroy) {\n if (this.isMaterialTooltip) {\n if (!destroy) {\n EventHandler.add(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack, this);\n }\n else {\n EventHandler.remove(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack);\n }\n }\n };\n Slider.prototype.tooltipPositionCalculation = function (position) {\n var cssClass;\n switch (position) {\n case 'TopCenter':\n cssClass = classNames.horizontalTooltipBefore;\n break;\n case 'BottomCenter':\n cssClass = classNames.horizontalTooltipAfter;\n break;\n case 'LeftCenter':\n cssClass = classNames.verticalTooltipBefore;\n break;\n case 'RightCenter':\n cssClass = classNames.verticalTooltipAfter;\n break;\n }\n return cssClass;\n };\n Slider.prototype.getTooltipTransformProperties = function (className) {\n var transformProperties;\n if (this.tooltipElement) {\n var position = this.orientation === 'Horizontal' ?\n ((this.tooltipElement.clientHeight + 14) - (this.tooltipElement.clientHeight / 2)) :\n ((this.tooltipElement.clientWidth + 14) - (this.tooltipElement.clientWidth / 2));\n transformProperties = this.orientation === 'Horizontal' ?\n (className === classNames.horizontalTooltipBefore ? { rotate: 'rotate(45deg)', translate: \"translateY(\" + position + \"px)\" } :\n { rotate: 'rotate(225deg)', translate: \"translateY(\" + -(position) + \"px)\" }) :\n (className === classNames.verticalTooltipBefore ? { rotate: 'rotate(-45deg)', translate: \"translateX(\" + position + \"px)\" } :\n { rotate: 'rotate(-225deg)', translate: \"translateX(\" + (-position) + \"px)\" });\n }\n return transformProperties;\n };\n Slider.prototype.openMaterialTooltip = function () {\n var _this = this;\n if (this.isMaterialTooltip) {\n this.refreshTooltip(this.firstHandle);\n var tooltipContentElement = this.tooltipElement.firstElementChild;\n tooltipContentElement.classList.remove(classNames.materialTooltipHide);\n tooltipContentElement.classList.add(classNames.materialTooltipShow);\n this.firstHandle.style.cursor = 'default';\n this.tooltipElement.style.transition = this.scaleTransform;\n this.tooltipElement.classList.add(classNames.materialTooltipOpen);\n this.materialHandle.style.transform = 'scale(0)';\n if (tooltipContentElement.innerText.length > 4) {\n this.tooltipElement.style.transform = 'scale(1)';\n }\n else {\n this.tooltipElement.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n if (this.type === 'Default') {\n setTimeout(function () { _this.tooltipElement.style.transition = _this.transition.handle; }, 2500);\n }\n else {\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\n }\n }\n };\n Slider.prototype.closeMaterialTooltip = function () {\n var _this = this;\n if (this.isMaterialTooltip) {\n var tooltipContentElement = this.tooltipElement.firstElementChild;\n this.tooltipElement.style.transition = this.scaleTransform;\n tooltipContentElement.classList.remove(classNames.materialTooltipShow);\n tooltipContentElement.classList.add(classNames.materialTooltipHide);\n this.firstHandle.style.cursor = '-webkit-grab';\n this.firstHandle.style.cursor = 'grab';\n if (this.materialHandle) {\n this.materialHandle.style.transform = 'scale(1)';\n }\n this.tooltipElement.classList.remove(classNames.materialTooltipOpen);\n this.setTooltipTransform();\n this.tooltipTarget = undefined;\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\n }\n };\n Slider.prototype.checkTooltipPosition = function (args) {\n var tooltipClass = this.tooltipPositionCalculation(args.collidedPosition);\n if (this.tooltipCollidedPosition === undefined ||\n this.tooltipCollidedPosition !== args.collidedPosition || !args.element.classList.contains(tooltipClass)) {\n if (this.isMaterialTooltip) {\n if (tooltipClass !== undefined) {\n args.element.classList.remove(this.previousTooltipClass);\n args.element.classList.add(tooltipClass);\n this.previousTooltipClass = tooltipClass;\n }\n if (args.element.style.transform && args.element.classList.contains(classNames.materialTooltipOpen) &&\n args.element.firstElementChild.innerText.length <= 4) {\n args.element.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n }\n this.tooltipCollidedPosition = args.collidedPosition;\n }\n if (this.isMaterialTooltip && this.tooltipElement && this.tooltipElement.style.transform.indexOf('translate') !== -1) {\n this.setTooltipTransform();\n }\n };\n Slider.prototype.setTooltipTransform = function () {\n var transformProperties = this.getTooltipTransformProperties(this.previousTooltipClass);\n if (this.tooltipElement.firstElementChild.innerText.length > 4) {\n this.tooltipElement.style.transform = transformProperties.translate + \" scale(0.01)\";\n }\n else {\n this.tooltipElement.style.transform = transformProperties.translate + \" \" + transformProperties.rotate + \" scale(0.01)\";\n }\n };\n Slider.prototype.renderTooltip = function () {\n this.tooltipObj = new Tooltip({\n showTipPointer: this.isBootstrap || this.isMaterial || this.isBootstrap4 || this.isTailwind || this.isBootstrap5 || this.isFluent,\n cssClass: classNames.sliderTooltip,\n height: this.isMaterial ? 30 : 'auto',\n animation: { open: { effect: 'None' }, close: { effect: 'FadeOut', duration: 500 } },\n opensOn: 'Custom',\n beforeOpen: this.tooltipBeforeOpen.bind(this),\n beforeCollision: this.checkTooltipPosition.bind(this),\n beforeClose: this.tooltipBeforeClose.bind(this),\n enableHtmlSanitizer: this.enableHtmlSanitizer\n });\n this.tooltipObj.appendTo(this.firstHandle);\n this.initializeTooltipProps();\n };\n Slider.prototype.initializeTooltipProps = function () {\n var tooltipShowOn = (this.tooltip.showOn === 'Auto' ? 'Hover' : this.tooltip.showOn);\n this.setProperties({ tooltip: { showOn: tooltipShowOn } }, true);\n this.tooltipObj.position = this.tooltipPlacement();\n this.tooltipCollision(this.tooltipObj.position);\n [this.firstHandle, this.rangeBar, this.secondHandle].forEach(function (handle) {\n if (!isNullOrUndefined(handle)) {\n handle.style.transition = 'none';\n }\n });\n if (this.isMaterialTooltip) {\n this.sliderContainer.classList.add(classNames.materialSlider);\n this.tooltipValue();\n this.tooltipObj.animation.close.effect = 'None';\n // eslint-disable-next-line security/detect-non-literal-fs-filename -- Safe as no value holds user input\n this.tooltipObj.open(this.firstHandle);\n }\n };\n Slider.prototype.tooltipBeforeClose = function () {\n this.tooltipElement = undefined;\n this.tooltipCollidedPosition = undefined;\n };\n Slider.prototype.setButtons = function () {\n this.firstBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.firstButton });\n this.firstBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\n if (this.isTailwind) {\n this.firstBtn.querySelector('span').classList.add('e-icons');\n }\n this.firstBtn.tabIndex = -1;\n this.secondBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.secondButton });\n this.secondBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\n if (this.isTailwind) {\n this.secondBtn.querySelector('span').classList.add('e-icons');\n }\n this.secondBtn.tabIndex = -1;\n this.sliderContainer.classList.add(classNames.sliderButtonClass);\n this.sliderContainer.appendChild(this.firstBtn);\n this.sliderContainer.appendChild(this.secondBtn);\n this.sliderContainer.appendChild(this.element);\n this.buttonTitle();\n };\n Slider.prototype.buttonTitle = function () {\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n this.l10n.setLocale(this.locale);\n var decrementTitle = this.l10n.getConstant('decrementTitle');\n var incrementTitle = this.l10n.getConstant('incrementTitle');\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': decrementTitle, title: decrementTitle });\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': incrementTitle, title: incrementTitle });\n };\n Slider.prototype.buttonFocusOut = function () {\n if (this.isMaterial) {\n this.getHandle().classList.remove('e-large-thumb-size');\n }\n };\n Slider.prototype.repeatButton = function (args) {\n var hVal = this.handleValueUpdate();\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n var value;\n if (args.target.parentElement.classList.contains(classNames.firstButton)\n || args.target.classList.contains(classNames.firstButton)) {\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\n }\n else if (args.target.parentElement.classList.contains(classNames.secondButton)\n || (args.target.classList.contains(classNames.secondButton))) {\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\n }\n if (this.limits.enabled) {\n value = this.getLimitCorrectedValues(value);\n }\n if (value >= this.min && value <= this.max) {\n this.changeHandleValue(value);\n this.tooltipToggle(this.getHandle());\n }\n };\n Slider.prototype.repeatHandlerMouse = function (args) {\n args.preventDefault();\n if (args.type === ('mousedown') || args.type === ('touchstart')) {\n this.buttonClick(args);\n this.repeatInterval = setInterval(this.repeatButton.bind(this), 180, args);\n }\n };\n Slider.prototype.materialChange = function () {\n if (!this.getHandle().classList.contains('e-large-thumb-size')) {\n this.getHandle().classList.add('e-large-thumb-size');\n }\n };\n Slider.prototype.focusHandle = function () {\n if (!this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.getHandle().classList.add(classNames.sliderTabHandle);\n }\n };\n Slider.prototype.repeatHandlerUp = function (e) {\n this.changeEvent('changed', e);\n this.closeTooltip();\n clearInterval(this.repeatInterval);\n this.getHandle().focus();\n };\n Slider.prototype.customTickCounter = function (bigNum) {\n var tickCount = 4;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n if (bigNum > 4) {\n tickCount = 3;\n }\n if (bigNum > 7) {\n tickCount = 2;\n }\n if (bigNum > 14) {\n tickCount = 1;\n }\n if (bigNum > 28) {\n tickCount = 0;\n }\n }\n return tickCount;\n };\n // tslint:disable-next-line:max-func-body-length\n Slider.prototype.renderScale = function () {\n var liElementPosition = 0;\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\n var spanText;\n this.noOfDecimals = this.numberOfDecimals(this.step);\n this.ul = this.createElement('ul', {\n className: classNames.scale + ' ' + 'e-' + orien + '-scale ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\n });\n this.ul.style.zIndex = '-1';\n if (Browser.isAndroid && orien === 'h') {\n this.ul.classList.add(classNames.sliderTickPosition);\n }\n var smallStep = this.ticks.smallStep;\n if (!this.ticks.showSmallTicks) {\n this.ticks.largeStep > 0 ? (smallStep = this.ticks.largeStep) :\n (smallStep = (parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\n }\n else if (smallStep <= 0) {\n smallStep = parseFloat(formatUnit(this.step));\n }\n var min = this.fractionalToInteger(this.min);\n var max = this.fractionalToInteger(this.max);\n var steps = this.fractionalToInteger(smallStep);\n var bigNum = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 && this.customValues.length - 1;\n var customStep = this.customTickCounter(bigNum);\n var count = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n (bigNum * customStep) + bigNum : Math.abs((max - min) / steps);\n this.element.appendChild(this.ul);\n var li;\n var start = parseFloat(this.min.toString());\n if (orien === 'v') {\n start = parseFloat(this.max.toString());\n }\n var left = 0;\n var islargeTick;\n var tickWidth = 100 / count;\n if (tickWidth === Infinity) {\n tickWidth = 5;\n }\n for (var i = 0, y = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n this.customValues.length - 1 : 0, k = 0; i <= count; i++) {\n li = (this.createElement('li', {\n attrs: {\n class: classNames.tick, role: 'presentation', tabIndex: '-1',\n 'aria-hidden': 'true'\n }\n }));\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n islargeTick = i % (customStep + 1) === 0;\n if (islargeTick) {\n if (orien === 'h') {\n start = this.customValues[k];\n k++;\n }\n else {\n start = this.customValues[y];\n y--;\n }\n li.setAttribute('title', start.toString());\n }\n }\n else {\n li.setAttribute('title', start.toString());\n if (this.numberOfDecimals(this.max) === 0 && this.numberOfDecimals(this.min) === 0 &&\n this.numberOfDecimals(this.step) === 0) {\n if (orien === 'h') {\n islargeTick = ((start - parseFloat(this.min.toString())) % this.ticks.largeStep === 0) ? true : false;\n }\n else {\n islargeTick = (Math.abs(start - parseFloat(this.max.toString())) % this.ticks.largeStep === 0) ? true : false;\n }\n }\n else {\n var largestep = this.fractionalToInteger(this.ticks.largeStep);\n var startValue = this.fractionalToInteger(start);\n if (orien === 'h') {\n islargeTick = ((startValue - min) % largestep === 0) ? true : false;\n }\n else {\n islargeTick = (Math.abs(startValue - parseFloat(max.toString())) % largestep === 0) ? true : false;\n }\n }\n }\n if (islargeTick) {\n li.classList.add(classNames.large);\n }\n (orien === 'h') ? (li.style.width = tickWidth + '%') : (li.style.height = tickWidth + '%');\n var repeat = islargeTick ? (this.ticks.placement === 'Both' ? 2 : 1) : 0;\n if (islargeTick) {\n for (var j = 0; j < repeat; j++) {\n this.createTick(li, start, tickWidth);\n }\n }\n else if (isNullOrUndefined(this.customValues)) {\n this.formatTicksValue(li, start);\n }\n this.ul.appendChild(li);\n this.tickElementCollection.push(li);\n var decimalPoints = void 0;\n if (isNullOrUndefined(this.customValues)) {\n if (this.numberOfDecimals(smallStep) > this.numberOfDecimals(start)) {\n decimalPoints = this.numberOfDecimals(smallStep);\n }\n else {\n decimalPoints = this.numberOfDecimals(start);\n }\n if (orien === 'h') {\n start = this.makeRoundNumber(start + smallStep, decimalPoints);\n }\n else {\n start = this.makeRoundNumber(start - smallStep, decimalPoints);\n }\n left = this.makeRoundNumber(left + smallStep, decimalPoints);\n }\n }\n this.ticksAlignment(orien, tickWidth);\n };\n Slider.prototype.ticksAlignment = function (orien, tickWidth, triggerEvent) {\n if (triggerEvent === void 0) { triggerEvent = true; }\n this.firstChild = this.ul.firstElementChild;\n this.lastChild = this.ul.lastElementChild;\n this.firstChild.classList.add(classNames.sliderFirstTick);\n this.lastChild.classList.add(classNames.sliderLastTick);\n this.sliderContainer.classList.add(classNames.scale + '-' + this.ticks.placement.toLowerCase());\n if (orien === 'h') {\n this.firstChild.style.width = tickWidth / 2 + '%';\n this.lastChild.style.width = tickWidth / 2 + '%';\n }\n else {\n this.firstChild.style.height = tickWidth / 2 + '%';\n this.lastChild.style.height = tickWidth / 2 + '%';\n }\n var eventArgs = { ticksWrapper: this.ul, tickElements: this.tickElementCollection };\n if (triggerEvent) {\n this.trigger('renderedTicks', eventArgs);\n }\n this.scaleAlignment();\n };\n Slider.prototype.createTick = function (li, start, tickWidth) {\n var span = this.createElement('span', {\n className: classNames.tickValue + ' ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\n });\n li.appendChild(span);\n if (isNullOrUndefined(this.customValues)) {\n this.formatTicksValue(li, start, span, tickWidth);\n }\n else {\n if (this.enableHtmlSanitizer) {\n span.innerHTML = SanitizeHtmlHelper.sanitize(start.toString());\n }\n else {\n span.innerHTML = start.toString();\n }\n }\n };\n Slider.prototype.formatTicksValue = function (li, start, spanElement, tickWidth) {\n var _this = this;\n var tickText = this.formatNumber(start);\n var text = !isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format) ?\n this.formatString(start, this.ticksFormatInfo).formatString : tickText;\n var eventArgs = { value: start, text: text, tickElement: li };\n this.trigger('renderingTicks', eventArgs, function (observedArgs) {\n li.setAttribute('title', observedArgs.text.toString());\n if (spanElement) {\n if (_this.enableHtmlSanitizer) {\n spanElement.innerHTML = SanitizeHtmlHelper.sanitize(observedArgs.text.toString());\n }\n else {\n spanElement.innerHTML = observedArgs.text.toString();\n }\n }\n });\n };\n Slider.prototype.scaleAlignment = function () {\n this.tickValuePosition();\n var smallTick = 12;\n var largeTick = 20;\n var half = largeTick / 2;\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\n if (this.orientation === 'Vertical') {\n (this.element.getBoundingClientRect().width <= 15) ?\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\n }\n else {\n (this.element.getBoundingClientRect().height <= 15) ?\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\n }\n };\n Slider.prototype.tickValuePosition = function () {\n this.firstChild = this.element.querySelector('ul').children[0];\n var first = this.firstChild.getBoundingClientRect();\n var firstChild;\n var otherChild;\n var smallStep = this.ticks.smallStep;\n var count = Math.abs((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min)))) / smallStep;\n if (this.firstChild.children.length > 0) {\n firstChild = this.firstChild.children[0].getBoundingClientRect();\n }\n var tickElements = [this.sliderContainer.querySelectorAll('.' + classNames.tick + '.' +\n classNames.large + ' .' + classNames.tickValue)];\n var other;\n if (this.ticks.placement === 'Both') {\n other = [].slice.call(tickElements[0], 2);\n }\n else {\n other = [].slice.call(tickElements[0], 1);\n }\n var tickWidth = this.orientation === 'Vertical' ?\n (first.height * 2) : (first.width * 2);\n for (var i = 0; i < this.firstChild.children.length; i++) {\n if (this.orientation === 'Vertical') {\n this.firstChild.children[i].style.top = -(firstChild.height / 2) + 'px';\n }\n else {\n if (!this.enableRtl) {\n this.firstChild.children[i].style.left = -(firstChild.width / 2) + 'px';\n }\n else {\n this.firstChild.children[i].style.left = (tickWidth -\n this.firstChild.children[i].getBoundingClientRect().width) / 2 + 'px';\n }\n }\n }\n for (var i = 0; i < other.length; i++) {\n otherChild = other[i].getBoundingClientRect();\n if (this.orientation === 'Vertical') {\n setStyleAttribute(other[i], { top: (tickWidth - otherChild.height) / 2 + 'px' });\n }\n else {\n setStyleAttribute(other[i], { left: (tickWidth - otherChild.width) / 2 + 'px' });\n }\n }\n if (this.enableRtl && this.lastChild.children.length && count !== 0) {\n this.lastChild.children[0].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\n if (this.ticks.placement === 'Both') {\n this.lastChild.children[1].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\n }\n }\n if (count === 0) {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n this.firstChild.style.left = this.firstHandle.style.left;\n }\n else {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n this.firstChild.style.right = this.firstHandle.style.right;\n this.firstChild.children[0].style.left =\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\n if (this.ticks.placement === 'Both') {\n this.firstChild.children[1].style.left =\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\n }\n }\n }\n if (this.orientation === 'Vertical') {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n }\n }\n };\n Slider.prototype.setAriaAttrValue = function (element) {\n var ariaValueText;\n var isTickFormatted = ((!isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format))) ? true : false;\n var text = !isTickFormatted ?\n this.formatContent(this.ticksFormatInfo, false) : this.formatContent(this.tooltipFormatInfo, false);\n var valuenow = isTickFormatted ? this.formatContent(this.ticksFormatInfo, true) :\n this.formatContent(this.tooltipFormatInfo, true);\n text = (!this.customAriaText) ? (text) : (this.customAriaText);\n if (text.split(' - ').length === 2) {\n ariaValueText = text.split(' - ');\n }\n else {\n ariaValueText = [text, text];\n }\n this.setAriaAttributes(element);\n if (this.type !== 'Range') {\n attributes(element, { 'aria-valuenow': valuenow, 'aria-valuetext': text });\n }\n else {\n // eslint-disable-next-line\n (!this.enableRtl) ? ((element === this.firstHandle) ?\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }) :\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] })) :\n ((element === this.firstHandle) ?\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] }) :\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }));\n }\n };\n Slider.prototype.handleValueUpdate = function () {\n var hVal;\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n hVal = this.handleVal1;\n }\n else {\n hVal = this.handleVal2;\n }\n }\n else {\n hVal = this.handleVal1;\n }\n return hVal;\n };\n Slider.prototype.getLimitCorrectedValues = function (value) {\n if (this.type === 'MinRange' || this.type === 'Default') {\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\n }\n else {\n if (this.activeHandle === 1) {\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\n }\n else {\n value = (this.getLimitValueAndPosition(value, this.limits.maxStart, this.limits.maxEnd))[0];\n }\n }\n return value;\n };\n Slider.prototype.focusSliderElement = function () {\n if (!this.isElementFocused) {\n this.element.focus();\n this.isElementFocused = true;\n }\n };\n Slider.prototype.buttonClick = function (args) {\n this.focusSliderElement();\n var value;\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n var hVal = this.handleValueUpdate();\n if ((args.keyCode === 40) || (args.keyCode === 37)\n || args.currentTarget.classList.contains(classNames.firstButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\n }\n else if ((args.keyCode === 38) || (args.keyCode === 39) ||\n args.currentTarget.classList.contains(classNames.secondButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\n }\n else if ((args.keyCode === 33\n || args.currentTarget.classList.contains(classNames.firstButton))) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true));\n }\n else if ((args.keyCode === 34) ||\n args.currentTarget.classList.contains(classNames.secondButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false));\n }\n else if ((args.keyCode === 36)) {\n value = parseFloat(this.min.toString());\n }\n else if ((args.keyCode === 35)) {\n value = parseFloat(this.max.toString());\n }\n if (this.limits.enabled) {\n value = this.getLimitCorrectedValues(value);\n }\n this.changeHandleValue(value);\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.tooltipToggle(this.getHandle());\n this.getHandle().focus();\n this.focusHandle();\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\n EventHandler.add(this.firstBtn, 'mouseup touchend', this.buttonUp, this);\n }\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\n EventHandler.add(this.secondBtn, 'mouseup touchend', this.buttonUp, this);\n }\n };\n Slider.prototype.tooltipToggle = function (target) {\n if (this.isMaterialTooltip) {\n // eslint-disable-next-line\n !this.tooltipElement.classList.contains(classNames.materialTooltipOpen) ?\n this.openMaterialTooltip() : this.refreshTooltip(this.firstHandle);\n }\n else {\n // eslint-disable-next-line\n !this.tooltipElement ? this.openTooltip(target) : this.refreshTooltip(target);\n }\n };\n Slider.prototype.buttonUp = function (args) {\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\n EventHandler.remove(this.firstBtn, 'mouseup touchend', this.buttonUp);\n }\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\n EventHandler.remove(this.secondBtn, 'mouseup touchend', this.buttonUp);\n }\n };\n Slider.prototype.setRangeBar = function () {\n if (this.orientation === 'Horizontal') {\n if (this.type === 'MinRange') {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right =\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n else {\n if (this.type === 'MinRange') {\n this.rangeBar.style.bottom = '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else {\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n };\n Slider.prototype.checkValidValueAndPos = function (value) {\n value = this.checkHandleValue(value);\n value = this.checkHandlePosition(value);\n return value;\n };\n Slider.prototype.setLimitBarPositions = function (fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion) {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.limitBarFirst.style.left = fromMinPostion + 'px';\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\n }\n else {\n this.limitBarFirst.style.right = fromMinPostion + 'px';\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\n }\n }\n else {\n this.limitBarFirst.style.bottom = fromMinPostion + 'px';\n this.limitBarFirst.style.height = (fromMaxpostion - fromMinPostion) + 'px';\n }\n if (this.type === 'Range') {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.limitBarSecond.style.left = toMinPostion + 'px';\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\n }\n else {\n this.limitBarSecond.style.right = toMinPostion + 'px';\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\n }\n }\n else {\n this.limitBarSecond.style.bottom = toMinPostion + 'px';\n this.limitBarSecond.style.height = (toMaxpostion - toMinPostion) + 'px';\n }\n }\n };\n Slider.prototype.setLimitBar = function () {\n if (this.type === 'Default' || this.type === 'MinRange') {\n var fromPosition = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\n fromPosition = this.checkValidValueAndPos(fromPosition);\n var toPosition = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\n toPosition = this.checkValidValueAndPos(toPosition);\n this.setLimitBarPositions(fromPosition, toPosition);\n }\n else if (this.type === 'Range') {\n var fromMinPostion = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\n fromMinPostion = this.checkValidValueAndPos(fromMinPostion);\n var fromMaxpostion = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\n fromMaxpostion = this.checkValidValueAndPos(fromMaxpostion);\n var toMinPostion = (this.getLimitValueAndPosition(this.limits.maxStart, this.limits.maxStart, this.limits.maxEnd, true))[0];\n toMinPostion = this.checkValidValueAndPos(toMinPostion);\n var toMaxpostion = (this.getLimitValueAndPosition(this.limits.maxEnd, this.limits.maxStart, this.limits.maxEnd, true))[0];\n toMaxpostion = this.checkValidValueAndPos(toMaxpostion);\n this.setLimitBarPositions(fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion);\n }\n };\n Slider.prototype.getLimitValueAndPosition = function (currentValue, minValue, maxValue, limitBar) {\n if (isNullOrUndefined(minValue)) {\n minValue = this.min;\n if (isNullOrUndefined(currentValue) && limitBar) {\n currentValue = minValue;\n }\n }\n if (isNullOrUndefined(maxValue)) {\n maxValue = this.max;\n if (isNullOrUndefined(currentValue) && limitBar) {\n currentValue = maxValue;\n }\n }\n if (currentValue < minValue) {\n currentValue = minValue;\n }\n if (currentValue > maxValue) {\n currentValue = maxValue;\n }\n return [currentValue, this.checkHandlePosition(currentValue)];\n };\n Slider.prototype.setValue = function () {\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n this.min = 0;\n this.max = this.customValues.length - 1;\n this.setBarColor();\n }\n this.setAriaAttributes(this.firstHandle);\n this.handleVal1 = isNullOrUndefined(this.value) ? this.checkHandleValue(parseFloat(this.min.toString())) :\n this.checkHandleValue(parseFloat(this.value.toString()));\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.preHandlePos1 = this.handlePos1;\n // eslint-disable-next-line\n isNullOrUndefined(this.activeHandle) ? (this.type === 'Range' ? this.activeHandle = 2 : this.activeHandle = 1) :\n // eslint-disable-next-line no-self-assign\n this.activeHandle = this.activeHandle;\n if (this.type === 'Default' || this.type === 'MinRange') {\n if (this.limits.enabled) {\n var values = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = values[0];\n this.handlePos1 = values[1];\n this.preHandlePos1 = this.handlePos1;\n }\n this.setHandlePosition(null);\n this.handleStart();\n this.value = this.handleVal1;\n this.setAriaAttrValue(this.firstHandle);\n this.changeEvent('changed', null);\n }\n else {\n this.validateRangeValue();\n }\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n };\n Slider.prototype.rangeValueUpdate = function () {\n if (this.value === null || typeof (this.value) !== 'object') {\n this.value = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\n }\n };\n Slider.prototype.validateRangeValue = function () {\n this.rangeValueUpdate();\n this.setRangeValue();\n };\n Slider.prototype.modifyZindex = function () {\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n this.firstHandle.style.zIndex = (this.zIndex + 4) + '';\n this.secondHandle.style.zIndex = (this.zIndex + 3) + '';\n }\n else {\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\n }\n }\n else if (this.isMaterialTooltip && this.tooltipElement) {\n this.tooltipElement.style.zIndex = getZindexPartial(this.element) + '';\n }\n };\n Slider.prototype.setHandlePosition = function (event) {\n var _this = this;\n var handle;\n var pos = (this.activeHandle === 1) ? this.handlePos1 : this.handlePos2;\n if (this.isMaterialTooltip) {\n handle = [this.firstHandle, this.materialHandle];\n }\n else {\n handle = [this.getHandle()];\n }\n this.handleStart();\n handle.forEach(function (handle) {\n if (_this.orientation === 'Horizontal') {\n // eslint-disable-next-line\n _this.enableRtl ? (handle.style.right =\n pos + \"px\") : (handle.style.left = pos + \"px\");\n }\n else {\n handle.style.bottom = pos + \"px\";\n }\n });\n this.changeEvent('change', event);\n };\n Slider.prototype.getHandle = function () {\n return (this.activeHandle === 1) ? this.firstHandle : this.secondHandle;\n };\n Slider.prototype.setRangeValue = function () {\n this.updateRangeValue();\n this.activeHandle = 1;\n this.setHandlePosition(null);\n this.activeHandle = 2;\n this.setHandlePosition(null);\n this.activeHandle = 1;\n };\n Slider.prototype.changeEvent = function (eventName, e) {\n var previous = eventName === 'change' ? this.previousVal : this.previousChanged;\n if (this.type !== 'Range') {\n this.setProperties({ 'value': this.handleVal1 }, true);\n if (previous !== this.value && (!this.isMaterialTooltip || !this.initialTooltip)) {\n this.trigger(eventName, this.changeEventArgs(eventName, e));\n this.initialTooltip = true;\n this.setPreviousVal(eventName, this.value);\n }\n this.setAriaAttrValue(this.firstHandle);\n }\n else {\n var value = this.value = [this.handleVal1, this.handleVal2];\n this.setProperties({ 'value': value }, true);\n if (previous.length === this.value.length\n && this.value[0] !== previous[0] || this.value[1] !== previous[1]) {\n this.initialTooltip = false;\n this.trigger(eventName, this.changeEventArgs(eventName, e));\n this.initialTooltip = true;\n this.setPreviousVal(eventName, this.value);\n }\n this.setAriaAttrValue(this.getHandle());\n }\n this.hiddenInput.value = this.value.toString();\n };\n Slider.prototype.changeEventArgs = function (eventName, e) {\n var eventArgs;\n if (this.tooltip.isVisible && this.tooltipObj && this.initialTooltip) {\n this.tooltipValue();\n eventArgs = {\n value: this.value,\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\n action: eventName, text: this.tooltipObj.content, isInteracted: isNullOrUndefined(e) ? false : true\n };\n }\n else {\n eventArgs = {\n value: this.value,\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\n action: eventName, text: isNullOrUndefined(this.ticksFormatInfo.format) ? this.value.toString() :\n (this.type !== 'Range' ? this.formatString(this.value, this.ticksFormatInfo).formatString :\n (this.formatString(this.value[0], this.ticksFormatInfo).formatString + ' - ' +\n this.formatString(this.value[1], this.ticksFormatInfo).formatString)),\n isInteracted: isNullOrUndefined(e) ? false : true\n };\n }\n return eventArgs;\n };\n Slider.prototype.setPreviousVal = function (eventName, value) {\n if (eventName === 'change') {\n this.previousVal = value;\n }\n else {\n this.previousChanged = value;\n }\n };\n Slider.prototype.updateRangeValue = function () {\n var values = this.value.toString().split(',').map(Number);\n if ((this.enableRtl && this.orientation !== 'Vertical') || this.rtl) {\n this.value = [values[1], values[0]];\n }\n else {\n this.value = [values[0], values[1]];\n }\n if (this.enableRtl && this.orientation !== 'Vertical') {\n this.handleVal1 = this.checkHandleValue(this.value[1]);\n this.handleVal2 = this.checkHandleValue(this.value[0]);\n }\n else {\n this.handleVal1 = this.checkHandleValue(this.value[0]);\n this.handleVal2 = this.checkHandleValue(this.value[1]);\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n if (this.handlePos1 > this.handlePos2) {\n this.handlePos1 = this.handlePos2;\n this.handleVal1 = this.handleVal2;\n }\n this.preHandlePos1 = this.handlePos1;\n this.preHandlePos2 = this.handlePos2;\n if (this.limits.enabled) {\n this.activeHandle = 1;\n var values_1 = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = values_1[0];\n this.handlePos1 = values_1[1];\n this.preHandlePos1 = this.handlePos1;\n this.activeHandle = 2;\n values_1 = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\n this.handleVal2 = values_1[0];\n this.handlePos2 = values_1[1];\n this.preHandlePos2 = this.handlePos2;\n }\n };\n Slider.prototype.checkHandlePosition = function (value) {\n var pos;\n value = (100 *\n (value - (parseFloat(formatUnit(this.min))))) / ((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width * (value / 100);\n }\n else {\n pos = this.element.getBoundingClientRect().height * (value / 100);\n }\n if (((parseFloat(formatUnit(this.max))) === (parseFloat(formatUnit(this.min))))) {\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width;\n }\n else {\n pos = this.element.getBoundingClientRect().height;\n }\n }\n return pos;\n };\n Slider.prototype.checkHandleValue = function (value) {\n if (this.min > this.max) {\n this.min = this.max;\n }\n if (this.min === this.max) {\n return (parseFloat(formatUnit(this.max)));\n }\n var handle = this.tempStartEnd();\n if (value < handle.start) {\n value = handle.start;\n }\n else if (value > handle.end) {\n value = handle.end;\n }\n return value;\n };\n /**\n * It is used to reposition slider.\n * @returns void\n */\n Slider.prototype.reposition = function () {\n var _this = this;\n this.firstHandle.style.transition = 'none';\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n if (this.type === 'Range') {\n this.secondHandle.style.transition = 'none';\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n if (this.handleVal2) {\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n }\n if (this.orientation === 'Horizontal') {\n // eslint-disable-next-line\n this.enableRtl ? this.firstHandle.style.right =\n this.handlePos1 + \"px\" : this.firstHandle.style.left = this.handlePos1 + \"px\";\n if (this.isMaterialTooltip) {\n // eslint-disable-next-line\n this.enableRtl ? this.materialHandle.style.right =\n this.handlePos1 + \"px\" : this.materialHandle.style.left = this.handlePos1 + \"px\";\n }\n if (this.type === 'MinRange') {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else if (this.type === 'Range') {\n // eslint-disable-next-line\n this.enableRtl ? this.secondHandle.style.right =\n this.handlePos2 + \"px\" : this.secondHandle.style.left = this.handlePos2 + \"px\";\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right =\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n else {\n this.firstHandle.style.bottom = this.handlePos1 + \"px\";\n if (this.isMaterialTooltip) {\n this.materialHandle.style.bottom = this.handlePos1 + \"px\";\n }\n if (this.type === 'MinRange') {\n this.rangeBar.style.bottom = '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else if (this.type === 'Range') {\n this.secondHandle.style.bottom = this.handlePos2 + \"px\";\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n if (this.ticks.placement !== 'None' && this.ul) {\n this.removeElement(this.ul);\n this.ul = undefined;\n this.renderScale();\n }\n this.handleStart();\n if (!this.tooltip.isVisible) {\n setTimeout(function () {\n _this.firstHandle.style.transition = _this.scaleTransform;\n if (_this.type === 'Range') {\n _this.secondHandle.style.transition = _this.scaleTransform;\n }\n });\n }\n this.refreshTooltip(this.tooltipTarget);\n this.setBarColor();\n };\n Slider.prototype.changeHandleValue = function (value) {\n var position = null;\n if (this.activeHandle === 1) {\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n this.handleVal1 = this.checkHandleValue(value);\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n if (this.type === 'Range' && this.handlePos1 > this.handlePos2) {\n this.handlePos1 = this.handlePos2;\n this.handleVal1 = this.handleVal2;\n }\n if (this.handlePos1 !== this.preHandlePos1) {\n position = this.preHandlePos1 = this.handlePos1;\n }\n }\n this.modifyZindex();\n }\n else {\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n this.handleVal2 = this.checkHandleValue(value);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n if (this.type === 'Range' && this.handlePos2 < this.handlePos1) {\n this.handlePos2 = this.handlePos1;\n this.handleVal2 = this.handleVal1;\n }\n if (this.handlePos2 !== this.preHandlePos2) {\n position = this.preHandlePos2 = this.handlePos2;\n }\n }\n this.modifyZindex();\n }\n if (position !== null) {\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n this.setHandlePosition(null);\n }\n };\n // eslint-disable-next-line\n Slider.prototype.tempStartEnd = function () {\n if (this.min > this.max) {\n return {\n start: this.max,\n end: this.min\n };\n }\n else {\n return {\n start: this.min,\n end: this.max\n };\n }\n };\n // eslint-disable-next-line\n Slider.prototype.xyToPosition = function (position) {\n var pos;\n if (this.min === this.max) {\n return 100;\n }\n if (this.orientation === 'Horizontal') {\n var left = position.x - this.element.getBoundingClientRect().left;\n var num = this.element.offsetWidth / 100;\n this.val = (left / num);\n }\n else {\n var top_1 = position.y - this.element.getBoundingClientRect().top;\n var num = this.element.offsetHeight / 100;\n this.val = 100 - (top_1 / num);\n }\n var val = this.stepValueCalculation(this.val);\n if (val < 0) {\n val = 0;\n }\n else if (val > 100) {\n val = 100;\n }\n if (this.enableRtl && this.orientation !== 'Vertical') {\n val = 100 - val;\n }\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width * (val / 100);\n }\n else {\n pos = this.element.getBoundingClientRect().height * (val / 100);\n }\n return pos;\n };\n Slider.prototype.stepValueCalculation = function (value) {\n if (this.step === 0) {\n this.step = 1;\n }\n var percentStep = (parseFloat(formatUnit(this.step))) / ((parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min))) / 100);\n var remain = value % Math.abs(percentStep);\n if (remain !== 0) {\n if ((percentStep / 2) > remain) {\n value -= remain;\n }\n else {\n value += Math.abs(percentStep) - remain;\n }\n }\n return value;\n };\n Slider.prototype.add = function (a, b, addition) {\n var precision;\n var x = Math.pow(10, precision || 3);\n var val;\n if (addition) {\n val = (Math.round(a * x) + Math.round(b * x)) / x;\n }\n else {\n val = (Math.round(a * x) - Math.round(b * x)) / x;\n }\n return val;\n };\n Slider.prototype.positionToValue = function (pos) {\n var val;\n var diff = parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min));\n if (this.orientation === 'Horizontal') {\n val = (pos / this.element.getBoundingClientRect().width) * diff;\n }\n else {\n val = (pos / this.element.getBoundingClientRect().height) * diff;\n }\n var total = this.add(val, parseFloat(this.min.toString()), true);\n return (total);\n };\n Slider.prototype.sliderBarClick = function (evt) {\n evt.preventDefault();\n // eslint-disable-next-line\n var pos;\n if (evt.type === 'mousedown' || evt.type === 'mouseup' || evt.type === 'click') {\n pos = { x: evt.clientX, y: evt.clientY };\n }\n else if (evt.type === 'touchend' || evt.type === 'touchstart') {\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\n }\n var handlepos = this.xyToPosition(pos);\n var handleVal = this.positionToValue(handlepos);\n if (this.type === 'Range' && (this.handlePos2 - handlepos) < (handlepos - this.handlePos1)) {\n this.activeHandle = 2;\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\n this.handlePos2 = this.preHandlePos2 = handlepos;\n this.handleVal2 = handleVal;\n }\n this.modifyZindex();\n this.secondHandle.focus();\n }\n else {\n this.activeHandle = 1;\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n this.handlePos1 = this.preHandlePos1 = handlepos;\n this.handleVal1 = handleVal;\n }\n this.modifyZindex();\n this.firstHandle.focus();\n }\n if (this.isMaterialTooltip) {\n this.tooltipElement.classList.add(classNames.materialTooltipActive);\n }\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\n if (focusedElement && this.getHandle() !== focusedElement) {\n focusedElement.classList.remove(classNames.sliderTabHandle);\n }\n var handle = this.activeHandle === 1 ? this.firstHandle : this.secondHandle;\n if (evt.target === handle) {\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.sliderBarUp(evt);\n this.tooltipToggle(this.getHandle());\n return;\n }\n if (!this.checkRepeatedValue(handleVal)) {\n return;\n }\n var transition = this.isMaterial && this.tooltip.isVisible ?\n this.transitionOnMaterialTooltip : this.transition;\n this.getHandle().style.transition = transition.handle;\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = transition.rangeBar;\n }\n this.setHandlePosition(evt);\n if (this.isMaterialTooltip) {\n this.initialTooltip = false;\n }\n this.changeEvent('changed', evt);\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n };\n Slider.prototype.handleValueAdjust = function (handleValue, assignValue, handleNumber) {\n if (handleNumber === 1) {\n this.handleVal1 = assignValue;\n this.handleVal2 = this.handleVal1 + this.minDiff;\n }\n else if (handleNumber === 2) {\n this.handleVal2 = assignValue;\n this.handleVal1 = this.handleVal2 - this.minDiff;\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n };\n Slider.prototype.dragRangeBarMove = function (event) {\n var _a, _b;\n if (event.type !== 'touchmove') {\n event.preventDefault();\n }\n this.rangeBarDragged = true;\n var pos;\n this.rangeBar.style.transition = 'none';\n this.firstHandle.style.transition = 'none';\n this.secondHandle.style.transition = 'none';\n var xPostion;\n var yPostion;\n if (event.type === 'mousemove') {\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\n }\n else {\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\n }\n if (!(this.limits.enabled && this.limits.startHandleFixed) && !(this.limits.enabled && this.limits.endHandleFixed)) {\n if (!this.enableRtl) {\n pos = { x: xPostion - this.firstPartRemain, y: yPostion + this.secondPartRemain };\n }\n else {\n pos = { x: xPostion + this.secondPartRemain, y: yPostion + this.secondPartRemain };\n }\n this.handlePos1 = this.xyToPosition(pos);\n this.handleVal1 = this.positionToValue(this.handlePos1);\n if (!this.enableRtl) {\n pos = { x: xPostion + this.secondPartRemain, y: yPostion - this.firstPartRemain };\n }\n else {\n pos = { x: xPostion - this.firstPartRemain, y: yPostion - this.firstPartRemain };\n }\n this.handlePos2 = this.xyToPosition(pos);\n this.handleVal2 = this.positionToValue(this.handlePos2);\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = value[0];\n this.handlePos1 = value[1];\n if (this.handleVal1 === this.limits.minEnd) {\n this.handleValueAdjust(this.handleVal1, this.limits.minEnd, 1);\n }\n if (this.handleVal1 === this.limits.minStart) {\n this.handleValueAdjust(this.handleVal1, this.limits.minStart, 1);\n }\n value = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\n this.handleVal2 = value[0];\n this.handlePos2 = value[1];\n if (this.handleVal2 === this.limits.maxStart) {\n this.handleValueAdjust(this.handleVal2, this.limits.maxStart, 2);\n }\n if (this.handleVal2 === this.limits.maxEnd) {\n this.handleValueAdjust(this.handleVal2, this.limits.maxEnd, 2);\n }\n }\n if (this.handleVal2 === this.max) {\n this.handleValueAdjust(this.handleVal2, this.max, 2);\n }\n if (this.handleVal1 === this.min) {\n this.handleValueAdjust(this.handleVal1, this.min, 1);\n }\n }\n this.activeHandle = 1;\n this.setHandlePosition(event);\n this.activeHandle = 2;\n this.setHandlePosition(event);\n this.tooltipToggle(this.rangeBar);\n this.setRangeBar();\n };\n Slider.prototype.sliderBarUp = function (event) {\n this.changeEvent('changed', event);\n this.handleFocusOut();\n this.firstHandle.classList.remove(classNames.sliderActiveHandle);\n if (this.type === 'Range') {\n this.initialTooltip = false;\n this.secondHandle.classList.remove(classNames.sliderActiveHandle);\n }\n this.closeTooltip();\n if (this.isMaterial) {\n this.getHandle().classList.remove('e-large-thumb-size');\n if (this.isMaterialTooltip) {\n this.tooltipElement.classList.remove(classNames.materialTooltipActive);\n }\n }\n EventHandler.remove(document, 'mousemove touchmove', this.sliderBarMove);\n EventHandler.remove(document, 'mouseup touchend', this.sliderBarUp);\n };\n Slider.prototype.sliderBarMove = function (evt) {\n if (evt.type !== 'touchmove') {\n evt.preventDefault();\n }\n var pos;\n if (evt.type === 'mousemove') {\n pos = { x: evt.clientX, y: evt.clientY };\n }\n else {\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\n }\n var handlepos = this.xyToPosition(pos);\n var handleVal = this.positionToValue(handlepos);\n handlepos = Math.round(handlepos);\n if (this.type !== 'Range' && this.activeHandle === 1) {\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (this.limits.enabled) {\n var valueAndPostion = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handlepos = valueAndPostion[1];\n handleVal = valueAndPostion[0];\n }\n this.handlePos1 = handlepos;\n this.handleVal1 = handleVal;\n }\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n }\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (handlepos > this.handlePos2) {\n handlepos = this.handlePos2;\n handleVal = this.handleVal2;\n }\n if (handlepos !== this.preHandlePos1) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.handlePos1 = this.preHandlePos1 = handlepos;\n this.handleVal1 = handleVal;\n this.activeHandle = 1;\n }\n }\n }\n else if (this.activeHandle === 2) {\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n if (handlepos < this.handlePos1) {\n handlepos = this.handlePos1;\n handleVal = this.handleVal1;\n }\n if (handlepos !== this.preHandlePos2) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.handlePos2 = this.preHandlePos2 = handlepos;\n this.handleVal2 = handleVal;\n this.activeHandle = 2;\n }\n }\n }\n }\n if (!this.checkRepeatedValue(handleVal)) {\n return;\n }\n this.getHandle().style.transition = this.scaleTransform;\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n this.setHandlePosition(evt);\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.tooltipToggle(this.getHandle());\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n };\n Slider.prototype.dragRangeBarUp = function (event) {\n if (!this.rangeBarDragged) {\n this.focusSliderElement();\n this.sliderBarClick(event);\n }\n else {\n this.isDragComplete = true;\n }\n this.changeEvent('changed', event);\n this.closeTooltip();\n EventHandler.remove(document, 'mousemove touchmove', this.dragRangeBarMove);\n EventHandler.remove(document, 'mouseup touchend', this.dragRangeBarUp);\n this.rangeBarDragged = false;\n };\n Slider.prototype.checkRepeatedValue = function (currentValue) {\n if (this.type === 'Range') {\n var previousVal = this.enableRtl && this.orientation !== 'Vertical' ? (this.activeHandle === 1 ?\n this.previousVal[1] : this.previousVal[0]) :\n (this.activeHandle === 1 ? this.previousVal[0] : this.previousVal[1]);\n if (currentValue === previousVal) {\n return 0;\n }\n }\n else {\n if (currentValue === this.previousVal) {\n return 0;\n }\n }\n return 1;\n };\n Slider.prototype.refreshTooltip = function (target) {\n if (this.tooltip.isVisible && this.tooltipObj) {\n this.tooltipValue();\n if (target) {\n this.tooltipObj.refresh(target);\n this.tooltipTarget = target;\n }\n }\n };\n Slider.prototype.openTooltip = function (target) {\n if (this.tooltip.isVisible && this.tooltipObj && !this.isMaterialTooltip) {\n this.tooltipValue();\n // eslint-disable-next-line security/detect-non-literal-fs-filename -- Safe as no value holds user input\n this.tooltipObj.open(target);\n this.tooltipTarget = target;\n }\n };\n Slider.prototype.closeTooltip = function () {\n if (this.tooltip.isVisible && this.tooltipObj && this.tooltip.showOn !== 'Always' && !this.isMaterialTooltip) {\n this.tooltipValue();\n this.tooltipObj.close();\n this.tooltipTarget = undefined;\n }\n };\n Slider.prototype.keyDown = function (event) {\n switch (event.keyCode) {\n case 37:\n case 38:\n case 39:\n case 40:\n case 33:\n case 34:\n case 36:\n case 35:\n event.preventDefault();\n this.buttonClick(event);\n break;\n }\n };\n Slider.prototype.wireButtonEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\n EventHandler.add(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\n EventHandler.add(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\n EventHandler.add(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\n EventHandler.add(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\n EventHandler.add(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\n EventHandler.add(this.firstBtn, 'focusout', this.sliderFocusOut, this);\n EventHandler.add(this.secondBtn, 'focusout', this.sliderFocusOut, this);\n }\n else {\n EventHandler.remove(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut);\n EventHandler.remove(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut);\n EventHandler.remove(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse);\n EventHandler.remove(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\n EventHandler.remove(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse);\n EventHandler.remove(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\n EventHandler.remove(this.firstBtn, 'focusout', this.sliderFocusOut);\n EventHandler.remove(this.secondBtn, 'focusout', this.sliderFocusOut);\n }\n };\n Slider.prototype.rangeBarMousedown = function (event) {\n var _a, _b;\n event.preventDefault();\n this.focusSliderElement();\n if (this.type === 'Range' && this.drag && event.target === this.rangeBar) {\n var xPostion = void 0;\n var yPostion = void 0;\n if (event.type === 'mousedown') {\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\n }\n else if (event.type === 'touchstart') {\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\n }\n if (this.orientation === 'Horizontal') {\n this.firstPartRemain = xPostion - this.rangeBar.getBoundingClientRect().left;\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().right - xPostion;\n }\n else {\n this.firstPartRemain = yPostion - this.rangeBar.getBoundingClientRect().top;\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().bottom - yPostion;\n }\n this.minDiff = this.handleVal2 - this.handleVal1;\n this.tooltipToggle(this.rangeBar);\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\n if (focusedElement) {\n focusedElement.classList.remove(classNames.sliderTabHandle);\n }\n EventHandler.add(document, 'mousemove touchmove', this.dragRangeBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.dragRangeBarUp, this);\n }\n };\n Slider.prototype.elementClick = function (event) {\n if (this.isDragComplete) {\n this.isDragComplete = false;\n return;\n }\n event.preventDefault();\n this.focusSliderElement();\n this.sliderBarClick(event);\n this.focusHandle();\n };\n Slider.prototype.wireEvents = function () {\n this.onresize = this.reposition.bind(this);\n window.addEventListener('resize', this.onresize);\n if (this.enabled && !this.readonly) {\n EventHandler.add(this.element, 'click', this.elementClick, this);\n if (this.type === 'Range' && this.drag) {\n EventHandler.add(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown, this);\n }\n EventHandler.add(this.sliderContainer, 'keydown', this.keyDown, this);\n EventHandler.add(this.sliderContainer, 'keyup', this.keyUp, this);\n EventHandler.add(this.element, 'focusout', this.sliderFocusOut, this);\n EventHandler.add(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover, this);\n this.wireFirstHandleEvt(false);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(false);\n }\n if (this.showButtons) {\n this.wireButtonEvt(false);\n }\n this.wireMaterialTooltipEvent(false);\n if (this.isForm) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n }\n };\n Slider.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.elementClick);\n if (this.type === 'Range' && this.drag) {\n EventHandler.remove(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown);\n }\n EventHandler.remove(this.sliderContainer, 'keydown', this.keyDown);\n EventHandler.remove(this.sliderContainer, 'keyup', this.keyUp);\n EventHandler.remove(this.element, 'focusout', this.sliderFocusOut);\n EventHandler.remove(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover);\n this.wireFirstHandleEvt(true);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(true);\n }\n if (this.showButtons) {\n this.wireButtonEvt(true);\n }\n this.wireMaterialTooltipEvent(true);\n EventHandler.remove(this.element, 'reset', this.formResetHandler);\n };\n Slider.prototype.formResetHandler = function () {\n this.setProperties({ 'value': this.formResetValue }, true);\n this.setValue();\n };\n Slider.prototype.keyUp = function (event) {\n if (event.keyCode === 9 && event.target.classList.contains(classNames.sliderHandle)) {\n this.focusSliderElement();\n if (!event.target.classList.contains(classNames.sliderTabHandle)) {\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\n }\n event.target.classList.add(classNames.sliderTabHandle);\n var parentElement = event.target.parentElement;\n if (parentElement === this.element) {\n parentElement.querySelector('.' + classNames.sliderTrack).classList.add(classNames.sliderTabTrack);\n if (this.type === 'Range' || this.type === 'MinRange') {\n parentElement.querySelector('.' + classNames.rangeBar).classList.add(classNames.sliderTabRange);\n }\n }\n if (this.type === 'Range') {\n (event.target.previousSibling).classList.contains(classNames.sliderHandle) ?\n this.activeHandle = 2 : this.activeHandle = 1;\n }\n this.getHandle().focus();\n this.tooltipToggle(this.getHandle());\n }\n }\n this.closeTooltip();\n this.changeEvent('changed', event);\n };\n Slider.prototype.hover = function (event) {\n if (!isNullOrUndefined(event)) {\n if (event.type === 'mouseover' || event.type === 'touchmove' || event.type === 'mousemove' ||\n event.type === 'pointermove' || event.type === 'touchstart') {\n this.sliderContainer.classList.add(classNames.sliderHover);\n }\n else {\n this.sliderContainer.classList.remove(classNames.sliderHover);\n var curTarget = event.currentTarget;\n if (this.tooltip.isVisible && this.tooltip.showOn !== 'Always' && this.tooltipObj && this.isMaterialTooltip &&\n !curTarget.classList.contains(classNames.sliderHandleFocused) &&\n !curTarget.classList.contains(classNames.sliderTabHandle)) {\n this.closeMaterialTooltip();\n }\n }\n }\n };\n Slider.prototype.sliderFocusOut = function (event) {\n if (event.relatedTarget !== this.secondHandle && event.relatedTarget !== this.firstHandle &&\n event.relatedTarget !== this.element && event.relatedTarget !== this.firstBtn && event.relatedTarget !== this.secondBtn) {\n this.closeMaterialTooltip();\n this.closeTooltip();\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\n }\n if (this.element.querySelector('.' + classNames.sliderTabTrack)) {\n this.element.querySelector('.' + classNames.sliderTabTrack).classList.remove(classNames.sliderTabTrack);\n if ((this.type === 'Range' || this.type === 'MinRange') &&\n this.element.querySelector('.' + classNames.sliderTabRange)) {\n this.element.querySelector('.' + classNames.sliderTabRange).classList.remove(classNames.sliderTabRange);\n }\n }\n this.hiddenInput.focus();\n this.hiddenInput.blur();\n this.isElementFocused = false;\n }\n };\n Slider.prototype.removeElement = function (element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n };\n Slider.prototype.changeSliderType = function (type, args) {\n if (this.isMaterialTooltip && this.materialHandle) {\n this.sliderContainer.classList.remove(classNames.materialSlider);\n this.removeElement(this.materialHandle);\n this.materialHandle = undefined;\n }\n this.removeElement(this.firstHandle);\n this.firstHandle = undefined;\n if (type !== 'Default') {\n if (type === 'Range') {\n this.removeElement(this.secondHandle);\n this.secondHandle = undefined;\n }\n this.removeElement(this.rangeBar);\n this.rangeBar = undefined;\n }\n if (this.tooltip.isVisible && !isNullOrUndefined(this.tooltipObj)) {\n this.tooltipObj.destroy();\n this.tooltipElement = undefined;\n this.tooltipCollidedPosition = undefined;\n }\n if (this.limits.enabled) {\n if (type === 'MinRange' || type === 'Default') {\n if (!isNullOrUndefined(this.limitBarFirst)) {\n this.removeElement(this.limitBarFirst);\n this.limitBarFirst = undefined;\n }\n }\n else {\n if (!isNullOrUndefined(this.limitBarSecond)) {\n this.removeElement(this.limitBarSecond);\n this.limitBarSecond = undefined;\n }\n }\n }\n this.activeHandle = 1;\n this.getThemeInitialization();\n if (this.type === 'Range') {\n this.rangeValueUpdate();\n }\n this.createRangeBar();\n if (this.limits.enabled) {\n this.createLimitBar();\n }\n this.setHandler();\n this.setOrientClass();\n this.wireFirstHandleEvt(false);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(false);\n }\n this.setValue();\n if (this.tooltip.isVisible) {\n this.renderTooltip();\n this.wireMaterialTooltipEvent(false);\n }\n this.setBarColor();\n if (args !== 'tooltip') {\n this.updateConfig();\n }\n };\n Slider.prototype.changeRtl = function () {\n if (!this.enableRtl && this.type === 'Range') {\n this.value = [this.handleVal2, this.handleVal1];\n }\n this.updateConfig();\n if (this.tooltip.isVisible) {\n this.tooltipObj.refresh(this.firstHandle);\n }\n if (this.showButtons) {\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': 'Decrease', title: 'Decrease' });\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': 'Increase', title: 'Increase' });\n }\n };\n Slider.prototype.changeOrientation = function () {\n this.changeSliderType(this.type, 'null');\n };\n Slider.prototype.updateConfig = function () {\n this.setEnableRTL();\n this.setValue();\n if (this.tooltip.isVisible) {\n this.refreshTooltip(this.tooltipTarget);\n }\n if (this.ticks.placement !== 'None') {\n if (this.ul) {\n this.removeElement(this.ul);\n this.ul = undefined;\n this.renderScale();\n }\n }\n this.limitsPropertyChange();\n };\n Slider.prototype.limitsPropertyChange = function () {\n if (this.limits.enabled) {\n if (isNullOrUndefined(this.limitBarFirst) && this.type !== 'Range') {\n this.createLimitBar();\n }\n if (isNullOrUndefined(this.limitBarFirst) && isNullOrUndefined(this.limitBarSecond) && this.type === 'Range') {\n this.createLimitBar();\n }\n this.setLimitBar();\n this.setValue();\n }\n else {\n if (!isNullOrUndefined(this.limitBarFirst)) {\n detach(this.limitBarFirst);\n }\n if (!isNullOrUndefined(this.limitBarSecond)) {\n detach(this.limitBarSecond);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n * @private\n */\n Slider.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it removes the attributes and classes.\n * @method destroy\n * @return {void}\n */\n Slider.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.unwireEvents();\n window.removeEventListener('resize', this.onresize);\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n this.firstHandle.removeAttribute('aria-orientation');\n if (this.type === 'Range') {\n this.secondHandle.removeAttribute('aria-orientation');\n }\n this.sliderContainer.parentNode.insertBefore(this.element, this.sliderContainer);\n detach(this.sliderContainer);\n if (this.tooltip.isVisible) {\n this.tooltipObj.destroy();\n }\n this.element.innerHTML = '';\n };\n /**\n * Calls internally if any of the property value is changed.\n * @private\n */\n // tslint:disable-next-line\n Slider.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'value':\n if (newProp && oldProp) {\n var value = isNullOrUndefined(newProp.value) ?\n (this.type === 'Range' ? [this.min, this.max] : this.min) : newProp.value;\n this.setProperties({ 'value': value }, true);\n if (!isNullOrUndefined(oldProp.value) && oldProp.value.toString() !== value.toString()) {\n this.setValue();\n this.refreshTooltip(this.tooltipTarget);\n if (this.type === 'Range') {\n if (isNullOrUndefined(newProp.value) || oldProp.value[1] === value[1]) {\n this.activeHandle = 1;\n }\n else {\n this.activeHandle = 2;\n }\n }\n }\n }\n break;\n case 'min':\n case 'step':\n case 'max':\n this.setMinMaxValue();\n break;\n case 'tooltip':\n if (!isNullOrUndefined(newProp.tooltip) && !isNullOrUndefined(oldProp.tooltip)) {\n this.setTooltip(prop);\n }\n break;\n case 'type':\n if (!isNullOrUndefined(oldProp) && Object.keys(oldProp).length\n && !isNullOrUndefined(oldProp.type)) {\n this.changeSliderType(oldProp.type, prop);\n this.setZindex();\n }\n break;\n case 'enableRtl':\n if (oldProp.enableRtl !== newProp.enableRtl && this.orientation !== 'Vertical') {\n this.rtl = oldProp.enableRtl;\n this.changeRtl();\n }\n break;\n case 'limits':\n this.limitsPropertyChange();\n break;\n case 'orientation':\n this.changeOrientation();\n break;\n case 'ticks':\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\n detach(this.ul);\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\n if (className.match(/e-scale-/)) {\n _this.sliderContainer.classList.remove(className);\n }\n });\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n this.setZindex();\n }\n break;\n case 'locale':\n if (this.showButtons) {\n this.buttonTitle();\n }\n break;\n case 'showButtons':\n if (newProp.showButtons) {\n this.setButtons();\n this.reposition();\n if (this.enabled && !this.readonly) {\n this.wireButtonEvt(false);\n }\n }\n else {\n if (this.firstBtn && this.secondBtn) {\n this.sliderContainer.removeChild(this.firstBtn);\n this.sliderContainer.removeChild(this.secondBtn);\n this.sliderContainer.classList.remove(classNames.sliderButtonClass);\n this.firstBtn = undefined;\n this.secondBtn = undefined;\n this.reposition();\n }\n }\n break;\n case 'enabled':\n this.setEnabled();\n break;\n case 'readonly':\n this.setReadOnly();\n break;\n case 'customValues':\n this.setValue();\n this.reposition();\n break;\n case 'colorRange':\n this.reposition();\n break;\n case 'width':\n this.setElementWidth(newProp.width);\n this.setMinMaxValue();\n if (this.limits) {\n this.limitsPropertyChange();\n }\n break;\n }\n }\n };\n Slider.prototype.setReadOnly = function () {\n if (this.readonly) {\n this.unwireEvents();\n this.sliderContainer.classList.add(classNames.readonly);\n }\n else {\n this.wireEvents();\n this.sliderContainer.classList.remove(classNames.readonly);\n }\n };\n Slider.prototype.setMinMaxValue = function () {\n var _this = this;\n this.setValue();\n this.refreshTooltip(this.tooltipTarget);\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\n if (this.ul) {\n detach(this.ul);\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\n if (className.match(/e-scale-/)) {\n _this.sliderContainer.classList.remove(className);\n }\n });\n }\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n this.setZindex();\n }\n };\n Slider.prototype.setZindex = function () {\n this.zIndex = 6;\n if (!isNullOrUndefined(this.ticks) && this.ticks.placement !== 'None') {\n this.ul.style.zIndex = (this.zIndex + -7) + '';\n this.element.style.zIndex = (this.zIndex + 2) + '';\n }\n if (!this.isMaterial && !isNullOrUndefined(this.ticks) && this.ticks.placement === 'Both') {\n this.element.style.zIndex = (this.zIndex + 2) + '';\n }\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\n if (this.type === 'Range') {\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\n }\n };\n Slider.prototype.setTooltip = function (args) {\n this.changeSliderType(this.type, args);\n };\n Slider.prototype.setBarColor = function () {\n var trackPosition;\n var trackClassName;\n var child = this.sliderTrack.lastElementChild;\n while (child) {\n this.sliderTrack.removeChild(child);\n child = this.sliderTrack.lastElementChild;\n }\n for (var i = 0; i < this.colorRange.length; i++) {\n if (!isNullOrUndefined(this.colorRange[i].start) && !isNullOrUndefined(this.colorRange[i].end)) {\n if (this.colorRange[i].end > this.colorRange[i].start) {\n if (this.colorRange[i].start < this.min) {\n this.colorRange[i].start = this.min;\n }\n if (this.colorRange[i].end > this.max) {\n this.colorRange[i].end = this.max;\n }\n var startingPosition = this.checkHandlePosition(this.colorRange[i].start);\n var endPosition = this.checkHandlePosition(this.colorRange[i].end);\n var trackContainer = this.createElement('div');\n trackContainer.style.backgroundColor = this.colorRange[i].color;\n trackContainer.style.border = '1px solid ' + this.colorRange[i].color;\n if (this.orientation === 'Horizontal') {\n trackClassName = classNames.sliderHorizantalColor;\n if (this.enableRtl) {\n if (isNullOrUndefined(this.customValues)) {\n trackPosition = this.checkHandlePosition(this.max) - this.checkHandlePosition(this.colorRange[i].end);\n }\n else {\n trackPosition = this.checkHandlePosition(this.customValues.length - this.colorRange[i].end - 1);\n }\n }\n else {\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\n }\n trackContainer.style.width = endPosition - startingPosition + 'px';\n trackContainer.style.left = trackPosition + 'px';\n }\n else {\n trackClassName = classNames.sliderVerticalColor;\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\n trackContainer.style.height = endPosition - startingPosition + 'px';\n trackContainer.style.bottom = trackPosition + 'px';\n }\n trackContainer.classList.add(trackClassName);\n this.sliderTrack.appendChild(trackContainer);\n }\n }\n }\n };\n /**\n * Gets the component name\n * @private\n */\n Slider.prototype.getModuleName = function () {\n return 'slider';\n };\n __decorate([\n Property(null)\n ], Slider.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], Slider.prototype, \"customValues\", void 0);\n __decorate([\n Property(1)\n ], Slider.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], Slider.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], Slider.prototype, \"min\", void 0);\n __decorate([\n Property(100)\n ], Slider.prototype, \"max\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"readonly\", void 0);\n __decorate([\n Property('Default')\n ], Slider.prototype, \"type\", void 0);\n __decorate([\n Collection([{}], ColorRangeData)\n ], Slider.prototype, \"colorRange\", void 0);\n __decorate([\n Complex({}, TicksData)\n ], Slider.prototype, \"ticks\", void 0);\n __decorate([\n Complex({}, LimitData)\n ], Slider.prototype, \"limits\", void 0);\n __decorate([\n Property(true)\n ], Slider.prototype, \"enabled\", void 0);\n __decorate([\n Complex({}, TooltipData)\n ], Slider.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"showButtons\", void 0);\n __decorate([\n Property(true)\n ], Slider.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property('Horizontal')\n ], Slider.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Slider.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"changed\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"renderingTicks\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"renderedTicks\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"tooltipChange\", void 0);\n Slider = __decorate([\n NotifyPropertyChanges\n ], Slider);\n return Slider;\n}(Component));\nexport { Slider };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable prefer-spread */\nimport { Component, Event, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Browser, closest, detach, EventHandler, getInstance, select, selectAll, formatUnit } from '@syncfusion/ej2-base';\nimport { addClass, attributes, classList, isNullOrUndefined, L10n } from '@syncfusion/ej2-base';\nimport { remove, removeClass, rippleEffect } from '@syncfusion/ej2-base';\nimport { SplitButton, getModel } from '@syncfusion/ej2-splitbuttons';\nimport { Deferred } from '@syncfusion/ej2-splitbuttons';\nimport { Tooltip, getZindexPartial, Popup } from '@syncfusion/ej2-popups';\nimport { Input } from './../input/index';\nimport { NumericTextBox } from './../numerictextbox/index';\nimport { Slider } from './../slider/slider';\nvar APPLY = 'e-apply';\nvar CANCEL = 'e-cancel';\nvar CURRENT = 'e-current';\nvar CONTAINER = 'e-container';\nvar CTRLBTN = 'e-ctrl-btn';\nvar CTRLSWITCH = 'e-switch-ctrl-btn';\nvar DISABLED = 'e-disabled';\nvar FORMATSWITCH = 'e-value-switch-btn';\nvar HANDLER = 'e-handler';\nvar HEX = 'e-hex';\nvar HIDEHEX = 'e-hide-hex-value';\nvar HIDEOPACITY = 'e-hide-opacity';\nvar HIDERGBA = 'e-hide-switchable-value';\nvar HIDEVALUE = 'e-hide-value';\nvar HIDEVALUESWITCH = 'e-hide-valueswitcher';\nvar HSVAREA = 'e-hsv-color';\nvar HSVCONTAINER = 'e-hsv-container';\nvar INPUTWRAPPER = 'e-selected-value';\nvar MODESWITCH = 'e-mode-switch-btn';\nvar NOCOLOR = 'e-nocolor-item';\nvar OPACITY = 'e-opacity-value';\nvar PALETTES = 'e-palette';\nvar PALETTECONTENT = 'e-color-palette';\nvar PICKERCONTENT = 'e-color-picker';\nvar PREVIEW = 'e-preview-container';\nvar PREVIOUS = 'e-previous';\nvar RTL = 'e-rtl';\nvar SHOWVALUE = 'e-show-value';\nvar SELECT = 'e-selected';\nvar SPLITPREVIEW = 'e-split-preview';\nvar TILE = 'e-tile';\nvar presets = {\n default: ['#000000', '#f44336', '#e91e63', '#9c27b0', '#673ab7', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#ffeb3b',\n '#ffffff', '#ffebee', '#fce4ec', '#f3e5f5', '#ede7f6', '#e3f2fd', '#e1f5fe', '#e0f7fa', '#e0f2f1', '#fffde7',\n '#f2f2f2', '#ffcdd2', '#f8bbd0', '#e1bee7', '#d1c4e9', '#bbdefb', '#b3e5fc', '#b2ebf2', '#b2dfdb', '#fff9c4',\n '#e6e6e6', '#ef9a9a', '#f48fb1', '#ce93d8', '#b39ddb', '#90caf9', '#81d4fa', '#80deea', '#80cbc4', '#fff59d',\n '#cccccc', '#e57373', '#f06292', '#ba68c8', '#9575cd', '#64b5f6', '#4fc3f7', '#4dd0e1', '#4db6ac', '#fff176',\n '#b3b3b3', '#ef5350', '#ec407a', '#ab47bc', '#7e57c2', '#42a5f5', '#29b6f6', '#26c6da', '#26a69a', '#ffee58',\n '#999999', '#e53935', '#d81b60', '#8e24aa', '#5e35b1', '#1e88e5', '#039be5', '#00acc1', '#00897b', '#fdd835',\n '#808080', '#d32f2f', '#c2185b', '#7b1fa2', '#512da8', '#1976d2', '#0288d1', '#0097a7', '#00796b', '#fbc02d',\n '#666666', '#c62828', '#ad1457', '#6a1b9a', '#4527a0', '#1565c0', '#0277bd', '#00838f', '#00695c', '#f9a825',\n '#4d4d4d', '#b71c1c', '#880e4f', '#4a148c', '#311b92', '#0d47a1', '#01579b', '#006064', '#004d40', '#f57f17']\n};\n/**\n * ColorPicker component is a user interface to select and adjust color values. It provides supports for various\n * color specification like Red Green Blue, Hue Saturation Value and Hex codes.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar ColorPicker = /** @class */ (function (_super) {\n __extends(ColorPicker, _super);\n function ColorPicker(options, element) {\n return _super.call(this, options, element) || this;\n }\n ColorPicker.prototype.preRender = function () {\n var ele = this.element;\n this.formElement = closest(this.element, 'form');\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n var localeText = { Apply: 'Apply', Cancel: 'Cancel', ModeSwitcher: 'Switch Mode' };\n this.l10n = new L10n('colorpicker', localeText, this.locale);\n if (ele.getAttribute('ejs-for') && !ele.getAttribute('name')) {\n ele.setAttribute('name', ele.id);\n }\n };\n /**\n * To Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n ColorPicker.prototype.render = function () {\n this.initWrapper();\n if (this.inline) {\n this.createWidget();\n }\n else {\n this.createSplitBtn();\n }\n if (!this.enableOpacity) {\n addClass([this.container.parentElement], HIDEOPACITY);\n }\n this.renderComplete();\n };\n ColorPicker.prototype.initWrapper = function () {\n var wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(wrapper, this.element);\n wrapper.appendChild(this.element);\n attributes(this.element, { 'tabindex': '-1', 'spellcheck': 'false', 'aria-label': 'colorpicker' });\n this.container = this.createElement('div', { className: CONTAINER });\n this.getWrapper().appendChild(this.container);\n var value = this.value ? this.roundValue(this.value).toLowerCase() : '#008000ff';\n if (this.noColor && this.mode === 'Palette' && this.value === '') {\n value = '';\n }\n var slicedValue = value.slice(0, 7);\n if (isNullOrUndefined(this.initialInputValue)) {\n this.initialInputValue = slicedValue;\n }\n this.element.value = slicedValue;\n if (this.enableOpacity) {\n this.setProperties({ 'value': value }, true);\n }\n else {\n this.setProperties({ 'value': slicedValue }, true);\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.split(' '));\n }\n this.tileRipple = rippleEffect(this.container, { selector: '.' + TILE });\n this.ctrlBtnRipple = rippleEffect(this.container, { selector: '.e-btn' });\n };\n ColorPicker.prototype.getWrapper = function () {\n return this.element.parentElement;\n };\n ColorPicker.prototype.createWidget = function () {\n if (this.mode === 'Palette') {\n this.createPalette();\n if (!this.inline) {\n this.firstPaletteFocus();\n }\n }\n else {\n this.createPicker();\n if (!this.inline) {\n this.getDragHandler().focus();\n }\n }\n this.isRgb = true;\n this.createInput();\n this.createCtrlBtn();\n if (!this.disabled) {\n this.wireEvents();\n }\n if (this.inline && this.disabled) {\n this.toggleDisabled(true);\n }\n if (Browser.isDevice) {\n this.refreshPopupPos();\n }\n };\n ColorPicker.prototype.createSplitBtn = function () {\n var _this = this;\n var splitButton = this.createElement('button', { className: 'e-split-colorpicker' });\n this.getWrapper().appendChild(splitButton);\n this.splitBtn = new SplitButton({\n iconCss: 'e-selected-color',\n target: this.container,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n createPopupOnClick: this.createPopupOnClick,\n open: this.onOpen.bind(this),\n click: function () {\n _this.trigger('change', {\n currentValue: { hex: _this.value.slice(0, 7), rgba: _this.convertToRgbString(_this.hexToRgb(_this.value)) },\n previousValue: { hex: null, rgba: null }, value: _this.value\n });\n }\n });\n this.splitBtn.createElement = this.createElement;\n this.splitBtn.appendTo(splitButton);\n var preview = this.createElement('span', { className: SPLITPREVIEW });\n select('.e-selected-color', splitButton).appendChild(preview);\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(this.value));\n var popupEle = this.getPopupEle();\n addClass([popupEle], 'e-colorpicker-popup');\n if (this.cssClass) {\n addClass([popupEle], this.cssClass.split(' '));\n }\n if (Browser.isDevice) {\n var popupInst = this.getPopupInst();\n popupInst.relateTo = document.body;\n popupInst.position = { X: 'center', Y: 'center' };\n popupInst.targetType = 'container';\n popupInst.collision = { X: 'fit', Y: 'fit' };\n popupInst.offsetY = 4;\n popupEle.style.zIndex = getZindexPartial(this.splitBtn.element).toString();\n }\n this.bindCallBackEvent();\n };\n ColorPicker.prototype.onOpen = function () {\n this.trigger('open', { element: this.container });\n };\n ColorPicker.prototype.getPopupInst = function () {\n return getInstance(this.getPopupEle(), Popup);\n };\n ColorPicker.prototype.bindCallBackEvent = function () {\n var _this = this;\n this.splitBtn.beforeOpen = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observeOpenArgs) {\n if (!observeOpenArgs.cancel) {\n var popupEle = _this.getPopupEle();\n popupEle.style.top = formatUnit(0 + pageYOffset);\n popupEle.style.left = formatUnit(0 + pageXOffset);\n popupEle.style.display = 'block';\n _this.createWidget();\n popupEle.style.display = '';\n if (Browser.isDevice) {\n _this.modal = _this.createElement('div');\n _this.modal.className = 'e-' + _this.getModuleName() + ' e-modal';\n _this.modal.style.display = 'none';\n document.body.insertBefore(_this.modal, popupEle);\n document.body.className += ' e-colorpicker-overflow';\n _this.modal.style.display = 'block';\n _this.modal.style.zIndex = (Number(popupEle.style.zIndex) - 1).toString();\n }\n }\n args.cancel = observeOpenArgs.cancel;\n callBackPromise.resolve(observeOpenArgs);\n });\n return callBackPromise;\n };\n this.splitBtn.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n if (!isNullOrUndefined(args.event)) {\n var beforeCloseArgs = { element: _this.container, event: args.event, cancel: false };\n _this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n if (Browser.isDevice && args.event.target === _this.modal) {\n observedCloseArgs.cancel = true;\n }\n if (!observedCloseArgs.cancel) {\n _this.onPopupClose();\n }\n args.cancel = observedCloseArgs.cancel;\n callBackPromise.resolve(observedCloseArgs);\n });\n }\n else {\n callBackPromise.resolve(args);\n }\n return callBackPromise;\n };\n };\n ColorPicker.prototype.onPopupClose = function () {\n this.unWireEvents();\n this.destroyOtherComp();\n this.container.style.width = '';\n select('.' + SPLITPREVIEW, this.splitBtn.element).style.backgroundColor\n = this.convertToRgbString(this.hexToRgb(this.value));\n this.container.innerHTML = '';\n removeClass([this.container], [PICKERCONTENT, PALETTECONTENT]);\n if (Browser.isDevice && this.modal) {\n removeClass([document.body], 'e-colorpicker-overflow');\n this.modal.style.display = 'none';\n this.modal.outerHTML = '';\n this.modal = null;\n }\n };\n ColorPicker.prototype.createPalette = function () {\n classList(this.container, [PALETTECONTENT], [PICKERCONTENT]);\n if (this.presetColors) {\n var paletteGroup = this.createElement('div', { className: 'e-custom-palette' });\n this.appendElement(paletteGroup);\n var keys = Object.keys(this.presetColors);\n if (keys.length === 1) {\n this.appendPalette(this.presetColors[keys[0]], keys[0], paletteGroup);\n }\n else {\n for (var i = 0, len = keys.length; i < len; i++) {\n this.appendPalette(this.presetColors[keys[i]], keys[i], paletteGroup);\n }\n }\n if (selectAll('.e-row', paletteGroup).length > 10) {\n addClass([paletteGroup], 'e-palette-group');\n }\n }\n else {\n this.appendPalette(presets.default, 'default');\n }\n if (this.mode === 'Palette' && !this.modeSwitcher && this.noColor) {\n this.setNoColor();\n }\n var width = parseInt(getComputedStyle(this.container).borderBottomWidth, 10);\n this.container.style.width = formatUnit(this.container.children[0].offsetWidth + width + width);\n this.rgb = this.hexToRgb(this.roundValue(this.value));\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n };\n ColorPicker.prototype.firstPaletteFocus = function () {\n if (!select('.' + SELECT, this.container.children[0])) {\n selectAll('.' + PALETTES, this.container)[0].focus();\n }\n };\n ColorPicker.prototype.appendPalette = function (colors, key, refEle) {\n var palette = this.createElement('div', { className: PALETTES, attrs: { 'tabindex': '0', 'role': 'grid' } });\n if (refEle) {\n refEle.appendChild(palette);\n }\n else {\n this.appendElement(palette);\n }\n var row;\n var tile;\n var roundedColor;\n for (var i = 0, len = colors.length; i < len; i++) {\n if (i === 0 || i % this.columns === 0) {\n row = this.createElement('div', {\n className: 'e-row', attrs: { 'role': 'row' }\n });\n palette.appendChild(row);\n }\n roundedColor = this.roundValue(colors[i]).toLowerCase();\n tile = this.createElement('span', {\n className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false', 'tabindex': '0' }\n });\n this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });\n row.appendChild(tile);\n if (this.value === roundedColor) {\n this.addTileSelection(tile);\n palette.focus();\n }\n tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));\n }\n };\n ColorPicker.prototype.setNoColor = function () {\n var noColorEle = this.container.querySelector('.e-row').children[0];\n noColorEle.classList.add(NOCOLOR);\n if (!this.value) {\n noColorEle.classList.add(SELECT);\n closest(noColorEle, '.' + PALETTES).focus();\n }\n ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); });\n noColorEle.style.backgroundColor = '';\n };\n ColorPicker.prototype.appendElement = function (ele, insertPos) {\n if (insertPos === void 0) { insertPos = 0; }\n var refEle = this.container.children[insertPos];\n if (refEle) {\n this.container.insertBefore(ele, refEle);\n }\n else {\n this.container.appendChild(ele);\n }\n };\n ColorPicker.prototype.addTileSelection = function (ele) {\n ele.classList.add(SELECT);\n ele.setAttribute('aria-selected', 'true');\n };\n ColorPicker.prototype.createPicker = function () {\n classList(this.container, [PICKERCONTENT], [PALETTECONTENT]);\n var hsvContainer = this.createElement('div', { className: HSVCONTAINER });\n this.appendElement(hsvContainer);\n hsvContainer.appendChild(this.createElement('div', { className: HSVAREA }));\n var dragHandler = this.createElement('span', { className: HANDLER, attrs: { 'tabindex': '0' } });\n hsvContainer.appendChild(dragHandler);\n if (this.value === null) {\n this.value = '#008000ff';\n }\n this.rgb = this.hexToRgb(this.value);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n this.setHsvContainerBg();\n this.setHandlerPosition();\n this.createSlider();\n this.createDragTooltip();\n };\n ColorPicker.prototype.setHsvContainerBg = function (h) {\n if (h === void 0) { h = this.hsv[0]; }\n this.getHsvContainer().style.backgroundColor = this.convertToRgbString(this.hsvToRgb(h, 100, 100, 1));\n };\n ColorPicker.prototype.getHsvContainer = function () {\n return select('.' + HSVCONTAINER, this.container);\n };\n ColorPicker.prototype.setHandlerPosition = function () {\n var dragHandler = this.getDragHandler();\n var hsvArea = select('.' + HSVAREA, this.container);\n if (this.enableRtl) {\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * Math.abs(100 - this.hsv[1]) / 100);\n }\n else {\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * this.hsv[1] / 100);\n }\n dragHandler.style.top = formatUnit(hsvArea.offsetHeight * (100 - this.hsv[2]) / 100);\n };\n ColorPicker.prototype.createSlider = function () {\n var sliderPreviewWrapper = this.createElement('div', { className: 'e-slider-preview' });\n this.appendElement(sliderPreviewWrapper, 1);\n this.createPreview(sliderPreviewWrapper);\n var sliderWrapper = this.createElement('div', { className: 'e-colorpicker-slider' });\n sliderPreviewWrapper.insertBefore(sliderWrapper, sliderPreviewWrapper.children[0]);\n var slider = this.createElement('div', { className: 'e-hue-slider' });\n sliderWrapper.appendChild(slider);\n this.hueSlider = new Slider({\n value: this.hsv[0],\n min: 0,\n max: 359,\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n change: this.hueChange.bind(this)\n });\n this.hueSlider.createElement = this.createElement;\n this.hueSlider.appendTo(slider);\n if (this.enableOpacity) {\n slider = this.createElement('div', { className: 'e-opacity-slider' });\n sliderWrapper.appendChild(slider);\n this.createOpacitySlider(slider);\n }\n };\n ColorPicker.prototype.createOpacitySlider = function (slider) {\n this.opacitySlider = new Slider({\n value: this.rgb[3] * 100,\n min: 0,\n max: 100,\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n change: this.opacityChange.bind(this)\n });\n this.opacitySlider.createElement = this.createElement;\n this.opacitySlider.appendTo(slider);\n var opacityBgTrack = this.createElement('div', { className: 'e-opacity-empty-track' });\n slider.appendChild(opacityBgTrack);\n this.updateOpacitySliderBg();\n };\n ColorPicker.prototype.updateOpacitySliderBg = function () {\n var direction = this.enableRtl ? 'to left' : 'to right';\n var opacityEle = select('.e-opacity-empty-track', this.opacitySlider.element);\n if (opacityEle) {\n opacityEle.style.background =\n 'linear-gradient(' + direction + ', rgba(' + this.rgb.slice(0, 3) + ', 0) 0%, ' +\n this.convertToRgbString(this.rgb.slice(0, 3)) + ' 100%)';\n }\n };\n ColorPicker.prototype.hueChange = function (args) {\n this.hsv[0] = args.value;\n this.setHsvContainerBg();\n this.convertToOtherFormat();\n };\n ColorPicker.prototype.opacityChange = function (args) {\n var value = args.value;\n var pValue = this.rgbToHex(this.rgb);\n this.hsv[3] = value / 100;\n this.rgb[3] = value / 100;\n var cValue = this.rgbToHex(this.rgb);\n this.updateOpacityInput(value);\n var rgb = this.convertToRgbString(this.rgb);\n this.updatePreview(rgb);\n this.triggerEvent(cValue, pValue, rgb);\n };\n ColorPicker.prototype.updateOpacityInput = function (value) {\n if (this.enableOpacity && !this.getWrapper().classList.contains(HIDEVALUE)) {\n var opacityTextBoxInst = getInstance(select('.' + OPACITY, this.container), NumericTextBox);\n opacityTextBoxInst.value = value;\n opacityTextBoxInst.dataBind();\n }\n };\n ColorPicker.prototype.createPreview = function (parentEle) {\n var previewContainer = this.createElement('div', { className: PREVIEW });\n parentEle.appendChild(previewContainer);\n var preview = this.createElement('span', { className: 'e-preview ' + CURRENT });\n previewContainer.appendChild(preview);\n var colorValue = this.convertToRgbString(this.rgb);\n preview.style.backgroundColor = colorValue;\n preview = this.createElement('span', { className: 'e-preview ' + PREVIOUS });\n previewContainer.appendChild(preview);\n preview.style.backgroundColor = colorValue;\n };\n ColorPicker.prototype.isPicker = function () {\n return !this.container.classList.contains(PALETTECONTENT);\n };\n ColorPicker.prototype.getPopupEle = function () {\n return this.container.parentElement;\n };\n ColorPicker.prototype.createNumericInput = function (element, value, label, max) {\n var _this = this;\n var numericInput = new NumericTextBox({\n value: value,\n placeholder: label,\n min: 0,\n max: max,\n format: '###.##',\n showSpinButton: false,\n floatLabelType: 'Always',\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n readonly: this.isPicker() ? false : true,\n change: function (args) {\n if (args.event) {\n _this.inputHandler(args.event);\n }\n }\n });\n numericInput.createElement = this.createElement;\n numericInput.appendTo(element);\n };\n ColorPicker.prototype.createInput = function () {\n var isPicker = this.isPicker();\n var wrapper = this.getWrapper();\n if ((isPicker && !wrapper.classList.contains(HIDEVALUE)) || (!isPicker && wrapper.classList.contains(SHOWVALUE))) {\n var inputWrap = this.createElement('div', { className: INPUTWRAPPER });\n if (isPicker) {\n this.appendElement(inputWrap, 2);\n }\n else {\n this.appendElement(inputWrap, 1);\n }\n var container = this.createElement('div', { className: 'e-input-container' });\n inputWrap.appendChild(container);\n if (!wrapper.classList.contains(HIDEVALUESWITCH)) {\n this.appendValueSwitchBtn(inputWrap);\n }\n if (!wrapper.classList.contains(HIDEHEX)) {\n var hexInput = this.createElement('input', {\n className: HEX,\n attrs: { 'maxlength': '7', 'spellcheck': 'false', 'aria-label': 'HEX' }\n });\n container.appendChild(hexInput);\n Input.createInput({\n element: hexInput,\n floatLabelType: 'Always',\n properties: {\n placeholder: 'HEX',\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n readonly: this.isPicker() ? false : true\n }\n }, this.createElement);\n Input.setValue(this.value.slice(0, 7), hexInput);\n hexInput.addEventListener('input', this.inputHandler.bind(this));\n }\n if (!wrapper.classList.contains(HIDERGBA)) {\n var label = void 0;\n var value = void 0;\n if (this.isRgb) {\n label = 'RGB';\n value = this.rgb;\n }\n else {\n label = 'HSV';\n value = this.hsv;\n }\n var clsName = ['rh', 'gs', 'bv'];\n for (var i = 0; i < 3; i++) {\n this.createNumericInput(container.appendChild(this.createElement('input', { className: 'e-' + clsName[i] + '-value' })), value[i], label[i], 255);\n }\n if (this.enableOpacity) {\n this.appendOpacityValue(container);\n }\n }\n }\n };\n ColorPicker.prototype.appendOpacityValue = function (container) {\n this.createNumericInput(container.appendChild(this.createElement('input', { className: OPACITY })), this.rgb[3] * 100, 'A', 100);\n };\n ColorPicker.prototype.appendValueSwitchBtn = function (targetEle) {\n var valueSwitchBtn = this.createElement('button', {\n className: 'e-icons e-css e-btn e-flat e-icon-btn ' + FORMATSWITCH,\n attrs: { 'title': 'Toggle format' }\n });\n targetEle.appendChild(valueSwitchBtn);\n if (this.isPicker() && !this.getWrapper().classList.contains(HIDERGBA)) {\n valueSwitchBtn.addEventListener('click', this.formatSwitchHandler.bind(this));\n }\n };\n ColorPicker.prototype.createCtrlBtn = function () {\n if (this.modeSwitcher || this.showButtons) {\n this.l10n.setLocale(this.locale);\n var btnWrapper = this.createElement('div', { className: CTRLSWITCH });\n this.container.appendChild(btnWrapper);\n if (this.showButtons) {\n var controlBtnWrapper = this.createElement('div', { className: CTRLBTN });\n btnWrapper.appendChild(controlBtnWrapper);\n var apply = this.l10n.getConstant('Apply');\n controlBtnWrapper.appendChild(this.createElement('button', {\n innerHTML: apply,\n className: 'e-btn e-css e-flat e-primary e-small ' + APPLY,\n attrs: { 'title': apply }\n }));\n var cancel = this.l10n.getConstant('Cancel');\n controlBtnWrapper.appendChild(this.createElement('button', {\n innerHTML: cancel,\n className: 'e-btn e-css e-flat e-small ' + CANCEL,\n attrs: { 'title': cancel }\n }));\n }\n if (this.modeSwitcher) {\n this.appendModeSwitchBtn();\n }\n }\n };\n ColorPicker.prototype.appendModeSwitchBtn = function () {\n var modeSwitcher = this.createElement('button', {\n className: 'e-icons e-btn e-flat e-icon-btn ' + MODESWITCH, attrs: { title: this.l10n.getConstant('ModeSwitcher') }\n });\n select('.' + CTRLSWITCH, this.container).insertBefore(modeSwitcher, select('.' + CTRLBTN, this.container));\n };\n ColorPicker.prototype.createDragTooltip = function () {\n var _this = this;\n var tooltip = new Tooltip({\n opensOn: 'Custom',\n showTipPointer: false,\n cssClass: 'e-color-picker-tooltip',\n beforeOpen: function (args) {\n _this.tooltipEle = args.element;\n },\n animation: { open: { effect: 'None' }, close: { effect: 'None' } }\n });\n tooltip.createElement = this.createElement;\n tooltip.appendTo(this.container);\n // eslint-disable-next-line\n tooltip.open(this.container);\n this.tooltipEle.style.zIndex = getZindexPartial(this.tooltipEle).toString();\n select('.e-tip-content', this.tooltipEle).appendChild(this.createElement('div', { className: 'e-tip-transparent' }));\n };\n ColorPicker.prototype.getTooltipInst = function () {\n return getInstance(this.container, Tooltip);\n };\n ColorPicker.prototype.setTooltipOffset = function (value) {\n this.getTooltipInst().offsetY = value;\n };\n ColorPicker.prototype.toggleDisabled = function (enable) {\n if (enable) {\n this.getWrapper().classList.add(DISABLED);\n }\n else {\n this.getWrapper().classList.remove(DISABLED);\n }\n if (this.showButtons) {\n ([].slice.call(selectAll('.e-btn', this.container))).forEach(function (ele) {\n if (enable) {\n attributes(ele, { 'disabled': '' });\n }\n else {\n ele.removeAttribute('disabled');\n }\n });\n }\n };\n ColorPicker.prototype.convertToRgbString = function (rgb) {\n return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';\n };\n ColorPicker.prototype.convertToHsvString = function (hsv) {\n return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';\n };\n ColorPicker.prototype.updateHsv = function () {\n this.hsv[1] = this.hsv[1] > 100 ? 100 : this.hsv[1];\n this.hsv[2] = this.hsv[2] > 100 ? 100 : this.hsv[2];\n this.setHandlerPosition();\n };\n ColorPicker.prototype.convertToOtherFormat = function (isKey) {\n if (isKey === void 0) { isKey = false; }\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hsvToRgb.apply(this, this.hsv);\n var cValue = this.rgbToHex(this.rgb);\n var rgba = this.convertToRgbString(this.rgb);\n this.updatePreview(rgba);\n this.updateInput(cValue);\n this.triggerEvent(cValue, pValue, rgba, isKey);\n };\n ColorPicker.prototype.updateInput = function (value) {\n var wrapper = this.getWrapper();\n if (!wrapper.classList.contains(HIDEVALUE)) {\n if (!wrapper.classList.contains(HIDEHEX)) {\n Input.setValue(value.substr(0, 7), select('.' + HEX, this.container));\n }\n if (!wrapper.classList.contains(HIDERGBA)) {\n if (this.isRgb) {\n this.updateValue(this.rgb, false);\n }\n else {\n this.updateValue(this.hsv, false);\n }\n }\n }\n };\n ColorPicker.prototype.updatePreview = function (value) {\n if (this.enableOpacity) {\n this.updateOpacitySliderBg();\n }\n select('.e-tip-transparent', this.tooltipEle).style.backgroundColor = value;\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = value;\n select('.' + PREVIEW + ' .' + PREVIOUS, this.container).style.backgroundColor\n = this.convertToRgbString(this.hexToRgb(this.value));\n };\n ColorPicker.prototype.getDragHandler = function () {\n return select('.' + HANDLER, this.container);\n };\n ColorPicker.prototype.removeTileSelection = function () {\n var selectedEle = [].slice.call(selectAll('.' + SELECT, this.container.children[0]));\n selectedEle.forEach(function (ele) {\n ele.classList.remove(SELECT);\n ele.setAttribute('aria-selected', 'false');\n });\n };\n ColorPicker.prototype.convertRgbToNumberArray = function (value) {\n return (value.slice(value.indexOf('(') + 1, value.indexOf(')'))).split(',').map(function (n, i) {\n return (i !== 3) ? parseInt(n, 10) : parseFloat(n);\n });\n };\n /**\n * To get color value in specified type.\n *\n * @param {string} value - Specify the color value.\n * @param {string} type - Specify the type to which the specified color needs to be converted.\n * @method getValue\n * @returns {string} - Color value\n */\n ColorPicker.prototype.getValue = function (value, type) {\n if (!value) {\n value = this.value;\n }\n type = !type ? 'hex' : type.toLowerCase();\n if (value[0] === 'r') {\n var cValue = this.convertRgbToNumberArray(value);\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue.slice(0, 3)));\n }\n else {\n if (type === 'hsva') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n if (value[0] === 'h') {\n var cValue = this.hsvToRgb.apply(this, this.convertRgbToNumberArray(value));\n if (type === 'rgba') {\n return this.convertToRgbString(cValue);\n }\n else {\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'rgb') {\n return this.convertToRgbString(cValue.slice(0, 3));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n value = this.roundValue(value);\n var rgb = this.hexToRgb(value);\n if (type === 'rgb' || type === 'hsv') {\n rgb = rgb.slice(0, 3);\n }\n if (type === 'rgba' || type === 'rgb') {\n return this.convertToRgbString(rgb);\n }\n else {\n if (type === 'hsva' || type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, rgb));\n }\n else {\n if (type === 'hex') {\n return value.slice(0, 7);\n }\n else {\n if (type === 'a') {\n return rgb[3].toString();\n }\n else {\n return 'null';\n }\n }\n }\n }\n }\n }\n };\n /**\n * To show/hide ColorPicker popup based on current state of the SplitButton.\n *\n * @method toggle\n * @returns {void}\n */\n ColorPicker.prototype.toggle = function () {\n if (this.container.parentElement.classList.contains('e-popup-close')) {\n this.splitBtn.toggle();\n }\n else {\n this.closePopup(null);\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ColorPicker.prototype.getModuleName = function () {\n return 'colorpicker';\n };\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n ColorPicker.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n ColorPicker.prototype.wireEvents = function () {\n if (this.isPicker()) {\n var dragHandler = this.getDragHandler();\n EventHandler.add(dragHandler, 'keydown', this.pickerKeyDown, this);\n EventHandler.add(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown, this);\n if (this.modeSwitcher || this.showButtons) {\n this.addCtrlSwitchEvent();\n }\n EventHandler.add(select('.' + PREVIOUS, this.container), 'click', this.previewHandler, this);\n }\n else {\n EventHandler.add(this.container, 'click', this.paletteClickHandler, this);\n EventHandler.add(this.container, 'keydown', this.paletteKeyDown, this);\n }\n };\n ColorPicker.prototype.formResetHandler = function () {\n this.value = this.initialInputValue;\n attributes(this.element, { 'value': this.initialInputValue });\n };\n ColorPicker.prototype.addCtrlSwitchEvent = function () {\n var ctrlSwitchBtn = select('.' + CTRLSWITCH, this.container);\n if (ctrlSwitchBtn) {\n EventHandler.add(ctrlSwitchBtn, 'click', this.btnClickHandler, this);\n }\n };\n ColorPicker.prototype.pickerKeyDown = function (e) {\n switch (e.keyCode) {\n case 39:\n this.handlerDragPosition(1, this.enableRtl ? -1 : 1, e);\n break;\n case 37:\n this.handlerDragPosition(1, this.enableRtl ? 1 : -1, e);\n break;\n case 38:\n this.handlerDragPosition(2, 1, e);\n break;\n case 40:\n this.handlerDragPosition(2, -1, e);\n break;\n case 13: {\n e.preventDefault();\n var cValue = this.rgbToHex(this.rgb);\n this.enterKeyHandler(cValue, e);\n }\n }\n };\n ColorPicker.prototype.enterKeyHandler = function (value, e) {\n this.triggerChangeEvent(value);\n if (!this.inline) {\n this.closePopup(e);\n this.splitBtn.element.focus();\n }\n };\n ColorPicker.prototype.closePopup = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.container, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedcloseArgs) {\n if (!observedcloseArgs.cancel) {\n _this.splitBtn.toggle();\n _this.onPopupClose();\n }\n });\n };\n ColorPicker.prototype.triggerChangeEvent = function (value) {\n var hex = value.slice(0, 7);\n this.trigger('change', {\n currentValue: { hex: hex, rgba: this.convertToRgbString(this.rgb) },\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) },\n value: this.enableOpacity ? value : hex\n });\n if (this.enableOpacity) {\n this.setProperties({ 'value': value }, true);\n }\n else {\n this.setProperties({ 'value': hex }, true);\n }\n this.element.value = hex ? hex : '#000000';\n };\n ColorPicker.prototype.handlerDragPosition = function (prob, value, e) {\n e.preventDefault();\n this.hsv[prob] += value * (e.ctrlKey ? 1 : 3);\n if (this.hsv[prob] < 0) {\n this.hsv[prob] = 0;\n }\n this.updateHsv();\n this.convertToOtherFormat(true);\n };\n ColorPicker.prototype.handlerDown = function (e) {\n e.preventDefault();\n if (e.type === 'mousedown') {\n this.clientX = Math.abs(e.pageX - pageXOffset);\n this.clientY = Math.abs(e.pageY - pageYOffset);\n this.setTooltipOffset(8);\n }\n else {\n this.clientX = Math.abs(e.changedTouches[0].pageX - pageXOffset);\n this.clientY = Math.abs(e.changedTouches[0].pageY - pageYOffset);\n this.setTooltipOffset(-8);\n }\n this.setHsv(this.clientX, this.clientY);\n this.getDragHandler().style.transition = 'left .4s cubic-bezier(.25, .8, .25, 1), top .4s cubic-bezier(.25, .8, .25, 1)';\n this.updateHsv();\n this.convertToOtherFormat();\n this.getDragHandler().focus();\n EventHandler.add(document, 'mousemove touchmove', this.handlerMove, this);\n EventHandler.add(document, 'mouseup touchend', this.handlerEnd, this);\n };\n ColorPicker.prototype.handlerMove = function (e) {\n if (e.type !== 'touchmove') {\n e.preventDefault();\n }\n var x;\n var y;\n if (e.type === 'mousemove') {\n x = Math.abs(e.pageX - pageXOffset);\n y = Math.abs(e.pageY - pageYOffset);\n }\n else {\n x = Math.abs(e.changedTouches[0].pageX - pageXOffset);\n y = Math.abs(e.changedTouches[0].pageY - pageYOffset);\n }\n this.setHsv(x, y);\n var dragHandler = this.getDragHandler();\n this.updateHsv();\n this.convertToOtherFormat();\n this.getTooltipInst().refresh(dragHandler);\n if (!this.tooltipEle.style.transform) {\n if (Math.abs(this.clientX - x) > 8 || Math.abs(this.clientY - y) > 8) {\n select('.' + HSVAREA, this.container).style.cursor = 'pointer';\n dragHandler.style.transition = 'none';\n if (!this.inline) {\n this.tooltipEle.style.zIndex = (parseInt(this.getPopupEle().style.zIndex, 10) + 1).toString();\n }\n this.tooltipEle.style.transform = 'rotate(45deg)';\n dragHandler.classList.add('e-hide-handler');\n }\n }\n };\n ColorPicker.prototype.setHsv = function (clientX, clientY) {\n var ele = select('.' + HSVAREA, this.container);\n var position = ele.getBoundingClientRect();\n if (this.enableRtl) {\n clientX = clientX > position.right ? 0 : Math.abs(clientX - position.right);\n }\n else {\n clientX = clientX > position.left ? Math.abs(clientX - position.left) : 0;\n }\n clientY = clientY > position.top ? Math.abs(clientY - position.top) : 0;\n this.hsv[2] = Math.round(Number(100 * (ele.offsetHeight -\n Math.max(0, Math.min(ele.offsetHeight, (clientY - ele.offsetTop)))) / ele.offsetHeight) * 10) / 10;\n this.hsv[1] =\n Math.round(Number(100 * (Math.max(0, Math.min(ele.offsetWidth, (clientX - ele.offsetLeft)))) / ele.offsetWidth) * 10) / 10;\n };\n ColorPicker.prototype.handlerEnd = function (e) {\n if (e.type !== 'touchend') {\n e.preventDefault();\n }\n EventHandler.remove(document, 'mousemove touchmove', this.handlerMove);\n EventHandler.remove(document, 'mouseup touchend', this.handlerEnd);\n var dragHandler = this.getDragHandler();\n select('.' + HSVAREA, this.container).style.cursor = '';\n if (this.tooltipEle.style.transform) {\n this.tooltipEle.style.transform = '';\n dragHandler.classList.remove('e-hide-handler');\n }\n if (!this.inline && !this.showButtons) {\n this.closePopup(e);\n }\n };\n ColorPicker.prototype.btnClickHandler = function (e) {\n var target = e.target;\n if (closest(target, '.' + MODESWITCH)) {\n e.stopPropagation();\n this.switchToPalette();\n }\n else {\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\n this.ctrlBtnClick(target, e);\n }\n }\n };\n ColorPicker.prototype.switchToPalette = function () {\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Palette' });\n this.unWireEvents();\n this.destroyOtherComp();\n detach(select('.e-slider-preview', this.container));\n if (!this.getWrapper().classList.contains(HIDEVALUE)) {\n remove(select('.' + INPUTWRAPPER, this.container));\n }\n detach(this.getHsvContainer());\n this.createPalette();\n this.firstPaletteFocus();\n this.createInput();\n this.refreshPopupPos();\n this.wireEvents();\n this.trigger('onModeSwitch', { element: this.container, mode: 'Palette' });\n };\n ColorPicker.prototype.refreshPopupPos = function () {\n if (!this.inline) {\n var popupEle = this.getPopupEle();\n popupEle.style.left = formatUnit(0 + pageXOffset);\n popupEle.style.top = formatUnit(0 + pageYOffset);\n this.getPopupInst().refreshPosition(this.splitBtn.element.parentElement);\n }\n };\n ColorPicker.prototype.formatSwitchHandler = function () {\n if (this.isRgb) {\n this.updateValue(this.hsv, true, 3, [360, 100, 100]);\n this.isRgb = false;\n }\n else {\n this.updateValue(this.rgb, true, 2);\n this.isRgb = true;\n }\n };\n ColorPicker.prototype.updateValue = function (value, format, idx, max) {\n var clsName = ['e-rh-value', 'e-gs-value', 'e-bv-value'];\n var inst;\n for (var i = 0, len = clsName.length; i < len; i++) {\n inst = getInstance(select('.' + clsName[i], this.container), NumericTextBox);\n inst.value = Math.round(value[i]);\n if (format) {\n inst.placeholder = clsName[i].substr(idx, 1).toUpperCase();\n inst.max = max ? max[i] : 255;\n }\n inst.dataBind();\n }\n };\n ColorPicker.prototype.previewHandler = function (e) {\n var target = e.target;\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.convertRgbToNumberArray(target.style.backgroundColor);\n if (!this.rgb[3]) {\n this.rgb[3] = 1;\n }\n var cValue = this.rgbToHex(this.rgb);\n var hsv = this.rgbToHsv.apply(this, this.rgb);\n if (hsv[0] !== this.hsv[0]) {\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\n this.hueSlider.refresh();\n }\n this.setHsvContainerBg(hsv[0]);\n if (this.enableOpacity && hsv[3] !== this.hsv[3]) {\n this.opacitySlider.setProperties({ 'value': hsv[3] * 100 }, true);\n this.opacitySlider.refresh();\n this.updateOpacitySliderBg();\n }\n this.hsv = hsv;\n this.setHandlerPosition();\n this.updateInput(cValue);\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = this.convertToRgbString(this.rgb);\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\n };\n ColorPicker.prototype.paletteClickHandler = function (e) {\n e.preventDefault();\n var target = e.target;\n if (target.classList.contains(TILE)) {\n this.removeTileSelection();\n this.addTileSelection(target);\n if (target.classList.contains(NOCOLOR)) {\n this.noColorTile();\n }\n else {\n var cValue = target.getAttribute('aria-label');\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(this.roundValue(cValue));\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\n this.updateInput(cValue);\n }\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\n }\n if (!this.inline && !this.showButtons) {\n this.closePopup(e);\n }\n }\n else {\n if (closest(target, '.' + MODESWITCH)) {\n this.switchToPicker();\n }\n else {\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\n this.ctrlBtnClick(target, e);\n }\n else {\n if (this.getWrapper().classList.contains(SHOWVALUE) && closest(target, '.' + FORMATSWITCH)) {\n this.formatSwitchHandler();\n }\n }\n }\n }\n };\n ColorPicker.prototype.noColorTile = function (isKey) {\n if (isKey === void 0) { isKey = false; }\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = [];\n this.hsv = [];\n this.triggerEvent('', pValue, '', isKey);\n };\n ColorPicker.prototype.switchToPicker = function () {\n var wrapper = this.getWrapper();\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Picker' });\n this.unWireEvents();\n ([].slice.call(selectAll('.' + PALETTES, this.container))).forEach(function (ele) {\n detach(ele);\n });\n if (wrapper.classList.contains(SHOWVALUE)) {\n detach(select('.' + INPUTWRAPPER, this.container));\n }\n this.container.style.width = '';\n var grpEle = select('.e-custom-palette', this.container);\n if (this.presetColors) {\n remove(grpEle);\n }\n this.createPicker();\n this.getDragHandler().focus();\n this.createInput();\n this.refreshPopupPos();\n this.wireEvents();\n this.trigger('onModeSwitch', { element: this.container, mode: 'Picker' });\n };\n ColorPicker.prototype.ctrlBtnClick = function (ele, e) {\n if (ele.classList.contains(APPLY)) {\n var cValue = this.rgbToHex(this.rgb);\n this.triggerChangeEvent(cValue);\n }\n if (!this.inline) {\n this.closePopup(e);\n this.splitBtn.element.focus();\n }\n };\n ColorPicker.prototype.paletteKeyDown = function (e) {\n var target = e.target;\n if (!target.classList.contains(PALETTES)) {\n return;\n }\n var selectedEle;\n var idx;\n var tiles = [].slice.call(selectAll('.' + TILE, target));\n var prevSelectedEle = (tiles.filter(function (tile) { return tile.classList.contains('e-selected'); })).pop();\n switch (!e.altKey && e.keyCode) {\n case 39:\n e.preventDefault();\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? -1 : 1)]\n : tiles[this.enableRtl ? tiles.length - 1 : 0];\n this.keySelectionChanges(selectedEle);\n break;\n case 37:\n e.preventDefault();\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? 1 : -1)]\n : tiles[this.enableRtl ? 0 : tiles.length - 1];\n this.keySelectionChanges(selectedEle);\n break;\n case 38:\n e.preventDefault();\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, -this.columns) : 0;\n selectedEle = tiles[idx] ? tiles[idx] : tiles[idx - this.columns];\n this.keySelectionChanges(selectedEle);\n break;\n case 40:\n e.preventDefault();\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, this.columns) : tiles.length - 1;\n if (tiles[idx]) {\n selectedEle = tiles[idx];\n }\n else {\n idx %= tiles.length;\n idx += tiles[tiles.length - 1].parentElement.childElementCount;\n selectedEle = tiles[idx];\n }\n this.keySelectionChanges(selectedEle);\n break;\n case 13:\n e.preventDefault();\n if (prevSelectedEle) {\n var cValue = prevSelectedEle.getAttribute('aria-label');\n this.enterKeyHandler(cValue ? cValue : '', e);\n }\n }\n };\n ColorPicker.prototype.keySelectionChanges = function (newEle) {\n this.removeTileSelection();\n this.addTileSelection(newEle);\n if (newEle.classList.contains(NOCOLOR)) {\n this.noColorTile(true);\n }\n else {\n var cValue = newEle.getAttribute('aria-label');\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(cValue);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\n this.updateInput(cValue);\n }\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);\n }\n };\n ColorPicker.prototype.tilePosition = function (items, element, cIdx) {\n items = Array.prototype.slice.call(items);\n var n = items.length;\n var emptyCount = this.columns - items[n - 1].parentElement.childElementCount;\n var idx = items.indexOf(element);\n idx += cIdx;\n if (idx < 0) {\n idx += n + emptyCount;\n }\n else {\n idx %= n + emptyCount;\n }\n return idx;\n };\n ColorPicker.prototype.inputHandler = function (e) {\n var target = e.target;\n if (!target.value.length) {\n return;\n }\n var hsv;\n var pValue;\n var label = select('.e-float-text', target.parentElement).textContent;\n switch (label) {\n case 'HEX': {\n var value = '';\n if ((target.value[0] === '#' && target.value.length !== 5) || (target.value[0] !== '#' && target.value.length !== 4)) {\n value = this.roundValue(target.value);\n }\n if (value.length === 9) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(value + value.substr(-2));\n this.inputValueChange(this.rgbToHsv.apply(this, this.rgb), pValue, target.value);\n }\n else {\n return;\n }\n break;\n }\n case 'R':\n if (this.rgb[0] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[0] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'G':\n if (this.rgb[1] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[1] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'B':\n if (this.rgb[2] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[2] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'H':\n this.hueSlider.value = Number(target.value);\n break;\n case 'S':\n if (this.hsv[1] !== Number(target.value)) {\n this.hsv[1] = Number(target.value);\n this.updateHsv();\n this.convertToOtherFormat();\n }\n break;\n case 'V':\n if (this.hsv[2] !== Number(target.value)) {\n this.hsv[2] = Number(target.value);\n this.updateHsv();\n this.convertToOtherFormat();\n }\n break;\n case 'A':\n this.opacitySlider.value = Number(target.value);\n break;\n }\n };\n ColorPicker.prototype.inputValueChange = function (hsv, pValue, value) {\n if (hsv[0] !== this.hsv[0]) {\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\n this.hueSlider.refresh();\n this.setHsvContainerBg(hsv[0]);\n }\n this.hsv = hsv;\n var cValue = this.rgbToHex(this.rgb);\n this.setHandlerPosition();\n this.updateInput(value ? value : cValue);\n var rgba = this.convertToRgbString(this.rgb);\n this.updatePreview(rgba);\n this.triggerEvent(cValue, pValue, rgba);\n };\n ColorPicker.prototype.triggerEvent = function (cValue, pValue, rgba, isKey) {\n if (isKey === void 0) { isKey = false; }\n var hex = cValue.slice(0, 7);\n if (!this.showButtons && !isKey) {\n this.trigger('change', { currentValue: { hex: hex, rgba: rgba },\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) }, value: cValue });\n if (this.enableOpacity) {\n this.setProperties({ 'value': cValue }, true);\n }\n else {\n this.setProperties({ 'value': hex }, true);\n }\n this.element.value = hex ? hex : '#000000';\n }\n else {\n this.trigger('select', {\n currentValue: { hex: hex, rgba: rgba },\n previousValue: { hex: pValue.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(pValue)) }\n });\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n ColorPicker.prototype.destroy = function () {\n var _this = this;\n var wrapper = this.getWrapper();\n _super.prototype.destroy.call(this);\n ['tabindex', 'spellcheck'].forEach(function (attr) { _this.element.removeAttribute(attr); });\n if (this.inline) {\n this.unWireEvents();\n this.destroyOtherComp();\n }\n else {\n if (this.isPopupOpen()) {\n this.unWireEvents();\n this.destroyOtherComp();\n }\n this.splitBtn.destroy();\n this.splitBtn = null;\n }\n this.tileRipple();\n this.tileRipple = null;\n this.ctrlBtnRipple();\n this.ctrlBtnRipple = null;\n if (this.element.nextElementSibling) {\n detach(this.element.nextElementSibling);\n }\n if (wrapper) {\n wrapper.parentElement.insertBefore(this.element, wrapper);\n detach(wrapper);\n }\n this.container = null;\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n ColorPicker.prototype.destroyOtherComp = function () {\n if (this.isPicker()) {\n this.hueSlider.destroy();\n if (this.enableOpacity) {\n this.opacitySlider.destroy();\n this.opacitySlider = null;\n }\n this.hueSlider = null;\n var tooltipInst = this.getTooltipInst();\n tooltipInst.close();\n tooltipInst.destroy();\n this.tooltipEle = null;\n }\n };\n ColorPicker.prototype.isPopupOpen = function () {\n return this.getPopupEle().classList.contains('e-popup-open');\n };\n ColorPicker.prototype.unWireEvents = function () {\n if (this.isPicker()) {\n var dragHandler = this.getDragHandler();\n EventHandler.remove(dragHandler, 'keydown', this.pickerKeyDown);\n EventHandler.remove(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown);\n if (this.modeSwitcher || this.showButtons) {\n EventHandler.remove(select('.' + CTRLSWITCH, this.container), 'click', this.btnClickHandler);\n }\n EventHandler.remove(select('.' + PREVIOUS, this.container), 'click', this.previewHandler);\n }\n else {\n EventHandler.remove(this.container, 'click', this.paletteClickHandler);\n EventHandler.remove(this.container, 'keydown', this.paletteKeyDown);\n }\n };\n ColorPicker.prototype.roundValue = function (value) {\n if (!value) {\n return '';\n }\n if (value[0] !== '#') {\n value = '#' + value;\n }\n var len = value.length;\n if (len === 4) {\n value += 'f';\n len = 5;\n }\n if (len === 5) {\n var tempValue = '';\n for (var i = 1, len_1 = value.length; i < len_1; i++) {\n tempValue += (value.charAt(i) + value.charAt(i));\n }\n value = '#' + tempValue;\n len = 9;\n }\n if (len === 7) {\n value += 'ff';\n }\n return value;\n };\n ColorPicker.prototype.hexToRgb = function (hex) {\n if (!hex) {\n return [];\n }\n hex = hex.trim();\n if (hex.length !== 9) {\n hex = this.roundValue(hex);\n }\n var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2));\n hex = hex.slice(1, 7);\n var bigInt = parseInt(hex, 16);\n var h = [];\n h.push((bigInt >> 16) & 255);\n h.push((bigInt >> 8) & 255);\n h.push(bigInt & 255);\n h.push(opacity);\n return h;\n };\n ColorPicker.prototype.rgbToHsv = function (r, g, b, opacity) {\n if (this.rgb && !this.rgb.length) {\n return [];\n }\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0;\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n var hsv = [Math.round(h * 360), Math.round(s * 1000) / 10, Math.round(v * 1000) / 10];\n if (!isNullOrUndefined(opacity)) {\n hsv.push(opacity);\n }\n return hsv;\n };\n ColorPicker.prototype.hsvToRgb = function (h, s, v, opacity) {\n var r;\n var g;\n var b;\n s /= 100;\n v /= 100;\n if (s === 0) {\n r = g = b = v;\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), opacity];\n }\n h /= 60;\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n switch (i) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n }\n var rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n if (!isNullOrUndefined(opacity)) {\n rgb.push(opacity);\n }\n return rgb;\n };\n ColorPicker.prototype.rgbToHex = function (rgb) {\n return rgb.length ? ('#' + this.hex(rgb[0]) + this.hex(rgb[1]) + this.hex(rgb[2]) +\n (!isNullOrUndefined(rgb[3]) ? (rgb[3] !== 0 ? (Math.round(rgb[3] * 255) + 0x10000).toString(16).substr(-2) : '00') : '')) : '';\n };\n ColorPicker.prototype.hex = function (x) {\n return ('0' + x.toString(16)).slice(-2);\n };\n ColorPicker.prototype.changeModeSwitcherProp = function (prop) {\n var ctrlSwitchWrapper = select('.' + CTRLSWITCH, this.container);\n if (prop) {\n if (ctrlSwitchWrapper) {\n this.appendModeSwitchBtn();\n }\n else {\n this.createCtrlBtn();\n if (this.isPicker() && !this.disabled) {\n this.addCtrlSwitchEvent();\n }\n }\n }\n else {\n if (ctrlSwitchWrapper) {\n if (this.showButtons) {\n detach(select('.' + MODESWITCH, ctrlSwitchWrapper));\n }\n else {\n remove(ctrlSwitchWrapper);\n }\n }\n }\n };\n ColorPicker.prototype.changeShowBtnProps = function (prop) {\n var ctrlBtnWrapper = select('.' + CTRLSWITCH, this.container);\n if (prop) {\n if (ctrlBtnWrapper) {\n remove(ctrlBtnWrapper);\n }\n this.createCtrlBtn();\n if (this.isPicker() && !this.disabled) {\n this.addCtrlSwitchEvent();\n }\n }\n else {\n if (this.modeSwitcher) {\n detach(select('.' + CTRLBTN, ctrlBtnWrapper));\n }\n else {\n remove(ctrlBtnWrapper);\n }\n }\n };\n ColorPicker.prototype.changeValueProp = function (newProp) {\n if (this.isPicker()) {\n this.rgb = this.hexToRgb(newProp);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n this.setHandlerPosition();\n detach(closest(this.hueSlider.element, '.e-slider-preview'));\n this.createSlider();\n this.setHsvContainerBg();\n this.updateInput(newProp);\n if (this.rgb.length === 4) {\n this.updateOpacityInput(this.rgb[3] * 100);\n }\n }\n else {\n this.removeTileSelection();\n var ele = this.container.querySelector('span[aria-label=\"' + this.roundValue(newProp) + '\"]');\n if (ele) {\n this.addTileSelection(ele);\n }\n }\n };\n ColorPicker.prototype.setInputEleProps = function () {\n remove(select('.' + INPUTWRAPPER, this.container));\n this.createInput();\n };\n ColorPicker.prototype.changeDisabledProp = function (newProp) {\n if (this.isPicker()) {\n this.hueSlider.enabled = !newProp;\n this.opacitySlider.enabled = !newProp;\n this.setInputEleProps();\n }\n if (newProp) {\n this.toggleDisabled(true);\n this.unWireEvents();\n }\n else {\n this.toggleDisabled(false);\n this.wireEvents();\n }\n };\n ColorPicker.prototype.changeCssClassProps = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n var popupWrapper = this.getPopupEle();\n if (oldProp) {\n removeClass([wrapper, popupWrapper], oldProp.split(' '));\n }\n if (newProp) {\n addClass([wrapper, popupWrapper], newProp.split(' '));\n }\n };\n ColorPicker.prototype.changeRtlProps = function (newProp) {\n if (newProp) {\n addClass([this.getWrapper()], 'e-rtl');\n }\n else {\n removeClass([this.getWrapper()], 'e-rtl');\n }\n };\n ColorPicker.prototype.changePaletteProps = function () {\n detach(this.container.children[0]);\n this.container.style.width = '';\n this.createPalette();\n };\n ColorPicker.prototype.changeOpacityProps = function (newProp) {\n var wrapper = this.getWrapper();\n if (newProp) {\n removeClass([this.container.parentElement], HIDEOPACITY);\n this.createOpacitySlider(select('.e-colorpicker-slider', this.container).appendChild(this.createElement('div', { className: 'e-opacity-slider' })));\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\n this.appendOpacityValue(select('.e-input-container', this.container));\n }\n }\n else {\n addClass([this.container.parentElement], HIDEOPACITY);\n this.opacitySlider.destroy();\n remove(this.opacitySlider.element);\n this.opacitySlider = null;\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\n remove(select('.' + OPACITY, this.container).parentElement);\n }\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ColorPickerModel} newProp - Specifies new properties\n * @param {ColorPickerModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ColorPicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n if (!isNullOrUndefined(newProp.value)) {\n var value = this.roundValue(newProp.value);\n if (value.length === 9) {\n this.element.value = this.roundValue(value).slice(0, 7);\n var preview = this.splitBtn && select('.' + SPLITPREVIEW, this.splitBtn.element);\n if (preview) {\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(newProp.value));\n }\n }\n else {\n this.value = oldProp.value;\n }\n }\n if (!this.inline && isNullOrUndefined(newProp.inline)) {\n var otherCompModel = ['disabled', 'enableRtl'];\n this.splitBtn.setProperties(getModel(newProp, otherCompModel));\n if (!this.isPopupOpen()) {\n this.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\n this.changeRtlProps(newProp.enableRtl);\n return;\n }\n }\n var _loop_1 = function (prop) {\n switch (prop) {\n case 'inline':\n if (newProp.inline) {\n this_1.getWrapper().appendChild(this_1.container);\n this_1.splitBtn.destroy();\n detach(this_1.element.nextElementSibling);\n if (!this_1.container.children.length) {\n this_1.createWidget();\n }\n }\n else {\n this_1.destroyOtherComp();\n this_1.unWireEvents();\n this_1.container.innerHTML = '';\n this_1.createSplitBtn();\n }\n break;\n case 'cssClass': {\n this_1.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\n var props = newProp.cssClass.split(' ').concat(oldProp.cssClass.split(' '));\n props = props.reduce(function (a, b) { if (a.indexOf(b) < 0) {\n a.push(b);\n } return a; }, []);\n var count_1 = 0;\n props.forEach(function (cls) {\n if (count_1 === 0 &&\n (cls === HIDEVALUE || cls === HIDEVALUESWITCH || cls === SHOWVALUE || cls === HIDEHEX || cls === HIDERGBA)) {\n var inputWrap = select('.' + INPUTWRAPPER, _this.container);\n if (inputWrap) {\n remove(select('.' + INPUTWRAPPER, _this.container));\n }\n _this.createInput();\n count_1++;\n }\n });\n break;\n }\n case 'enableRtl':\n if (this_1.isPicker()) {\n this_1.hueSlider.enableRtl = newProp.enableRtl;\n if (this_1.enableOpacity) {\n this_1.opacitySlider.enableRtl = newProp.enableRtl;\n }\n this_1.setInputEleProps();\n }\n this_1.changeRtlProps(newProp.enableRtl);\n break;\n case 'disabled':\n this_1.changeDisabledProp(newProp.disabled);\n break;\n case 'value':\n if (this_1.value !== oldProp.value) {\n this_1.changeValueProp(newProp.value);\n }\n break;\n case 'showButtons':\n this_1.changeShowBtnProps(newProp.showButtons);\n break;\n case 'mode':\n if (newProp.mode === 'Picker') {\n this_1.switchToPicker();\n }\n else {\n this_1.switchToPalette();\n }\n break;\n case 'modeSwitcher':\n this_1.changeModeSwitcherProp(newProp.modeSwitcher);\n break;\n case 'columns':\n case 'presetColors':\n if (!this_1.isPicker()) {\n this_1.changePaletteProps();\n }\n break;\n case 'noColor':\n if (newProp.noColor) {\n if (this_1.mode === 'Palette' && !this_1.modeSwitcher) {\n this_1.setNoColor();\n }\n }\n else {\n this_1.changePaletteProps();\n }\n break;\n case 'enableOpacity':\n this_1.changeOpacityProps(newProp.enableOpacity);\n break;\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n };\n /**\n * Sets the focus to Colorpicker\n * its native method\n *\n * @public\n * @returns {void}\n */\n ColorPicker.prototype.focusIn = function () {\n this.element.parentElement.focus();\n };\n __decorate([\n Property('#008000ff')\n ], ColorPicker.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], ColorPicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"disabled\", void 0);\n __decorate([\n Property('Picker')\n ], ColorPicker.prototype, \"mode\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"modeSwitcher\", void 0);\n __decorate([\n Property(null)\n ], ColorPicker.prototype, \"presetColors\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"showButtons\", void 0);\n __decorate([\n Property(10)\n ], ColorPicker.prototype, \"columns\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"inline\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"noColor\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"enableOpacity\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeTileRender\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeModeSwitch\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"onModeSwitch\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"created\", void 0);\n ColorPicker = __decorate([\n NotifyPropertyChanges\n ], ColorPicker);\n return ColorPicker;\n}(Component));\nexport { ColorPicker };\n","/* eslint-disable */\nimport { createElement, Browser, isBlazor, isNullOrUndefined, closest } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool, Menu } from '@syncfusion/ej2-navigations';\n// eslint-disable-next-line max-len\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { ColorPicker, Slider } from '@syncfusion/ej2-inputs';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { Query } from '@syncfusion/ej2-data';\nimport { DynamicStampItem, SignStampItem, StandardBusinessStampItem } from '../base/types';\n/**\n * @hidden\n */\nvar AnnotationToolbar = /** @class */ (function () {\n function AnnotationToolbar(viewer, viewerBase, toolbar) {\n var _this = this;\n this.toolbarBorderHeight = 1;\n /**\n * @private\n */\n this.isToolbarHidden = false;\n /**\n * @private\n */\n this.isMobileAnnotEnabled = false;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n this.isHighlightBtnVisible = true;\n this.isCommentBtnVisible = true;\n this.isUnderlineBtnVisible = true;\n this.isStrikethroughBtnVisible = true;\n this.isColorToolVisible = true;\n this.isOpacityToolVisible = true;\n this.isDeleteAnnotationToolVisible = true;\n this.isCurrentAnnotationOpacitySet = false;\n this.isStampBtnVisible = false;\n this.isShapeBtnVisible = false;\n this.isSignatureBtnVisible = false;\n this.isInkBtnVisible = false;\n this.isFontFamilyToolVisible = false;\n this.isFontSizeToolVisible = false;\n this.isFontAlignToolVisible = false;\n this.isFontColorToolVisible = false;\n this.isFontStylesToolVisible = false;\n this.isCommentPanelBtnVisible = false;\n this.isFreeTextBtnVisible = false;\n this.isCalibrateBtnVisible = false;\n this.isStrokeColorToolVisible = false;\n this.isThicknessToolVisible = false;\n this.stampMenu = [];\n this.stampParentID = '';\n /**\n * @private\n */\n this.inkAnnotationSelected = false;\n /**\n * @private\n */\n this.openSignaturePopup = false;\n this.isSavedSignatureClicked = false;\n this.saveSignatureCount = 0;\n this.saveInitialCount = 0;\n /**\n * @private\n */\n this.isToolbarCreated = false;\n // eslint-disable-next-line\n this.addStampImage = function (args) {\n // eslint-disable-next-line\n var proxy = _this;\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n _this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = uploadedFile.name.split('.')[0];\n if (uploadedFile.type.split('/')[0] === 'image') {\n var reader = new FileReader();\n // eslint-disable-next-line\n reader.onload = function (e) {\n var uploadedFileUrl = e.currentTarget.result;\n proxy.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n proxy.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n proxy.pdfViewerBase.stampAdded = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(uploadedFileUrl);\n proxy.pdfViewerBase.stampAdded = false;\n };\n reader.readAsDataURL(uploadedFile);\n }\n }\n args.target.value = '';\n args.currentTarget.value = '';\n };\n this.popupPosition = function (colorElement, buttonElement) {\n if (colorElement && colorElement.element) {\n var buttonBounds = buttonElement.getBoundingClientRect();\n var elements = colorElement.element.getElementsByClassName(\"e-container e-color-palette\")[0].getElementsByClassName(\"e-palette\")[0].getBoundingClientRect();\n var mainContainerBounds = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n if (elements.left + elements.width > mainContainerBounds.width) {\n colorElement.element.parentElement.style.left = (elements.left - elements.width) + buttonBounds.width + 'px';\n }\n }\n };\n this.onShapeToolbarClicked = function (args) {\n var elementId = _this.pdfViewer.element.id;\n var shapeAnnotationModule = _this.pdfViewer.annotation.shapeAnnotationModule;\n if (!Browser.isDevice) {\n _this.deselectAllItems();\n _this.resetFreeTextAnnot();\n }\n else {\n // eslint:disable-next-line\n var element = args.originalEvent.target;\n _this.pdfViewer.toolbarModule.selectItem(element.parentElement);\n }\n switch (args.originalEvent.target.id) {\n case elementId + '_shape_line':\n case elementId + '_shape_lineIcon':\n shapeAnnotationModule.setAnnotationType('Line');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.lineFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.lineStrokeColor);\n _this.handleShapeTool(elementId + '_shape_line');\n break;\n case elementId + '_shape_arrow':\n case elementId + '_shape_arrowIcon':\n shapeAnnotationModule.setAnnotationType('Arrow');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.arrowFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.arrowStrokeColor);\n _this.handleShapeTool(elementId + '_shape_arrow');\n break;\n case elementId + '_shape_rectangle':\n case elementId + '_shape_rectangleIcon':\n shapeAnnotationModule.setAnnotationType('Rectangle');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.rectangleFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.rectangleStrokeColor);\n _this.handleShapeTool(elementId + '_shape_rectangle');\n break;\n case elementId + '_shape_circle':\n case elementId + '_shape_circleIcon':\n shapeAnnotationModule.setAnnotationType('Circle');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.circleFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.circleStrokeColor);\n _this.handleShapeTool(elementId + '_shape_circle');\n break;\n case elementId + '_shape_pentagon':\n case elementId + '_shape_pentagonIcon':\n shapeAnnotationModule.setAnnotationType('Polygon');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.polygonFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.polygonStrokeColor);\n _this.handleShapeTool(elementId + '_shape_pentagon');\n break;\n }\n // this.pdfViewer.clearSelection();\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n this.primaryToolbar = toolbar;\n }\n /**\n * @private\n */\n AnnotationToolbar.prototype.initializeAnnotationToolbar = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_annotation_toolbar', className: 'e-pv-annotation-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup', cssClass: 'e-pv-toolbar-scroll',\n items: this.createToolbarItems(), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns();\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.afterToolbarCreation();\n this.createStampContainer();\n this.createSignContainer();\n this.applyAnnotationToolbarSettings();\n this.updateToolbarItems();\n this.showAnnotationToolbar(null, true);\n this.toolbarElement.setAttribute('aria-label', \"Annotation Toolbar\");\n };\n AnnotationToolbar.prototype.createMobileAnnotationToolbar = function (isEnable, isPath) {\n var _this = this;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.toolbarElement == null && isEnable) {\n this.isMobileAnnotEnabled = true;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_annotation_toolbar', className: 'e-pv-annotation-toolbar' });\n this.pdfViewerBase.viewerMainContainer.insertBefore(this.toolbarElement, this.pdfViewerBase.viewerContainer);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup',\n items: this.createMobileToolbarItems(isPath), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns(isPath);\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.pdfViewerBase.navigationPane.goBackToToolbar();\n this.pdfViewer.toolbarModule.showToolbar(false);\n this.toolbar.appendTo(this.toolbarElement);\n this.deleteItem = this.pdfViewerBase.getElement('_annotation_delete');\n this.deleteItem.firstElementChild.id = this.pdfViewer.element.id + '_annotation_delete';\n }\n else if (this.toolbarElement != null) {\n if (isEnable) {\n this.isMobileAnnotEnabled = true;\n this.pdfViewerBase.navigationPane.goBackToToolbar();\n this.pdfViewer.toolbarModule.showToolbar(false);\n this.toolbarElement.style.display = 'block';\n }\n else if (!isEnable) {\n this.isMobileAnnotEnabled = false;\n this.pdfViewer.toolbarModule.showToolbar(true);\n this.hideMobileAnnotationToolbar();\n }\n }\n }\n else {\n this.isMobileAnnotEnabled = true;\n }\n };\n AnnotationToolbar.prototype.hideMobileAnnotationToolbar = function () {\n if (this.toolbarElement != null) {\n if (this.pdfViewer.selectedItems.annotations.length > 0 || this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n this.propertyToolbar.element.style.display = 'block';\n this.toolbarCreated = true;\n }\n }\n else {\n if (this.toolbar.element.children.length > 0) {\n this.toolbarCreated = true;\n }\n else {\n this.toolbarCreated = false;\n }\n if (this.propertyToolbar && this.propertyToolbar.element.style.display !== 'none') {\n this.propertyToolbar.element.style.display = 'none';\n if (!this.toolbarCreated) {\n var editIcon = document.getElementById(this.pdfViewer.element.id + '_annotationIcon');\n if (editIcon && editIcon.parentElement.classList.contains('e-pv-select')) {\n this.createAnnotationToolbarForMobile();\n }\n }\n }\n }\n if (this.toolbarElement.children.length > 0) {\n this.toolbarElement.style.display = 'block';\n }\n this.adjustMobileViewer();\n }\n else if (this.toolbarCreated && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n this.propertyToolbar.element.style.display = 'none';\n this.adjustMobileViewer();\n this.toolbarCreated = false;\n }\n };\n AnnotationToolbar.prototype.FreeTextForMobile = function () {\n var _this = this;\n this.hideExistingTool();\n // eslint-disable-next-line max-len\n this.freetextToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_freeTextToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.freetextToolbarElement);\n // eslint-disable-next-line max-len\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var fontFamilyTemplate = this.getTemplate('input', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('input', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('span', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('span', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n // eslint-disable-next-line max-len\n var textPropertiesTemplate = this.getTemplate('span', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' },\n { template: fontFamilyTemplate },\n { template: fontSizeTemplate },\n { template: textColorTemplate },\n { template: alignmentTemplate },\n { template: textPropertiesTemplate },\n { template: colorTemplate },\n { template: strokeTemplate },\n { template: thicknessTemplate },\n { template: opacityTemplate },\n ];\n this.toolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable', created: function () {\n // eslint-disable-next-line max-len\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(_this.pdfViewer.element.id + '_annotation_freeTextEdit');\n }\n });\n this.toolbar.appendTo(this.freetextToolbarElement);\n this.showFreeTextPropertiesTool();\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.createPropertyTools = function (shapeType) {\n var _this = this;\n if (shapeType !== \"\") {\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n // eslint-disable-next-line max-len\n var shapeToolbarElement = void 0;\n shapeToolbarElement = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');\n if (shapeToolbarElement) {\n shapeToolbarElement.parentElement.removeChild(shapeToolbarElement);\n }\n // eslint-disable-next-line max-len\n shapeToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_propertyToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(shapeToolbarElement);\n var id_1;\n var propertyToolbar = new Tool({\n // eslint-disable-next-line max-len\n items: this.createPropertyToolbarForMobile(shapeType), width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n if (_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n id_1 = _this.pdfViewer.element.id + '_underlineIcon';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n id_1 = _this.pdfViewer.element.id + '_annotation_freeTextEdit';\n // eslint-disable-next-line max-len\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image') {\n id_1 = _this.pdfViewer.element.id + '_annotation_stamp';\n // eslint-disable-next-line max-len\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText') {\n id_1 = _this.pdfViewer.element.id + '_annotation_handwrittenSign';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage') {\n id_1 = _this.pdfViewer.element.id + '_annotation_handwrittenImage';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path') {\n id_1 = _this.pdfViewer.element.id + '_annotation_inkIcon';\n }\n else if (shapeType === 'Highlight' || shapeType === 'Underline' || shapeType === 'Strikethrough') {\n id_1 = _this.pdfViewer.element.id + '_highlightIcon';\n }\n else {\n id_1 = _this.pdfViewer.element.id + '_annotation_shapesIcon';\n }\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(id_1);\n }\n });\n propertyToolbar.isStringTemplate = true;\n propertyToolbar.appendTo(shapeToolbarElement);\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n }\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature') {\n var commentIcon = document.getElementById(this.pdfViewer.element.id + '_annotation_commentPanel');\n this.toolbar.enableItems(commentIcon.parentElement, false);\n }\n }\n this.showPropertyTool(propertyToolbar, id_1);\n }\n };\n AnnotationToolbar.prototype.showPropertyTool = function (existingTool, id) {\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n this.propertyToolbar = existingTool;\n this.applyProperiesToolSettings(id);\n //this.propertyToolbar.element.style.display = 'block';\n if (this.pdfViewer.selectedItems.annotations[0]) {\n // eslint:disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (selectedAnnotation.shapeAnnotationType !== 'SignatureText' && selectedAnnotation.shapeAnnotationType !== 'HandWrittenSignature' && selectedAnnotation.shapeAnnotationType !== 'Stamp' && selectedAnnotation.shapeAnnotationType !== 'Image' && selectedAnnotation.shapeAnnotationType !== 'Ink' && selectedAnnotation.shapeAnnotationType !== 'Path' && selectedAnnotation.shapeAnnotationType !== 'StickyNotes') {\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.selectedItems.annotations[0].fillColor);\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.selectedItems.annotations[0].strokeColor);\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint:disable-next-line\n var fontFamily = this.fontFamilyElement;\n fontFamily.ej2_instances[0].value = this.pdfViewer.selectedItems.annotations[0].fontFamily;\n // eslint:disable-next-line\n var fontColor = this.fontColorElement;\n fontColor.children[0].style.borderBottomColor = this.pdfViewer.selectedItems.annotations[0].fontColor;\n this.pdfViewer.annotation.modifyTextAlignment(this.pdfViewer.selectedItems.annotations[0].textAlign);\n this.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n if (this.strokeDropDownElement) {\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.selectedItems.annotations[0].strokeColor);\n }\n }\n }\n this.toolbarCreated = true;\n this.adjustMobileViewer();\n };\n AnnotationToolbar.prototype.stampToolMobileForMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.stampToolbarElement) {\n this.stampToolbarElement.parentElement.removeChild(this.stampToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.stampToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_stampToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.stampToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createStampToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.stampToolbarElement);\n this.showStampPropertiesTool();\n //this.afterShapeToolbarCreationForMobile();\n };\n AnnotationToolbar.prototype.shapeToolMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.shapeToolbarElement) {\n this.shapeToolbarElement.parentElement.removeChild(this.shapeToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.shapeToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_shapeToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.shapeToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createShapeToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.shapeToolbarElement);\n this.afterShapeToolbarCreationForMobile();\n this.showShapeTool();\n };\n AnnotationToolbar.prototype.calibrateToolMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.calibrateToolbarElement) {\n this.calibrateToolbarElement.parentElement.removeChild(this.calibrateToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.calibrateToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_calibrateToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.calibrateToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createCalibrateToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onCalibrateToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.calibrateToolbarElement);\n this.afterCalibrateToolbarCreationForMobile();\n this.showShapeTool();\n };\n AnnotationToolbar.prototype.textMarkupForMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.textMarkupToolbarElement) {\n this.textMarkupToolbarElement.parentElement.removeChild(this.textMarkupToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.textMarkupToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.textMarkupToolbarElement);\n // eslint-disable-next-line max-len\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' },\n { template: colorTemplate, align: 'left' },\n { template: opacityTemplate, align: 'left' }\n ];\n this.propertyToolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.propertyToolbar.isStringTemplate = true;\n this.propertyToolbar.appendTo(this.textMarkupToolbarElement);\n this.showTextMarkupPropertiesTool();\n };\n AnnotationToolbar.prototype.showShapeTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 7, 7);\n }\n else {\n this.showColorEditTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 8, 8);\n }\n else {\n this.showStrokeColorEditTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 9, 9);\n }\n else {\n this.showThicknessEditTool(false, 9, 9);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 10, 10);\n }\n else {\n this.showOpacityEditTool(false, 10, 10);\n }\n }\n };\n AnnotationToolbar.prototype.signatureInkForMobile = function () {\n var _this = this;\n this.hideExistingTool();\n if (this.signatureInkToolbarElement) {\n this.signatureInkToolbarElement.parentElement.removeChild(this.signatureInkToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.signatureInkToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.signatureInkToolbarElement);\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { template: opacityTemplate, align: 'left' },\n { template: strokeTemplate, aign: 'left' },\n { template: thicknessTemplate, align: 'left' }\n ];\n this.toolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(_this.pdfViewer.element.id + '_annotation_inkIcon');\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.signatureInkToolbarElement);\n };\n AnnotationToolbar.prototype.hideExistingTool = function () {\n if (this.toolbar && !this.pdfViewer.enableDesktopMode) {\n this.toolbar.destroy();\n }\n if (this.propertyToolbar && !this.pdfViewer.enableDesktopMode) {\n this.propertyToolbar.destroy();\n }\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_mobileAnnotationToolbar');\n if (mobileAnnotationToolbar) {\n mobileAnnotationToolbar.style.display = 'none';\n }\n };\n AnnotationToolbar.prototype.applyProperiesToolSettings = function (type) {\n switch (type) {\n case this.pdfViewer.element.id + '_underlineIcon':\n case this.pdfViewer.element.id + '_highlightIcon':\n this.showTextMarkupPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_freeTextEdit':\n this.showFreeTextPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_shapesIcon':\n this.shapePropertiesTool();\n break;\n case 'stampTool':\n case this.pdfViewer.element.id + '_annotation_stamp':\n this.showStampPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_handwrittenSign':\n case this.pdfViewer.element.id + '_annotation_inkIcon':\n this.showInkPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_handwrittenImage':\n this.showImagePropertyTool();\n break;\n }\n };\n AnnotationToolbar.prototype.showImagePropertyTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 0, 0);\n }\n else {\n this.showOpacityEditTool(false, 0, 0);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 1, 1);\n }\n else {\n this.showCommentPanelTool(false, 1, 1);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 2, 2);\n }\n else {\n this.showAnnotationDeleteTool(false, 2, 2);\n }\n }\n };\n AnnotationToolbar.prototype.showFreeTextPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('FontFamilyAnnotationTool') !== -1) {\n this.showFontFamilyAnnotationTool(true, 2, 2);\n }\n else {\n this.showFontFamilyAnnotationTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('FontSizeAnnotationTool') !== -1) {\n this.showFontSizeAnnotationTool(true, 3, 3);\n }\n else {\n this.showFontSizeAnnotationTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('FontColorAnnotationTool') !== -1) {\n this.showFontColorAnnotationTool(true, 4, 4);\n }\n else {\n this.showFontColorAnnotationTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('FontAlignAnnotationTool') !== -1) {\n this.showFontAlignAnnotationTool(true, 5, 5);\n }\n else {\n this.showFontAlignAnnotationTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('FontStylesAnnotationTool') !== -1) {\n this.showFontStylesAnnotationTool(true, 6, 6);\n }\n else {\n this.showFontStylesAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 7, 7);\n }\n else {\n this.showColorEditTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 8, 8);\n }\n else {\n this.showStrokeColorEditTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 9, 9);\n }\n else {\n this.showThicknessEditTool(false, 9, 9);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 10, 10);\n }\n else {\n this.showOpacityEditTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 11, 11);\n }\n else {\n this.showCommentPanelTool(false, 11, 11);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 12, 12);\n }\n else {\n this.showAnnotationDeleteTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 0, 0);\n }\n else {\n this.showFreeTextAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.shapePropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 2, 2);\n }\n else {\n this.showColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 3, 3);\n }\n else {\n this.showStrokeColorEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 4, 4);\n }\n else {\n this.showThicknessEditTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 5, 5);\n }\n else {\n this.showOpacityEditTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 6, 6);\n }\n else {\n this.showCommentPanelTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 7, 7);\n }\n else {\n this.showAnnotationDeleteTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 0, 0);\n }\n else {\n this.showShapeAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showStampPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 2, 2);\n }\n else {\n this.showOpacityEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 3, 3);\n }\n else {\n this.showCommentPanelTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 4, 4);\n }\n else {\n this.showAnnotationDeleteTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 0, 0);\n }\n else {\n this.showStampAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showTextMarkupPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 2, 2);\n }\n else {\n this.showColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 3, 3);\n }\n else {\n this.showOpacityEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 4, 4);\n }\n else {\n this.showCommentPanelTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 5, 5);\n }\n else {\n this.showAnnotationDeleteTool(false, 5, 5);\n }\n if (annotationToolbarItems.includes(\"HighlightTool\") || annotationToolbarItems.includes(\"UnderlineTool\") || annotationToolbarItems.includes(\"StrikethroughTool\")) {\n this.applyHideToToolbar(true, 0, 0);\n }\n else {\n this.applyHideToToolbar(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showInkPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 2, 2);\n }\n else {\n this.showStrokeColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 3, 3);\n }\n else {\n this.showThicknessEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 4, 4);\n }\n else {\n this.showOpacityEditTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 5, 5);\n }\n else {\n this.showCommentPanelTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 6, 6);\n }\n else {\n this.showAnnotationDeleteTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 0, 0);\n }\n else {\n this.showSignatureTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n /**\n * @private\n */\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createAnnotationToolbarForMobile = function (id) {\n var hideToolbar;\n if (id) {\n var editIcon = document.getElementById(id);\n if (editIcon.parentElement.classList.contains('e-pv-select')) {\n hideToolbar = true;\n editIcon.parentElement.classList.remove('e-pv-select');\n }\n else {\n hideToolbar = false;\n this.pdfViewer.toolbarModule.selectItem(editIcon.parentElement);\n }\n }\n if (hideToolbar) {\n this.toolbarCreated = false;\n this.adjustMobileViewer();\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_mobileAnnotationToolbar');\n if (mobileAnnotationToolbar) {\n mobileAnnotationToolbar.style.display = 'none';\n }\n return [];\n }\n else {\n this.isToolbarCreated = true;\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n if (this.toolbarElement) {\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left;' });\n //this.toolbarElement.append(this.pdfViewerBase.viewerContainer);\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n var stampTemplate = this.getTemplate('span', '_annotation_stamp', 'e-pv-annotation-stamp-container');\n var signTemplate = this.getTemplate('span', '_annotation_signature', 'e-pv-annotation-handwritten-container');\n // eslint:disable-next-line\n var items = void 0;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-comment-icon e-pv-icon', className: 'e-pv-comment-container', id: this.pdfViewer.element.id + '_comment' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-highlight-icon e-pv-icon', className: 'e-pv-highlight-container', id: this.pdfViewer.element.id + '_highlight' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-underline-icon e-pv-icon', className: 'e-pv-underline-container', id: this.pdfViewer.element.id + '_underline' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-strikethrough-icon e-pv-icon', className: 'e-pv-strikethrough-container', id: this.pdfViewer.element.id + '_strikethrough' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-shape-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_annotation_shapes' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-calibrate-icon e-pv-icon', className: 'e-pv-annotation-calibrate-container', id: this.pdfViewer.element.id + '_annotation_calibrate' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container', id: this.pdfViewer.element.id + '_annotation_freeTextEdit' },\n { type: 'Separator', align: 'Left' },\n { template: stampTemplate },\n { type: 'Separator', align: 'Left' },\n { template: signTemplate, align: 'Left', },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-inkannotation-icon e-pv-icon', className: 'e-pv-annotation-ink-container', id: this.pdfViewer.element.id + '_annotation_ink', align: 'Left', },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right' }\n ];\n if (this.toolbarCreated && this.toolbar) {\n this.toolbar.destroy();\n this.toolbarCreated = false;\n this.adjustMobileViewer();\n }\n else {\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({ items: items, width: '', height: '', overflowMode: 'Scrollable', clicked: this.onToolbarClicked.bind(this) });\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n this.afterMobileToolbarCreation();\n this.createStampContainer();\n this.createSignContainer();\n this.applyMobileAnnotationToolbarSettings();\n this.toolbarCreated = true;\n this.adjustMobileViewer();\n }\n return items;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.adjustMobileViewer = function () {\n var toolbarHeight;\n if (this.toolbarElement) {\n toolbarHeight = this.toolbarElement.clientHeight;\n }\n var isPrimaryTool = false;\n if (this.toolbarElement && this.toolbarElement.children.length === 0 && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n toolbarHeight = this.propertyToolbar.element.clientHeight;\n if (this.pdfViewer.toolbarModule.toolbarElement.style.display === 'none') {\n this.pdfViewer.toolbarModule.toolbarElement.style.display = 'block';\n }\n }\n else if (this.freetextToolbarElement && this.freetextToolbarElement.children.length > 0) {\n toolbarHeight = this.freetextToolbarElement.clientHeight;\n }\n else if (toolbarHeight === 0 && this.pdfViewer.toolbarModule.toolbar) {\n toolbarHeight = this.pdfViewer.toolbarModule.toolbarElement.clientHeight;\n isPrimaryTool = true;\n }\n else if (!toolbarHeight && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n toolbarHeight = this.propertyToolbar.element.clientHeight;\n }\n if (this.pdfViewer.enableToolbar && this.toolbarCreated) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (toolbarHeight + toolbarHeight)) + 'px';\n }\n else {\n if (!isPrimaryTool) {\n if (this.pdfViewerBase.viewerContainer.style.height.split('%').length > 1) {\n this.pdfViewerBase.viewerContainer.style.height = this.resetViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (-toolbarHeight)) + 'px';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.height = this.resetViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (toolbarHeight)) + 'px';\n }\n }\n }\n };\n /**\n * Shows /hides the toolbar in the PdfViewer\n * @param {boolean} enableToolbar - If set true , its show the Toolbar\n * @returns void\n */\n AnnotationToolbar.prototype.showToolbar = function (enable) {\n var toolbar = this.toolbarElement;\n if (enable) {\n toolbar.style.display = 'block';\n if (Browser.isDevice && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n }\n }\n else {\n toolbar.style.display = 'none';\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createMobileToolbarItems = function (isPath) {\n var colorTemplate = this.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n // eslint-disable-next-line max-len\n if (!isPath) {\n items.push({ template: colorTemplate, align: 'right' });\n items.push({ template: opacityTemplate, align: 'right' });\n items.push({ type: 'Separator', align: 'right' });\n }\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'right' });\n return items;\n };\n AnnotationToolbar.prototype.goBackToToolbar = function () {\n this.isMobileAnnotEnabled = false;\n if (this.toolbarElement.children.length > 0) {\n this.toolbarElement.style.display = 'block';\n }\n else {\n this.toolbarCreated = false;\n this.toolbar.destroy();\n this.createAnnotationToolbarForMobile();\n }\n var page = this.pdfViewerBase.getSelectTextMarkupCurrentPage();\n if (page) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearAnnotationSelection(page);\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createToolbarItems = function () {\n var colorTemplate = this.getTemplate('button', '_annotation_color', 'e-pv-annotation-color-container');\n var strokeTemplate = this.getTemplate('button', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('button', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('button', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var shapesTemplate = this.getTemplate('button', '_annotation_shapes', 'e-pv-annotation-shapes-container');\n var calibrateTemplate = this.getTemplate('button', '_annotation_calibrate', 'e-pv-annotation-calibrate-container');\n var stampTemplate = this.getTemplate('span', '_annotation_stamp', 'e-pv-annotation-stamp-container');\n var fontFamilyTemplate = this.getTemplate('button', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('button', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('button', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('button', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n var textPropertiesTemplate = this.getTemplate('button', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n var signTemplate = this.getTemplate('button', '_annotation_signature', 'e-pv-annotation-handwritten-container');\n // eslint-disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-highlight-icon e-pv-icon', className: 'e-pv-highlight-container', id: this.pdfViewer.element.id + '_highlight', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-underline-icon e-pv-icon', className: 'e-pv-underline-container', id: this.pdfViewer.element.id + '_underline', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-strikethrough-icon e-pv-icon', className: 'e-pv-strikethrough-container', id: this.pdfViewer.element.id + '_strikethrough', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' });\n items.push({ template: shapesTemplate, align: 'Left', cssClass: 'e-pv-shape-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-shape-separator-container' });\n items.push({ template: calibrateTemplate, align: 'Left', cssClass: 'e-pv-calibrate-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-calibrate-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container', id: this.pdfViewer.element.id + '_annotation_freeTextEdit', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-freetext-separator-container' });\n items.push({ template: stampTemplate, align: 'Left', cssClass: 'e-pv-stamp-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-stamp-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ template: signTemplate, align: 'Left', cssClass: 'e-pv-sign-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-sign-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-inkannotation-icon e-pv-icon', className: 'e-pv-annotation-ink-container', id: this.pdfViewer.element.id + '_annotation_ink', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-ink-separator-container' });\n items.push({ template: fontFamilyTemplate, align: 'Left', cssClass: 'e-pv-fontfamily-container' });\n items.push({ template: fontSizeTemplate, align: 'Left', cssClass: 'e-pv-fontsize-container' });\n items.push({ template: textColorTemplate, align: 'Left', cssClass: 'e-pv-text-color-container' });\n items.push({ template: alignmentTemplate, align: 'Left', cssClass: 'e-pv-alignment-container' });\n items.push({ template: textPropertiesTemplate, align: 'Left', cssClass: 'e-pv-text-properties-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-text-separator-container' });\n items.push({ template: colorTemplate, align: 'Left', cssClass: 'e-pv-color-template-container' });\n items.push({ template: strokeTemplate, align: 'Left', cssClass: 'e-pv-stroke-template-container' });\n items.push({ template: thicknessTemplate, align: 'Left', cssClass: 'e-pv-thickness-template-container' });\n items.push({ template: opacityTemplate, align: 'Left', cssClass: 'e-pv-opacity-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-opacity-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-tools-close-icon e-pv-icon', className: 'e-pv-annotation-tools-close-container', id: this.pdfViewer.element.id + '_annotation_close', align: 'Right' });\n return items;\n };\n AnnotationToolbar.prototype.createSignContainer = function () {\n var _this = this;\n this.handWrittenSignatureItem = this.pdfViewerBase.getElement('_annotation_signature');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_annotation_signature'), this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText'));\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n if (this.pdfViewer.handWrittenSignatureSettings.signatureItem.length === 0 || this.pdfViewer.handWrittenSignatureSettings.signatureItem.length == 2) {\n items = [\n {\n text: 'ADD SIGNATURE'\n },\n {\n separator: true\n },\n {\n text: 'ADD INITIAL'\n }\n ];\n }\n else {\n if (this.pdfViewer.handWrittenSignatureSettings.signatureItem[0] === 'Signature') {\n items = [\n {\n text: 'ADD SIGNATURE'\n }\n ];\n }\n else {\n items = [\n {\n text: 'ADD INITIAL'\n }\n ];\n }\n }\n var saveOptions = {\n items: items,\n iconCss: 'e-pv-handwritten-icon e-pv-icon',\n cssClass: 'e-pv-handwritten-popup',\n open: function (args) {\n proxy.openSignature();\n },\n beforeItemRender: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n if (args.element && args.element.className.indexOf(\"e-separator\") !== -1) {\n args.element.style.margin = \"8px 0\";\n args.element.setAttribute('role', 'menuitem');\n args.element.setAttribute('aria-label', 'separator');\n }\n if (args.item.text === 'ADD SIGNATURE') {\n args.element.innerHTML = '';\n _this.saveSignatureCount = 0;\n for (var collection = _this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (_this.saveSignatureCount < _this.pdfViewerBase.signatureModule.getSaveLimit(_this.pdfViewer.handWrittenSignatureSettings.saveSignatureLimit)) {\n args.element.style.display = 'block';\n // eslint-disable-next-line\n var signatureCollection = _this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n // eslint-disable-next-line\n var collectionKey = signatureCollection.image[0].imageData;\n var signatureID = signatureCollection.image[0].id.split('_')[1];\n if (!signatureCollection.isInitial && collectionKey !== '') {\n // eslint-disable-next-line max-len\n var signatureContainer = createElement('div');\n signatureContainer.id = 's' + signatureID;\n signatureContainer.style.display = 'block';\n signatureContainer.style.paddingBottom = '10px';\n var signatureSpan = createElement('span');\n signatureSpan.id = 'sign_border_' + signatureID;\n signatureSpan.classList.add('e-pv-align-border');\n var signatureImage = void 0;\n if (signatureCollection.image[0].signatureType === 'SignatureText') {\n signatureImage = createElement('div');\n signatureImage.classList.add('e-pv-align-border-div');\n signatureImage.innerText = collectionKey;\n signatureImage.style.fontFamily = signatureCollection.image[0].fontFamily;\n signatureImage.style.fontSize = '15px';\n signatureImage.style.display = 'inline-flex';\n signatureImage.style.alignItems = 'center';\n signatureImage.style.position = 'relative';\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.style.width = '80px';\n signatureImage.style.height = '53px';\n signatureImage.style.overflow = 'hidden';\n signatureImage.style.textOverflow = 'ellipsis';\n signatureImage.style.paddingLeft = '11px';\n }\n else {\n signatureImage = createElement('img');\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.src = collectionKey;\n signatureImage.width = 80;\n signatureImage.height = 32;\n signatureImage.classList.add('e-pv-signatureimage');\n signatureImage.style.paddingLeft = '20px';\n signatureImage.style.paddingRight = '18px';\n signatureImage.style.paddingTop = '12px';\n signatureImage.style.paddingBottom = '12px';\n signatureImage.style.boxSizing = 'content-box';\n signatureImage.setAttribute('alt', 'Saved Signature');\n }\n signatureImage.addEventListener('mouseover', _this.hoverSignatureImage.bind(_this));\n signatureImage.addEventListener('mouseleave', _this.leaveSignatureImage.bind(_this));\n var signatureDeleteSpan = createElement('span');\n signatureDeleteSpan.id = 'delete_' + signatureID;\n signatureDeleteSpan.classList.add('e-pv-delete');\n signatureDeleteSpan.classList.add('e-pv-align');\n signatureSpan.append(signatureImage);\n signatureSpan.append(signatureDeleteSpan);\n signatureContainer.append(signatureSpan);\n args.element.appendChild(signatureContainer);\n args.element.style.pointerEvents = 'auto';\n args.element.style.background = 'none';\n _this.pdfViewerBase.getElement('_annotation_signature-popup').style.width = '206px';\n _this.saveSignatureCount++;\n }\n }\n }\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickSignature.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n if (args.item.text === 'ADD INITIAL') {\n _this.saveInitialCount = 0;\n args.element.innerHTML = '';\n for (var collection = _this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (_this.saveInitialCount < _this.pdfViewerBase.signatureModule.getSaveLimit(_this.pdfViewer.handWrittenSignatureSettings.saveInitialLimit)) {\n // eslint-disable-next-line\n var signatureCollection = _this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n // eslint-disable-next-line\n var collectionKey = signatureCollection.image[0].imageData;\n var signatureID = signatureCollection.image[0].id.split('_')[1];\n if (signatureCollection.isInitial && collectionKey !== '') {\n var signatureContainer = createElement('div');\n signatureContainer.id = 's' + signatureID;\n signatureContainer.style.display = 'block';\n signatureContainer.style.paddingBottom = '10px';\n var signatureSpan = createElement('span');\n signatureSpan.id = 'sign_border_' + signatureID;\n signatureSpan.classList.add('e-pv-align-border');\n var signatureImage = void 0;\n if (signatureCollection.image[0].signatureType === 'SignatureText') {\n signatureImage = createElement('div');\n signatureImage.classList.add('e-pv-align-border-div');\n signatureImage.innerText = collectionKey;\n signatureImage.style.fontFamily = signatureCollection.image[0].fontFamily;\n signatureImage.style.fontSize = '15px';\n signatureImage.style.display = 'inline-flex';\n signatureImage.style.alignItems = 'center';\n signatureImage.style.position = 'relative';\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.style.width = '80px';\n signatureImage.style.height = '53px';\n signatureImage.style.overflow = 'hidden';\n signatureImage.style.textOverflow = 'ellipsis';\n signatureImage.style.paddingLeft = '11px';\n }\n else {\n signatureImage = createElement('img');\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.src = collectionKey;\n signatureImage.width = 80;\n signatureImage.height = 32;\n signatureImage.classList.add('e-pv-signatureimage');\n signatureImage.style.paddingLeft = '20px';\n signatureImage.style.paddingRight = '18px';\n signatureImage.style.paddingTop = '12px';\n signatureImage.style.paddingBottom = '12px';\n signatureImage.style.boxSizing = 'content-box';\n signatureImage.setAttribute('alt', 'Saved Initial');\n }\n signatureImage.addEventListener('mouseover', _this.hoverSignatureImage.bind(_this));\n signatureImage.addEventListener('mouseleave', _this.leaveSignatureImage.bind(_this));\n signatureImage.width = 80;\n signatureImage.height = 32;\n var signatureDeleteSpan = createElement('span');\n signatureDeleteSpan.id = 'delete_' + signatureID;\n signatureDeleteSpan.classList.add('e-pv-delete');\n signatureDeleteSpan.classList.add('e-pv-align');\n signatureSpan.append(signatureImage);\n signatureSpan.append(signatureDeleteSpan);\n signatureContainer.append(signatureSpan);\n args.element.appendChild(signatureContainer);\n // eslint-disable-next-line max-len\n args.element.style.pointerEvents = 'auto';\n args.element.style.background = 'none';\n _this.pdfViewerBase.getElement('_annotation_signature-popup').style.width = '206px';\n _this.saveInitialCount++;\n }\n }\n }\n _this.isSignatureIteam = false;\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('HandwrittenInitialDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickInitial.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n },\n select: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n }\n };\n var drpDownBtn = new DropDownButton(saveOptions);\n if (this.pdfViewer.enableRtl) {\n drpDownBtn.enableRtl = this.pdfViewer.enableRtl;\n }\n drpDownBtn.appendTo(this.handWrittenSignatureItem);\n };\n AnnotationToolbar.prototype.updateSignatureCount = function () {\n var count = 0;\n this.openSignaturePopup = false;\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection;\n for (var collection = 0; collection < signatureCollection.length; collection++) {\n // eslint-disable-next-line\n var colletionList = signatureCollection[collection];\n if (colletionList.image[0].imageData === '') {\n count++;\n }\n }\n };\n AnnotationToolbar.prototype.openSignature = function () {\n this.saveInitialCount = 0;\n this.saveSignatureCount = 0;\n for (var collection = this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (this.saveSignatureCount < this.pdfViewerBase.signatureModule.getSaveLimit(this.pdfViewer.handWrittenSignatureSettings.saveSignatureLimit)) {\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n if (signatureCollection.image[0].imageData !== '') {\n if (!signatureCollection.isInitial) {\n this.saveSignatureCount++;\n // eslint-disable-next-line\n var addedSignature = document.getElementById('sign_border_' + signatureCollection.image[0].id.split('_')[1] + '');\n // eslint-disable-next-line\n var deleteSignature = document.getElementById('delete_' + signatureCollection.image[0].id.split('_')[1] + '');\n deleteSignature.style.backgroundClip = 'content-box';\n addedSignature.addEventListener('click', this.renderAddedSignature.bind(this));\n deleteSignature.addEventListener('click', this.deleteSavedSign.bind(this));\n deleteSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n deleteSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n }\n }\n }\n }\n for (var collection = this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (this.saveInitialCount < this.pdfViewerBase.signatureModule.getSaveLimit(this.pdfViewer.handWrittenSignatureSettings.saveInitialLimit)) {\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n if (signatureCollection.image[0].imageData !== '') {\n if (signatureCollection.isInitial) {\n this.saveInitialCount++;\n // eslint-disable-next-line\n var addedSignature = document.getElementById('sign_border_' + signatureCollection.image[0].id.split('_')[1] + '');\n // eslint-disable-next-line\n var deleteSignature = document.getElementById('delete_' + signatureCollection.image[0].id.split('_')[1] + '');\n deleteSignature.style.backgroundClip = 'content-box';\n addedSignature.addEventListener('click', this.renderAddedSignature.bind(this));\n deleteSignature.addEventListener('click', this.deleteSavedSign.bind(this));\n deleteSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n deleteSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n }\n }\n }\n }\n };\n AnnotationToolbar.prototype.hoverSignatureDelete = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.add('e-pv-signaturehover');\n eventTarget.style.cursor = 'pointer';\n }\n };\n AnnotationToolbar.prototype.hoverInitialBtn = function (event) {\n var eventTarget = event.target;\n var currentFieldID = '';\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n currentFieldID = eventTarget.id;\n }\n else {\n currentFieldID = isNullOrUndefined(event.path) ? event.composedPath()[0].id : event.path[0].id;\n }\n if (currentFieldID !== 'sign_' + currentFieldID.split(\"_\")[1] && currentFieldID !== 'delete_' + currentFieldID.split(\"_\")[1]) {\n var liElement = document.getElementById(eventTarget.id);\n if (isNullOrUndefined(liElement)) {\n liElement = document.getElementById(eventTarget.parentElement.id);\n }\n if (liElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.style.background = 'transparent';\n liElement.style.cursor = 'default';\n }\n else if (liElement.parentElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.parentElement.style.background = 'transparent';\n liElement.parentElement.style.cursor = 'default';\n }\n }\n };\n AnnotationToolbar.prototype.hoverSignatureImage = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.add('e-pv-signaturehover');\n eventTarget.classList.remove('e-pv-signatureimage');\n eventTarget.style.cursor = 'pointer';\n }\n };\n AnnotationToolbar.prototype.leaveSignatureDelete = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.remove('e-pv-signaturehover');\n if (eventTarget.children[0] && eventTarget.children[0].tagName === 'IMG') {\n eventTarget.children[0].classList.remove('e-pv-signaturehover');\n }\n eventTarget.style.cursor = 'default';\n }\n };\n AnnotationToolbar.prototype.clickSignature = function () {\n this.pdfViewerBase.isInitialField = false;\n this.addSignature();\n };\n AnnotationToolbar.prototype.clickInitial = function () {\n this.pdfViewerBase.isInitialField = true;\n this.addSignature();\n };\n AnnotationToolbar.prototype.leaveSignatureImage = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.remove('e-pv-signaturehover');\n if (eventTarget.tagName === 'IMG')\n eventTarget.classList.add('e-pv-signatureimage');\n if (eventTarget.children[0] && eventTarget.children[0].tagName === 'IMG') {\n eventTarget.children[0].classList.remove('e-pv-signaturehover');\n eventTarget.children[0].classList.add('e-pv-signatureimage');\n }\n eventTarget.style.cursor = 'default';\n }\n };\n AnnotationToolbar.prototype.addSignature = function () {\n this.deselectAllItems();\n this.showSignaturepanel();\n };\n AnnotationToolbar.prototype.renderAddedSignature = function () {\n this.pdfViewerBase.isAddedSignClicked = true;\n this.isSavedSignatureClicked = true;\n this.pdfViewerBase.signatureModule.RenderSavedSignature();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.deleteSavedSign = function (event) {\n event.stopPropagation();\n // eslint-disable-next-line\n var signaturecollection = this.pdfViewerBase.signatureModule.signaturecollection;\n for (var collection = signaturecollection.length; collection > 0; collection--) {\n if (event.target.parentElement.children[0].id === 'sign_' + signaturecollection[collection - 1].image[0].id.split('_')[1]) {\n // eslint-disable-next-line\n var RemoveSignature = signaturecollection[collection - 1];\n RemoveSignature.image[0].imageData = '';\n this.pdfViewerBase.signatureModule.signaturecollection.splice(collection - 1, 1);\n break;\n }\n }\n event.target.parentElement.remove();\n };\n AnnotationToolbar.prototype.getTemplate = function (elementName, id, className) {\n var element = createElement(elementName, { id: this.pdfViewer.element.id + id });\n if (className) {\n element.className = className;\n }\n return element.outerHTML;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createStampContainer = function () {\n var _this = this;\n this.stampElement = this.pdfViewerBase.getElement('_annotation_stamp');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_annotation_stamp'), this.pdfViewer.localeObj.getConstant('Add Stamp'));\n var contextMenuElement = createElement('ul', { id: this.pdfViewer.element.id + 'contextMenuElement' });\n this.pdfViewerBase.getElement('_annotation_stamp').appendChild(contextMenuElement);\n var items = [];\n if (this.pdfViewer.stampSettings.dynamicStamps && this.pdfViewer.stampSettings.dynamicStamps.length > 0) {\n var dynamicStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Dynamic'), label: 'Dynamic', items: dynamicStamps_1 });\n this.pdfViewer.stampSettings.dynamicStamps.forEach(function (stampItem, index) {\n var name = DynamicStampItem[stampItem];\n switch (name) {\n case 'NotApproved':\n name = 'Not Approved';\n break;\n }\n dynamicStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.stampSettings.signStamps && this.pdfViewer.stampSettings.signStamps.length > 0) {\n var signStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Sign Here'), label: 'Sign Here', items: signStamps_1 });\n this.pdfViewer.stampSettings.signStamps.forEach(function (stampItem, index) {\n var name = SignStampItem[stampItem];\n switch (name) {\n case 'InitialHere':\n name = 'Initial Here';\n break;\n case 'SignHere':\n name = 'Sign Here';\n break;\n }\n signStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.stampSettings.standardBusinessStamps && this.pdfViewer.stampSettings.standardBusinessStamps.length > 0) {\n var standardsBusinessStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Standard Business'), label: 'Standard Business', items: standardsBusinessStamps_1 });\n this.pdfViewer.stampSettings.standardBusinessStamps.forEach(function (stampItem, index) {\n var name = StandardBusinessStampItem[stampItem];\n switch (name) {\n case 'NotApproved':\n name = 'Not Approved';\n break;\n case 'ForPublicRelease':\n name = 'For Public Release';\n break;\n case 'NotForPublicRelease':\n name = 'Not For Public Release';\n break;\n case 'ForComment':\n name = 'For Comment';\n break;\n case 'PreliminaryResults':\n name = 'Preliminary Results';\n break;\n case 'InformationOnly':\n name = 'Information Only';\n break;\n }\n standardsBusinessStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.customStampSettings.enableCustomStamp && !Browser.isDevice) {\n if (items.length > 0) {\n items.push({ separator: true });\n }\n items.push({ text: this.pdfViewer.localeObj.getConstant('Custom Stamp'), label: 'Custom Stamp', items: [] });\n }\n this.stampMenu = [\n {\n iconCss: 'e-pv-stamp-icon e-pv-icon',\n items: items\n }\n ];\n var menuOptions = {\n items: this.stampMenu,\n cssClass: 'e-custom-scroll',\n showItemOnClick: true,\n enableScrolling: true,\n beforeOpen: function (args) {\n _this.resetFreeTextAnnot();\n if (args.parentItem.text === '' && _this.pdfViewer.customStampSettings.isAddToMenu && args.items.length > 0) {\n // eslint-disable-next-line\n var currentElements = null;\n for (var i = 0; i < args.items.length; i++) {\n if (args.items[i].text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n args.items[i].items = [];\n currentElements = args.items[i];\n break;\n }\n }\n // eslint-disable-next-line\n var elements = _this.pdfViewerBase.customStampCollection;\n // eslint-disable-next-line\n var stampElements = _this.pdfViewer.customStampSettings.customStamps;\n if (elements.length === 0 && stampElements && stampElements.length > 0) {\n for (var n = 0; n < stampElements.length; n++) {\n // eslint-disable-next-line max-len\n elements.push({ customStampName: stampElements[n].customStampName, customStampImageSource: stampElements[n].customStampImageSource });\n }\n }\n for (var m = 0; m < elements.length; m++) {\n if (currentElements != null) {\n currentElements.items.push({ text: elements[m].customStampName });\n for (var i = 0; i < args.items.length; i++) {\n if (args.items[i].text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n var liElem = args.element.children[i];\n if (liElem && !liElem.childElementCount) {\n var span = document.createElement('span');\n span.className = 'e-icons e-caret e-menu-caret-icon';\n liElem.appendChild(span);\n liElem.setAttribute('aria-haspopup', 'true');\n liElem.setAttribute('aria-expanded', 'false');\n }\n }\n }\n }\n }\n }\n if (args.parentItem.text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n // eslint-disable-next-line\n var stampElements = _this.pdfViewer.customStampSettings.customStamps;\n if (stampElements && stampElements.length > 10) {\n closest(args.element, '.e-menu-wrapper').style.height = '350px';\n }\n }\n _this.stampParentID = args.parentItem.text;\n _this.menuItems.showItemOnClick = false;\n },\n beforeClose: function (args) {\n // eslint-disable-next-line max-len\n if ((args.parentItem && args.parentItem.text !== _this.pdfViewer.localeObj.getConstant('Custom Stamp') && args.parentItem.text !== 'Standard Business' && args.parentItem.text !== 'Dynamic' && args.parentItem.text !== 'Sign Here') || !args.parentItem) {\n _this.menuItems.showItemOnClick = true;\n }\n },\n select: function (args) {\n _this.pdfViewerBase.isAlreadyAdded = false;\n if (args.item.text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n _this.updateInteractionTools();\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n // eslint-disable-next-line\n var stampImage = document.getElementById(_this.pdfViewer.element.id + '_stampElement');\n if (stampImage) {\n stampImage.click();\n }\n _this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n // eslint-disable-next-line max-len\n }\n else if (_this.stampParentID === _this.pdfViewer.localeObj.getConstant('Custom Stamp') && args.item.text !== '') {\n // eslint-disable-next-line\n var elements = _this.pdfViewerBase.customStampCollection;\n for (var n = 0; n < elements.length; n++) {\n if (elements[n].customStampName === args.item.text) {\n _this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = args.item.text;\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n _this.pdfViewerBase.stampAdded = true;\n _this.pdfViewerBase.isAlreadyAdded = true;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(elements[n].customStampImageSource);\n _this.pdfViewerBase.stampAdded = false;\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (args.item.text !== _this.pdfViewer.localeObj.getConstant('Dynamic') && args.item.text !== '' && args.item.text !== 'Standard Business' && (_this.stampParentID === 'Sign Here' || args.item.text !== 'Sign Here')) {\n _this.updateInteractionTools();\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n _this.pdfViewerBase.stampAdded = true;\n _this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n if (_this.stampParentID === _this.pdfViewer.localeObj.getConstant('Dynamic')) {\n _this.pdfViewerBase.isDynamicStamp = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.retrieveDynamicStampAnnotation(args.item.label);\n }\n else {\n _this.pdfViewerBase.isDynamicStamp = false;\n _this.pdfViewer.annotationModule.stampAnnotationModule.retrievestampAnnotation(args.item.label);\n }\n if (Browser.isDevice) {\n _this.stampToolMobileForMobile(_this.pdfViewer.element.id + '_annotation_stamp');\n }\n }\n }\n };\n this.menuItems = new Menu(menuOptions, '#' + this.pdfViewer.element.id + 'contextMenuElement');\n contextMenuElement.parentElement.classList.add('e-pv-stamp');\n if (this.pdfViewer.enableRtl) {\n this.menuItems.enableRtl = true;\n }\n return contextMenuElement;\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.createCustomStampElement = function () {\n // eslint-disable-next-line\n var stampImage = createElement('input', { id: this.pdfViewer.element.id + '_stampElement', attrs: { 'type': 'file' } });\n stampImage.setAttribute('accept', '.jpg,.jpeg,.png');\n stampImage.style.position = 'absolute';\n stampImage.style.left = '0px';\n stampImage.style.top = '0px';\n stampImage.style.visibility = 'hidden';\n document.body.appendChild(stampImage);\n stampImage.addEventListener('change', this.addStampImage);\n };\n AnnotationToolbar.prototype.checkStampAnnotations = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode && this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations) {\n for (var i = 0; i < this.pdfViewer.selectedItems.annotations.length; i++) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[i];\n // eslint-disable-next-line\n if (annotation && !annotation.annotName && !annotation.author && (annotation.shapeAnnotationType !== 'Shape' || annotation.shapeAnnotationType !== 'Image')) {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.annotation.renderAnnotations(annotation.pageIndex, null, null, null);\n this.pdfViewer.clearSelection(annotation.pageIndex);\n }\n }\n }\n };\n AnnotationToolbar.prototype.createDropDowns = function (isPath) {\n var _this = this;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.shapeElement = this.pdfViewerBase.getElement('_annotation_shapes');\n var shapeToolbar = this.createShapeOptions(this.shapeElement.id, true);\n // eslint-disable-next-line max-len\n this.shapeDropDown = this.createDropDownButton(this.shapeElement, 'e-pv-annotation-shape-icon', shapeToolbar.element, this.pdfViewer.localeObj.getConstant('Add Shapes'));\n this.calibrateElement = this.pdfViewerBase.getElement('_annotation_calibrate');\n var calibrateToolbar = this.createShapeOptions(this.calibrateElement.id, false);\n // eslint-disable-next-line max-len\n this.calibrateDropDown = this.createDropDownButton(this.calibrateElement, 'e-pv-annotation-calibrate-icon', calibrateToolbar.element, this.pdfViewer.localeObj.getConstant('Calibrate'));\n }\n if (!isPath) {\n this.colorDropDownElement = this.pdfViewerBase.getElement('_annotation_color');\n this.colorPalette = this.createColorPicker(this.colorDropDownElement.id);\n this.colorPalette.change = this.onColorPickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.colorDropDown = this.createDropDownButton(this.colorDropDownElement, 'e-pv-annotation-color-icon', this.colorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Color edit'));\n this.colorDropDown.beforeOpen = this.colorDropDownBeforeOpen.bind(this);\n this.colorDropDown.open = this.colorDropDownOpen.bind(this);\n this.pdfViewerBase.getElement('_annotation_color-popup').addEventListener('click', this.onColorPickerCancelClick.bind(this));\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.strokeDropDownElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.strokeColorPicker = this.createColorPicker(this.strokeDropDownElement.id);\n this.strokeColorPicker.change = this.onStrokePickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(this.strokeDropDownElement, 'e-pv-annotation-stroke-icon', this.strokeColorPicker.element.parentElement, this.pdfViewer.localeObj.getConstant('Stroke edit'));\n this.strokeDropDown.beforeOpen = this.strokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = this.strokeDropDownOpen.bind(this);\n this.pdfViewerBase.getElement('_annotation_stroke-popup').addEventListener('click', this.onStrokePickerCancelClick.bind(this));\n this.thicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n var thicknessContainer = this.createThicknessSlider(this.thicknessElement.id);\n // eslint-disable-next-line max-len\n this.thicknessDropDown = this.createDropDownButton(this.thicknessElement, 'e-pv-annotation-thickness-icon', thicknessContainer, this.pdfViewer.localeObj.getConstant('Change thickness'));\n this.thicknessDropDown.beforeOpen = this.thicknessDropDownBeforeOpen.bind(this);\n this.thicknessSlider.change = this.thicknessChange.bind(this);\n this.thicknessSlider.changed = this.thicknessChange.bind(this);\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n }\n if (!isPath) {\n this.opacityDropDownElement = this.pdfViewerBase.getElement('_annotation_opacity');\n var sliderContainer = this.createSlider(this.opacityDropDownElement.id);\n // eslint-disable-next-line max-len\n this.opacityDropDown = this.createDropDownButton(this.opacityDropDownElement, 'e-pv-annotation-opacity-icon', sliderContainer, this.pdfViewer.localeObj.getConstant('Opacity edit'));\n this.opacityDropDown.beforeOpen = this.opacityDropDownBeforeOpen.bind(this);\n this.opacitySlider.change = this.opacityChange.bind(this);\n this.opacitySlider.changed = this.opacityChange.bind(this);\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.fontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.createDropDownListForFamily(this.fontFamilyElement);\n //this.fontFamilyElement.style.textAlign = 'left';\n this.fontFamilyElement.addEventListener('change', function () {\n _this.onFontFamilyChange.bind(_this);\n });\n this.fontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.createDropDownListForSize(this.fontSizeElement);\n this.fontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.fontColorPalette = this.createColorPicker(this.fontColorElement.id);\n this.fontColorPalette.change = this.onFontColorChange.bind(this);\n // eslint-disable-next-line max-len\n this.fontColorDropDown = this.createDropDownButton(this.fontColorElement, 'e-pv-annotation-textcolor-icon', this.fontColorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Font color'));\n this.textAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.alignmentToolbar = this.createShapeOptions(this.textAlignElement.id, undefined, true);\n // eslint-disable-next-line max-len\n this.textAlignDropDown = this.createDropDownButton(this.textAlignElement, 'e-pv-annotation-textalign-icon', this.alignmentToolbar.element, this.pdfViewer.localeObj.getConstant('Text Align'));\n this.textAlignDropDown.beforeOpen = this.textAlignDropDownBeforeOpen.bind(this);\n this.textPropElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.propertiesToolbar = this.createShapeOptions(this.textPropElement.id, undefined, false, true);\n // eslint-disable-next-line max-len\n this.textPropertiesDropDown = this.createPropDropDownButton(this.textPropElement, 'e-pv-annotation-textprop-icon', this.propertiesToolbar.element, this.pdfViewer.localeObj.getConstant('Text Properties'));\n this.textPropertiesDropDown.beforeOpen = this.textPropertiesDropDownBeforeOpen.bind(this);\n }\n };\n AnnotationToolbar.prototype.mobileColorpicker = function (id) {\n var _this = this;\n this.opacityDropDownElement = this.pdfViewerBase.getElement('_annotation_opacity');\n var sliderContainer = this.createSlider(this.opacityDropDownElement.id);\n // eslint-disable-next-line max-len\n this.opacityDropDown = this.createDropDownButton(this.opacityDropDownElement, 'e-pv-annotation-opacity-icon', sliderContainer, this.pdfViewer.localeObj.getConstant('Opacity edit'));\n this.opacityDropDown.beforeOpen = this.opacityDropDownBeforeOpen.bind(this);\n this.opacitySlider.change = this.opacityChange.bind(this);\n this.opacitySlider.changed = this.opacityChange.bind(this);\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n if (id === this.pdfViewer.element.id + '_annotation_shapes') {\n id = this.pdfViewer.element.id + '_annotation_shapesIcon';\n }\n else if (id === this.pdfViewer.element.id + '_annotation_calibrate') {\n id = this.pdfViewer.element.id + '_annotation_calibrateIcon';\n }\n else if (id === this.pdfViewer.element.id + '_highlight') {\n id = this.pdfViewer.element.id + '_highlightIcon';\n }\n else if (id === this.pdfViewer.element.id + '_underline') {\n id = this.pdfViewer.element.id + '_underlineIcon';\n }\n else if (id === this.pdfViewer.element.id + '_strikethrough') {\n id = this.pdfViewer.element.id + '_strikethroughIcon';\n }\n // eslint-disable-next-line max-len\n if (id === this.pdfViewer.element.id + '_annotation_shapesIcon' || id === this.pdfViewer.element.id + '_annotation_calibrateIcon' || id === this.pdfViewer.element.id + '_annotation_freeTextEdit' ||\n // eslint-disable-next-line max-len\n id === this.pdfViewer.element.id + '_highlightIcon' || id === this.pdfViewer.element.id + '_underlineIcon' || id === this.pdfViewer.element.id + '_strikethroughIcon' || id === this.pdfViewer.element.id + '_annotation_inkIcon' || id === this.pdfViewer.element.id + '_annotation_handwrittenSign') {\n if (id !== this.pdfViewer.element.id + '_annotation_handwrittenSign' && id !== this.pdfViewer.element.id + '_annotation_inkIcon') {\n this.colorDropDownElement = this.pdfViewerBase.getElement('_annotation_color');\n this.colorPalette = this.createColorPicker(this.colorDropDownElement.id);\n this.colorPalette.change = this.onColorPickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.colorDropDown = this.createDropDownButton(this.colorDropDownElement, 'e-pv-annotation-color-icon', this.colorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Color edit'));\n this.colorDropDown.beforeOpen = this.colorDropDownBeforeOpen.bind(this);\n this.colorDropDown.open = this.colorDropDownOpen.bind(this);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.getElement('_annotation_color-popup').addEventListener('click', this.onColorPickerCancelClick.bind(this));\n }\n if (id === this.pdfViewer.element.id + '_annotation_freeTextEdit') {\n this.fontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.createDropDownListForFamily(this.fontFamilyElement);\n this.fontFamilyElement.style.textAlign = 'left';\n this.fontFamilyElement.addEventListener('change', function () { _this.onFontFamilyChange.bind(_this); });\n this.fontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.createDropDownListForSize(this.fontSizeElement);\n this.fontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.fontColorPalette = this.createColorPicker(this.fontColorElement.id);\n this.fontColorPalette.change = this.onFontColorChange.bind(this);\n // eslint-disable-next-line max-len\n this.fontColorDropDown = this.createDropDownButton(this.fontColorElement, 'e-pv-annotation-textcolor-icon', this.fontColorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Font color'));\n this.textAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.alignmentToolbar = this.createShapeOptions(this.textAlignElement.id, undefined, true);\n // eslint-disable-next-line max-len\n this.textAlignDropDown = this.createDropDownButton(this.textAlignElement, 'e-pv-annotation-textalign-icon', this.alignmentToolbar.element, this.pdfViewer.localeObj.getConstant('Text Align'));\n this.textAlignDropDown.beforeOpen = this.textAlignDropDownBeforeOpen.bind(this);\n this.textPropElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.propertiesToolbar = this.createShapeOptions(this.textPropElement.id, undefined, false, true);\n // eslint-disable-next-line max-len\n this.textPropertiesDropDown = this.createPropDropDownButton(this.textPropElement, 'e-pv-annotation-textprop-icon', this.propertiesToolbar.element, this.pdfViewer.localeObj.getConstant('Text Properties'));\n this.textPropertiesDropDown.beforeOpen = this.textPropertiesDropDownBeforeOpen.bind(this);\n }\n // eslint-disable-next-line max-len\n if (id === this.pdfViewer.element.id + '_annotation_shapesIcon' || id === this.pdfViewer.element.id + '_annotation_calibrateIcon' || id === this.pdfViewer.element.id + '_annotation_freeTextEdit' ||\n id === this.pdfViewer.element.id + '_annotation_inkIcon' || id === this.pdfViewer.element.id + '_annotation_handwrittenSign') {\n this.thicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n var thicknessContainer = this.createThicknessSlider(this.thicknessElement.id);\n // eslint-disable-next-line max-len\n this.thicknessDropDown = this.createDropDownButton(this.thicknessElement, 'e-pv-annotation-thickness-icon', thicknessContainer, this.pdfViewer.localeObj.getConstant('Change thickness'));\n this.thicknessDropDown.beforeOpen = this.thicknessDropDownBeforeOpen.bind(this);\n this.thicknessSlider.change = this.thicknessChange.bind(this);\n this.thicknessSlider.changed = this.thicknessChange.bind(this);\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n this.strokeDropDownElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.strokeColorPicker = this.createColorPicker(this.strokeDropDownElement.id);\n this.strokeColorPicker.change = this.onStrokePickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(this.strokeDropDownElement, 'e-pv-annotation-stroke-icon', this.strokeColorPicker.element.parentElement, this.pdfViewer.localeObj.getConstant('Stroke edit'));\n this.strokeDropDown.beforeOpen = this.strokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = this.strokeDropDownOpen.bind(this);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.getElement('_annotation_stroke-popup').addEventListener('click', this.onStrokePickerCancelClick.bind(this));\n }\n }\n };\n AnnotationToolbar.prototype.opacityDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.left = '0px';\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight) + 'px';\n }\n else {\n this.calculateToolbarPosition(args);\n }\n };\n AnnotationToolbar.prototype.onColorPickerCancelClick = function (event) {\n if (event.target.classList.contains('e-cancel')) {\n this.colorDropDown.toggle();\n }\n };\n AnnotationToolbar.prototype.onStrokePickerCancelClick = function (event) {\n if (event.target.classList.contains('e-cancel')) {\n this.strokeDropDown.toggle();\n }\n };\n AnnotationToolbar.prototype.colorDropDownBeforeOpen = function (args) {\n this.colorPalette.noColor = false;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.colorPalette.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.color;\n }\n else {\n this.setCurrentColorInPicker();\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.colorPalette.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;\n this.colorPalette.noColor = true;\n }\n else {\n this.setCurrentColorInPicker();\n }\n this.colorPalette.refresh();\n this.updateColorInIcon(this.colorDropDownElement, this.colorPalette.value);\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.setCurrentColorInPicker = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor);\n break;\n case 'Underline':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor);\n break;\n case 'Strikethrough':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor);\n break;\n }\n }\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotationModule.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.lineFillColor);\n break;\n case 'Arrow':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.arrowFillColor);\n break;\n case 'Rectangle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.rectangleFillColor);\n break;\n case 'Circle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.circleFillColor);\n break;\n case 'Polygon':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.polygonFillColor);\n break;\n }\n }\n if (this.colorDropDownElement) {\n this.updateColorInIcon(this.colorDropDownElement, this.colorPalette.value);\n }\n }\n };\n AnnotationToolbar.prototype.colorDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight / 2) + 'px';\n }\n this.popupPosition(args, this.colorDropDownElement);\n this.colorPalette.refresh();\n };\n AnnotationToolbar.prototype.strokeDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n }\n else {\n this.setCurrentStrokeColorInPicker();\n }\n this.strokeColorPicker.refresh();\n this.updateColorInIcon(this.strokeDropDownElement, this.strokeColorPicker.value);\n this.updateInkannotationItems();\n };\n AnnotationToolbar.prototype.setCurrentStrokeColorInPicker = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotationModule.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.lineStrokeColor);\n break;\n case 'Arrow':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.arrowStrokeColor);\n break;\n case 'Rectangle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.rectangleStrokeColor);\n break;\n case 'Circle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.circleStrokeColor);\n break;\n case 'Polygon':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.polygonStrokeColor);\n break;\n }\n }\n }\n };\n AnnotationToolbar.prototype.strokeDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight / 2) + 'px';\n }\n this.popupPosition(args, this.strokeDropDownElement);\n this.strokeColorPicker.refresh();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontColorChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.pdfViewer.annotation.modifyFontColor(currentColor);\n }\n else {\n this.pdfViewer.freeTextSettings.fontColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n if (isBlazor()) {\n this.fontColorElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-textcolor-container');\n this.updateColorInIcon(this.fontColorElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.fontColorElement, currentColor);\n this.fontColorDropDown.toggle();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontFamilyChange = function (args) {\n var currentValue;\n if (!isBlazor()) {\n currentValue = (args && args.fontFamily && args.fontFamily.value) ? args.fontFamily.value : '';\n }\n else {\n currentValue = args;\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyFontFamily(currentValue);\n }\n else {\n this.pdfViewer.freeTextSettings.fontFamily = currentValue;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontSizeChange = function (args, isInteracted) {\n var currentValue;\n if (!isBlazor()) {\n currentValue = (args && args.fontSize && args.fontSize.value) ? args.fontSize.value : '';\n }\n else {\n currentValue = args;\n }\n var fontSize = parseFloat(currentValue);\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyFontSize(fontSize, isInteracted);\n }\n else {\n this.pdfViewer.freeTextSettings.fontSize = fontSize;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n };\n AnnotationToolbar.prototype.textAlignDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.element.getElementsByTagName('button') && args.element.getElementsByTagName('button').length > 0) {\n // eslint-disable-next-line\n var dropDownOptions = args.element.getElementsByTagName('button');\n // eslint-disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n for (var n = 0; n < dropDownOptions.length; n++) {\n if (dropDownOptions[n]) {\n dropDownOptions[n].classList.remove('textprop-option-active');\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_left_align') && selectedAnnotation.textAlign === 'Left') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_right_align') && selectedAnnotation.textAlign === 'Right') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_center_align') && selectedAnnotation.textAlign === 'Center') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_justify_align') && selectedAnnotation.textAlign === 'Justify') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n }\n }\n }\n }\n };\n AnnotationToolbar.prototype.textPropertiesDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.element.getElementsByTagName('button') && args.element.getElementsByTagName('button').length > 0) {\n // eslint-disable-next-line\n var dropDownOptions = args.element.getElementsByTagName('button');\n // eslint-disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n for (var n = 0; n < dropDownOptions.length; n++) {\n if (dropDownOptions[n]) {\n dropDownOptions[n].classList.remove('textprop-option-active');\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_bold') && selectedAnnotation.font.isBold) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_italic') && selectedAnnotation.font.isItalic) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_strikeout') && selectedAnnotation.font.isStrikeout) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_underline_textinput') && selectedAnnotation.font.isUnderline) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onClickTextAlignment = function (args) {\n var currentValue;\n if (isBlazor()) {\n currentValue = args[0];\n }\n else {\n currentValue = (args && args.item && args.item.value) ? args.item.value : '';\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyTextAlignment(currentValue);\n }\n else {\n this.pdfViewer.freeTextSettings.textAlignment = args.item.value;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n this.updateTextAlignInIcon(currentValue);\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onClickTextProperties = function (args) {\n var currentValue;\n if (isBlazor()) {\n currentValue = args[0];\n }\n else {\n currentValue = (args && args.item && args.item.value) ? args.item.value : '';\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n var fontInfo = { isBold: undefined, isItalic: undefined, isStrikeout: undefined, isUnderline: undefined };\n if (currentValue === 'bold') {\n fontInfo.isBold = !(this.pdfViewer.selectedItems.annotations[0].font.isBold);\n }\n else if (currentValue === 'italic') {\n fontInfo.isItalic = !(this.pdfViewer.selectedItems.annotations[0].font.isItalic);\n }\n else if (currentValue === 'underline') {\n fontInfo.isUnderline = !(this.pdfViewer.selectedItems.annotations[0].font.isUnderline);\n }\n else if (currentValue === 'strikeout') {\n fontInfo.isStrikeout = !(this.pdfViewer.selectedItems.annotations[0].font.isStrikeout);\n }\n this.pdfViewer.annotation.modifyTextProperties(fontInfo, currentValue);\n }\n else {\n if (currentValue === 'bold') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 1;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'italic') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 2;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'underline') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 4;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough = false;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'strikeout') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 8;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline = false;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n this.updateTextPropertySelection(currentValue);\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.opacityChange = function (args) {\n var opacityValue = 1;\n if (args && args.length === 1) {\n opacityValue = args[0];\n }\n else {\n opacityValue = args.value;\n }\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (!isBlazor()) {\n if (this.isCurrentAnnotationOpacitySet && args.name === 'changed') {\n this.isCurrentAnnotationOpacitySet = false;\n }\n else {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(args);\n }\n }\n else {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(null, opacityValue);\n }\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightOpacity = opacityValue / 100;\n break;\n case 'Underline':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineOpacity = opacityValue / 100;\n break;\n case 'Strikethrough':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughOpacity = opacityValue / 100;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line\n var currentAnnotations = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (currentAnnotations != null && (currentAnnotations.shapeAnnotationType === 'Stamp' || currentAnnotations.shapeAnnotationType === 'Image')) {\n var clonedObject = cloneObject(currentAnnotations);\n var redoClonedObject = cloneObject(currentAnnotations);\n redoClonedObject.opacity = opacityValue / 100;\n this.pdfViewer.nodePropertyChange(currentAnnotations, { opacity: opacityValue / 100 });\n this.pdfViewer.annotation.triggerAnnotationPropChange(currentAnnotations, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(this.pdfViewer.selectedItems.annotations[0].pageIndex, null, this.pdfViewer.selectedItems.annotations[0], 'stampOpacity', '', clonedObject, redoClonedObject);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(this.pdfViewer.selectedItems.annotations[0], null, 'opacity');\n }\n else {\n if (isBlazor()) {\n this.pdfViewer.annotation.modifyOpacity(opacityValue, true);\n }\n else {\n if (args.name === 'changed') {\n if (args.value !== args.previousValue) {\n this.pdfViewer.annotation.modifyOpacity(args);\n }\n }\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineOpacity = opacityValue / 100;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowOpacity = opacityValue / 100;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleOpacity = opacityValue / 100;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleOpacity = opacityValue / 100;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonOpacity = opacityValue / 100;\n break;\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.opacity = opacityValue / 100;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.opacity = opacityValue / 100;\n if (this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.opacity = opacityValue / 100;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n if (!isBlazor()) {\n this.updateOpacityIndicator();\n }\n };\n AnnotationToolbar.prototype.opacityDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.isCurrentAnnotationOpacitySet = true;\n // eslint-disable-next-line max-len\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.opacity * 100;\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightOpacity * 100;\n break;\n case 'Underline':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineOpacity * 100;\n break;\n case 'Strikethrough':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughOpacity * 100;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.opacitySlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.lineOpacity * 100;\n break;\n case 'Arrow':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.arrowOpacity * 100;\n break;\n case 'Rectangle':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.rectangleOpacity * 100;\n break;\n case 'Circle':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.circleOpacity * 100;\n break;\n case 'Polygon':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.polygonOpacity * 100;\n break;\n }\n }\n }\n this.updateOpacityIndicator();\n this.updateInkannotationItems();\n };\n AnnotationToolbar.prototype.thicknessDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.thicknessSlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.lineThickness;\n break;\n case 'Arrow':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.arrowThickness;\n break;\n case 'Rectangle':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.rectangleThickness;\n break;\n case 'Circle':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.circleThickness;\n break;\n case 'Polygon':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.polygonThickness;\n break;\n }\n }\n }\n this.updateThicknessIndicator();\n this.updateInkannotationItems();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.thicknessDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.left = '0px';\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight) + 'px';\n }\n else {\n this.calculateToolbarPosition(args);\n }\n };\n AnnotationToolbar.prototype.calculateToolbarPosition = function (args) {\n if (args.element && args.element.parentElement) {\n var leftValue = parseFloat(args.element.parentElement.style.left);\n var width = args.element.parentElement.offsetWidth;\n if ((leftValue + width) < (this.pdfViewer.element.offsetWidth + 10)) {\n args.element.parentElement.style.left = (leftValue - width) + 'px';\n }\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.thicknessChangeInBlazor = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.pdfViewer.annotation.modifyThickness(args[0]);\n }\n else {\n this.ShapeThickness(args[0]);\n }\n };\n AnnotationToolbar.prototype.thicknessChange = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.name === 'changed') {\n this.pdfViewer.annotation.modifyThickness(args.value);\n if (!isBlazor()) {\n this.updateThicknessIndicator();\n }\n var annotationModule = this.pdfViewer.annotation;\n var selectedItems = this.pdfViewer.selectedItems.annotations[0];\n if (annotationModule && annotationModule.inkAnnotationModule && selectedItems && selectedItems.shapeAnnotationType === \"Ink\") {\n this.pdfViewer.inkAnnotationSettings.thickness = args.value;\n }\n }\n }\n else {\n this.ShapeThickness(args.value);\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.ShapeThickness = function (args) {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineThickness = args;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowThickness = args;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleThickness = args;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleThickness = args;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonThickness = args;\n break;\n }\n // eslint-disable-next-line\n var annotationModule_1 = this.pdfViewer.annotation;\n if (annotationModule_1 && annotationModule_1.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.thickness = args.value;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.thickness = args.value;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderWidth = args.value;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.thickness = args;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.thickness = args;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderWidth = args;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n if (!isBlazor()) {\n this.updateThicknessIndicator();\n }\n };\n AnnotationToolbar.prototype.createDropDownButton = function (element, iconClass, target, tooltipText) {\n // eslint-disable-next-line max-len\n var dropDownButton = new DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target });\n if (this.pdfViewer.enableRtl) {\n dropDownButton.enableRtl = true;\n }\n dropDownButton.appendTo(element);\n this.primaryToolbar.createTooltip(element, tooltipText);\n return dropDownButton;\n };\n AnnotationToolbar.prototype.createShapeOptions = function (idString, isShape, isAlign, isTextProp) {\n var toolbarElement = createElement('div', { id: idString + '_target', className: 'e-pv-shapes-toolbar' });\n document.body.appendChild(toolbarElement);\n var toolbar;\n if (isAlign) {\n toolbar = new Tool({ items: this.textAlignmentToolbarItems(), overflowMode: 'MultiRow' }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterAlignmentToolbarCreation();\n }\n else if (isTextProp) {\n toolbar = new Tool({ items: this.textPropertiesToolbarItems(), overflowMode: 'MultiRow' }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterPropertiesToolbarCreation();\n }\n else {\n if (isShape) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createShapeToolbarItems(), overflowMode: 'MultiRow', clicked: this.onShapeToolbarClicked.bind(this) }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterShapeToolbarCreation();\n }\n else {\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: idString + '_target', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createShapeToolbarItemsForMobile(), overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this) }, this.toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterShapeToolbarCreationForMobile();\n }\n }\n else {\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createCalibrateToolbarItems(), overflowMode: 'MultiRow', clicked: this.onCalibrateToolbarClicked.bind(this) }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterCalibrateToolbarCreation();\n }\n }\n return toolbar;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createPropertyToolbarForMobile = function (shapeType) {\n var _this = this;\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var fontFamilyTemplate = this.getTemplate('input', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('input', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('span', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('span', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n // eslint-disable-next-line max-len\n var textPropertiesTemplate = this.getTemplate('span', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n if (shapeType === 'Polygon' || shapeType === 'Rectangle' || shapeType === 'Ellipse' || shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Distance' || shapeType === 'Perimeter' || shapeType === 'Radius' || shapeType === 'FreeText') {\n if (shapeType === 'FreeText') {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: fontFamilyTemplate });\n items.push({ template: fontSizeTemplate });\n items.push({ template: textColorTemplate });\n items.push({ template: alignmentTemplate });\n items.push({ template: textPropertiesTemplate });\n }\n if (shapeType === 'Polygon') {\n if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Area') {\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Volume') {\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else {\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n }\n else if (shapeType === 'Rectangle') {\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Ellipse') {\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Line') {\n if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Perimeter') {\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else {\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n }\n else if (shapeType === 'LineWidthArrowHead') {\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Distance') {\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Perimeter') {\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Radius') {\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n }\n else if (shapeType === 'Path' || shapeType === 'Ink' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText') {\n if (shapeType === 'Path' || shapeType === 'Ink') {\n items.push({ prefixIcon: 'e-pv-inkannotation-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText') {\n items.push({ prefixIcon: 'e-pv-handwritten-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n }\n else if (shapeType === 'Underline' || shapeType === 'Highlight' || shapeType === 'Strikethrough') {\n if (shapeType === 'Highlight') {\n items.push({ prefixIcon: 'e-pv-highlight-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Underline') {\n items.push({ prefixIcon: 'e-pv-underline-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Strikethrough') {\n items.push({ prefixIcon: 'e-pv-strikethrough-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: colorTemplate });\n }\n else if (shapeType === 'Stamp' || shapeType === 'Image') {\n items.push({ prefixIcon: 'e-pv-stamp-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'StickyNotes') {\n items.push({ prefixIcon: 'e-pv-comment-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: opacityTemplate });\n // eslint-disable-next-line max-len\n items.push({\n prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right', click: function (args) {\n _this.pdfViewer.annotationModule.showCommentsPanel();\n }\n });\n // eslint-disable-next-line max-len\n items.push({\n prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'Right', click: function (args) {\n _this.pdfViewer.annotationModule.deleteAnnotation();\n _this.propertyToolbar.destroy();\n _this.toolbarCreated = false;\n _this.createAnnotationToolbarForMobile();\n _this.adjustMobileViewer();\n }\n });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createStampToolbarItemsForMobile = function () {\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: opacityTemplate });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createShapeToolbarItemsForMobile = function () {\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_line', text: this.pdfViewer.localeObj.getConstant('Line Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_arrow', text: this.pdfViewer.localeObj.getConstant('Arrow Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_rectangle', text: this.pdfViewer.localeObj.getConstant('Rectangle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_circle', text: this.pdfViewer.localeObj.getConstant('Circle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_pentagon', text: this.pdfViewer.localeObj.getConstant('Pentagon Shape'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n items.push({ template: opacityTemplate });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createCalibrateToolbarItemsForMobile = function () {\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_distance', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_perimeter', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_area', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_radius', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_volume', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n items.push({ template: opacityTemplate });\n return items;\n };\n AnnotationToolbar.prototype.handleShapeTool = function (type) {\n if (!isBlazor() && Browser.isDevice) {\n // eslint:disable-next-line\n var selectedItems = document.querySelectorAll('.e-pv-select');\n for (var i = 0; i < selectedItems.length; i++) {\n if (selectedItems[i].id !== type && selectedItems[i].id !== this.pdfViewer.element.id + '_annotation') {\n selectedItems[i].classList.remove('e-pv-select');\n }\n }\n }\n };\n AnnotationToolbar.prototype.createPropDropDownButton = function (element, iconClass, target, tooltipText) {\n // eslint-disable-next-line max-len\n var dropDownButton = new DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target, cssClass: 'e-caret-hide' });\n if (this.pdfViewer.enableRtl) {\n dropDownButton.enableRtl = true;\n }\n dropDownButton.appendTo(element);\n this.primaryToolbar.createTooltip(element, tooltipText);\n return dropDownButton;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.textAlignmentToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-left-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_left_align', align: 'Left', value: 'Left', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-center-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_center_align', align: 'Left', value: 'Center', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-right-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_right_align', align: 'Left', value: 'Right', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-justfiy-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_justify_align', align: 'Left', value: 'Justify', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n return items;\n };\n AnnotationToolbar.prototype.afterAlignmentToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.alignLeftElement = this.primaryToolbar.addClassToolbarItem('_left_align', 'e-pv-left-align', this.pdfViewer.localeObj.getConstant('Align left'));\n this.alignRightElement = this.primaryToolbar.addClassToolbarItem('_right_align', 'e-pv-right-align', this.pdfViewer.localeObj.getConstant('Align right'));\n // eslint-disable-next-line max-len\n this.alignCenterElement = this.primaryToolbar.addClassToolbarItem('_center_align', 'e-pv-center-align', this.pdfViewer.localeObj.getConstant('Center'));\n this.alignJustifyElement = this.primaryToolbar.addClassToolbarItem('_justify_align', 'e-pv-justfiy-align', this.pdfViewer.localeObj.getConstant('Justify'));\n };\n AnnotationToolbar.prototype.afterPropertiesToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.boldElement = this.primaryToolbar.addClassToolbarItem('_bold', 'e-pv-bold', this.pdfViewer.localeObj.getConstant('Bold'));\n this.italicElement = this.primaryToolbar.addClassToolbarItem('_italic', 'e-pv-italic', this.pdfViewer.localeObj.getConstant('Italic'));\n // eslint-disable-next-line max-len\n this.fontStyleStrikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikeout', 'e-pv-strikeout', this.pdfViewer.localeObj.getConstant('Strikethroughs'));\n this.fontStyleUnderlineItem = this.primaryToolbar.addClassToolbarItem('_underline_textinput', 'e-pv-underlinetext', this.pdfViewer.localeObj.getConstant('Underlines'));\n };\n AnnotationToolbar.prototype.createDropDownListForSize = function (fontSelectElement) {\n // eslint-disable-next-line max-len\n var proxy = this;\n var fontSize = ['8px', '9px', '10px', '11px', '12px', '14px', '16px', '18px', '20px', '22px', '24px', '26px', '28px', '36px', '48px', '72px', '96px'];\n if (!this.pdfViewer.enableRtl) {\n this.fontSize = new ComboBox({\n dataSource: fontSize,\n cssClass: 'e-pv-prop-dropdown',\n allowCustom: true,\n showClearButton: false,\n width: '80px',\n popupWidth: '100px'\n });\n }\n else {\n this.fontSize = new ComboBox({\n dataSource: fontSize,\n cssClass: 'e-pv-prop-dropdown-rtl',\n allowCustom: true,\n showClearButton: false,\n width: '80px',\n popupWidth: '100px',\n enableRtl: true\n });\n }\n this.fontSize.value = '16px';\n this.fontSize.appendTo(fontSelectElement);\n this.primaryToolbar.createTooltip(fontSelectElement, this.pdfViewer.localeObj.getConstant('Font size'));\n this.fontSize.addEventListener('change', function (args) {\n var isUserInteracted = args.isInteracted;\n proxy.onFontSizeChange(proxy, isUserInteracted);\n });\n };\n AnnotationToolbar.prototype.createDropDownListForFamily = function (fontSelectElement) {\n var _this = this;\n var fontStyle = [{ FontName: 'Helvetica' },\n { FontName: 'Courier' }, { FontName: 'Symbol' }, { FontName: 'Times New Roman' }];\n if (!this.pdfViewer.enableRtl) {\n this.fontFamily = new ComboBox({\n dataSource: fontStyle,\n query: new Query().select(['FontName']),\n fields: { text: 'FontName', value: 'FontName' },\n cssClass: 'e-pv-prop-dropdown',\n itemTemplate: '${FontName}',\n allowCustom: true,\n showClearButton: false,\n width: '110px',\n popupWidth: '190px'\n });\n }\n else {\n this.fontFamily = new ComboBox({\n dataSource: fontStyle,\n query: new Query().select(['FontName']),\n fields: { text: 'FontName', value: 'FontName' },\n cssClass: 'e-pv-prop-dropdown-rtl',\n itemTemplate: '${FontName}',\n allowCustom: true,\n showClearButton: false,\n width: '110px',\n popupWidth: '190px',\n enableRtl: true\n });\n }\n this.fontFamily.isStringTemplate = true;\n this.fontFamily.value = 'Helvetica';\n this.fontFamily.appendTo(fontSelectElement);\n this.primaryToolbar.createTooltip(fontSelectElement, this.pdfViewer.localeObj.getConstant('Font family'));\n this.fontFamily.addEventListener('change', function () {\n _this.onFontFamilyChange(_this);\n });\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.textPropertiesToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-bold-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_bold', align: 'Left', value: 'bold', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-italic-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_italic', align: 'Left', value: 'italic', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-strikeout-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_strikeout', align: 'Left', value: 'strikeout', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-underlinetext-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_underline_textinput', align: 'Left', value: 'underline', click: this.onClickTextProperties.bind(this) });\n return items;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createShapeToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_line', text: this.pdfViewer.localeObj.getConstant('Line Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_arrow', text: this.pdfViewer.localeObj.getConstant('Arrow Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_rectangle', text: this.pdfViewer.localeObj.getConstant('Rectangle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_circle', text: this.pdfViewer.localeObj.getConstant('Circle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_pentagon', text: this.pdfViewer.localeObj.getConstant('Pentagon Shape'), align: 'Left' });\n return items;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createCalibrateToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_distance', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_perimeter', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_area', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_radius', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_volume', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n return items;\n };\n AnnotationToolbar.prototype.onCalibrateToolbarClicked = function (args) {\n var elementId = this.pdfViewer.element.id;\n var measureModule = this.pdfViewer.annotation.measureAnnotationModule;\n this.deselectAllItems();\n this.resetFreeTextAnnot();\n if (Browser.isDevice && !isBlazor()) {\n // tslint:disable-next-line\n var element = args.originalEvent.target;\n this.pdfViewer.toolbarModule.selectItem(element.parentElement);\n }\n switch (args.originalEvent.target.id) {\n case elementId + '_calibrate_distance':\n case elementId + '_calibrate_distanceIcon':\n measureModule.setAnnotationType('Distance');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.distanceFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.distanceStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_distance');\n break;\n case elementId + '_calibrate_perimeter':\n case elementId + '_calibrate_perimeterIcon':\n measureModule.setAnnotationType('Perimeter');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.perimeterFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.perimeterStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_perimeter');\n break;\n case elementId + '_calibrate_area':\n case elementId + '_calibrate_areaIcon':\n measureModule.setAnnotationType('Area');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.areaFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.areaStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_area');\n break;\n case elementId + '_calibrate_radius':\n case elementId + '_calibrate_radiusIcon':\n measureModule.setAnnotationType('Radius');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.radiusFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.radiusStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_radius');\n break;\n case elementId + '_calibrate_volume':\n case elementId + '_calibrate_volumeIcon':\n measureModule.setAnnotationType('Volume');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.volumeFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.volumeStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_volume');\n break;\n }\n };\n AnnotationToolbar.prototype.onShapeDrawSelection = function (isShape) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (!Browser.isDevice) {\n this.updateInteractionTools();\n this.enableAnnotationPropertiesTools(true);\n if (isShape) {\n this.shapeDropDown.toggle();\n }\n else {\n this.calibrateDropDown.toggle();\n }\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n };\n AnnotationToolbar.prototype.afterCalibrateToolbarCreationForMobile = function () {\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_distance', 'e-pv-calibrate-distance', this.pdfViewer.localeObj.getConstant('Calibrate Distance'));\n this.primaryToolbar.addClassToolbarItem('_calibrate_perimeter', 'e-pv-calibrate-perimeter', this.pdfViewer.localeObj.getConstant('Calibrate Perimeter'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_area', 'e-pv-calibrate-area', this.pdfViewer.localeObj.getConstant('Calibrate Area'));\n this.primaryToolbar.addClassToolbarItem('_calibrate_radius', 'e-pv-calibrate-radius', this.pdfViewer.localeObj.getConstant('Calibrate Radius'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_volume', 'e-pv-calibrate-volume', this.pdfViewer.localeObj.getConstant('Calibrate Volume'));\n };\n AnnotationToolbar.prototype.afterShapeToolbarCreationForMobile = function () {\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_color', 'e-pv-annotation-color-container', this.pdfViewer.localeObj.getConstant('Change Color'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_stroke', 'e-pv-annotation-stroke-container', this.pdfViewer.localeObj.getConstant('Change Stroke Color'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_thickness', 'e-pv-annotation-thickness-container', this.pdfViewer.localeObj.getConstant('Chnage Border Thickness'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_opacity', 'e-annotation-opacity-container', this.pdfViewer.localeObj.getConstant('Change Opacity'));\n this.primaryToolbar.addClassToolbarItem('_shape_line', 'e-pv-shape-line', this.pdfViewer.localeObj.getConstant('Add line'));\n this.primaryToolbar.addClassToolbarItem('_shape_arrow', 'e-pv-shape-arrow', this.pdfViewer.localeObj.getConstant('Add arrow'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_shape_rectangle', 'e-pv-shape-rectangle', this.pdfViewer.localeObj.getConstant('Add rectangle'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_shape_circle', 'e-pv-shape-circle', this.pdfViewer.localeObj.getConstant('Add circle'));\n this.primaryToolbar.addClassToolbarItem('_shape_pentagon', 'e-pv-shape-pentagon', this.pdfViewer.localeObj.getConstant('Add polygon'));\n };\n AnnotationToolbar.prototype.afterShapeToolbarCreation = function () {\n this.lineElement = this.primaryToolbar.addClassToolbarItem('_shape_line', 'e-pv-shape-line', this.pdfViewer.localeObj.getConstant('Add line'));\n this.arrowElement = this.primaryToolbar.addClassToolbarItem('_shape_arrow', 'e-pv-shape-arrow', this.pdfViewer.localeObj.getConstant('Add arrow'));\n // eslint-disable-next-line max-len\n this.rectangleElement = this.primaryToolbar.addClassToolbarItem('_shape_rectangle', 'e-pv-shape-rectangle', this.pdfViewer.localeObj.getConstant('Add rectangle'));\n // eslint-disable-next-line max-len\n this.circleElement = this.primaryToolbar.addClassToolbarItem('_shape_circle', 'e-pv-shape-circle', this.pdfViewer.localeObj.getConstant('Add circle'));\n this.polygonElement = this.primaryToolbar.addClassToolbarItem('_shape_pentagon', 'e-pv-shape-pentagon', this.pdfViewer.localeObj.getConstant('Add polygon'));\n };\n AnnotationToolbar.prototype.afterCalibrateToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.calibrateDistance = this.primaryToolbar.addClassToolbarItem('_calibrate_distance', 'e-pv-calibrate-distance', this.pdfViewer.localeObj.getConstant('Calibrate Distance'));\n this.calibratePerimeter = this.primaryToolbar.addClassToolbarItem('_calibrate_perimeter', 'e-pv-calibrate-perimeter', this.pdfViewer.localeObj.getConstant('Calibrate Perimeter'));\n // eslint-disable-next-line max-len\n this.calibrateArea = this.primaryToolbar.addClassToolbarItem('_calibrate_area', 'e-pv-calibrate-area', this.pdfViewer.localeObj.getConstant('Calibrate Area'));\n this.calibrateRadius = this.primaryToolbar.addClassToolbarItem('_calibrate_radius', 'e-pv-calibrate-radius', this.pdfViewer.localeObj.getConstant('Calibrate Radius'));\n // eslint-disable-next-line max-len\n this.calibrateVolume = this.primaryToolbar.addClassToolbarItem('_calibrate_volume', 'e-pv-calibrate-volume', this.pdfViewer.localeObj.getConstant('Calibrate Volume'));\n };\n AnnotationToolbar.prototype.afterMobileToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.highlightItem = this.primaryToolbar.addClassToolbarItem('_highlight', 'e-pv-highlight', this.pdfViewer.localeObj.getConstant('Highlight'));\n this.underlineItem = this.primaryToolbar.addClassToolbarItem('_underline', 'e-pv-underline', this.pdfViewer.localeObj.getConstant('Underline'));\n // eslint-disable-next-line max-len\n this.strikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikethrough', 'e-pv-strikethrough', this.pdfViewer.localeObj.getConstant('Strikethrough'));\n // eslint-disable-next-line max-len\n this.shapesItem = this.primaryToolbar.addClassToolbarItem('_annotation_shapes', 'e-pv-annotation-shapes', this.pdfViewer.localeObj.getConstant('Add Shapes'));\n this.calibrateItem = this.primaryToolbar.addClassToolbarItem('_annotation_calibrate', 'e-pv-annotation-calibrate', this.pdfViewer.localeObj.getConstant('Calibrate'));\n // eslint-disable-next-line max-len\n this.freeTextEditItem = this.primaryToolbar.addClassToolbarItem('_annotation_freeTextEdit', 'e-pv-annotation-freeTextEdit', this.pdfViewer.localeObj.getConstant('Free Text'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_comment', 'e-pv-comment', this.pdfViewer.localeObj.getConstant('Add Comments'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_annotation_commentPanel', 'e-pv-annotation-comment-panel', this.pdfViewer.localeObj.getConstant('Comment Panel'));\n // eslint-disable-next-line max-len\n this.inkAnnotationItem = this.primaryToolbar.addClassToolbarItem('_annotation_ink', 'e-pv-annotation-ink', this.pdfViewer.localeObj.getConstant('Draw Ink'));\n this.selectAnnotationDeleteItem(false);\n this.enableCommentPanelTool(this.pdfViewer.enableCommentPanel);\n };\n AnnotationToolbar.prototype.createColorPicker = function (idString) {\n var inputElement;\n var existingInput = document.getElementById(idString + '_target');\n if (existingInput) {\n inputElement = existingInput;\n }\n else {\n inputElement = createElement('input', { id: idString + '_target' });\n }\n document.body.appendChild(inputElement);\n var colorPicker = new ColorPicker({\n inline: true, mode: 'Palette', cssClass: 'e-show-value', enableOpacity: false,\n value: '#000000', showButtons: false, modeSwitcher: false\n });\n if (this.pdfViewer.enableRtl) {\n colorPicker.enableRtl = true;\n }\n colorPicker.appendTo(inputElement);\n return colorPicker;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onColorPickerChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyColorProperty(currentColor);\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor = currentColor;\n break;\n case 'Underline':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor = currentColor;\n break;\n case 'Strikethrough':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor = currentColor;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (isBlazor()) {\n if (args[0] !== args[1]) {\n this.pdfViewer.annotation.modifyFillColor(currentColor);\n }\n }\n else {\n if (args.currentValue.hex !== args.previousValue.hex) {\n this.pdfViewer.annotation.modifyFillColor(currentColor);\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineFillColor = currentColor;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowFillColor = currentColor;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleFillColor = currentColor;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleFillColor = currentColor;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonFillColor = currentColor;\n break;\n }\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.fillColor = currentColor;\n if (this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.fillColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n if (isBlazor()) {\n this.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n this.updateColorInIcon(this.colorDropDownElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.colorDropDownElement, currentColor);\n this.colorDropDown.toggle();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onStrokePickerChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (isBlazor()) {\n if (args[0] !== args[1]) {\n this.pdfViewer.annotation.modifyStrokeColor(currentColor);\n }\n }\n else {\n if (args.currentValue.hex !== args.previousValue.hex) {\n this.pdfViewer.annotation.modifyStrokeColor(currentColor);\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineStrokeColor = currentColor;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowStrokeColor = currentColor;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleStrokeColor = currentColor;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleStrokeColor = currentColor;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonStrokeColor = currentColor;\n break;\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.strokeColor = currentColor;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.strokeColor = currentColor;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n if (isBlazor()) {\n this.strokeDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-stroke-container');\n this.updateColorInIcon(this.strokeDropDownElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.strokeDropDownElement, currentColor);\n this.strokeDropDown.toggle();\n }\n };\n /**\n * @param element\n * @param color\n * @param element\n * @param color\n * @private\n */\n AnnotationToolbar.prototype.updateColorInIcon = function (element, color) {\n if (isBlazor()) {\n if (element) {\n element.children[0].style.borderBottomColor = color;\n }\n }\n else {\n if (element) {\n element.childNodes[0] ? element.childNodes[0].style.borderBottomColor = color : element.childNodes[0];\n }\n }\n };\n /**\n * @param currentOption\n * @private\n */\n AnnotationToolbar.prototype.updateTextPropertySelection = function (currentOption) {\n if (currentOption === 'bold') {\n document.getElementById(this.pdfViewer.element.id + '_bold').classList.toggle('textprop-option-active');\n }\n else if (currentOption === 'italic') {\n document.getElementById(this.pdfViewer.element.id + '_italic').classList.toggle('textprop-option-active');\n }\n else if (currentOption === 'underline') {\n document.getElementById(this.pdfViewer.element.id + '_underline_textinput').classList.toggle('textprop-option-active');\n document.getElementById(this.pdfViewer.element.id + '_strikeout').classList.remove('textprop-option-active');\n }\n else if (currentOption === 'strikeout') {\n document.getElementById(this.pdfViewer.element.id + '_strikeout').classList.toggle('textprop-option-active');\n document.getElementById(this.pdfViewer.element.id + '_underline_textinput').classList.remove('textprop-option-active');\n }\n };\n /**\n * @param family\n * @private\n */\n AnnotationToolbar.prototype.updateFontFamilyInIcon = function (family) {\n this.fontFamily.value = family;\n };\n /**\n * @param align\n * @private\n */\n AnnotationToolbar.prototype.updateTextAlignInIcon = function (align) {\n var className = 'e-btn-icon e-pv-left-align-icon e-pv-icon';\n var leftAlign = document.getElementById(this.pdfViewer.element.id + '_left_align');\n var rightAlign = document.getElementById(this.pdfViewer.element.id + '_right_align');\n var centerAlign = document.getElementById(this.pdfViewer.element.id + '_center_align');\n var justifyAlign = document.getElementById(this.pdfViewer.element.id + '_justify_align');\n if (!isBlazor()) {\n leftAlign.classList.remove('textprop-option-active');\n rightAlign.classList.remove('textprop-option-active');\n centerAlign.classList.remove('textprop-option-active');\n justifyAlign.classList.remove('textprop-option-active');\n }\n if (align === 'Left') {\n leftAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Right') {\n className = 'e-btn-icon e-pv-right-align-icon e-pv-icon';\n rightAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Center') {\n className = 'e-btn-icon e-pv-center-align-icon e-pv-icon';\n centerAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Justify') {\n className = 'e-btn-icon e-pv-justfiy-align-icon e-pv-icon';\n justifyAlign.classList.add('textprop-option-active');\n }\n document.getElementById(this.pdfViewer.element.id + '_annotation_textalign').children[0].className = className;\n };\n /**\n * @param size\n * @private\n */\n AnnotationToolbar.prototype.updateFontSizeInIcon = function (size) {\n this.fontSize.value = size + 'px';\n };\n AnnotationToolbar.prototype.updateOpacityIndicator = function () {\n // eslint-disable-next-line\n this.opacityIndicator.textContent = parseInt(Math.round(this.opacitySlider.value).toString()) + '%';\n };\n AnnotationToolbar.prototype.updateThicknessIndicator = function () {\n this.thicknessIndicator.textContent = this.thicknessSlider.value + ' pt';\n };\n AnnotationToolbar.prototype.createSlider = function (idString) {\n var outerContainer = createElement('div', { className: 'e-pv-annotation-opacity-popup-container' });\n document.body.appendChild(outerContainer);\n var label = createElement('span', { id: idString + '_label', className: 'e-pv-annotation-opacity-label' });\n label.textContent = this.pdfViewer.localeObj.getConstant('Opacity');\n var sliderElement = createElement('div', { id: idString + '_slider' });\n this.opacitySlider = new Slider({ type: 'MinRange', cssClass: 'e-pv-annotation-opacity-slider', max: 100, min: 0 });\n // eslint-disable-next-line max-len\n this.opacityIndicator = createElement('div', { id: idString + '_opacity_indicator', className: 'e-pv-annotation-opacity-indicator' });\n this.opacityIndicator.textContent = '100%';\n if (!this.pdfViewer.enableRtl) {\n outerContainer.appendChild(label);\n outerContainer.appendChild(sliderElement);\n this.opacitySlider.appendTo(sliderElement);\n this.opacitySlider.element.parentElement.classList.add('e-pv-annotation-opacity-slider-container');\n outerContainer.appendChild(this.opacityIndicator);\n }\n else {\n outerContainer.appendChild(this.opacityIndicator);\n outerContainer.appendChild(sliderElement);\n this.opacitySlider.enableRtl = true;\n this.opacitySlider.appendTo(sliderElement);\n this.opacitySlider.element.parentElement.classList.add('e-pv-annotation-opacity-slider-container');\n outerContainer.appendChild(label);\n }\n return outerContainer;\n };\n AnnotationToolbar.prototype.createThicknessSlider = function (idString) {\n var outerContainer = createElement('div', { className: 'e-pv-annotation-thickness-popup-container' });\n document.body.appendChild(outerContainer);\n var label = createElement('span', { id: idString + '_label', className: 'e-pv-annotation-thickness-label' });\n label.textContent = this.pdfViewer.localeObj.getConstant('Line Thickness');\n var sliderElement = createElement('div', { id: idString + '_slider' });\n this.thicknessSlider = new Slider({ type: 'MinRange', cssClass: 'e-pv-annotation-thickness-slider', max: 12, min: 0 });\n // eslint-disable-next-line max-len\n this.thicknessIndicator = createElement('div', { id: idString + '_thickness_indicator', className: 'e-pv-annotation-thickness-indicator' });\n this.thicknessIndicator.textContent = '0 pt';\n if (!this.pdfViewer.enableRtl) {\n outerContainer.appendChild(label);\n outerContainer.appendChild(sliderElement);\n this.thicknessSlider.appendTo(sliderElement);\n outerContainer.appendChild(this.thicknessIndicator);\n }\n else {\n outerContainer.appendChild(this.thicknessIndicator);\n outerContainer.appendChild(sliderElement);\n this.thicknessSlider.enableRtl = true;\n this.thicknessSlider.appendTo(sliderElement);\n outerContainer.appendChild(label);\n }\n this.thicknessSlider.element.parentElement.classList.add('e-pv-annotation-thickness-slider-container');\n return outerContainer;\n };\n AnnotationToolbar.prototype.afterToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.highlightItem = this.primaryToolbar.addClassToolbarItem('_highlight', 'e-pv-highlight', this.pdfViewer.localeObj.getConstant('Highlight'));\n this.underlineItem = this.primaryToolbar.addClassToolbarItem('_underline', 'e-pv-underline', this.pdfViewer.localeObj.getConstant('Underline'));\n // eslint-disable-next-line max-len\n this.strikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikethrough', 'e-pv-strikethrough', this.pdfViewer.localeObj.getConstant('Strikethrough'));\n this.deleteItem = this.primaryToolbar.addClassToolbarItem('_annotation_delete', 'e-pv-annotation-delete', this.pdfViewer.localeObj.getConstant('Delete'));\n // eslint-disable-next-line max-len\n this.freeTextEditItem = this.primaryToolbar.addClassToolbarItem('_annotation_freeTextEdit', 'e-pv-annotation-freeTextEdit', this.pdfViewer.localeObj.getConstant('Free Text'));\n // eslint-disable-next-line max-len\n this.inkAnnotationItem = this.primaryToolbar.addClassToolbarItem('_annotation_ink', 'e-pv-annotation-ink', this.pdfViewer.localeObj.getConstant('Draw Ink'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_annotation_commentPanel', 'e-pv-annotation-comment-panel', this.pdfViewer.localeObj.getConstant('Comment Panel'));\n this.closeItem = this.primaryToolbar.addClassToolbarItem('_annotation_close', 'e-pv-annotation-tools-close', null);\n this.selectAnnotationDeleteItem(false);\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableCommentPanelTool(this.pdfViewer.enableCommentPanel);\n };\n AnnotationToolbar.prototype.onToolbarClicked = function (args) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (args.originalEvent.target.id) {\n this.pdfViewer.toolbarModule.updateStampItems();\n }\n this.pdfViewer.toolbarModule.deSelectCommentAnnotation();\n switch (args.originalEvent.target.id) {\n case this.pdfViewer.element.id + '_highlight':\n case this.pdfViewer.element.id + '_highlightIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleHighlight();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Highlight');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_underline':\n case this.pdfViewer.element.id + '_underlineIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleUnderline();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Underline');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_strikethrough':\n case this.pdfViewer.element.id + '_strikethroughIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleStrikethrough();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Strikethrough');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_annotation_delete':\n case this.pdfViewer.element.id + '_annotation_deleteIcon':\n this.pdfViewer.annotationModule.deleteAnnotation();\n this.resetFreeTextAnnot();\n break;\n case this.pdfViewer.element.id + '_annotation_commentPanel':\n case this.pdfViewer.element.id + '_annotation_commentPanelIcon':\n this.inkAnnotationSelected = false;\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (commentPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n else {\n this.pdfViewer.annotationModule.showCommentsPanel();\n }\n break;\n case this.pdfViewer.element.id + '_annotation_close':\n case this.pdfViewer.element.id + '_annotation_closeIcon':\n this.inkAnnotationSelected = false;\n var commentsPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentsPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n this.showAnnotationToolbar(this.primaryToolbar.annotationItem);\n break;\n case this.pdfViewer.element.id + '_annotation_freeTextEdit':\n case this.pdfViewer.element.id + '_annotation_freeTextEditIcon':\n if (!Browser.isDevice) {\n this.resetFreeTextAnnot();\n this.handleFreeTextEditor();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('FreeText');\n this.FreeTextForMobile();\n }\n break;\n case this.pdfViewer.element.id + '_annotation_signature':\n case this.pdfViewer.element.id + '_annotation_signatureIcon':\n this.inkAnnotationSelected = false;\n this.updateSignatureCount();\n break;\n case this.pdfViewer.element.id + '_annotation_ink':\n case this.pdfViewer.element.id + '_annotation_inkIcon':\n if (annotation) {\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n }\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n }\n if (!this.inkAnnotationSelected) {\n this.deselectAllItems();\n this.drawInkAnnotation();\n }\n else {\n this.inkAnnotationSelected = false;\n }\n break;\n case this.pdfViewer.element.id + '_annotation_shapesIcon':\n case this.pdfViewer.element.id + '_annotation_shapes':\n if (Browser.isDevice) {\n this.shapeToolMobile(args);\n }\n break;\n case this.pdfViewer.element.id + '_annotation_calibrateIcon':\n case this.pdfViewer.element.id + '_annotation_calibrate':\n if (Browser.isDevice) {\n this.calibrateToolMobile(args);\n }\n break;\n case this.pdfViewer.element.id + '_commentIcon':\n case this.pdfViewer.element.id + '_comment':\n this.pdfViewerBase.isAddComment = true;\n this.pdfViewerBase.isCommentIconAdded = true;\n var commentsButton = document.getElementById(this.pdfViewer.element.id + '_comment');\n commentsButton.classList.add('e-pv-select');\n this.pdfViewer.toolbarModule.addComments(args);\n break;\n }\n };\n AnnotationToolbar.prototype.addInkAnnotation = function () {\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n if (!this.inkAnnotationSelected) {\n this.deselectAllItemsInBlazor();\n this.drawInkAnnotation();\n }\n else {\n this.inkAnnotationSelected = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectInkAnnotation = function () {\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n AnnotationToolbar.prototype.drawInkAnnotation = function () {\n this.inkAnnotationSelected = true;\n if (!isBlazor()) {\n this.primaryToolbar.selectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.selectItem(this.InkAnnotationElement);\n }\n this.enableSignaturePropertiesTools(true);\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInk();\n };\n AnnotationToolbar.prototype.resetFreeTextAnnot = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n this.pdfViewer.annotation.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n this.pdfViewer.annotation.freeTextAnnotationModule.isNewAddedAnnot = false;\n if (!Browser.isDevice) {\n if (this.freeTextEditItem && !isBlazor()) {\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n }\n else if (isBlazor()) {\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n }\n this.enableFreeTextAnnotationPropertiesTools(false);\n }\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) { // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n }\n }\n }\n this.inkAnnotationSelected = false;\n };\n AnnotationToolbar.prototype.updateInkannotationItems = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule && this.inkAnnotationSelected) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.tool = 'Ink';\n this.pdfViewer.clearSelection(currentPageNumber);\n }\n }\n };\n AnnotationToolbar.prototype.showSignaturepanel = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.pdfViewerBase.signatureModule.showSignatureDialog(true);\n };\n AnnotationToolbar.prototype.handleFreeTextEditor = function () {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n this.enableFreeTextAnnotationPropertiesTools(true);\n if (annotation) {\n this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.isStrikethroughEnabled = false;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n var freeTextAnnotationModule = this.pdfViewer.annotation.freeTextAnnotationModule;\n freeTextAnnotationModule.setAnnotationType('FreeText');\n freeTextAnnotationModule.isNewFreeTextAnnot = true;\n freeTextAnnotationModule.isNewAddedAnnot = true;\n this.updateInteractionTools();\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.selectItem(this.freeTextEditItem);\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.fillColor);\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.borderColor);\n this.updateColorInIcon(this.fontColorElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.fontColor);\n this.updateFontFamilyInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.fontFamily);\n this.updateFontSizeInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.fontSize);\n this.updateTextAlignInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.textAlign);\n this.updateFontFamily();\n };\n AnnotationToolbar.prototype.updateFontFamily = function () {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold ? this.updateFontFamilyIcon('_bold', true) : this.updateFontFamilyIcon('_bold', false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic ? this.updateFontFamilyIcon('_italic', true) : this.updateFontFamilyIcon('_italic', false);\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline) {\n this.updateFontFamilyIcon('_underline_textinput', true);\n this.updateFontFamilyIcon('_strikeout', false);\n }\n else {\n this.updateFontFamilyIcon('_underline_textinput', false);\n }\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough) {\n this.updateFontFamilyIcon('_strikeout', true);\n this.updateFontFamilyIcon('_underline_textinput', false);\n }\n else {\n this.updateFontFamilyIcon('_strikeout', false);\n }\n };\n AnnotationToolbar.prototype.updateFontFamilyIcon = function (fontFamily, isActive) {\n var fontFamilyElement = document.getElementById(this.pdfViewer.element.id + fontFamily);\n isActive ? fontFamilyElement.classList.add('textprop-option-active') : fontFamilyElement.classList.remove('textprop-option-active');\n };\n /**\n * @param element\n * @param isInitialLoading\n * @param element\n * @param isInitialLoading\n * @private\n */\n AnnotationToolbar.prototype.showAnnotationToolbar = function (element, isInitialLoading) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!this.isToolbarHidden) {\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotationModule;\n if (element) {\n this.primaryToolbar.deSelectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.deSelectItem(this.primaryToolbar.annotationItem);\n }\n }\n this.adjustViewer(false);\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.enablePropertiesTool(annotationModule);\n }\n else {\n this.deselectAllItems();\n }\n this.toolbarElement.style.display = 'none';\n if (!isInitialLoading) {\n this.pdfViewer.isAnnotationToolbarVisible = false;\n }\n if (this.pdfViewerBase.isPanMode) {\n this.primaryToolbar.updateInteractionTools(false);\n }\n else {\n this.primaryToolbar.updateInteractionTools(true);\n }\n }\n else {\n var toolBarInitialStatus = void 0;\n if (this.toolbarElement) {\n toolBarInitialStatus = this.toolbarElement.style.display;\n this.toolbarElement.style.display = 'block';\n }\n if (!isInitialLoading) {\n this.pdfViewer.isAnnotationToolbarVisible = true;\n }\n if (element) {\n this.primaryToolbar.selectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.selectItem(this.primaryToolbar.annotationItem);\n }\n }\n if (toolBarInitialStatus === 'none') {\n this.adjustViewer(true);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnification && this.pdfViewer.magnification.fitType === 'fitToPage') {\n this.pdfViewer.magnification.fitToPage();\n }\n this.enableAnnotationAddTools(true);\n this.isToolbarHidden = !this.isToolbarHidden;\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.enablePropertiesTool = function (annotationModule) {\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n // eslint-disable-next-line max-len\n this.updateColorInIcon(this.colorDropDownElement, annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.color);\n this.selectAnnotationDeleteItem(true);\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.applyAnnotationToolbarSettings = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('HighlightTool') !== -1) {\n this.showHighlightTool(true, 0, 0);\n }\n else {\n this.showHighlightTool(false, 0, 0);\n }\n if (annotationToolbarItems.indexOf('UnderlineTool') !== -1) {\n this.showUnderlineTool(true, 1, 1);\n }\n else {\n this.showUnderlineTool(false, 1, 1);\n }\n if (annotationToolbarItems.indexOf('StrikethroughTool') !== -1) {\n this.showStrikethroughTool(true, 2, 2);\n }\n else {\n this.showStrikethroughTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 4, 4);\n }\n else {\n this.showShapeAnnotationTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('CalibrateTool') !== -1) {\n this.showCalibrateAnnotationTool(true, 6, 6);\n }\n else {\n this.showCalibrateAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 22, 22);\n }\n else {\n this.showColorEditTool(false, 22, 22);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 23, 23);\n }\n else {\n this.showStrokeColorEditTool(false, 23, 23);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 24, 24);\n }\n else {\n this.showThicknessEditTool(false, 24, 24);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 25, 25);\n }\n else {\n this.showOpacityEditTool(false, 25, 25);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 27, 27);\n }\n else {\n this.showAnnotationDeleteTool(false, 27, 27);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 10, 10);\n }\n else {\n this.showStampAnnotationTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 12, 12);\n }\n else {\n this.showSignatureTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 8, 8);\n }\n else {\n this.showFreeTextAnnotationTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('FontFamilyAnnotationTool') !== -1) {\n this.showFontFamilyAnnotationTool(true, 16, 16);\n }\n else {\n this.showFontFamilyAnnotationTool(false, 16, 16);\n }\n if (annotationToolbarItems.indexOf('FontSizeAnnotationTool') !== -1) {\n this.showFontSizeAnnotationTool(true, 17, 17);\n }\n else {\n this.showFontSizeAnnotationTool(false, 17, 17);\n }\n if (annotationToolbarItems.indexOf('FontStylesAnnotationTool') !== -1) {\n this.showFontStylesAnnotationTool(true, 20, 20);\n }\n else {\n this.showFontStylesAnnotationTool(false, 20, 20);\n }\n if (annotationToolbarItems.indexOf('FontAlignAnnotationTool') !== -1) {\n this.showFontAlignAnnotationTool(true, 18, 18);\n }\n else {\n this.showFontAlignAnnotationTool(false, 18, 18);\n }\n if (annotationToolbarItems.indexOf('FontColorAnnotationTool') !== -1) {\n this.showFontColorAnnotationTool(true, 19, 19);\n }\n else {\n this.showFontColorAnnotationTool(false, 19, 19);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 28, 28);\n }\n else {\n this.showCommentPanelTool(false, 28, 28);\n }\n this.showInkAnnotationTool();\n this.showSeparator();\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.applyMobileAnnotationToolbarSettings = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('HighlightTool') !== -1) {\n this.showHighlightTool(true, 2, 2);\n }\n else {\n this.showHighlightTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('UnderlineTool') !== -1) {\n this.showUnderlineTool(true, 3, 3);\n }\n else {\n this.showUnderlineTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('StrikethroughTool') !== -1) {\n this.showStrikethroughTool(true, 4, 4);\n }\n else {\n this.showStrikethroughTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 6, 6);\n }\n else {\n this.showShapeAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('CalibrateTool') !== -1) {\n this.showCalibrateAnnotationTool(true, 8, 8);\n }\n else {\n this.showCalibrateAnnotationTool(false, 8, 8);\n }\n var toolbarItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarItems && toolbarItems.indexOf('CommentTool') !== -1) {\n this.showStickyNoteToolInMobile(true);\n }\n else {\n this.showStickyNoteToolInMobile(false);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 12, 12);\n }\n else {\n this.showStampAnnotationTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 14, 14);\n }\n else {\n this.showSignatureTool(false, 14, 14);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 10, 10);\n }\n else {\n this.showFreeTextAnnotationTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 18, 18);\n }\n else {\n this.showCommentPanelTool(false, 18, 18);\n }\n if (annotationToolbarItems.indexOf('InkAnnotationTool') !== -1) {\n this.showInkTool(true, 16, 16);\n }\n else {\n this.showInkTool(false, 16, 16);\n }\n this.showSeparatorInMobile();\n }\n };\n AnnotationToolbar.prototype.showStickyNoteToolInMobile = function (isShow) {\n this.isCommentBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 0, 0);\n };\n AnnotationToolbar.prototype.showSeparatorInMobile = function () {\n if (!this.isCommentBtnVisible) {\n this.applyHideToToolbar(false, 1, 1);\n }\n if ((!this.isHighlightBtnVisible && !this.isUnderlineBtnVisible && !this.isStrikethroughBtnVisible)) {\n this.applyHideToToolbar(false, 5, 5);\n }\n if (!this.isShapeBtnVisible) {\n this.applyHideToToolbar(false, 7, 7);\n }\n if (!this.isCalibrateBtnVisible) {\n this.applyHideToToolbar(false, 9, 9);\n }\n if (!this.isFreeTextBtnVisible) {\n this.applyHideToToolbar(false, 11, 11);\n }\n if (!this.isStampBtnVisible) {\n this.applyHideToToolbar(false, 13, 13);\n }\n if (!this.isSignatureBtnVisible) {\n this.applyHideToToolbar(false, 15, 15);\n }\n if (!this.isInkBtnVisible) {\n this.applyHideToToolbar(false, 17, 17);\n }\n };\n AnnotationToolbar.prototype.showInkAnnotationTool = function () {\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems.indexOf('InkAnnotationTool') !== -1) {\n this.showInkTool(true, 14, 14);\n }\n else {\n this.showInkTool(false, 14, 14);\n }\n };\n AnnotationToolbar.prototype.showSeparator = function () {\n if ((!this.isHighlightBtnVisible && !this.isUnderlineBtnVisible && !this.isStrikethroughBtnVisible)) {\n this.applyHideToToolbar(false, 3, 3);\n }\n if (!this.isShapeBtnVisible) {\n this.applyHideToToolbar(false, 5, 5);\n }\n if (!this.isCalibrateBtnVisible) {\n this.applyHideToToolbar(false, 7, 7);\n }\n if (!this.isFreeTextBtnVisible) {\n this.applyHideToToolbar(false, 9, 9);\n }\n if (!this.isStampBtnVisible) {\n this.applyHideToToolbar(false, 11, 11);\n }\n if (!this.isSignatureBtnVisible) {\n this.applyHideToToolbar(false, 13, 13);\n }\n if (!this.isInkBtnVisible) {\n this.applyHideToToolbar(false, 15, 15);\n }\n // eslint-disable-next-line max-len\n if (!this.isFontFamilyToolVisible && !this.isFontSizeToolVisible && !this.isFontColorToolVisible && !this.isFontAlignToolVisible && !this.isFontStylesToolVisible) {\n this.applyHideToToolbar(false, 21, 21);\n }\n // eslint-disable-next-line max-len\n if ((!this.isColorToolVisible && !this.isStrokeColorToolVisible && !this.isThicknessToolVisible && !this.isOpacityToolVisible) || !this.isDeleteAnnotationToolVisible) {\n this.applyHideToToolbar(false, 26, 26);\n }\n };\n AnnotationToolbar.prototype.showHighlightTool = function (isShow, startIndex, endIndex) {\n this.isHighlightBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showUnderlineTool = function (isShow, startIndex, endIndex) {\n this.isUnderlineBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStrikethroughTool = function (isShow, startIndex, endIndex) {\n this.isStrikethroughBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showShapeAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isShapeBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showCalibrateAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isCalibrateBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFreeTextAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFreeTextBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStampAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isStampBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showSignatureTool = function (isShow, startIndex, endIndex) {\n this.isSignatureBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showInkTool = function (isShow, startIndex, endIndex) {\n this.isInkBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontFamilyAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontFamilyToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontSizeAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontSizeToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontAlignAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontAlignToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontColorAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontStylesAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontStylesToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showColorEditTool = function (isShow, startIndex, endIndex) {\n this.isColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStrokeColorEditTool = function (isShow, startIndex, endIndex) {\n this.isStrokeColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showThicknessEditTool = function (isShow, startIndex, endIndex) {\n this.isThicknessToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showOpacityEditTool = function (isShow, startIndex, endIndex) {\n this.isOpacityToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showAnnotationDeleteTool = function (isShow, startIndex, endIndex) {\n this.isDeleteAnnotationToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showCommentPanelTool = function (isShow, startIndex, endIndex) {\n this.isCommentPanelBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n var toolbar_1 = void 0;\n var propertyToolbarElement = (this.propertyToolbar && this.propertyToolbar.element) ? this.propertyToolbar.element : null;\n var toolbarElement = (this.toolbar && this.toolbar.element) ? this.toolbar.element : null;\n if (toolbarElement && toolbarElement.children && toolbarElement.children.length > 0) {\n toolbar_1 = this.toolbar;\n }\n else if (Browser.isDevice && propertyToolbarElement && propertyToolbarElement.children && propertyToolbarElement.children.length > 0) {\n toolbar_1 = this.propertyToolbar;\n }\n if (toolbar_1 && toolbar_1.items[index]) {\n var className = toolbar_1.items[index].cssClass;\n if (className && className !== '') {\n // Querying the toolbar item\n var element = toolbar_1.element.querySelector('.' + className);\n if (element) {\n this.toolbar.hideItem(element, isHide);\n }\n }\n else {\n toolbar_1.hideItem(index, isHide);\n }\n }\n }\n };\n /**\n * @param isAdjust\n * @private\n */\n AnnotationToolbar.prototype.adjustViewer = function (isAdjust) {\n var splitterElement;\n var toolbarContainer;\n var annotationToolbarHeight;\n if (isBlazor()) {\n splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var annotationToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-annotation-toolbar');\n annotationToolbarHeight = this.getToolbarHeight(annotationToolbarContainer);\n }\n else {\n splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n annotationToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var toolbarHeight = this.getToolbarHeight(toolbarContainer);\n var sideBarToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarContentContainer = this.pdfViewerBase.navigationPane.sideBarContentContainer;\n var commentsContainer = this.pdfViewerBase.navigationPane.commentPanelContainer;\n var commentPanelResizer = this.pdfViewerBase.navigationPane.commentPanelResizer;\n var newToolbarHeight = '';\n if (isAdjust) {\n if (this.pdfViewer.enableToolbar) {\n sideBarToolbar.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n splitterElement.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n commentsContainer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n }\n else {\n sideBarToolbar.style.top = (annotationToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (annotationToolbarHeight) + 'px';\n splitterElement.style.top = (annotationToolbarHeight) + 'px';\n commentsContainer.style.top = (annotationToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (annotationToolbarHeight + toolbarHeight)) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(annotationToolbarHeight + toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n // eslint-disable-next-line max-len\n sideBarToolbar.style.top = toolbarHeight + 'px';\n sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n commentsContainer.style.top = toolbarHeight + 'px';\n commentPanelResizer.style.top = toolbarHeight + 'px';\n }\n else {\n sideBarToolbar.style.top = 1 + 'px';\n sideBarToolbar.style.height = '100%';\n sideBarContentContainer.style.top = 1 + 'px';\n sideBarContentContainer.style.height = '100%';\n splitterElement.style.top = 1 + 'px';\n splitterElement.style.height = '100%';\n commentsContainer.style.top = 1 + 'px';\n commentsContainer.style.height = '100%';\n commentPanelResizer.style.top = 1 + 'px';\n commentPanelResizer.style.height = '100%';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), annotationToolbarHeight) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n if (this.pdfViewerBase.viewerContainer.style.height === '0px') {\n // eslint-disable-next-line\n this.pdfViewerBase.viewerContainer.style.height = (parseInt(this.pdfViewer.element.style.height) - parseInt(sideBarToolbar.style.top)) + 'px';\n }\n }\n };\n AnnotationToolbar.prototype.updateContentContainerHeight = function (isAdjust, isBlazor) {\n var annotationToolbarHeight;\n if (isBlazor) {\n var annotationToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-annotation-toolbar');\n annotationToolbarHeight = this.getToolbarHeight(annotationToolbarContainer);\n }\n else {\n annotationToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var sideBarClientRect = this.pdfViewerBase.navigationPane.sideBarContentContainer.getBoundingClientRect();\n if (sideBarClientRect.height !== 0) {\n if (isAdjust) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height - annotationToolbarHeight + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height + annotationToolbarHeight + 'px';\n }\n }\n };\n AnnotationToolbar.prototype.getToolbarHeight = function (element) {\n var toolbarHeight = element.getBoundingClientRect().height;\n if (toolbarHeight === 0 && element === this.pdfViewerBase.getElement('_toolbarContainer')) {\n // getComputedStyle gets the value from style and toolbar border height is added to it.\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(element)['height']) + this.toolbarBorderHeight;\n }\n return toolbarHeight;\n };\n AnnotationToolbar.prototype.getNavigationToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n AnnotationToolbar.prototype.handleHighlight = function () {\n if (!this.isHighlightEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Highlight');\n this.primaryToolbar.selectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor = null;\n this.setCurrentColorInPicker();\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor);\n this.isHighlightEnabled = true;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n AnnotationToolbar.prototype.handleUnderline = function () {\n if (!this.isUnderlineEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Underline');\n this.primaryToolbar.selectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor = null;\n this.setCurrentColorInPicker();\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor);\n this.isUnderlineEnabled = true;\n this.isHighlightEnabled = false;\n this.isStrikethroughEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n AnnotationToolbar.prototype.handleStrikethrough = function () {\n if (!this.isStrikethroughEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Strikethrough');\n this.primaryToolbar.selectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor = null;\n this.setCurrentColorInPicker();\n // eslint-disable-next-line max-len\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor);\n this.isStrikethroughEnabled = true;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectAllItemsInBlazor = function () {\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateTextMarkupButtons', false, false, false);\n }\n this.resetFreeTextAnnot();\n this.clearTextMarkupMode();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.tool = '';\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableFreeTextAnnotationPropertiesTools(false);\n this.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.updateColorInIcon(this.fontColorElement, '#000000');\n this.selectAnnotationDeleteItem(false);\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectAllItems = function () {\n var isBlazorPlatform = isBlazor();\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isBlazorPlatform) {\n this.primaryToolbar.deSelectItem(this.pdfViewer.toolbar.SelectToolElement);\n this.primaryToolbar.selectItem(this.pdfViewer.toolbar.PanElement);\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n }\n else {\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n }\n this.resetFreeTextAnnot();\n this.clearTextMarkupMode();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.tool = '';\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableFreeTextAnnotationPropertiesTools(false);\n this.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.updateColorInIcon(this.fontColorElement, '#000000');\n this.selectAnnotationDeleteItem(false);\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n }\n };\n AnnotationToolbar.prototype.updateInteractionTools = function () {\n if (this.pdfViewer.enableTextSelection) {\n this.pdfViewerBase.initiateTextSelectMode();\n if (!Browser.isDevice) {\n this.pdfViewer.toolbar.updateInteractionTools(true);\n }\n }\n else if (!Browser.isDevice) {\n this.pdfViewer.toolbar.updateInteractionTools(false);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.selectAnnotationDeleteItem = function (isEnable, deleteIconCicked) {\n if (!isBlazor() && !Browser.isDevice) {\n if (this.toolbar) {\n if (isEnable) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.annotationModule.findCurrentAnnotation();\n if (annotation) {\n // eslint-disable-next-line\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, false);\n }\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n }\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n }\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isEnable) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.annotationModule.findCurrentAnnotation();\n if (annotation) {\n // eslint-disable-next-line\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n else {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(false);\n }\n }\n else if (this.pdfViewerBase.blazorUIAdaptor) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n }\n }\n else if (this.pdfViewerBase.blazorUIAdaptor) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n if (deleteIconCicked) {\n this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableTextMarkupAnnotationPropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n if (!isBlazor()) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.thicknessElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('AnnotationSelect', 'TextMarkup');\n this.pdfViewerBase.blazorUIAdaptor.enableTextMarkupAnnotationPropertiesTools(isEnable);\n }\n }\n };\n AnnotationToolbar.prototype.checkAnnotationPropertiesChange = function () {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n var isLock = annotation.annotationSettings.isLock;\n if (isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('PropertyChange', annotation)) {\n return true;\n }\n else {\n return false;\n }\n }\n }\n return true;\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableAnnotationPropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line')) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n }\n else {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n }\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n if (this.pdfViewer.enableShapeLabel) {\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontColorElement.parentElement, isEnable);\n }\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableAnnotationPropertiesTool(isEnable, isPropertiesChanges);\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableSignaturePropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableSignaturePropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableSignaturePropertiesTools(isEnable, isPropertiesChanges);\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableStampAnnotationPropertiesTools = function (isEnable) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.thicknessElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableStampAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableStampAnnotationPropertiesTools(isEnable, isPropertiesChanges);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableFreeTextAnnotationPropertiesTools = function (isEnable) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontColorElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textAlignElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textPropElement.parentElement, isEnable);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableFreeTextAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableFreeTextAnnotationPropertiesTools(isEnable, isPropertiesChanges);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableAnnotationAddTools = function (isEnable) {\n if (this.toolbar && !Browser.isDevice) {\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.toolbar.enableItems(this.highlightItem.parentElement, isEnable);\n this.toolbar.enableItems(this.underlineItem.parentElement, isEnable);\n this.toolbar.enableItems(this.strikethroughItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableShapeAnnotation) {\n this.toolbar.enableItems(this.shapeElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableStampAnnotations) {\n this.toolbar.enableItems(this.stampElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableMeasureAnnotation && this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.toolbar.enableItems(this.calibrateElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableFreeText) {\n this.toolbar.enableItems(this.freeTextEditItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableHandwrittenSignature) {\n this.toolbar.enableItems(this.handWrittenSignatureItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableInkAnnotation) {\n this.toolbar.enableItems(this.inkAnnotationItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableCommentPanel) {\n this.enableCommentPanelTool(isEnable);\n }\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.isAnnotationButtonsEnabled = function () {\n var isButtonsEnabled = false;\n if (this.isHighlightEnabled || this.isUnderlineEnabled || this.isStrikethroughEnabled) {\n isButtonsEnabled = true;\n }\n return isButtonsEnabled;\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableCommentPanelTool = function (isEnable) {\n if (this.toolbar) {\n this.toolbar.enableItems(this.commentItem.parentElement, isEnable);\n }\n };\n AnnotationToolbar.prototype.updateToolbarItems = function () {\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.enableTextMarkupAddTools(true);\n }\n else {\n this.enableTextMarkupAddTools(false);\n }\n this.toolbar.enableItems(this.shapeElement.parentElement, this.pdfViewer.enableShapeAnnotation);\n this.toolbar.enableItems(this.stampElement.parentElement, this.pdfViewer.enableStampAnnotations);\n this.toolbar.enableItems(this.calibrateElement.parentElement, this.pdfViewer.enableMeasureAnnotation);\n this.toolbar.enableItems(this.freeTextEditItem.parentElement, this.pdfViewer.enableFreeText);\n this.toolbar.enableItems(this.handWrittenSignatureItem.parentElement, this.pdfViewer.enableHandwrittenSignature);\n this.toolbar.enableItems(this.inkAnnotationItem.parentElement, this.pdfViewer.enableInkAnnotation);\n };\n AnnotationToolbar.prototype.enableTextMarkupAddTools = function (isEnable) {\n this.toolbar.enableItems(this.highlightItem.parentElement, isEnable);\n this.toolbar.enableItems(this.underlineItem.parentElement, isEnable);\n this.toolbar.enableItems(this.strikethroughItem.parentElement, isEnable);\n };\n /**\n * @private\n */\n // for shapes added by drawing package\n AnnotationToolbar.prototype.updateAnnnotationPropertyItems = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill, 'fillColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor, 'strokeColor'));\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].fontColor, 'fontColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateFontFamilyInIcon(this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateFontSizeInIcon(this.pdfViewer.selectedItems.annotations[0].fontSize);\n this.pdfViewer.toolbar.annotationToolbarModule.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElement, '#000000');\n }\n }\n else {\n this.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n this.strokeDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-stroke-container');\n this.fontColorElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-textcolor-container');\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill, 'fillColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor, 'strokeColor'));\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].fontColor, 'fontColor'));\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateFontFamilyInIcon', this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.blazorUIAdaptor.updateFontFamilyInIcon(this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateFontSizeInIcon', this.pdfViewer.selectedItems.annotations[0].fontSize);\n this.pdfViewerBase.blazorUIAdaptor.updateFontSizeInIcon(this.pdfViewer.selectedItems.annotations[0].fontSize);\n //this.pdfViewer.toolbar.annotationtoolbar.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElementInBlazor, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElementInBlazor, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElementInBlazor, '#000000');\n }\n }\n };\n AnnotationToolbar.prototype.getColorHexValue = function (colorString, type) {\n if (colorString === '#ffffff00') {\n colorString = '#ffffff';\n }\n if (colorString.toLowerCase() === 'red') {\n colorString = '#FF0000';\n }\n if (colorString !== 'transparent') {\n if (!isBlazor()) {\n return this.colorPalette.getValue(colorString, 'hex');\n }\n else {\n return colorString;\n }\n }\n else {\n if (type === 'fontColor' || type === 'strokeColor') {\n return '#000000';\n }\n else {\n return '#ffffff';\n }\n }\n };\n AnnotationToolbar.prototype.setColorInPicker = function (colorpick, colorString) {\n if (colorpick) {\n colorpick.setProperties({ 'value': colorString }, true);\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.resetToolbar = function () {\n this.adjustViewer(false);\n this.updateToolbarItems();\n // eslint-disable-next-line max-len\n if ((this.pdfViewer.isAnnotationToolbarOpen || this.pdfViewer.isAnnotationToolbarVisible) && this.pdfViewer.enableAnnotationToolbar) {\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.enableAnnotationAddTools(false);\n this.pdfViewer.isAnnotationToolbarVisible = true;\n }\n else {\n this.toolbarElement.style.display = 'none';\n this.isToolbarHidden = true;\n this.pdfViewer.isAnnotationToolbarVisible = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearTextMarkupMode = function () {\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n if (isBlazor()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearShapeMode = function () {\n if (this.pdfViewerBase.isShapeAnnotationModule()) {\n this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearMeasureMode = function () {\n if (this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.currentAnnotationMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clear = function () {\n this.deselectAllItems();\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.destroy = function () {\n this.destroyComponent();\n this.shapeDropDown ? this.shapeDropDown.destroy() : null;\n this.calibrateDropDown ? this.calibrateDropDown.destroy() : null;\n this.fontColorDropDown ? this.fontColorDropDown.destroy() : null;\n this.textAlignDropDown ? this.textAlignDropDown.destroy() : null;\n this.colorDropDown ? this.colorDropDown.destroy() : null;\n this.strokeDropDown ? this.strokeDropDown.destroy() : null;\n this.thicknessDropDown ? this.thicknessDropDown.destroy() : null;\n this.opacityDropDown ? this.opacityDropDown.destroy() : null;\n this.textPropertiesDropDown ? this.textPropertiesDropDown.destroy() : null;\n this.toolbar ? this.toolbar.destroy() : null;\n // eslint-disable-next-line\n var stampImage = document.getElementById(this.pdfViewer.element.id + '_stampElement');\n if (stampImage) {\n stampImage.parentElement.removeChild(stampImage);\n }\n };\n AnnotationToolbar.prototype.destroyComponent = function () {\n // eslint-disable-next-line\n var componentElement = [this.highlightItem, this.underlineItem, this.strikethroughItem, this.lineElement, this.arrowElement,\n this.rectangleElement, this.circleElement, this.polygonElement, this.calibrateDistance, this.calibrateArea, this.calibrateRadius,\n this.calibrateVolume, this.calibratePerimeter, this.freeTextEditItem, this.stampElement, this.handWrittenSignatureItem, this.inkAnnotationItem,\n this.fontFamilyElement, this.fontSizeElement, this.alignLeftElement, this.alignRightElement, this.alignCenterElement, this.alignJustifyElement,\n this.boldElement, this.italicElement, this.fontStyleStrikethroughItem, this.fontStyleUnderlineItem, this.deleteItem, this.commentItem,\n this.shapeDropDown ? this.shapeDropDown.activeElem[0] : null, this.calibrateDropDown ? this.calibrateDropDown.activeElem[0] : null, this.fontColorDropDown ? this.fontColorDropDown.activeElem[0] : null, this.textAlignDropDown ? this.textAlignDropDown.activeElem[0] : null,\n this.colorDropDown ? this.colorDropDown.activeElem[0] : null, this.strokeDropDown ? this.strokeDropDown.activeElem[0] : null, this.thicknessDropDown ? this.thicknessDropDown.activeElem[0] : null, this.opacityDropDown ? this.opacityDropDown.activeElem[0] : null, this.textPropertiesDropDown ? this.textPropertiesDropDown.activeElem[0] : null\n ];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n AnnotationToolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n AnnotationToolbar.prototype.getElementHeight = function (element) {\n try {\n return element.getBoundingClientRect().height;\n }\n catch (error) {\n return 0;\n }\n };\n AnnotationToolbar.prototype.updateViewerHeight = function (viewerHeight, toolbarHeight) {\n return this.getElementHeight(this.pdfViewer.element) - toolbarHeight;\n };\n AnnotationToolbar.prototype.resetViewerHeight = function (viewerHeight, toolbarHeight) {\n return viewerHeight + toolbarHeight;\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.afterAnnotationToolbarCreationInBlazor = function () {\n this.HighlightElement = document.getElementById(this.pdfViewer.element.id + '_highLight').children[0];\n this.UnderlineElement = document.getElementById(this.pdfViewer.element.id + '_underline').children[0];\n this.StrikethroughElement = document.getElementById(this.pdfViewer.element.id + '_strikethrough').children[0];\n this.InkAnnotationElement = document.getElementById(this.pdfViewer.element.id + '_annotation_ink').children[0];\n this.InkAnnotationElement.classList.add('e-pv-tbar-btn');\n this.FreeTextElement = document.getElementById(this.pdfViewer.element.id + '_annotation_freeTextEdit').children[0];\n this.HighlightElement = this.addClassToToolbarInBlazor(this.HighlightElement, 'e-pv-highlight', '_highLight');\n this.UnderlineElement = this.addClassToToolbarInBlazor(this.UnderlineElement, 'e-pv-underline', '_underline');\n this.StrikethroughElement = this.addClassToToolbarInBlazor(this.StrikethroughElement, 'e-pv-strikethrough', '_strikethrough');\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.addClassToToolbarInBlazor = function (element, className, idString) {\n element.classList.add(className);\n element.classList.add('e-pv-tbar-btn');\n if (element.childNodes.length > 0) {\n var spanElement = element.childNodes[0];\n if (spanElement && spanElement.classList) {\n spanElement.id = this.pdfViewer.element.id + idString + 'Icon';\n spanElement.classList.remove('e-icons');\n spanElement.classList.remove('e-btn-icon');\n if (this.pdfViewer.enableRtl) {\n spanElement.classList.add('e-right');\n }\n }\n }\n return element;\n };\n AnnotationToolbar.prototype.handleHighlightInBlazor = function () {\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n else if (!this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.HighlightElement);\n }\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n };\n AnnotationToolbar.prototype.handleUnderlineInBlazor = function () {\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n else if (!this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.UnderlineElement);\n }\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n };\n AnnotationToolbar.prototype.handleStrikethroughInBlazor = function () {\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n else if (!this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.StrikethroughElement);\n }\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n };\n AnnotationToolbar.prototype.AnnotationSliderOpened = function () {\n if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations.length > 0 && this.pdfViewer.selectedItems.annotations[0]) {\n if (this.pdfViewer.selectedItems.annotations[0].wrapper && this.pdfViewer.selectedItems.annotations[0].wrapper.children[0]) {\n var opacity = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n var thickness = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateAnnotationSlider', opacity, thickness);\n }\n }\n };\n AnnotationToolbar.prototype.DropDownOpened = function (colorElement) {\n if (colorElement && colorElement[0].element) {\n var colorElementBounds = colorElement[0].element.getBoundingClientRect();\n var sidebarElement = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarElementWidth = (sidebarElement) ? sidebarElement.getBoundingClientRect().width : 0;\n if (colorElementBounds.left > this.pdfViewerBase.viewerContainer.clientWidth + colorElementBounds.width + sideBarElementWidth) {\n colorElement[0].element.style.left = (colorElementBounds.left - (this.pdfViewerBase.viewerContainer.clientHeight / 2)) + 'px';\n }\n }\n };\n return AnnotationToolbar;\n}());\nexport { AnnotationToolbar };\n","/* eslint-disable */\nimport { createElement, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool } from '@syncfusion/ej2-navigations';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\n/* eslint-disable */\n/**\n * @hidden\n */\nvar FormDesignerToolbar = /** @class */ (function () {\n function FormDesignerToolbar(viewer, viewerBase, toolbar) {\n /**\n * @private\n */\n this.isToolbarHidden = false;\n this.isTextboxBtnVisible = true;\n this.isPasswordBtnVisible = true;\n this.isCheckboxBtnVisible = true;\n this.isRadiobuttonBtnVisible = true;\n this.isDropdownBtnVisible = true;\n this.isListboxBtnVisible = true;\n this.isSignatureBtnVisible = true;\n this.isDeleteBtnVisible = true;\n this.toolbarBorderHeight = 1;\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n this.primaryToolbar = toolbar;\n }\n FormDesignerToolbar.prototype.initializeFormDesignerToolbar = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_formdesigner_toolbar', className: 'e-pv-formdesigner-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup',\n items: this.createToolbarItems(), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns();\n }\n });\n //this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.afterToolbarCreation();\n this.createSignContainer();\n this.applyFormDesignerToolbarSettings();\n //this.updateToolbarItems();\n this.showFormDesignerToolbar(null, true);\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.resetFormDesignerToolbar = function () {\n this.adjustViewer(false);\n if (this.pdfViewer.isFormDesignerToolbarVisible) {\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.pdfViewer.isFormDesignerToolbarVisible = true;\n }\n else {\n this.toolbarElement.style.display = 'none';\n this.isToolbarHidden = true;\n this.pdfViewer.isFormDesignerToolbarVisible = false;\n }\n };\n /**\n * @param element\n * @param isInitialLoading\n * @param element\n * @param isInitialLoading\n * @private\n */\n FormDesignerToolbar.prototype.showFormDesignerToolbar = function (element, isInitialLoading) {\n if (!this.isToolbarHidden) {\n // eslint-disable-next-line\n var formDesignerModule = this.pdfViewer.formDesignerModule;\n if (element) {\n this.primaryToolbar.deSelectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.deSelectItem(this.primaryToolbar.formDesignerItem);\n }\n }\n this.adjustViewer(false);\n // eslint-disable-next-line max-len\n //this.deselectAllItems();\n this.toolbarElement.style.display = 'none';\n this.pdfViewer.formDesignerModule.setMode(\"edit\");\n this.pdfViewer.designerMode = false;\n if (!isInitialLoading) {\n this.pdfViewer.isFormDesignerToolbarVisible = false;\n }\n }\n else {\n var toolBarInitialStatus = this.toolbarElement.style.display;\n this.toolbarElement.style.display = 'block';\n this.pdfViewer.designerMode = true;\n this.pdfViewer.formDesignerModule.setMode(\"designer\");\n if (!isInitialLoading) {\n this.pdfViewer.isFormDesignerToolbarVisible = true;\n }\n if (element) {\n this.primaryToolbar.selectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.selectItem(this.primaryToolbar.formDesignerItem);\n }\n }\n if (toolBarInitialStatus === 'none') {\n this.adjustViewer(true);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnification && this.pdfViewer.magnification.fitType === 'fitToPage') {\n this.pdfViewer.magnification.fitToPage();\n }\n //this.enableAnnotationAddTools(true);\n this.isToolbarHidden = !this.isToolbarHidden;\n };\n /**\n * @param isAdjust\n * @private\n */\n FormDesignerToolbar.prototype.adjustViewer = function (isAdjust) {\n var splitterElement;\n var toolbarContainer;\n var formDesignerToolbarHeight;\n if (isBlazor()) {\n splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');\n formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);\n }\n else {\n splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var toolbarHeight = this.getToolbarHeight(toolbarContainer);\n var sideBarToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarContentContainer = this.pdfViewerBase.navigationPane.sideBarContentContainer;\n var commentsContainer = this.pdfViewerBase.navigationPane.commentPanelContainer;\n var commentPanelResizer = this.pdfViewerBase.navigationPane.commentPanelResizer;\n var newToolbarHeight = '';\n if (isAdjust) {\n if (this.pdfViewer.enableToolbar) {\n sideBarToolbar.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n splitterElement.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n commentsContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n }\n else {\n sideBarToolbar.style.top = (formDesignerToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (formDesignerToolbarHeight) + 'px';\n splitterElement.style.top = (formDesignerToolbarHeight) + 'px';\n commentsContainer.style.top = (formDesignerToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (formDesignerToolbarHeight + toolbarHeight)) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(formDesignerToolbarHeight + toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n // eslint-disable-next-line max-len\n sideBarToolbar.style.top = toolbarHeight + 'px';\n sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n commentsContainer.style.top = toolbarHeight + 'px';\n commentPanelResizer.style.top = toolbarHeight + 'px';\n }\n else {\n sideBarToolbar.style.top = 1 + 'px';\n sideBarToolbar.style.height = '100%';\n sideBarContentContainer.style.top = 1 + 'px';\n sideBarContentContainer.style.height = '100%';\n splitterElement.style.top = 1 + 'px';\n splitterElement.style.height = '100%';\n commentsContainer.style.top = 1 + 'px';\n commentsContainer.style.height = '100%';\n commentPanelResizer.style.top = 1 + 'px';\n commentPanelResizer.style.height = '100%';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), formDesignerToolbarHeight) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n if (this.pdfViewerBase.viewerContainer.style.height === '0px') {\n // eslint-disable-next-line\n this.pdfViewerBase.viewerContainer.style.height = (parseInt(this.pdfViewer.element.style.height) - parseInt(sideBarToolbar.style.top)) + 'px';\n }\n }\n };\n FormDesignerToolbar.prototype.getElementHeight = function (element) {\n try {\n return element.getBoundingClientRect().height;\n }\n catch (error) {\n return 0;\n }\n };\n FormDesignerToolbar.prototype.updateViewerHeight = function (viewerHeight, toolbarHeight) {\n return this.getElementHeight(this.pdfViewer.element) - toolbarHeight;\n };\n FormDesignerToolbar.prototype.resetViewerHeight = function (viewerHeight, toolbarHeight) {\n return viewerHeight + toolbarHeight;\n };\n FormDesignerToolbar.prototype.getNavigationToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n FormDesignerToolbar.prototype.updateContentContainerHeight = function (isAdjust, isBlazor) {\n var formDesignerToolbarHeight;\n if (isBlazor) {\n var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');\n formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);\n }\n else {\n formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var sideBarClientRect = this.pdfViewerBase.navigationPane.sideBarContentContainer.getBoundingClientRect();\n if (sideBarClientRect.height !== 0) {\n if (isAdjust) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height - formDesignerToolbarHeight + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height + formDesignerToolbarHeight + 'px';\n }\n }\n };\n FormDesignerToolbar.prototype.getToolbarHeight = function (element) {\n var toolbarHeight = element.getBoundingClientRect().height;\n if (toolbarHeight === 0 && element === this.pdfViewerBase.getElement('_toolbarContainer')) {\n // getComputedStyle gets the value from style and toolbar border height is added to it.\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(element)['height']) + this.toolbarBorderHeight;\n }\n return toolbarHeight;\n };\n // eslint-disable-next-line\n FormDesignerToolbar.prototype.createToolbarItems = function () {\n var signTemplate = this.getTemplate('button', '_formfield_signature', 'e-pv-annotation-handwritten-container');\n // eslint-disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-textbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_textbox', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-password-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_passwordfield', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-checkbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_checkbox', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-radiobutton-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_radiobutton', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-dropdown-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_dropdown', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-listbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_listbox', align: 'Left' });\n items.push({ template: signTemplate, align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_formdesigner_delete', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-annotation-tools-close-icon e-pv-icon', className: 'e-pv-annotation-tools-close-container', id: this.pdfViewer.element.id + '_formdesigner_close', align: 'Right' });\n return items;\n };\n FormDesignerToolbar.prototype.createSignContainer = function () {\n var _this = this;\n this.handWrittenSignatureItem = this.pdfViewerBase.getElement('_formfield_signature');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_formfield_signature'), this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText'));\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n items = [\n {\n text: 'ADD SIGNATURE'\n },\n {\n separator: true\n },\n {\n text: 'ADD INITIAL'\n }\n ];\n var saveOptions = {\n items: items,\n iconCss: 'e-pv-handwritten-icon e-pv-icon',\n cssClass: 'e-pv-handwritten-popup',\n beforeItemRender: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n if (args.element && args.element.className.indexOf(\"e-separator\") !== -1) {\n args.element.style.margin = \"8px 0\";\n args.element.setAttribute('role', 'menuitem');\n args.element.setAttribute('aria-label', 'separator');\n }\n if (args.item.text === 'ADD SIGNATURE') {\n args.element.innerHTML = '';\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickSignature.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n if (args.item.text === 'ADD INITIAL') {\n args.element.innerHTML = '';\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('InitialFieldDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickInitial.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n },\n };\n var drpDownBtn = new DropDownButton(saveOptions);\n if (this.pdfViewer.enableRtl) {\n drpDownBtn.enableRtl = this.pdfViewer.enableRtl;\n }\n drpDownBtn.appendTo(this.handWrittenSignatureItem);\n };\n FormDesignerToolbar.prototype.hoverInitialBtn = function (event) {\n var eventTarget = event.target;\n var currentFieldID = isNullOrUndefined(event.path) ? event.composedPath()[0].id : event.path[0].id;\n if (currentFieldID !== 'sign_' + currentFieldID.split(\"_\")[1] && currentFieldID !== 'delete_' + currentFieldID.split(\"_\")[1]) {\n var liElement = document.getElementById(eventTarget.id);\n if (isNullOrUndefined(liElement)) {\n liElement = document.getElementById(eventTarget.parentElement.id);\n }\n if (liElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.style.background = 'transparent';\n liElement.style.cursor = 'default';\n }\n else if (liElement.parentElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.parentElement.style.background = 'transparent';\n liElement.parentElement.style.cursor = 'default';\n }\n }\n };\n FormDesignerToolbar.prototype.getTemplate = function (elementName, id, className) {\n var element = createElement(elementName, { id: this.pdfViewer.element.id + id });\n if (className) {\n element.className = className;\n }\n return element.outerHTML;\n };\n FormDesignerToolbar.prototype.onToolbarClicked = function (args) {\n // eslint-disable-next-line\n if (args && args.item) {\n if (args.item.id.indexOf(\"textbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('Textbox');\n }\n else if (args.item.id.indexOf(\"passwordfield\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('Password');\n }\n else if (args.item.id.indexOf(\"checkbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('CheckBox');\n }\n else if (args.item.id.indexOf(\"radiobutton\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('RadioButton');\n }\n else if (args.item.id.indexOf(\"dropdown\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('DropDown');\n }\n else if (args.item.id.indexOf(\"listbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('ListBox');\n }\n else if (args.item.id.indexOf(\"signature\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');\n }\n else if (args.item.id.indexOf(\"close\") !== -1) {\n this.pdfViewer.toolbarModule.formDesignerToolbarModule.showFormDesignerToolbar(this.pdfViewer.toolbarModule.formDesignerItem);\n }\n else if (args.item.id.indexOf(\"delete\") !== -1) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0]);\n this.showHideDeleteIcon(false);\n }\n if (this.pdfViewer.selectedItems.formFields.length > 0) {\n this.pdfViewer.clearSelection(this.pdfViewer.selectedItems.formFields[0].pageIndex);\n }\n }\n };\n FormDesignerToolbar.prototype.clickSignature = function (args) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');\n };\n FormDesignerToolbar.prototype.clickInitial = function (args) {\n this.pdfViewer.isInitialFieldToolbarSelection = true;\n this.pdfViewer.formDesignerModule.setFormFieldMode('InitialField');\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n };\n FormDesignerToolbar.prototype.afterToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.textboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_textbox', 'e-pv-formdesigner-textbox', this.pdfViewer.localeObj.getConstant('Textbox'));\n this.passwordItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_passwordfield', 'e-pv-formdesigner-passwordfield', this.pdfViewer.localeObj.getConstant('Password'));\n this.checkboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_checkbox', 'e-pv-formdesigner-checkbox', this.pdfViewer.localeObj.getConstant('Check Box'));\n this.radioButtonItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_radiobutton', 'e-pv-formdesigner-radiobutton', this.pdfViewer.localeObj.getConstant('Radio Button'));\n this.dropdownItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_dropdown', 'e-pv-formdesigner-dropdown', this.pdfViewer.localeObj.getConstant('Dropdown'));\n this.listboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_listbox', 'e-pv-formdesigner-listbox', this.pdfViewer.localeObj.getConstant('List Box'));\n //this.signatureItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_signature', 'e-pv-formdesigner-signature', this.pdfViewer.localeObj.getConstant('Signature'));\n this.deleteItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_delete', 'e-pv-formdesigner-delete', this.pdfViewer.localeObj.getConstant('Delete FormField'));\n this.closeItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_close', 'e-pv-annotation-tools-close', null);\n this.showHideDeleteIcon(false);\n //this.enableTextMarkupAnnotationPropertiesTools(false); \n };\n FormDesignerToolbar.prototype.showHideDeleteIcon = function (isEnable) {\n if (this.toolbar)\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.applyFormDesignerToolbarSettings = function () {\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems) {\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('TextboxTool') !== -1) {\n this.showTextboxTool(true);\n }\n else {\n this.showTextboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('PasswordTool') !== -1) {\n this.showPasswordTool(true);\n }\n else {\n this.showPasswordTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('CheckBoxTool') !== -1) {\n this.showCheckboxTool(true);\n }\n else {\n this.showCheckboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('RadioButtonTool') !== -1) {\n this.showRadioButtonTool(true);\n }\n else {\n this.showRadioButtonTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DropdownTool') !== -1) {\n this.showDropdownTool(true);\n }\n else {\n this.showDropdownTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('ListboxTool') !== -1) {\n this.showListboxTool(true);\n }\n else {\n this.showListboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DrawSignatureTool') !== -1) {\n this.showDrawSignatureTool(true);\n }\n else {\n this.showDrawSignatureTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DeleteTool') !== -1) {\n this.showDeleteTool(true);\n }\n else {\n this.showDeleteTool(false);\n }\n this.showSeparator();\n }\n };\n FormDesignerToolbar.prototype.showTextboxTool = function (isShow) {\n this.isTextboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 0, 0);\n };\n FormDesignerToolbar.prototype.showPasswordTool = function (isShow) {\n this.isPasswordBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 1, 1);\n };\n FormDesignerToolbar.prototype.showCheckboxTool = function (isShow) {\n this.isCheckboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 2, 2);\n };\n FormDesignerToolbar.prototype.showRadioButtonTool = function (isShow) {\n this.isRadiobuttonBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 3, 3);\n };\n FormDesignerToolbar.prototype.showDropdownTool = function (isShow) {\n this.isDropdownBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 4, 4);\n };\n FormDesignerToolbar.prototype.showListboxTool = function (isShow) {\n this.isListboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 5, 5);\n };\n FormDesignerToolbar.prototype.showDrawSignatureTool = function (isShow) {\n this.isSignatureBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 6, 6);\n };\n FormDesignerToolbar.prototype.showDeleteTool = function (isShow) {\n this.isDeleteBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 8, 8);\n };\n FormDesignerToolbar.prototype.showSeparator = function () {\n if (!this.isSignatureBtnVisible && !this.isDeleteBtnVisible)\n this.applyHideToToolbar(false, 7, 7);\n };\n FormDesignerToolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n this.toolbar.hideItem(index, isHide);\n }\n };\n FormDesignerToolbar.prototype.createDropDowns = function () {\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.destroy = function () {\n var componentElement = [this.textboxItem, this.passwordItem, this.checkboxItem, this.radioButtonItem,\n this.listboxItem, this.dropdownItem, this.handWrittenSignatureItem, this.deleteItem];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n FormDesignerToolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n return FormDesignerToolbar;\n}());\nexport { FormDesignerToolbar };\n","/* eslint-disable */\nimport { createElement, Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Toolbar as tool } from '@syncfusion/ej2-navigations';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { AnnotationToolbar } from '../index';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { FormFieldDataFormat } from '../base/types';\nimport { FormDesignerToolbar } from './formdesigner-toolbar';\n/**\n * Toolbar module\n */\nvar Toolbar = /** @class */ (function () {\n /**\n * @param viewer\n * @param viewerBase\n * @param viewer\n * @param viewerBase\n * @private\n */\n function Toolbar(viewer, viewerBase) {\n var _this = this;\n this.isPageNavigationToolDisabled = false;\n this.isMagnificationToolDisabled = false;\n /**\n * @private\n */\n this.isSelectionToolDisabled = false;\n this.isScrollingToolDisabled = false;\n this.isOpenBtnVisible = true;\n this.isNavigationToolVisible = true;\n this.isMagnificationToolVisible = true;\n this.isSelectionBtnVisible = true;\n this.isScrollingBtnVisible = true;\n this.isDownloadBtnVisible = true;\n this.isPrintBtnVisible = true;\n this.isSearchBtnVisible = true;\n this.isTextSearchBoxDisplayed = false;\n this.isUndoRedoBtnsVisible = true;\n this.isAnnotationEditBtnVisible = true;\n this.isFormDesignerEditBtnVisible = true;\n this.isCommentBtnVisible = true;\n this.isSubmitbtnvisible = true;\n this.onToolbarKeydown = function (event) {\n var targetId = event.target.id;\n if (!(targetId === _this.pdfViewer.element.id + '_currentPageInput' || targetId === _this.pdfViewer.element.id + '_zoomDropDown')) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n this.toolbarClickHandler = function (args) {\n // eslint-disable-next-line max-len\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n if (args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[1] || args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[2]) {\n args.cancel = true;\n }\n else if (args.originalEvent.target.id === _this.pdfViewer.element.id + '_openIcon') {\n var tooltipData = args.originalEvent.target.parentElement.dataset;\n if (tooltipData && tooltipData.tooltipId) {\n var tooltipElement = document.getElementById(tooltipData.tooltipId);\n if (tooltipElement) {\n tooltipElement.style.display = 'none';\n }\n }\n }\n }\n _this.handleToolbarBtnClick(args);\n // eslint-disable-next-line\n var targetElement = args.originalEvent.target;\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n if (!(args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[1] || args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[2] || args.originalEvent.target === _this.currentPageBoxElement || args.originalEvent.target === _this.textSearchItem.childNodes[0])) {\n if (targetElement.parentElement.id !== _this.pdfViewer.element.id + '_toolbarContainer_nav' && targetElement.id !== _this.pdfViewer.element.id + '_toolbarContainer_nav') {\n args.originalEvent.target.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n else {\n args.originalEvent.target.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n };\n // eslint-disable-next-line\n this.loadDocument = function (args) {\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile) {\n _this.uploadedDocumentName = uploadedFile.name;\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n var uploadedFileUrl = e.currentTarget.result;\n if (isBlazor()) {\n _this.pdfViewer._dotnetInstance.invokeMethodAsync(\"LoadDocumentFromClient\", uploadedFileUrl);\n }\n else {\n _this.pdfViewer.load(uploadedFileUrl, null);\n }\n };\n }\n }\n };\n this.navigateToPage = function (args) {\n if (args.which === 13) {\n // eslint-disable-next-line\n var enteredValue = parseInt(_this.currentPageBoxElement.value);\n if (enteredValue !== null) {\n if (enteredValue > 0 && enteredValue <= _this.pdfViewerBase.pageCount) {\n if (_this.pdfViewer.navigationModule) {\n _this.pdfViewer.navigationModule.goToPage(enteredValue);\n }\n }\n else {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n }\n else {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n _this.currentPageBoxElement.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n };\n this.textBoxFocusOut = function () {\n // eslint-disable-next-line\n if (_this.currentPageBox.value === null || _this.currentPageBox.value >= _this.pdfViewerBase.pageCount || _this.currentPageBox.value !== _this.pdfViewerBase.currentPageNumber) {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * @param width\n * @private\n */\n Toolbar.prototype.intializeToolbar = function (width) {\n var toolbarDiv;\n if (!isBlazor()) {\n toolbarDiv = this.createToolbar(width);\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n this.toolbarElement = toolbarDiv;\n }\n }\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (isIE) {\n if (isBlazor()) {\n this.pdfViewerBase.blazorUIAdaptor.totalPageElement.classList.add('e-pv-total-page-ms');\n }\n else {\n if (!Browser.isDevice) {\n this.totalPageItem.classList.add('e-pv-total-page-ms');\n }\n }\n }\n this.createFileElement(toolbarDiv);\n this.wireEvent();\n if (!isBlazor()) {\n this.updateToolbarItems();\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyToolbarSettings();\n this.initialEnableItems();\n this.pdfViewerBase.navigationPane.adjustPane();\n }\n else {\n this.initialEnableItems();\n }\n if (this.pdfViewer.annotationModule) {\n this.annotationToolbarModule = new AnnotationToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.annotationToolbarModule.initializeAnnotationToolbar();\n }\n }\n if (this.pdfViewer.formDesignerModule) {\n this.formDesignerToolbarModule = new FormDesignerToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.formDesignerToolbarModule.initializeFormDesignerToolbar();\n }\n }\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.initialEnableItems();\n this.pdfViewerBase.navigationPane.adjustPane();\n if (this.pdfViewer.enableToolbar) {\n this.bindOpenIconEvent();\n }\n }\n this.PanElement = document.getElementById(this.pdfViewer.element.id + '_handTool').children[0];\n this.PanElement.classList.add('e-pv-tbar-btn');\n this.SelectToolElement = document.getElementById(this.pdfViewer.element.id + '_selectTool').children[0];\n this.SelectToolElement.classList.add('e-pv-tbar-btn');\n this.CommentElement = document.getElementById(this.pdfViewer.element.id + '_comment').children[0];\n this.CommentElement.classList.add('e-pv-tbar-btn');\n this.annotationToolbarModule = new AnnotationToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar || (this.pdfViewer.enableDesktopMode && Browser.isDevice)) {\n this.annotationToolbarModule.afterAnnotationToolbarCreationInBlazor();\n }\n }\n return toolbarDiv;\n };\n Toolbar.prototype.bindOpenIconEvent = function () {\n var openElement = document.getElementById(this.pdfViewer.element.id + '_open');\n if (openElement) {\n openElement.addEventListener('click', this.openFileDialogBox.bind(this));\n }\n };\n Toolbar.prototype.InitializeMobileToolbarInBlazor = function () {\n var toolbarDiv;\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar');\n this.createFileElement(toolbarDiv);\n this.wireEvent();\n };\n /**\n * Shows /hides the toolbar in the PdfViewer\n *\n * @param {boolean} enableToolbar - If set true , its show the Toolbar\n * @returns void\n */\n Toolbar.prototype.showToolbar = function (enableToolbar) {\n var toolbar = this.toolbarElement;\n if (enableToolbar) {\n toolbar.style.display = 'block';\n // eslint-disable-next-line max-len\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n }\n }\n else {\n this.pdfViewerBase.toolbarHeight = 0;\n if (enableToolbar) {\n if (Browser.isDevice && this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.annotationToolbarModule.toolbarCreated = false;\n this.annotationToolbarModule.adjustMobileViewer();\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'none';\n }\n if (Browser.isDevice && this.annotationToolbarModule.propertyToolbar) {\n this.annotationToolbarModule.propertyToolbar.element.style.display = 'none';\n }\n }\n toolbar.style.display = 'none';\n }\n };\n /**\n * Shows/hides the Navigation toolbar in the PdfViewer\n *\n * @param {boolean} enableNavigationToolbar - If set true , its show the Navigation Toolbar\n * @returns void\n */\n Toolbar.prototype.showNavigationToolbar = function (enableNavigationToolbar) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n var navigationToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var navigationToolbarSplitter = this.pdfViewerBase.navigationPane.sideBarToolbarSplitter;\n if (enableNavigationToolbar) {\n navigationToolbar.style.display = 'block';\n navigationToolbarSplitter.style.display = 'block';\n if (this.pdfViewerBase.navigationPane.isBookmarkOpen || this.pdfViewerBase.navigationPane.isThumbnailOpen) {\n this.pdfViewerBase.navigationPane.clear();\n }\n }\n else {\n navigationToolbar.style.display = 'none';\n navigationToolbarSplitter.style.display = 'none';\n if (this.pdfViewerBase.navigationPane.isBookmarkOpen || this.pdfViewerBase.navigationPane.isThumbnailOpen) {\n this.pdfViewerBase.navigationPane.updateViewerContainerOnClose();\n }\n }\n }\n };\n /**\n * Shows /hides the annotation toolbar in the PdfViewer\n *\n * @param {boolean} enableAnnotationToolbar - If set true , its show the annotation Toolbar\n * @returns void\n */\n Toolbar.prototype.showAnnotationToolbar = function (enableAnnotationToolbar) {\n if (enableAnnotationToolbar) {\n this.annotationToolbarModule.isToolbarHidden = true;\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n else {\n this.annotationToolbarModule.isToolbarHidden = false;\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n };\n /**\n * Shows /hides the the toolbar items in the PdfViewer\n *\n * @param {string[]} items - Defines the toolbar items in the toolbar\n * @param {boolean} isVisible - If set true, then its show the toolbar Items\n * @returns void\n */\n Toolbar.prototype.showToolbarItem = function (items, isVisible) {\n for (var i = 0; i < items.length; i++) {\n switch (items[i]) {\n case 'OpenOption':\n this.showOpenOption(isVisible);\n break;\n case 'PageNavigationTool':\n this.showPageNavigationTool(isVisible);\n break;\n case 'MagnificationTool':\n this.showMagnificationTool(isVisible);\n break;\n case 'SelectionTool':\n this.showSelectionTool(isVisible);\n break;\n case 'PanTool':\n this.showScrollingTool(isVisible);\n break;\n case 'DownloadOption':\n this.showDownloadOption(isVisible);\n break;\n case 'PrintOption':\n this.showPrintOption(isVisible);\n break;\n case 'SearchOption':\n this.showSearchOption(isVisible);\n break;\n case 'UndoRedoTool':\n this.showUndoRedoTool(isVisible);\n break;\n case 'AnnotationEditTool':\n this.showAnnotationEditTool(isVisible);\n break;\n case 'FormDesignerEditTool':\n this.showFormDesignerEditTool(isVisible);\n break;\n case 'CommentTool':\n this.showCommentOption(isVisible);\n break;\n case 'SubmitForm':\n this.showSubmitForm(isVisible);\n break;\n }\n }\n this.applyHideToToolbar(true, 1, 1);\n this.applyHideToToolbar(true, 8, 8);\n this.applyHideToToolbar(true, 12, 12);\n this.applyHideToToolbar(true, 15, 15);\n this.showSeparator(items);\n };\n /**\n * Enables /disables the the toolbar items in the PdfViewer\n *\n * @param {string[]} items - Defines the toolbar items in the toolbar\n * @param {boolean} isEnable - If set true, then its Enable the toolbar Items\n * @returns void\n */\n Toolbar.prototype.enableToolbarItem = function (items, isEnable) {\n for (var i = 0; i < items.length; i++) {\n switch (items[i]) {\n case 'OpenOption':\n this.enableOpenOption(isEnable);\n break;\n case 'PageNavigationTool':\n this.isPageNavigationToolDisabled = isEnable;\n this.enablePageNavigationTool(isEnable);\n break;\n case 'MagnificationTool':\n this.isMagnificationToolDisabled = isEnable;\n this.enableMagnificationTool(isEnable);\n break;\n case 'SelectionTool':\n this.isSelectionToolDisabled = isEnable;\n this.enableSelectionTool(isEnable);\n break;\n case 'PanTool':\n this.isScrollingToolDisabled = isEnable;\n this.enableScrollingTool(isEnable);\n break;\n case 'DownloadOption':\n this.enableDownloadOption(isEnable);\n break;\n case 'PrintOption':\n this.enablePrintOption(isEnable);\n break;\n case 'SearchOption':\n this.enableSearchOption(isEnable);\n break;\n case 'UndoRedoTool':\n this.enableUndoRedoTool(isEnable);\n break;\n case 'AnnotationEditTool':\n this.enableAnnotationEditTool(isEnable);\n break;\n case 'FormDesignerEditTool':\n this.enableFormDesignerEditTool(isEnable);\n break;\n case 'CommentTool':\n this.enableCommentsTool(isEnable);\n break;\n }\n }\n };\n /**\n * @param restrictionSummary\n * @param isEnable\n * @param restrictionSummary\n * @param isEnable\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.DisableToolbarItems = function (restrictionSummary, isEnable) {\n switch (restrictionSummary) {\n case 'Print':\n this.enablePrintOption(isEnable);\n break;\n case 'CopyContent':\n this.isSelectionToolDisabled = isEnable;\n this.enableSelectionTool(isEnable);\n if (isEnable) {\n this.pdfViewerBase.initiateTextSelectMode();\n this.updateInteractionTools(isEnable);\n }\n else {\n this.pdfViewerBase.initiatePanning();\n this.updateInteractionTools(isEnable);\n }\n break;\n case 'EditAnnotations':\n this.enableAnnotationEditTool(isEnable);\n if (this.annotationToolbarModule && !this.annotationToolbarModule.isToolbarHidden) {\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n break;\n }\n };\n Toolbar.prototype.showOpenOption = function (enableOpenOption) {\n this.isOpenBtnVisible = enableOpenOption;\n this.applyHideToToolbar(enableOpenOption, 0, 0);\n };\n Toolbar.prototype.showPageNavigationTool = function (enablePageNavigationTool) {\n this.isNavigationToolVisible = enablePageNavigationTool;\n this.applyHideToToolbar(enablePageNavigationTool, 2, 7);\n };\n Toolbar.prototype.showMagnificationTool = function (enableMagnificationTool) {\n this.isMagnificationToolVisible = enableMagnificationTool;\n this.applyHideToToolbar(enableMagnificationTool, 9, 11);\n };\n Toolbar.prototype.showSelectionTool = function (enableSelectionTool) {\n this.isSelectionBtnVisible = enableSelectionTool;\n this.applyHideToToolbar(enableSelectionTool, 13, 13);\n };\n Toolbar.prototype.showScrollingTool = function (enableScrollingTool) {\n this.isScrollingBtnVisible = enableScrollingTool;\n this.applyHideToToolbar(enableScrollingTool, 14, 14);\n };\n Toolbar.prototype.showDownloadOption = function (enableDownloadOption) {\n this.isDownloadBtnVisible = enableDownloadOption;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(enableDownloadOption, 26, 26);\n }\n else {\n this.applyHideToToolbar(enableDownloadOption, 5, 5);\n }\n };\n Toolbar.prototype.showPrintOption = function (enablePrintOption) {\n this.isPrintBtnVisible = enablePrintOption;\n this.applyHideToToolbar(enablePrintOption, 25, 25);\n };\n Toolbar.prototype.showSearchOption = function (enableSearchOption) {\n this.isSearchBtnVisible = enableSearchOption;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(enableSearchOption, 22, 22);\n }\n else {\n this.applyHideToToolbar(enableSearchOption, 5, 5);\n }\n };\n Toolbar.prototype.showUndoRedoTool = function (isEnable) {\n this.isUndoRedoBtnsVisible = isEnable;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(isEnable, 16, 17);\n }\n else {\n this.applyHideToToolbar(isEnable, 2, 3);\n }\n };\n Toolbar.prototype.showCommentOption = function (isEnable) {\n if (!this.pdfViewer.enableStickyNotesAnnotation) {\n this.isCommentBtnVisible = isEnable;\n this.applyHideToToolbar(this.pdfViewer.enableStickyNotesAnnotation, 18, 19);\n }\n else {\n this.isCommentBtnVisible = isEnable;\n this.applyHideToToolbar(isEnable, 18, 19);\n }\n };\n Toolbar.prototype.showAnnotationEditTool = function (isEnable) {\n this.isAnnotationEditBtnVisible = isEnable;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(isEnable, 23, 23);\n }\n else {\n this.applyHideToToolbar(isEnable, 4, 4);\n }\n };\n Toolbar.prototype.showFormDesignerEditTool = function (isEnable) {\n this.isFormDesignerEditBtnVisible = isEnable;\n this.applyHideToToolbar(isEnable, 24, 24);\n };\n Toolbar.prototype.showSubmitForm = function (isEnable) {\n this.isSubmitbtnvisible = isEnable;\n this.applyHideToToolbar(isEnable, 20, 21);\n };\n Toolbar.prototype.enableOpenOption = function (enableOpenOption) {\n this.toolbar.enableItems(this.openDocumentItem.parentElement, enableOpenOption);\n };\n Toolbar.prototype.enablePageNavigationTool = function (enablePageNavigationTool) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.previousPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.nextPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.lastPageItem.parentElement, enablePageNavigationTool);\n this.currentPageBox.readonly = !enablePageNavigationTool;\n };\n Toolbar.prototype.enableMagnificationTool = function (enableMagnificationTool) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, enableMagnificationTool);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, enableMagnificationTool);\n this.zoomDropDown.readonly = !enableMagnificationTool;\n };\n Toolbar.prototype.enableSelectionTool = function (enableSelectionTool) {\n if (this.textSelectItem && this.textSelectItem.parentElement) {\n this.toolbar.enableItems(this.textSelectItem.parentElement, enableSelectionTool);\n }\n };\n Toolbar.prototype.enableScrollingTool = function (enableScrollingTool) {\n this.toolbar.enableItems(this.panItem.parentElement, enableScrollingTool);\n };\n Toolbar.prototype.enableDownloadOption = function (enableDownloadOption) {\n this.toolbar.enableItems(this.downloadItem.parentElement, enableDownloadOption);\n };\n Toolbar.prototype.enablePrintOption = function (enablePrintOption) {\n this.toolbar.enableItems(this.printItem.parentElement, enablePrintOption);\n };\n Toolbar.prototype.enableSearchOption = function (enableSearchOption) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, enableSearchOption);\n };\n Toolbar.prototype.enableUndoRedoTool = function (isEnable) {\n this.toolbar.enableItems(this.undoItem.parentElement, isEnable);\n this.toolbar.enableItems(this.redoItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableAnnotationEditTool = function (isEnable) {\n this.toolbar.enableItems(this.annotationItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableFormDesignerEditTool = function (isEnable) {\n this.toolbar.enableItems(this.formDesignerItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableCommentsTool = function (isEnable) {\n if (this.pdfViewer.enableStickyNotesAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, isEnable);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.resetToolbar = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.currentPageBox.min = 0;\n this.currentPageBox.value = 0;\n this.updateTotalPage();\n this.updateToolbarItems();\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.clear();\n }\n else {\n if (this.annotationToolbarModule) {\n if (this.annotationToolbarModule.propertyToolbar) {\n this.annotationToolbarModule.propertyToolbar.destroy();\n }\n // eslint:disable-next-line\n var commentsContainer = document.getElementById(this.pdfViewer.element.id + '_commentscontentcontainer');\n if (commentsContainer) {\n commentsContainer.innerHTML = '';\n }\n }\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateToolbarItems = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.toolbar) {\n if (this.pdfViewerBase.pageCount === 0) {\n this.toolbar.enableItems(this.downloadItem.parentElement, false);\n this.toolbar.enableItems(this.printItem.parentElement, false);\n this.toolbar.enableItems(this.commentItem.parentElement, false);\n this.updateUndoRedoButtons();\n this.updateNavigationButtons();\n this.toolbar.enableItems(this.zoomInItem.parentElement, false);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, false);\n if (this.pdfViewer.magnificationModule) {\n this.zoomDropDown.readonly = true;\n }\n this.toolbar.enableItems(this.submitItem.parentElement, false);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_currentPageInputContainer'), false);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_zoomDropDownContainer'), false);\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n this.toolbar.enableItems(this.annotationItem.parentElement, false);\n this.toolbar.enableItems(this.formDesignerItem.parentElement, false);\n this.toolbar.enableItems(this.panItem.parentElement, false);\n this.toolbar.enableItems(this.textSearchItem.parentElement, false);\n this.deSelectItem(this.annotationItem);\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.resetToolbar();\n }\n this.deSelectItem(this.formDesignerItem);\n if (this.formDesignerToolbarModule) {\n this.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n }\n else if (this.pdfViewerBase.pageCount > 0) {\n var obj = this.pdfViewerBase.getElement('_currentPageInputContainer');\n if (obj) {\n this.toolbar.enableItems(this.downloadItem.parentElement, true);\n this.toolbar.enableItems(this.printItem.parentElement, true);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_currentPageInputContainer'), true);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_zoomDropDownContainer'), true);\n this.updateUndoRedoButtons();\n this.updateNavigationButtons();\n this.updateZoomButtons();\n if (this.pdfViewer.magnificationModule) {\n this.zoomDropDown.readonly = false;\n }\n this.updateInteractionItems();\n // modify this condition if new annotation types are added.\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, true);\n }\n if (this.pdfViewer.formDesignerModule && this.pdfViewer.enableFormDesigner) {\n this.toolbar.enableItems(this.formDesignerItem.parentElement, true);\n }\n if (this.pdfViewer.textSearchModule && this.pdfViewer.enableTextSearch) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, true);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableStickyNotesAnnotation) {\n this.toolbar.enableItems(this.commentItem.parentElement, true);\n }\n }\n }\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems.length === 0 || !this.pdfViewer.annotationModule || !this.pdfViewer.enableAnnotationToolbar) {\n this.enableToolbarItem(['AnnotationEditTool'], false);\n }\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.length === 0 || !this.pdfViewer.formDesignerModule || !this.pdfViewer.enableFormDesignerToolbar) {\n this.enableToolbarItem(['FormDesignerEditTool'], false);\n }\n }\n if (!this.pdfViewer.enableDownload) {\n this.enableDownloadOption(false);\n }\n if (!this.pdfViewer.enablePrint) {\n this.enablePrintOption(false);\n }\n }\n }\n else {\n if (this.pdfViewerBase.pageCount === 0) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, false);\n this.toolbar.enableItems(this.moreOptionItem.parentElement, false);\n this.toolbar.enableItems(this.annotationItem.parentElement, false);\n }\n else if (this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, true);\n this.toolbar.enableItems(this.moreOptionItem.parentElement, true);\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, true);\n }\n if (!this.pdfViewer.annotationModule || !this.pdfViewer.enableAnnotationToolbar) {\n this.enableToolbarItem(['AnnotationEditTool'], false);\n }\n this.updateUndoRedoButtons();\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateNavigationButtons = function () {\n if (this.pdfViewer.navigationModule && !this.isPageNavigationToolDisabled) {\n if (this.pdfViewerBase.pageCount === 0 || (this.pdfViewerBase.currentPageNumber === 1 && this.pdfViewerBase.pageCount === 1)) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n }\n else if (this.pdfViewerBase.currentPageNumber === 1 && this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, true);\n this.toolbar.enableItems(this.lastPageItem.parentElement, true);\n }\n else if (this.pdfViewerBase.currentPageNumber === this.pdfViewerBase.pageCount && this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, true);\n this.toolbar.enableItems(this.previousPageItem.parentElement, true);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n }\n else if (this.pdfViewerBase.currentPageNumber > 1 && this.pdfViewerBase.currentPageNumber < this.pdfViewerBase.pageCount) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, true);\n this.toolbar.enableItems(this.previousPageItem.parentElement, true);\n this.toolbar.enableItems(this.nextPageItem.parentElement, true);\n this.toolbar.enableItems(this.lastPageItem.parentElement, true);\n }\n }\n else {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n this.currentPageBox.readonly = true;\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateZoomButtons = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnificationModule && !this.isMagnificationToolDisabled && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n if (this.pdfViewer.magnificationModule.zoomFactor <= 0.1) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, true);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, false);\n }\n else if (this.pdfViewer.magnificationModule.zoomFactor >= 4) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, false);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, true);\n }\n else {\n this.toolbar.enableItems(this.zoomInItem.parentElement, true);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, true);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateUndoRedoButtons = function () {\n if (this.pdfViewer.annotationModule) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (isBlazor()) {\n this.enableCollectionAvailableInBlazor(this.pdfViewer.annotationModule.actionCollection, 'undo');\n this.enableCollectionAvailableInBlazor(this.pdfViewer.annotationModule.redoCollection, 'redo');\n }\n else {\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.actionCollection, this.undoItem.parentElement);\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.redoCollection, this.redoItem.parentElement);\n }\n }\n else {\n if (isBlazor()) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('DisableUndoRedoButton', null);\n this.pdfViewerBase.blazorUIAdaptor.disableUndoRedoButton();\n }\n else {\n this.disableUndoRedoButtons();\n }\n }\n }\n else {\n if (isBlazor()) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('DisableUndoRedoButton', null);\n this.pdfViewerBase.blazorUIAdaptor.disableUndoRedoButton();\n }\n else {\n this.disableUndoRedoButtons();\n }\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.enableCollectionAvailable = function (collection, item) {\n if (collection.length > 0) {\n this.toolbar.enableItems(item, true);\n }\n else {\n this.toolbar.enableItems(item, false);\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.enableCollectionAvailableInBlazor = function (collection, item) {\n if (collection.length > 0) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateUndoRedoButton', item, true);\n this.pdfViewerBase.blazorUIAdaptor.updateUndoRedoButton(item, true);\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateUndoRedoButton', item, false);\n this.pdfViewerBase.blazorUIAdaptor.updateUndoRedoButton(item, false);\n }\n };\n Toolbar.prototype.disableUndoRedoButtons = function () {\n this.toolbar.enableItems(this.undoItem.parentElement, false);\n this.toolbar.enableItems(this.redoItem.parentElement, false);\n };\n /**\n * @private\n */\n Toolbar.prototype.destroy = function () {\n if (!isBlazor()) {\n this.unWireEvent();\n this.destroyComponent();\n if (this.moreDropDown) {\n this.moreDropDown.destroy();\n }\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.destroy();\n }\n if (this.formDesignerToolbarModule) {\n this.formDesignerToolbarModule.destroy();\n }\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n };\n Toolbar.prototype.destroyComponent = function () {\n // eslint-disable-next-line\n var componentElement = [this.openDocumentItem, this.firstPageItem, this.previousPageItem, this.nextPageItem,\n this.lastPageItem, this.currentPageBoxElement, this.zoomOutItem, this.zoomInItem, this.zoomDropdownItem, this.textSelectItem,\n this.panItem, this.submitItem, this.undoItem, this.redoItem, this.commentItem, this.textSearchItem, this.annotationItem,\n this.formDesignerItem, this.printItem, this.downloadItem];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n Toolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n /**\n * @param pageIndex\n * @private\n */\n Toolbar.prototype.updateCurrentPage = function (pageIndex) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!isBlazor()) {\n if (!isNullOrUndefined(this.currentPageBox)) {\n if (this.currentPageBox.value === pageIndex) {\n this.currentPageBoxElement.value = pageIndex.toString();\n }\n this.currentPageBox.value = pageIndex;\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('OnPageChanged', pageIndex);\n this.pdfViewerBase.blazorUIAdaptor.pageChanged(pageIndex);\n }\n this.pdfViewerBase.currentPageNumber = pageIndex;\n this.pdfViewer.currentPageNumber = pageIndex;\n }\n else {\n this.pdfViewerBase.mobileSpanContainer.innerHTML = pageIndex.toString();\n this.pdfViewerBase.mobilecurrentPageContainer.innerHTML = pageIndex.toString();\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateTotalPage = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (!isNullOrUndefined(this.currentPageBox))\n this.currentPageBox.min = 1;\n }\n if (!isNullOrUndefined(this.totalPageItem))\n this.totalPageItem.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n }\n };\n /**\n * @param event\n * @private\n */\n Toolbar.prototype.openFileDialogBox = function (event) {\n event.preventDefault();\n this.fileInputElement.click();\n };\n Toolbar.prototype.createToolbar = function (controlWidth) {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_toolbarContainer', className: 'e-pv-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbar = new tool({\n clicked: this.toolbarClickHandler, width: '', height: '', overflowMode: 'Popup', cssClass: 'e-pv-toolbar-scroll',\n items: this.createToolbarItems(), created: function () {\n _this.createZoomDropdown();\n _this.createNumericTextBox();\n _this.toolbar.refreshOverflow();\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.applyToolbarSettings();\n this.afterToolbarCreation();\n this.updateTotalPage();\n this.toolbarElement.addEventListener('keydown', this.onToolbarKeydown);\n this.toolbarElement.setAttribute('aria-label', 'Toolbar');\n }\n else {\n this.createToolbarItemsForMobile();\n this.afterToolbarCreationInMobile();\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.applyToolbarSettingsForMobile();\n this.disableUndoRedoButtons();\n }\n return this.toolbarElement;\n };\n // eslint-disable-next-line\n Toolbar.prototype.createToolbarItems = function () {\n var currentPageInputTemplate = this.createCurrentPageInputTemplate();\n var totalPageTemplate = this.createTotalPageTemplate();\n var zoomDropDownTemplateString = this.createZoomDropdownElement();\n // eslint-disable-next-line\n var items = [];\n var submitButton = '';\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-open-document-icon e-pv-icon', cssClass: 'e-pv-open-document-container', id: this.pdfViewer.element.id + '_open', text: this.pdfViewer.localeObj.getConstant('Open text'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-open-separator-container' });\n if (!this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-first-page-navigation-icon e-pv-icon', cssClass: 'e-pv-first-page-navigation-container', id: this.pdfViewer.element.id + '_firstPage', text: this.pdfViewer.localeObj.getConstant('First text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-previous-page-navigation-icon e-pv-icon', cssClass: 'e-pv-previous-page-navigation-container', id: this.pdfViewer.element.id + '_previousPage', text: this.pdfViewer.localeObj.getConstant('Previous text'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-next-page-navigation-icon e-pv-icon', cssClass: 'e-pv-next-page-navigation-container', id: this.pdfViewer.element.id + '_nextPage', text: this.pdfViewer.localeObj.getConstant('Next text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-last-page-navigation-icon e-pv-icon', cssClass: 'e-pv-last-page-navigation-container', id: this.pdfViewer.element.id + '_lastPage', text: this.pdfViewer.localeObj.getConstant('Last text'), align: 'Left' });\n items.push({ template: currentPageInputTemplate, align: 'Left', cssClass: 'e-pv-current-page-container' });\n items.push({ template: totalPageTemplate, align: 'Left', cssClass: 'e-pv-total-page-container' });\n }\n else {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-last-page-navigation-icon e-pv-icon', cssClass: 'e-pv-last-page-navigation-container', id: this.pdfViewer.element.id + '_firstPage', text: this.pdfViewer.localeObj.getConstant('First text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-next-page-navigation-icon e-pv-icon', cssClass: 'e-pv-next-page-navigation-container', id: this.pdfViewer.element.id + '_previousPage', text: this.pdfViewer.localeObj.getConstant('Previous text'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-previous-page-navigation-icon e-pv-icon', cssClass: 'e-pv-previous-page-navigation-container', id: this.pdfViewer.element.id + '_nextPage', text: this.pdfViewer.localeObj.getConstant('Next text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-first-page-navigation-icon e-pv-icon', cssClass: 'e-pv-first-page-navigation-container', id: this.pdfViewer.element.id + '_lastPage', text: this.pdfViewer.localeObj.getConstant('Last text'), align: 'Left' });\n items.push({ template: totalPageTemplate, align: 'Left', cssClass: 'e-pv-total-page-container' });\n items.push({ template: currentPageInputTemplate, align: 'Left', cssClass: 'e-pv-current-page-container' });\n }\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-navigation-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-zoom-out-icon e-pv-icon', cssClass: 'e-pv-zoom-out-container', id: this.pdfViewer.element.id + '_zoomOut', text: this.pdfViewer.localeObj.getConstant('Zoom out text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-zoom-in-icon e-pv-icon', cssClass: 'e-pv-zoom-in-container', id: this.pdfViewer.element.id + '_zoomIn', text: this.pdfViewer.localeObj.getConstant('Zoom in text'), align: 'Left' });\n items.push({ template: zoomDropDownTemplateString, cssClass: 'e-pv-zoom-drop-down-container', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-magnification-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-text-select-tool-icon e-pv-icon', cssClass: 'e-pv-text-select-tool-container', id: this.pdfViewer.element.id + '_selectTool', text: this.pdfViewer.localeObj.getConstant('Selection text') });\n items.push({ prefixIcon: 'e-pv-pan-tool-icon e-pv-icon', cssClass: 'e-pv-pan-tool-container', id: this.pdfViewer.element.id + '_handTool', text: this.pdfViewer.localeObj.getConstant('Pan text') });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-pan-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-undo-icon e-pv-icon', cssClass: 'e-pv-undo-container', id: this.pdfViewer.element.id + '_undo', text: this.pdfViewer.localeObj.getConstant('Undo'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-redo-icon e-pv-icon', cssClass: 'e-pv-redo-container', id: this.pdfViewer.element.id + '_redo', text: this.pdfViewer.localeObj.getConstant('Redo'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-undo-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-comment-icon e-pv-icon', cssClass: 'e-pv-comment-container', id: this.pdfViewer.element.id + '_comment', text: this.pdfViewer.localeObj.getConstant('Add Comments'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-comment-separator-container' });\n items.push({ template: submitButton, cssClass: 'e-pv-submit', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-text-search-icon e-pv-icon', cssClass: 'e-pv-text-search-container', id: this.pdfViewer.element.id + '_search', text: this.pdfViewer.localeObj.getConstant('Search text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-annotation-icon e-pv-icon', cssClass: 'e-pv-annotation-container', id: this.pdfViewer.element.id + '_annotation', text: this.pdfViewer.localeObj.getConstant('Annotation Edit text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-formdesigner-icon e-pv-icon', cssClass: 'e-pv-formdesigner-container', id: this.pdfViewer.element.id + '_formdesigner', text: this.pdfViewer.localeObj.getConstant('FormDesigner Edit text'), align: 'Right' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-print-document-icon e-pv-icon', cssClass: 'e-pv-print-document-container', id: this.pdfViewer.element.id + '_print', text: this.pdfViewer.localeObj.getConstant('Print text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-download-document-icon e-pv-icon', cssClass: 'e-pv-download-document-container', id: this.pdfViewer.element.id + '_download', text: this.pdfViewer.localeObj.getConstant('Download'), align: 'Right' });\n return items;\n };\n Toolbar.prototype.afterToolbarCreationInMobile = function () {\n this.itemsContainer = this.toolbar.element.childNodes[0];\n this.itemsContainer.id = this.pdfViewer.element.id + '_toolbarItemsContainer';\n this.openDocumentItem = this.addClassToolbarItem('_open', 'e-pv-open-document', this.pdfViewer.localeObj.getConstant('Open'));\n this.undoItem = this.addClassToolbarItem('_undo', 'e-pv-undo', this.pdfViewer.localeObj.getConstant('Undo'));\n this.redoItem = this.addClassToolbarItem('_redo', 'e-pv-redo', this.pdfViewer.localeObj.getConstant('Redo'));\n this.annotationItem = this.addClassToolbarItem('_annotation', 'e-pv-annotation', this.pdfViewer.localeObj.getConstant('Annotation'));\n this.textSearchItem = this.addClassToolbarItem('_search', 'e-pv-text-search', this.pdfViewer.localeObj.getConstant('Text Search'));\n };\n Toolbar.prototype.afterToolbarCreation = function () {\n this.itemsContainer = this.toolbar.element.childNodes[0];\n this.itemsContainer.id = this.pdfViewer.element.id + '_toolbarItemsContainer';\n this.openDocumentItem = this.addClassToolbarItem('_open', 'e-pv-open-document', this.pdfViewer.localeObj.getConstant('Open'));\n this.undoItem = this.addClassToolbarItem('_undo', 'e-pv-undo', this.pdfViewer.localeObj.getConstant('Undo'));\n this.redoItem = this.addClassToolbarItem('_redo', 'e-pv-redo', this.pdfViewer.localeObj.getConstant('Redo'));\n if (!this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n this.firstPageItem = this.addClassToolbarItem('_firstPage', 'e-pv-first-page-navigation', this.pdfViewer.localeObj.getConstant('Go To First Page'));\n this.previousPageItem = this.addClassToolbarItem('_previousPage', 'e-pv-previous-page-navigation', this.pdfViewer.localeObj.getConstant('Previous Page'));\n // eslint-disable-next-line max-len\n this.nextPageItem = this.addClassToolbarItem('_nextPage', 'e-pv-next-page-navigation', this.pdfViewer.localeObj.getConstant('Next Page'));\n this.lastPageItem = this.addClassToolbarItem('_lastPage', 'e-pv-last-page-navigation', this.pdfViewer.localeObj.getConstant('Go To Last Page'));\n }\n else {\n // eslint-disable-next-line max-len\n this.firstPageItem = this.addClassToolbarItem('_firstPage', 'e-pv-last-page-navigation', this.pdfViewer.localeObj.getConstant('Go To First Page'));\n this.previousPageItem = this.addClassToolbarItem('_previousPage', 'e-pv-next-page-navigation', this.pdfViewer.localeObj.getConstant('Previous Page'));\n // eslint-disable-next-line max-len\n this.nextPageItem = this.addClassToolbarItem('_nextPage', 'e-pv-previous-page-navigation', this.pdfViewer.localeObj.getConstant('Next Page'));\n this.lastPageItem = this.addClassToolbarItem('_lastPage', 'e-pv-first-page-navigation', this.pdfViewer.localeObj.getConstant('Go To Last Page'));\n }\n this.zoomOutItem = this.addClassToolbarItem('_zoomOut', 'e-pv-zoom-out', this.pdfViewer.localeObj.getConstant('Zoom Out'));\n this.zoomInItem = this.addClassToolbarItem('_zoomIn', 'e-pv-zoom-in', this.pdfViewer.localeObj.getConstant('Zoom In'));\n // eslint-disable-next-line max-len\n this.textSelectItem = this.addClassToolbarItem('_selectTool', 'e-pv-text-select-tool', this.pdfViewer.localeObj.getConstant('Text Selection'));\n this.panItem = this.addClassToolbarItem('_handTool', 'e-pv-pan-tool', this.pdfViewer.localeObj.getConstant('Panning'));\n this.commentItem = this.addClassToolbarItem('_comment', 'e-pv-comment', this.pdfViewer.localeObj.getConstant('Add Comments'));\n // eslint-disable-next-line max-len\n this.textSearchItem = this.addClassToolbarItem('_search', 'e-pv-text-search', this.pdfViewer.localeObj.getConstant('Text Search'));\n this.textSearchItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Search text'));\n this.annotationItem = this.addClassToolbarItem('_annotation', 'e-pv-annotation', this.pdfViewer.localeObj.getConstant('Annotation'));\n this.annotationItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Annotation Edit text'));\n this.formDesignerItem = this.addClassToolbarItem('_formdesigner', 'e-pv-formdesigner', this.pdfViewer.localeObj.getConstant('FormDesigner'));\n // eslint-disable-next-line max-len\n this.printItem = this.addClassToolbarItem('_print', 'e-pv-print-document', this.pdfViewer.localeObj.getConstant('Print'));\n this.downloadItem = this.addClassToolbarItem('_download', 'e-pv-download-document', this.pdfViewer.localeObj.getConstant('Download file'));\n this.zoomDropdownItem = this.pdfViewerBase.getElement('_zoomDropDown');\n this.createTooltip(this.zoomDropdownItem, this.pdfViewer.localeObj.getConstant('Zoom'));\n this.zoomDropdownItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Zoom'));\n // eslint-disable-next-line max-len\n this.addPropertiesToolItemContainer(this.zoomDropdownItem.parentElement.parentElement, null, '_zoomDropDownContainer');\n this.pdfViewerBase.getElement('_zoomDropDownContainer').style.minWidth = '';\n this.createTooltip(this.currentPageBoxElement, this.pdfViewer.localeObj.getConstant('Page Number'));\n this.currentPageBoxElement.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Page Number'));\n this.submitItem = this.pdfViewerBase.getElement('_submitForm');\n this.addPropertiesToolItemContainer(this.submitItem.parentElement, 'e-pv-submit', '_submitFormContainer');\n this.createTooltip(this.submitItem, this.pdfViewer.localeObj.getConstant('SubmitForm'));\n // eslint-disable-next-line max-len\n this.addPropertiesToolItemContainer(this.currentPageBoxElement.parentElement.parentElement, 'e-pv-current-page-container', '_currentPageInputContainer');\n this.pdfViewerBase.getElement('_currentPageInputContainer').style.minWidth = '20px';\n this.totalPageItem = this.pdfViewerBase.getElement('_totalPage');\n this.addPropertiesToolItemContainer(this.totalPageItem.parentElement, 'e-pv-total-page-container', '_totalPageContainer');\n };\n /**\n * @param idString\n * @param className\n * @param tooltipText\n * @param idString\n * @param className\n * @param tooltipText\n * @private\n */\n Toolbar.prototype.addClassToolbarItem = function (idString, className, tooltipText) {\n var element = this.pdfViewerBase.getElement(idString);\n element.classList.add(className);\n element.classList.add('e-pv-tbar-btn');\n element.setAttribute('aria-label', tooltipText);\n element.parentElement.classList.add(className + '-container');\n element.parentElement.classList.add('e-popup-text');\n element.parentElement.id = this.pdfViewer.element.id + idString + 'Container';\n if (element.childNodes.length > 0) {\n var spanElement = element.childNodes[0];\n spanElement.id = this.pdfViewer.element.id + idString + 'Icon';\n spanElement.classList.remove('e-icons');\n spanElement.classList.remove('e-btn-icon');\n if (this.pdfViewer.enableRtl) {\n spanElement.classList.add('e-right');\n }\n var textElement = element.childNodes[1];\n if (textElement) {\n if (textElement.classList.contains('e-tbar-btn-text')) {\n textElement.id = this.pdfViewer.element.id + idString + 'Text';\n }\n }\n }\n element.style.width = '';\n this.createTooltip(element, tooltipText);\n return element;\n };\n Toolbar.prototype.addPropertiesToolItemContainer = function (element, className, idString) {\n if (className !== null) {\n element.classList.add(className);\n }\n element.classList.add('e-popup-text');\n element.id = this.pdfViewer.element.id + idString;\n };\n Toolbar.prototype.createZoomDropdownElement = function () {\n // eslint-disable-next-line max-len\n var zoomDropdownElement = this.createToolbarItem('input', this.pdfViewer.element.id + '_zoomDropDown', null);\n return zoomDropdownElement.outerHTML;\n };\n Toolbar.prototype.createZoomDropdown = function () {\n // eslint-disable-next-line max-len\n var items = [{ percent: '10%', id: '0' }, { percent: '25%', id: '1' }, { percent: '50%', id: '2' }, { percent: '75%', id: '3' }, { percent: '100%', id: '4' }, { percent: '125%', id: '5' },\n // eslint-disable-next-line max-len\n { percent: '150%', id: '6' }, { percent: '200%', id: '7' }, { percent: '400%', id: '8' }, { percent: this.pdfViewer.localeObj.getConstant('Fit Page'), id: '9' }, { percent: this.pdfViewer.localeObj.getConstant('Fit Width'), id: '10' }, { percent: this.pdfViewer.localeObj.getConstant('Automatic'), id: '11' }\n ];\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.enableRtl) {\n this.zoomDropDown = new ComboBox({ dataSource: items, text: '100%', fields: { text: 'percent', value: 'id' }, readonly: true, cssClass: 'e-pv-zoom-drop-down', popupHeight: '450px', showClearButton: false, open: this.openZoomDropdown.bind(this), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.text !== this.zoomDropDown.element.value) {\n args.cancel = true;\n }\n }\n });\n }\n else {\n this.zoomDropDown = new ComboBox({ dataSource: items, text: '100%', enableRtl: true, fields: { text: 'percent', value: 'id' }, readonly: true, cssClass: 'e-pv-zoom-drop-down-rtl', popupHeight: '450px', showClearButton: false, open: this.openZoomDropdown.bind(this), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.text !== this.zoomDropDown.element.value) {\n args.cancel = true;\n }\n }\n });\n }\n this.zoomDropDown.appendTo(this.pdfViewerBase.getElement('_zoomDropDown'));\n };\n Toolbar.prototype.createCurrentPageInputTemplate = function () {\n // eslint-disable-next-line max-len\n var goToPageElement = this.createToolbarItem('input', this.pdfViewer.element.id + '_currentPageInput', null);\n return goToPageElement.outerHTML;\n };\n Toolbar.prototype.createTotalPageTemplate = function () {\n // eslint-disable-next-line max-len\n var totalPageElement = this.createToolbarItem('span', this.pdfViewer.element.id + '_totalPage', 'e-pv-total-page');\n return totalPageElement.outerHTML;\n };\n Toolbar.prototype.createNumericTextBox = function () {\n this.currentPageBox = new NumericTextBox({ value: 0, format: '##', cssClass: 'e-pv-current-page-box', showSpinButton: false });\n this.currentPageBoxElement = this.pdfViewerBase.getElement('_currentPageInput');\n this.currentPageBox.appendTo(this.currentPageBoxElement);\n };\n Toolbar.prototype.createToolbarItemsForMobile = function () {\n this.toolbarElement.classList.add('e-pv-mobile-toolbar');\n var template = '';\n this.toolbar = new tool({\n // eslint-disable-next-line max-len\n items: [{ prefixIcon: 'e-pv-open-document-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Open'), id: this.pdfViewer.element.id + '_open' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-undo-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Undo'), id: this.pdfViewer.element.id + '_undo' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-redo-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Redo'), id: this.pdfViewer.element.id + '_redo' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-icon e-pv-icon', cssClass: 'e-pv-annotation-container', tooltipText: this.pdfViewer.localeObj.getConstant('Annotation'), id: this.pdfViewer.element.id + '_annotation', align: 'Right' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-text-search-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Text Search'), id: this.pdfViewer.element.id + '_search', align: 'Right' },\n { template: template, align: 'Right' }\n ], clicked: this.toolbarClickHandler, width: '', height: '', overflowMode: 'Popup'\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n this.openDocumentItem = this.pdfViewerBase.getElement('_open');\n this.openDocumentItem.classList.add('e-pv-open-document');\n this.openDocumentItem.firstElementChild.id = this.pdfViewer.element.id + '_openIcon';\n this.annotationItem = this.pdfViewerBase.getElement('_annotation');\n this.annotationItem.classList.add('e-pv-annotation');\n this.annotationItem.firstElementChild.id = this.pdfViewer.element.id + '_annotationIcon';\n this.textSearchItem = this.pdfViewerBase.getElement('_search');\n this.textSearchItem.classList.add('e-pv-text-search');\n this.textSearchItem.firstElementChild.id = this.pdfViewer.element.id + '_searchIcon';\n this.undoItem = this.pdfViewerBase.getElement('_undo');\n this.undoItem.classList.add('e-pv-undo');\n this.redoItem = this.pdfViewerBase.getElement('_redo');\n this.redoItem.classList.add('e-pv-redo');\n this.redoItem.firstElementChild.id = this.pdfViewer.element.id + '_redoIcon';\n this.undoItem.firstElementChild.id = this.pdfViewer.element.id + '_undoIcon';\n this.createMoreOption(this.pdfViewer.element.id + '_more_option');\n };\n Toolbar.prototype.createMoreOption = function (idString) {\n var _this = this;\n this.moreOptionItem = document.getElementById(idString);\n var items = [\n {\n text: this.pdfViewer.localeObj.getConstant('Download'), id: this.pdfViewer.element.id + '_menu_download',\n iconCss: 'e-icons e-pv-download-document-icon e-pv-icon'\n },\n {\n text: this.pdfViewer.localeObj.getConstant('Bookmarks'), id: this.pdfViewer.element.id + '_menu_bookmarks',\n iconCss: 'e-icons e-pv-bookmark-icon e-pv-icon'\n }\n ];\n this.moreDropDown = new DropDownButton({\n items: items, iconCss: 'e-pv-more-icon e-pv-icon', cssClass: 'e-caret-hide',\n open: function (args) {\n var dropdownButtonPosition = _this.moreDropDown.element.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if (!_this.pdfViewer.enableRtl) {\n args.element.parentElement.style.left = dropdownButtonPosition.left + dropdownButtonPosition.width - args.element.parentElement.offsetWidth + 'px';\n }\n }, select: function (args) {\n switch (args.item.id) {\n case _this.pdfViewer.element.id + '_menu_download':\n _this.pdfViewerBase.download();\n break;\n case _this.pdfViewer.element.id + '_menu_bookmarks':\n _this.showToolbar(false);\n _this.pdfViewerBase.navigationPane.createNavigationPaneMobile('bookmarks');\n break;\n default:\n break;\n }\n }, beforeItemRender: function (args) {\n if (args.item.id === _this.pdfViewer.element.id + '_menu_bookmarks') {\n if (!_this.pdfViewer.bookmarkViewModule || !_this.pdfViewer.bookmarkViewModule.bookmarks) {\n args.element.classList.add('e-disabled');\n }\n else {\n args.element.classList.remove('e-disabled');\n }\n }\n }, close: function (args) {\n _this.moreOptionItem.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n });\n this.moreDropDown.appendTo('#' + idString);\n };\n Toolbar.prototype.createToolbarItem = function (elementName, id, className) {\n var toolbarItem = createElement(elementName, { id: id });\n if (className !== null) {\n toolbarItem.className = className;\n }\n if (elementName === 'input' && id !== this.pdfViewer.element.id + '_zoomDropDown') {\n toolbarItem.type = 'text';\n }\n return toolbarItem;\n };\n /**\n * @param toolbarItem\n * @param tooltipText\n * @param toolbarItem\n * @param tooltipText\n * @private\n */\n Toolbar.prototype.createTooltip = function (toolbarItem, tooltipText) {\n if (tooltipText !== null) {\n // eslint-disable-next-line\n var tooltip = new Tooltip({ content: tooltipText, opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n tooltip.appendTo(toolbarItem);\n }\n };\n Toolbar.prototype.onTooltipBeforeOpen = function (args) {\n if (!this.pdfViewer.toolbarSettings.showTooltip && this.toolbarElement.contains(args.target)) {\n args.cancel = true;\n }\n if (this.annotationToolbarModule) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.toolbarSettings.showTooltip && ((this.annotationToolbarModule.toolbarElement && this.annotationToolbarModule.toolbarElement.contains(args.target)) || (this.annotationToolbarModule.shapeToolbarElement && this.annotationToolbarModule.shapeToolbarElement.contains(args.target)))) {\n args.cancel = true;\n }\n }\n if (this.formDesignerToolbarModule) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.toolbarSettings.showTooltip && (this.formDesignerToolbarModule.toolbarElement && this.formDesignerToolbarModule.toolbarElement.contains(args.target))) {\n args.cancel = true;\n }\n }\n };\n Toolbar.prototype.createFileElement = function (toolbarElement) {\n if (toolbarElement) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.fileInputElement = createElement('input', { id: this.pdfViewer.element.id + '_fileUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file' } });\n this.fileInputElement.setAttribute('accept', '.pdf');\n this.fileInputElement.setAttribute('aria-label', 'file upload element');\n }\n else {\n this.fileInputElement = this.pdfViewer.element.querySelector('.e-pv-fileupload-element');\n }\n if (toolbarElement) {\n toolbarElement.appendChild(this.fileInputElement);\n }\n }\n };\n Toolbar.prototype.wireEvent = function () {\n if (this.fileInputElement) {\n this.fileInputElement.addEventListener('change', this.loadDocument);\n }\n if (!isBlazor()) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbarElement.addEventListener('mouseup', this.toolbarOnMouseup.bind(this));\n this.currentPageBoxElement.addEventListener('focusout', this.textBoxFocusOut);\n this.currentPageBoxElement.addEventListener('keypress', this.navigateToPage);\n this.zoomDropDown.change = this.zoomPercentSelect.bind(this);\n this.zoomDropDown.element.addEventListener('keypress', this.onZoomDropDownInput.bind(this));\n this.zoomDropDown.element.addEventListener('click', this.onZoomDropDownInputClick.bind(this));\n }\n }\n };\n Toolbar.prototype.unWireEvent = function () {\n if (this.fileInputElement) {\n this.fileInputElement.removeEventListener('change', this.loadDocument);\n }\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) && !isBlazor()) {\n if (!isNullOrUndefined(this.toolbarElement)) {\n this.toolbarElement.removeEventListener('mouseup', this.toolbarOnMouseup.bind(this));\n }\n if (!isNullOrUndefined(this.currentPageBoxElement)) {\n this.currentPageBoxElement.removeEventListener('focusout', this.textBoxFocusOut);\n this.currentPageBoxElement.removeEventListener('keypress', this.navigateToPage);\n }\n if (!isNullOrUndefined(this.zoomDropDown)) {\n this.zoomDropDown.removeEventListener('change', this.zoomPercentSelect);\n this.zoomDropDown.element.removeEventListener('keypress', this.onZoomDropDownInput);\n this.zoomDropDown.element.removeEventListener('click', this.onZoomDropDownInputClick);\n }\n }\n };\n /**\n * @param viewerWidth\n * @private\n */\n Toolbar.prototype.onToolbarResize = function (viewerWidth) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.navigationPane.toolbarResize();\n }\n else {\n if (!isNullOrUndefined(this.toolbar)) {\n this.toolbar.refreshOverflow();\n }\n }\n };\n Toolbar.prototype.toolbarOnMouseup = function (event) {\n if (event.target === this.itemsContainer || event.target === this.toolbarElement) {\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n Toolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n if (this.toolbar.items[index]) {\n var className = this.toolbar.items[index].cssClass;\n if (className && className !== '') {\n // Querying the toolbar item\n var element = this.toolbar.element.querySelector('.' + className);\n if (element) {\n this.toolbar.hideItem(element, isHide);\n }\n }\n else {\n this.toolbar.hideItem(index, isHide);\n }\n }\n }\n };\n Toolbar.prototype.handleOpenIconClick = function (args) {\n this.fileInputElement.click();\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (!isBlazor()) {\n args.originalEvent.target.blur();\n }\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.handleToolbarBtnClick = function (args) {\n this.addInkAnnotation();\n this.deSelectCommentAnnotation();\n switch (args.originalEvent.target.id) {\n case this.pdfViewer.element.id + '_open':\n case this.pdfViewer.element.id + '_openIcon':\n case this.pdfViewer.element.id + '_openText':\n this.handleOpenIconClick(args);\n break;\n case this.pdfViewer.element.id + '_download':\n case this.pdfViewer.element.id + '_downloadIcon':\n case this.pdfViewer.element.id + '_downloadText':\n this.pdfViewerBase.download();\n break;\n case this.pdfViewer.element.id + '_print':\n case this.pdfViewer.element.id + '_printIcon':\n case this.pdfViewer.element.id + '_printText':\n if (this.pdfViewer.printModule) {\n this.pdfViewer.firePrintStart();\n }\n break;\n case this.pdfViewer.element.id + '_undo':\n case this.pdfViewer.element.id + '_undoIcon':\n case this.pdfViewer.element.id + '_undoText':\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.undo();\n }\n break;\n case this.pdfViewer.element.id + '_redo':\n case this.pdfViewer.element.id + '_redoIcon':\n case this.pdfViewer.element.id + '_redoText':\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.redo();\n }\n break;\n case this.pdfViewer.element.id + '_firstPage':\n case this.pdfViewer.element.id + '_firstPageIcon':\n case this.pdfViewer.element.id + '_firstPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToFirstPage();\n }\n break;\n case this.pdfViewer.element.id + '_previousPage':\n case this.pdfViewer.element.id + '_previousPageIcon':\n case this.pdfViewer.element.id + '_previousPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToPreviousPage();\n }\n break;\n case this.pdfViewer.element.id + '_nextPage':\n case this.pdfViewer.element.id + '_nextPageIcon':\n case this.pdfViewer.element.id + '_nextPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToNextPage();\n }\n break;\n case this.pdfViewer.element.id + '_lastPage':\n case this.pdfViewer.element.id + '_lastPageIcon':\n case this.pdfViewer.element.id + '_lastPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToLastPage();\n }\n break;\n case this.pdfViewer.element.id + '_zoomIn':\n case this.pdfViewer.element.id + '_zoomInIcon':\n case this.pdfViewer.element.id + '_zoomInText':\n this.pdfViewer.magnificationModule.zoomIn();\n break;\n case this.pdfViewer.element.id + '_zoomOut':\n case this.pdfViewer.element.id + '_zoomOutIcon':\n case this.pdfViewer.element.id + '_zoomOutText':\n this.pdfViewer.magnificationModule.zoomOut();\n break;\n case this.pdfViewer.element.id + '_selectTool':\n case this.pdfViewer.element.id + '_selectToolIcon':\n case this.pdfViewer.element.id + '_selectToolText':\n if (!this.isSelectionToolDisabled) {\n this.pdfViewerBase.initiateTextSelectMode();\n this.updateInteractionTools(true);\n }\n break;\n case this.pdfViewer.element.id + '_handTool':\n case this.pdfViewer.element.id + '_handToolIcon':\n case this.pdfViewer.element.id + '_handToolText':\n if (!(this.isScrollingToolDisabled || this.getStampMode())) {\n this.pdfViewerBase.initiatePanning();\n this.updateInteractionTools(false);\n }\n break;\n case this.pdfViewer.element.id + '_search':\n case this.pdfViewer.element.id + '_searchIcon':\n case this.pdfViewer.element.id + '_searchText':\n this.textSearchButtonHandler();\n break;\n case this.pdfViewer.element.id + '_annotation':\n case this.pdfViewer.element.id + '_annotationIcon':\n case this.pdfViewer.element.id + '_annotationText':\n this.initiateAnnotationMode(args.originalEvent.target.id);\n break;\n case this.pdfViewer.element.id + '_formdesigner':\n case this.pdfViewer.element.id + '_formdesignerIcon':\n case this.pdfViewer.element.id + '_formdesignerText':\n this.initiateFormDesignerMode();\n this.formDesignerToolbarModule.showHideDeleteIcon(false);\n break;\n case this.pdfViewer.element.id + '_comment':\n case this.pdfViewer.element.id + '_commentIcon':\n this.pdfViewerBase.isAddComment = true;\n this.pdfViewerBase.isCommentIconAdded = true;\n this.annotationToolbarModule.deselectAllItems();\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n this.addComments(args.originalEvent.target);\n break;\n case this.pdfViewer.element.id + '_submitForm':\n case this.pdfViewer.element.id + '_submitFormSpan':\n var data = void 0;\n this.pdfViewerBase.exportFormFields(data, FormFieldDataFormat.Json);\n break;\n }\n };\n Toolbar.prototype.addInkAnnotation = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (this.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.deselectInkAnnotation();\n this.annotationToolbarModule.inkAnnotationSelected = false;\n }\n };\n Toolbar.prototype.deSelectCommentAnnotation = function () {\n if (!isBlazor()) {\n this.pdfViewer.toolbar.deSelectItem(this.commentItem);\n }\n else {\n this.pdfViewer.toolbar.deSelectItem(this.CommentElement);\n }\n this.pdfViewerBase.isCommentIconAdded = false;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.addComments = function (targetElement) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n if (targetElement.id === this.pdfViewer.element.id + '_comment' || targetElement.id === this.pdfViewer.element.id + '_commentIcon') {\n if (targetElement.id === this.pdfViewer.element.id + '_commentIcon' && targetElement.parentElement) {\n targetElement.parentElement.classList.add('e-pv-select');\n }\n else {\n targetElement.classList.add('e-pv-select');\n }\n }\n else {\n if (this.pdfViewer.enableRtl) {\n targetElement.className = 'e-pv-comment-selection-icon e-pv-icon e-icon-left e-right';\n }\n else {\n targetElement.className = 'e-pv-comment-selection-icon e-pv-icon e-icon-left';\n }\n }\n }\n else {\n this.pdfViewerBase.isCommentIconAdded = true;\n this.pdfViewerBase.isAddComment = true;\n this.annotationToolbarModule.deselectAllItemsInBlazor();\n var commentsButton = this.CommentElement;\n commentsButton.classList.add('e-pv-select');\n }\n this.updateStampItems();\n document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1)).addEventListener('mousedown', this.pdfViewer.annotationModule.stickyNotesAnnotationModule.drawIcons.bind(this));\n };\n Toolbar.prototype.openZoomDropdown = function () {\n var toolbarData = this;\n if (document.fullscreen) {\n if (isBlazor()) {\n // eslint-disable-next-line\n var fullscreenElement = document.fullscreenElement;\n if (fullscreenElement && fullscreenElement.tagName !== 'BODY' && fullscreenElement.tagName !== 'HTML') {\n setTimeout(function () {\n // eslint-disable-next-line\n var popupElement = document.getElementById(toolbarData.pdfViewer.element.id + \"_zoomCombo_popup\");\n var targetElement = document.getElementById(toolbarData.toolbarElement.id);\n // eslint-disable-next-line\n if (popupElement && targetElement && popupElement.ej2_instances) {\n targetElement.appendChild(popupElement);\n popupElement.ej2_instances[0].refreshPosition();\n }\n }, 100);\n }\n }\n else {\n var popupElement = document.getElementById(this.pdfViewer.element.id + \"_zoomDropDown_popup\");\n var targetElement = document.getElementById(this.toolbarElement.id);\n if (popupElement) {\n targetElement.appendChild(popupElement);\n }\n }\n }\n };\n Toolbar.prototype.onZoomDropDownInput = function (event) {\n if ((event.which < 48 || event.which > 57) && event.which !== 8 && event.which !== 13) {\n event.preventDefault();\n return false;\n }\n else {\n if (event.which === 13) {\n event.preventDefault();\n var value = this.zoomDropDown.element.value;\n this.zoomDropDownChange(value);\n }\n return true;\n }\n };\n Toolbar.prototype.onZoomDropDownInputClick = function () {\n this.zoomDropDown.element.select();\n };\n Toolbar.prototype.zoomPercentSelect = function (args) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (args.isInteracted) {\n if (args.itemData) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var zoomText = args.itemData.percent;\n this.zoomDropDownChange(zoomText);\n }\n }\n else {\n this.updateZoomPercentage(this.pdfViewer.magnificationModule.zoomFactor);\n }\n }\n };\n Toolbar.prototype.zoomDropDownChange = function (zoomText) {\n // eslint-disable-next-line max-len\n if (zoomText !== this.pdfViewer.localeObj.getConstant('Fit Width') && zoomText !== this.pdfViewer.localeObj.getConstant('Fit Page') && zoomText !== this.pdfViewer.localeObj.getConstant('Automatic')) {\n this.pdfViewer.magnificationModule.isAutoZoom = false;\n this.pdfViewer.magnificationModule.zoomTo(parseFloat(zoomText));\n this.updateZoomPercentage(this.pdfViewer.magnificationModule.zoomFactor);\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Fit Width')) {\n this.pdfViewer.magnificationModule.isAutoZoom = false;\n this.pdfViewer.magnificationModule.fitToWidth();\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Fit Page')) {\n this.pdfViewer.magnificationModule.fitToPage();\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Automatic')) {\n this.pdfViewer.magnificationModule.isAutoZoom = true;\n this.pdfViewer.magnificationModule.fitToAuto();\n this.zoomDropDown.focusOut();\n }\n };\n /**\n * @param zoomFactor\n * @private\n */\n Toolbar.prototype.updateZoomPercentage = function (zoomFactor) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line radix\n var currentPercent = parseInt((zoomFactor * 100).toString()) + '%';\n if (isBlazor()) {\n // eslint-disable-next-line\n var blazorZoomDropDown = this.pdfViewerBase.getElement('_zoomDropDown');\n if (blazorZoomDropDown && blazorZoomDropDown.children.length > 0) {\n blazorZoomDropDown.children[0].children[0].value = currentPercent;\n }\n }\n else {\n if (this.zoomDropDown.text === currentPercent) {\n this.zoomDropDown.element.value = currentPercent;\n }\n if (this.zoomDropDown.index === 11) {\n this.zoomDropDown.value = 4;\n }\n if (zoomFactor <= 0.25) {\n this.pdfViewerBase.isMinimumZoom = true;\n }\n else {\n this.pdfViewerBase.isMinimumZoom = false;\n }\n // eslint-disable-next-line\n this.zoomDropDown.text = currentPercent;\n }\n }\n };\n Toolbar.prototype.updateInteractionItems = function () {\n if (this.pdfViewer.textSelectionModule) {\n if (this.pdfViewer.enableTextSelection) {\n this.toolbar.enableItems(this.textSelectItem.parentElement, true);\n }\n else {\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n }\n }\n else {\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n }\n this.toolbar.enableItems(this.panItem.parentElement, true);\n if (this.pdfViewer.interactionMode === 'TextSelection' && this.pdfViewer.enableTextSelection) {\n this.selectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n }\n else {\n this.selectItem(this.panItem);\n this.deSelectItem(this.textSelectItem);\n this.pdfViewerBase.initiatePanning();\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.textSearchButtonHandler = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.pdfViewer.textSearchModule && this.pdfViewerBase.pageCount > 0) {\n this.isTextSearchBoxDisplayed = !this.isTextSearchBoxDisplayed;\n this.pdfViewer.textSearchModule.showSearchBox(this.isTextSearchBoxDisplayed);\n if (this.isTextSearchBoxDisplayed) {\n if (!isBlazor()) {\n this.selectItem(this.textSearchItem);\n }\n // eslint-disable-next-line max-len\n var searchInputElement = document.getElementById(this.pdfViewer.element.id + '_search_input');\n searchInputElement.select();\n searchInputElement.focus();\n }\n else {\n if (!isBlazor()) {\n this.deSelectItem(this.textSearchItem);\n this.textSearchItem.blur();\n }\n else {\n var searchItem = this.pdfViewerBase.getElement('_search');\n searchItem.firstElementChild.blur();\n }\n }\n }\n }\n else {\n this.showToolbar(false);\n this.pdfViewerBase.navigationPane.createNavigationPaneMobile('search');\n }\n };\n Toolbar.prototype.initiateAnnotationMode = function (id) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.annotationToolbarModule.showAnnotationToolbar(this.annotationItem);\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {\n var formDesignerMainDiv = document.getElementById(this.pdfViewer.element.id + \"_formdesigner_toolbar\");\n formDesignerMainDiv.style.display = \"none\";\n this.formDesignerToolbarModule.isToolbarHidden = false;\n this.formDesignerToolbarModule.showFormDesignerToolbar(this.formDesignerItem);\n this.annotationToolbarModule.adjustViewer(true);\n }\n }\n }\n else {\n if (!isBlazor()) {\n if (id === this.pdfViewer.element.id + '_annotation') {\n id = this.pdfViewer.element.id + '_annotationIcon';\n }\n this.annotationToolbarModule.createAnnotationToolbarForMobile(id);\n }\n }\n };\n Toolbar.prototype.initiateFormDesignerMode = function () {\n if (this.formDesignerToolbarModule && this.pdfViewer.enableFormDesignerToolbar) {\n this.formDesignerToolbarModule.showFormDesignerToolbar(this.formDesignerItem);\n if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {\n var annotationMainDiv = document.getElementById(this.pdfViewer.element.id + \"_annotation_toolbar\");\n annotationMainDiv.style.display = \"none\";\n this.annotationToolbarModule.isToolbarHidden = false;\n this.annotationToolbarModule.showAnnotationToolbar(this.annotationItem);\n this.formDesignerToolbarModule.adjustViewer(true);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.DisableInteractionTools = function () {\n this.deSelectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n };\n /**\n * @param element\n * @private\n */\n Toolbar.prototype.selectItem = function (element) {\n if (element) {\n element.classList.add('e-pv-select');\n }\n };\n /**\n * @param element\n * @private\n */\n Toolbar.prototype.deSelectItem = function (element) {\n if (element) {\n element.classList.remove('e-pv-select');\n }\n };\n /**\n * @param isTextSelect\n * @private\n */\n Toolbar.prototype.updateInteractionTools = function (isTextSelect) {\n var isBlazorPlatform = isBlazor();\n if (isTextSelect) {\n if (isBlazorPlatform) {\n this.selectItem(this.SelectToolElement);\n this.deSelectItem(this.PanElement);\n }\n else {\n this.selectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n }\n }\n else {\n if (isBlazorPlatform) {\n this.selectItem(this.PanElement);\n this.deSelectItem(this.SelectToolElement);\n }\n else {\n this.selectItem(this.panItem);\n this.deSelectItem(this.textSelectItem);\n }\n }\n };\n Toolbar.prototype.initialEnableItems = function () {\n if (this.pdfViewer.enableToolbar) {\n this.showToolbar(true);\n }\n else {\n this.showToolbar(false);\n }\n if (this.pdfViewer.enableNavigationToolbar) {\n this.showNavigationToolbar(true);\n }\n else {\n this.showNavigationToolbar(false);\n }\n if (!isBlazor()) {\n if (this.isPrintBtnVisible) {\n this.showPrintOption(true);\n }\n else {\n this.showPrintOption(false);\n }\n if (this.isDownloadBtnVisible) {\n this.showDownloadOption(true);\n }\n else {\n this.showDownloadOption(false);\n }\n if (this.isSearchBtnVisible) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n if (this.isCommentBtnVisible) {\n this.showCommentOption(true);\n }\n else {\n this.showCommentOption(false);\n }\n }\n };\n Toolbar.prototype.showSeparator = function (toolbarItems) {\n // eslint-disable-next-line max-len\n if (!this.isOpenBtnVisible || (!this.isNavigationToolVisible && !this.isMagnificationToolVisible && !this.isSelectionBtnVisible && !this.isScrollingBtnVisible && !this.isUndoRedoBtnsVisible)) {\n this.applyHideToToolbar(false, 1, 1);\n }\n if (((!this.isNavigationToolVisible && !this.isMagnificationToolVisible) && !this.isOpenBtnVisible) ||\n (this.isOpenBtnVisible && !this.isNavigationToolVisible) ||\n // eslint-disable-next-line max-len\n ((!this.isOpenBtnVisible && !this.isNavigationToolVisible) || (!this.isMagnificationToolVisible && !this.isScrollingBtnVisible && !this.isSelectionBtnVisible))) {\n this.applyHideToToolbar(false, 8, 8);\n }\n if ((!this.isMagnificationToolVisible && !this.isSelectionBtnVisible && !this.isScrollingBtnVisible) ||\n (this.isMagnificationToolVisible && (!this.isSelectionBtnVisible && !this.isScrollingBtnVisible)) ||\n (!this.isMagnificationToolVisible && (this.isSelectionBtnVisible || this.isScrollingBtnVisible))) {\n this.applyHideToToolbar(false, 12, 12);\n }\n if (((!this.isMagnificationToolVisible && !this.isNavigationToolVisible && !this.isScrollingBtnVisible\n && !this.isSelectionBtnVisible) && this.isUndoRedoBtnsVisible || !this.isUndoRedoBtnsVisible)) {\n this.applyHideToToolbar(false, 15, 15);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.applyToolbarSettings = function () {\n var toolbarSettingsItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarSettingsItems) {\n if (toolbarSettingsItems.indexOf('OpenOption') !== -1) {\n this.showOpenOption(true);\n }\n else {\n this.showOpenOption(false);\n }\n if (toolbarSettingsItems.indexOf('PageNavigationTool') !== -1) {\n this.showPageNavigationTool(true);\n }\n else {\n this.showPageNavigationTool(false);\n }\n if (toolbarSettingsItems.indexOf('MagnificationTool') !== -1) {\n this.showMagnificationTool(true);\n }\n else {\n this.showMagnificationTool(false);\n }\n if (toolbarSettingsItems.indexOf('SelectionTool') !== -1) {\n this.showSelectionTool(true);\n }\n else {\n this.showSelectionTool(false);\n }\n if (toolbarSettingsItems.indexOf('PanTool') !== -1) {\n this.showScrollingTool(true);\n }\n else {\n this.showScrollingTool(false);\n }\n if (toolbarSettingsItems.indexOf('PrintOption') !== -1) {\n this.showPrintOption(true);\n }\n else {\n this.showPrintOption(false);\n }\n if (toolbarSettingsItems.indexOf('DownloadOption') !== -1) {\n this.showDownloadOption(true);\n }\n else {\n this.showDownloadOption(false);\n }\n if (toolbarSettingsItems.indexOf('SearchOption') !== -1) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n if (toolbarSettingsItems.indexOf('UndoRedoTool') !== -1) {\n this.showUndoRedoTool(true);\n }\n else {\n this.showUndoRedoTool(false);\n }\n if (toolbarSettingsItems.indexOf('AnnotationEditTool') !== -1) {\n this.showAnnotationEditTool(true);\n }\n else {\n this.showAnnotationEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('FormDesignerEditTool') !== -1) {\n this.showFormDesignerEditTool(true);\n }\n else {\n this.showFormDesignerEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('CommentTool') !== -1) {\n this.showCommentOption(true);\n }\n else {\n this.showCommentOption(false);\n }\n if (toolbarSettingsItems.indexOf('SubmitForm') !== -1) {\n this.showSubmitForm(true);\n }\n else {\n this.showSubmitForm(false);\n }\n this.showSeparator(toolbarSettingsItems);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.applyToolbarSettingsForMobile = function () {\n var toolbarSettingsItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarSettingsItems) {\n if (toolbarSettingsItems.indexOf('OpenOption') !== -1) {\n this.showOpenOption(true);\n }\n else {\n this.showOpenOption(false);\n }\n if (toolbarSettingsItems.indexOf('UndoRedoTool') !== -1) {\n this.showUndoRedoTool(true);\n }\n else {\n this.showUndoRedoTool(false);\n }\n if (toolbarSettingsItems.indexOf('AnnotationEditTool') !== -1) {\n this.showAnnotationEditTool(true);\n }\n else {\n this.showAnnotationEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('SearchOption') !== -1) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n }\n };\n Toolbar.prototype.getStampMode = function () {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n return this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode;\n }\n else {\n return false;\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampBeforeOpen = function (args) {\n this.annotationToolbarModule.resetFreeTextAnnot();\n if (args.ParentItem.Text === '' && this.pdfViewer.customStampSettings.isAddToMenu && args.Items.length > 0) {\n // eslint-disable-next-line\n var currentElements = null;\n for (var i = 0; i < args.Items.length; i++) {\n if (args.Items[i].Text === 'Custom Stamp') {\n args.Items[i].Items = [];\n currentElements = args.Items[i];\n break;\n }\n }\n // eslint-disable-next-line\n var elements = this.pdfViewerBase.customStampCollection;\n // eslint-disable-next-line\n var stampElements = this.pdfViewer.customStampSettings.customStamps;\n if (elements.length === 0 && stampElements && stampElements.length > 0) {\n for (var n = 0; n < stampElements.length; n++) {\n // eslint-disable-next-line max-len\n elements.push({ customStampName: stampElements[n].customStampName, customStampImageSource: stampElements[n].customStampImageSource });\n }\n }\n for (var m = 0; m < elements.length; m++) {\n if (currentElements != null) {\n currentElements.Items.push({ text: elements[m].customStampName });\n }\n }\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampBeforeClose = function (args, showItemOnClick) {\n // eslint-disable-next-line max-len\n if ((args.ParentItem && args.ParentItem.Text !== 'Custom Stamp' && args.ParentItem.Text !== 'Standard Business' && args.ParentItem.Text !== 'Dynamic' && args.ParentItem.Text !== 'Sign Here') || !args.ParentItem) {\n showItemOnClick = true;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.updateStampItems = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.stampAnnotationModule && this.pdfViewer.annotationModule.stampAnnotationModule.isNewStampAnnot) {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.remove(this.pdfViewer.selectedItems.annotations[0]);\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n this.pdfViewer.renderDrawing();\n this.pdfViewerBase.tool = null;\n }\n this.pdfViewerBase.isAlreadyAdded = false;\n this.pdfViewer.annotationModule.stampAnnotationModule.isNewStampAnnot = false;\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampSelect = function (args, stampParentID) {\n this.pdfViewerBase.isAlreadyAdded = false;\n this.updateStampItems();\n if (args.Item.Text === 'Custom Stamp') {\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n // eslint-disable-next-line\n var stampImage = createElement('input', { id: this.pdfViewer.element.id + '_stampElement', attrs: { 'type': 'file' } });\n stampImage.setAttribute('accept', '.jpg,.jpeg,.png');\n stampImage.style.position = 'absolute';\n stampImage.style.left = '0px';\n stampImage.style.top = '0px';\n stampImage.style.visibility = 'hidden';\n document.body.appendChild(stampImage);\n stampImage.click();\n stampImage.addEventListener('change', this.annotationToolbarModule.addStampImage);\n document.body.removeChild(stampImage);\n // eslint-disable-next-line max-len\n }\n else if (stampParentID === 'Custom Stamp' && args.Item.Text !== '') {\n // eslint-disable-next-line\n var elements = this.pdfViewerBase.customStampCollection;\n for (var n = 0; n < elements.length; n++) {\n if (elements[n].customStampName === args.Item.Text) {\n this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = args.Item.Text;\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n this.pdfViewerBase.isAlreadyAdded = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(elements[n].customStampImageSource);\n this.pdfViewerBase.stampAdded = false;\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (args.Item.Text !== 'Dynamic' && args.Item.Text !== '' && args.Item.Text !== 'Standard Business' && (stampParentID === 'Sign Here' || args.Item.Text !== 'Sign Here')) {\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n if (stampParentID === 'Dynamic') {\n this.pdfViewerBase.isDynamicStamp = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.retrieveDynamicStampAnnotation(args.Item.Text);\n }\n else {\n this.pdfViewerBase.isDynamicStamp = false;\n this.pdfViewer.annotationModule.stampAnnotationModule.retrievestampAnnotation(args.Item.Text);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.getModuleName = function () {\n return 'Toolbar';\n };\n return Toolbar;\n}());\nexport { Toolbar };\n","/**\n * Navigation module\n */\nvar Navigation = /** @class */ (function () {\n /**\n * @param viewer\n * @param viewerBase\n * @param viewer\n * @param viewerBase\n * @private\n */\n function Navigation(viewer, viewerBase) {\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * Navigate to Next page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToNextPage = function () {\n this.pageNumber = this.pdfViewerBase.currentPageNumber;\n this.pageNumber++;\n if (this.pageNumber <= this.pdfViewerBase.pageCount) {\n this.pdfViewerBase.updateScrollTop(this.pageNumber - 1);\n }\n };\n /**\n * Navigate to Previous page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToPreviousPage = function () {\n this.pageNumber = this.pdfViewerBase.currentPageNumber;\n this.pageNumber--;\n if (this.pageNumber > 0) {\n this.pdfViewerBase.updateScrollTop(this.pageNumber - 1);\n }\n };\n /**\n * Navigate to given Page number\n * Note : In case if we have provided incorrect page number as argument it will retain the existing page\n *\n * @param {number} pageNumber - Defines the page number to navigate\n * @returns void\n */\n Navigation.prototype.goToPage = function (pageNumber) {\n if (pageNumber > 0 && pageNumber <= this.pdfViewerBase.pageCount && this.pdfViewerBase.currentPageNumber !== pageNumber) {\n this.pdfViewerBase.updateScrollTop(pageNumber - 1);\n }\n this.pdfViewer.magnificationModule.resizeCanvas(pageNumber);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber - 1));\n if (textLayer) {\n textLayer.style.display = 'block';\n }\n };\n /**\n * Navigate to First page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToFirstPage = function () {\n this.pageNumber = 0;\n this.pdfViewerBase.updateScrollTop(this.pageNumber);\n };\n /**\n * Navigate to Last page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToLastPage = function () {\n this.pageNumber = this.pdfViewerBase.pageCount - 1;\n this.pdfViewerBase.updateScrollTop(this.pageNumber);\n };\n /**\n * @private\n */\n Navigation.prototype.destroy = function () {\n this.pageNumber = 0;\n };\n /**\n * @private\n */\n Navigation.prototype.getModuleName = function () {\n return 'Navigation';\n };\n return Navigation;\n}());\nexport { Navigation };\n","/* eslint-disable */\nimport { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { CheckBox } from '@syncfusion/ej2-buttons';\nimport { AjaxHandler } from '../index';\nimport { createSpinner, showSpinner, hideSpinner } from '../index';\n/**\n * TextSearch module\n */\nvar TextSearch = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function TextSearch(pdfViewer, pdfViewerBase) {\n var _this = this;\n /**\n * @private\n */\n this.isTextSearch = false;\n /**\n * @private\n */\n this.searchCount = 0;\n this.searchIndex = 0;\n this.currentSearchIndex = 0;\n this.startIndex = null;\n this.searchPageIndex = null;\n this.searchString = null;\n this.isMatchCase = false;\n this.searchRequestHandler = null;\n // eslint-disable-next-line\n this.textContents = new Array();\n // eslint-disable-next-line\n this.searchMatches = new Array();\n // eslint-disable-next-line\n this.searchCollection = new Array();\n this.searchedPages = [];\n this.isPrevSearch = false;\n /**\n * @private\n */\n this.searchTextDivzIndex = \"-1\";\n // eslint-disable-next-line\n this.tempElementStorage = new Array();\n /**\n * @private\n */\n this.isMessagePopupOpened = false;\n /**\n * @private\n */\n this.isTextRetrieved = false;\n this.isTextSearched = false;\n this.isTextSearchEventTriggered = false;\n this.isSearchText = false;\n // eslint-disable-next-line\n this.checkBoxOnChange = function (event) {\n if (isBlazor()) {\n if (event.currentTarget && event.currentTarget.checked) {\n _this.isMatchCase = true;\n }\n else {\n _this.isMatchCase = false;\n }\n }\n else {\n if (event.checked) {\n _this.isMatchCase = true;\n }\n else {\n _this.isMatchCase = false;\n }\n }\n if (_this.isTextSearch) {\n _this.resetVariables();\n _this.clearAllOccurrences();\n var inputString = _this.searchInput.value;\n _this.searchIndex = 0;\n _this.textSearch(inputString);\n }\n };\n this.searchKeypressHandler = function (event) {\n _this.enableNextButton(true);\n _this.enablePrevButton(true);\n if (event.which === 13) {\n _this.initiateTextSearch(_this.searchInput);\n _this.updateSearchInputIcon(false);\n }\n else {\n _this.resetVariables();\n }\n };\n this.searchClickHandler = function (event) {\n _this.searchButtonClick(_this.searchBtn, _this.searchInput);\n };\n this.nextButtonOnClick = function (event) {\n _this.nextSearch();\n };\n this.prevButtonOnClick = function (event) {\n _this.prevSearch();\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n */\n TextSearch.prototype.createTextSearchBox = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.searchBox = createElement('div', { id: this.pdfViewer.element.id + '_search_box', className: 'e-pv-search-bar' });\n var toolbarElement;\n if (isBlazor()) {\n toolbarElement = document.getElementById('toolbarContainer');\n }\n else {\n toolbarElement = this.pdfViewerBase.getElement('_toolbarContainer');\n }\n if (toolbarElement) {\n if (isBlazor()) {\n this.searchBox.style.top = toolbarElement.clientHeight + 'px';\n }\n else {\n this.searchBox.style.top = toolbarElement.clientHeight + 'px';\n }\n }\n var searchElementsContainer = createElement('div', { id: this.pdfViewer.element.id + '_search_box_elements', className: 'e-pv-search-bar-elements' });\n // eslint-disable-next-line max-len\n var searchInputContainer = createElement('div', { id: this.pdfViewer.element.id + '_search_input_container', className: 'e-input-group e-pv-search-input' });\n this.searchInput = createElement('input', { id: this.pdfViewer.element.id + '_search_input', className: 'e-input' });\n this.searchInput.type = 'text';\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Findindocument');\n promise.then(function (value) {\n _this.searchInput.placeholder = value;\n });\n }\n else {\n this.searchInput.placeholder = this.pdfViewer.localeObj.getConstant('Find in document');\n }\n // eslint-disable-next-line max-len\n this.searchBtn = createElement('span', { id: this.pdfViewer.element.id + '_search_box-icon', className: 'e-input-group-icon e-input-search-group-icon e-pv-search-icon' });\n searchInputContainer.appendChild(this.searchInput);\n searchInputContainer.appendChild(this.searchBtn);\n searchElementsContainer.appendChild(searchInputContainer);\n if (this.pdfViewer.enableRtl) {\n this.prevSearchBtn = this.createSearchBoxButtons('prev_occurrence', 'e-pv-next-search');\n }\n else {\n this.prevSearchBtn = this.createSearchBoxButtons('prev_occurrence', 'e-pv-prev-search');\n }\n this.prevSearchBtn.setAttribute('aria-label', 'Previous Search text');\n searchElementsContainer.appendChild(this.prevSearchBtn);\n if (this.pdfViewer.enableRtl) {\n this.nextSearchBtn = this.createSearchBoxButtons('next_occurrence', 'e-pv-prev-search');\n }\n else {\n this.nextSearchBtn = this.createSearchBoxButtons('next_occurrence', 'e-pv-next-search');\n }\n this.nextSearchBtn.setAttribute('aria-label', 'Next Search text');\n searchElementsContainer.appendChild(this.nextSearchBtn);\n // eslint-disable-next-line max-len\n var matchCaseContainer = createElement('div', { id: this.pdfViewer.element.id + '_match_case_container', className: 'e-pv-match-case-container' });\n var matchCaseInput = createElement('input', { id: this.pdfViewer.element.id + '_match_case' });\n matchCaseInput.type = 'checkbox';\n if (isBlazor()) {\n matchCaseInput.style.height = '17px';\n matchCaseInput.style.width = '17px';\n matchCaseInput.addEventListener('change', this.checkBoxOnChange.bind(this));\n }\n matchCaseContainer.appendChild(matchCaseInput);\n this.searchBox.appendChild(searchElementsContainer);\n this.searchBox.appendChild(matchCaseContainer);\n this.pdfViewerBase.mainContainer.appendChild(this.searchBox);\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n var matchCaseText_1 = createElement('span', { id: this.pdfViewer.element.id + '_search_box_text', styles: 'position: absolute; padding-top: 3px; padding-left: 8px; padding-right: 8px; font-size: 13px' });\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Matchcase');\n promise.then(function (value) {\n matchCaseText_1.textContent = value;\n });\n matchCaseContainer.appendChild(matchCaseText_1);\n }\n else {\n // eslint-disable-next-line max-len\n var checkBox = new CheckBox({ cssClass: 'e-pv-match-case', label: this.pdfViewer.localeObj.getConstant('Match case'), change: this.checkBoxOnChange.bind(this) });\n checkBox.appendTo(matchCaseInput);\n }\n var waitingPopup = createElement('div', { id: this.pdfViewer.element.id + '_textSearchLoadingIndicator' });\n searchInputContainer.appendChild(waitingPopup);\n waitingPopup.style.position = 'absolute';\n waitingPopup.style.top = '15px';\n waitingPopup.style.left = searchInputContainer.clientWidth - 46 + 'px';\n createSpinner({ target: waitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(waitingPopup);\n this.showSearchBox(false);\n if (this.pdfViewer.enableRtl) {\n this.searchBox.classList.add('e-rtl');\n this.searchBox.style.left = '88.3px';\n }\n else {\n this.searchBox.classList.remove('e-rtl');\n this.searchBox.style.right = '88.3px';\n }\n this.searchInput.addEventListener('focus', function () {\n _this.searchInput.parentElement.classList.add('e-input-focus');\n });\n this.searchInput.addEventListener('blur', function () {\n _this.searchInput.parentElement.classList.remove('e-input-focus');\n });\n this.searchInput.addEventListener('keydown', this.searchKeypressHandler.bind(this));\n this.searchBtn.addEventListener('click', this.searchClickHandler.bind(this));\n this.nextSearchBtn.addEventListener('click', this.nextButtonOnClick.bind(this));\n this.prevSearchBtn.addEventListener('click', this.prevButtonOnClick.bind(this));\n };\n TextSearch.prototype.setLoaderProperties = function (element) {\n var spinnerElement = element.firstChild.firstChild.firstChild;\n if (spinnerElement) {\n spinnerElement.style.height = '18px';\n spinnerElement.style.width = '18px';\n spinnerElement.style.transformOrigin = '9px 9px 9px';\n }\n };\n TextSearch.prototype.showLoadingIndicator = function (isShow) {\n var waitingPopup = document.getElementById(this.pdfViewer.element.id + '_textSearchLoadingIndicator');\n if (waitingPopup) {\n if (isShow) {\n showSpinner(waitingPopup);\n }\n else {\n hideSpinner(waitingPopup);\n }\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.textSearchBoxOnResize = function () {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableToolbar) {\n var secondaryToolbar = this.pdfViewerBase.getElement('_toolbarContainer_popup');\n if (secondaryToolbar) {\n if (secondaryToolbar.contains(this.pdfViewerBase.getElement('_search').parentElement)) {\n this.searchBox.style.right = '0px';\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.viewerContainer.clientWidth + this.pdfViewerBase.viewerContainer.offsetLeft < this.searchBox.offsetLeft + this.searchBox.clientWidth) {\n this.searchBox.style.right = '0px';\n // eslint-disable-next-line\n this.searchBox.style.width = parseInt(this.searchBox.style.width) - ((this.searchBox.offsetLeft + this.searchBox.clientWidth) - (this.pdfViewerBase.viewerContainer.clientWidth)) + 'px';\n // eslint-disable-next-line\n this.searchInput.style.width = parseInt(this.searchInput.style.width) - ((this.searchBox.offsetLeft + this.searchBox.clientWidth) - (this.pdfViewerBase.viewerContainer.clientWidth)) + 'px';\n }\n else {\n this.searchBox.style.right = '88.3px';\n this.searchBox.style.width = '';\n this.searchInput.style.width = '';\n }\n }\n };\n /**\n * @param isShow\n * @private\n */\n TextSearch.prototype.showSearchBox = function (isShow) {\n if (isShow) {\n this.searchBox.style.display = 'block';\n }\n else {\n this.searchBox.style.display = 'none';\n this.searchInput.value = '';\n }\n this.onTextSearchClose();\n };\n /**\n * @private\n */\n TextSearch.prototype.searchAfterSelection = function () {\n if (this.isTextSearch) {\n this.initSearch(this.searchPageIndex, true);\n this.highlightOthers();\n }\n };\n TextSearch.prototype.initiateTextSearch = function (searchElement) {\n var inputString = searchElement.value;\n if (inputString && inputString.length > 0 && inputString[inputString.length - 1] === ' ') {\n inputString = inputString.slice(0, inputString.length - 1);\n }\n this.initiateSearch(inputString);\n };\n /**\n * @param inputString\n * @private\n */\n TextSearch.prototype.initiateSearch = function (inputString) {\n if (inputString !== this.searchString) {\n this.isTextSearch = false;\n this.searchPageIndex = this.pdfViewerBase.currentPageNumber - 1;\n }\n this.clearAllOccurrences();\n if (inputString !== '') {\n // eslint-disable-next-line\n if (this.searchMatches[this.searchPageIndex] && inputString === this.searchString) {\n if (this.searchMatches[this.searchPageIndex].length === 0) {\n this.initSearch(this.searchPageIndex, false);\n }\n else {\n this.nextSearch();\n }\n }\n else {\n this.resetVariables();\n this.searchIndex = 0;\n this.textSearch(inputString);\n }\n }\n };\n TextSearch.prototype.textSearch = function (inputString) {\n if (inputString !== '' || inputString) {\n this.searchString = inputString;\n this.isTextSearch = true;\n this.isSearchText = true;\n this.searchPageIndex = this.pdfViewerBase.currentPageNumber - 1;\n this.searchCount = 0;\n this.isTextSearchEventTriggered = false;\n this.showLoadingIndicator(true);\n this.pdfViewer.fireTextSearchStart(inputString, this.isMatchCase);\n if (this.pdfViewer.isExtractText) {\n if (this.isTextRetrieved) {\n for (var i = 0; i < this.pdfViewerBase.pageCount; i++) {\n this.initSearch(i, false, true);\n }\n }\n else {\n this.isTextSearched = true;\n for (var i = 0; i < this.documentTextCollection.length; i++) {\n this.initSearch(i, false, true);\n }\n }\n }\n this.initSearch(this.searchPageIndex, false);\n this.highlightOthers();\n }\n };\n TextSearch.prototype.nextSearch = function () {\n this.isPrevSearch = false;\n this.isTextSearch = true;\n this.isSearchText = false;\n if (this.searchString) {\n this.clearAllOccurrences();\n this.searchIndex = this.searchIndex + 1;\n if (this.searchMatches[this.searchPageIndex]) {\n // eslint-disable-next-line max-len\n if (this.searchIndex >= this.searchMatches[this.searchPageIndex].length) {\n this.searchIndex = 0;\n this.searchPageIndex = ((this.searchPageIndex + 1) < this.pdfViewerBase.pageCount) ? (this.searchPageIndex + 1) : 0;\n if (this.pdfViewerBase.pageCount > 1) {\n this.initSearch(this.searchPageIndex, false);\n }\n else {\n this.initSearch(this.searchPageIndex, true);\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.pdfViewerBase.updateScrollTop(this.searchPageIndex);\n }\n this.showLoadingIndicator(true);\n }\n else {\n this.highlightSearchedTexts(this.searchPageIndex, false, undefined);\n this.showLoadingIndicator(false);\n }\n this.highlightOthers(true);\n }\n else {\n this.initiateTextSearch(this.searchInput);\n }\n }\n else {\n this.initiateTextSearch(this.searchInput);\n }\n };\n TextSearch.prototype.prevSearch = function () {\n this.isPrevSearch = true;\n this.isTextSearch = true;\n this.isSearchText = false;\n if (this.searchString) {\n this.clearAllOccurrences();\n this.searchIndex = this.searchIndex - 1;\n if (this.searchIndex < 0) {\n this.searchPageIndex = ((this.searchPageIndex - 1) < 0) ? (this.pdfViewerBase.pageCount - 1) : this.searchPageIndex - 1;\n this.initSearch(this.searchPageIndex, false);\n this.showLoadingIndicator(true);\n }\n else {\n this.highlightSearchedTexts(this.searchPageIndex, false, undefined);\n this.showLoadingIndicator(false);\n }\n this.highlightOthers(true);\n }\n else {\n this.searchIndex = this.searchIndex - 1;\n this.searchPageIndex = ((this.searchPageIndex - 1) < 0) ? (this.pdfViewerBase.pageCount - 1) : this.searchPageIndex - 1;\n var inputString = this.searchInput.value;\n this.textSearch(inputString);\n }\n };\n TextSearch.prototype.initSearch = function (pageIndex, isSinglePageSearch, isCount) {\n // eslint-disable-next-line\n var storedData = this.pdfViewerBase.getStoredData(pageIndex, true);\n var pageText = null;\n var textContents = null;\n // eslint-disable-next-line\n var characterBounds = null;\n if (isCount) {\n if (this.documentTextCollection.length !== 0) {\n // eslint-disable-next-line\n var documentIndex = this.documentTextCollection[pageIndex][pageIndex];\n var pageTextData = documentIndex.pageText ? documentIndex.pageText : documentIndex.PageText;\n if (this.documentTextCollection[pageIndex] && documentIndex) {\n // eslint-disable-next-line max-len\n this.getSearchTextContent(pageIndex, this.searchString, pageTextData, textContents, isSinglePageSearch, this.documentTextCollection[pageIndex]);\n }\n }\n }\n else {\n if (storedData) {\n // eslint-disable-next-line\n pageText = storedData['pageText'];\n // eslint-disable-next-line\n textContents = storedData['textContent'];\n characterBounds = this.pdfViewerBase.textLayer.characterBound[pageIndex];\n this.textContents[pageIndex] = textContents;\n this.getPossibleMatches(pageIndex, this.searchString, pageText, textContents, isSinglePageSearch, characterBounds);\n }\n else {\n if (!isSinglePageSearch) {\n this.createRequestForSearch(pageIndex);\n }\n }\n }\n if (this.pdfViewerBase.pageCount === (this.searchedPages && this.searchedPages.length)) {\n if (!this.isTextSearchEventTriggered) {\n this.isTextSearchEventTriggered = true;\n this.pdfViewer.fireTextSearchComplete(this.searchString, this.isMatchCase);\n }\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.getPossibleMatches = function (pageIndex, searchString, pageString, textContents, isSinglePageSearch, characterBounds) {\n var arrayReturns;\n if (this.searchMatches && !this.searchMatches[pageIndex]) {\n var pageText = pageString;\n var searchText = searchString;\n var multiSearch = (pageText.replace((/(\\s\\r\\n)/gm), ' ')).replace((/(\\r\\n)/gm), \" \");\n var Multiline = (pageString.replace((/(\\s\\r\\n)/gm), ' ')).replace((/(\\r\\n)/gm), \" \");\n var specialCharcterSearch = multiSearch.replace(/[^a-zA-z0-9\" \"]/g, \"\");\n var queryLength = searchString.length;\n if (!this.isMatchCase) {\n searchText = searchString.toLowerCase();\n pageText = pageString.toLowerCase();\n multiSearch = multiSearch.toLowerCase();\n Multiline = Multiline.toLowerCase();\n specialCharcterSearch = specialCharcterSearch.toLowerCase();\n }\n var matches = [];\n var matchedArray = [];\n var matchIndex = -queryLength;\n var newIndex = -queryLength;\n var multiSearchIndex = -queryLength;\n var MultilineIndex = -queryLength;\n var specialcharcterIndex = -queryLength;\n while (matchIndex !== 0 || matchIndex === 0) {\n if (searchText === '' || searchText === ' ' || !searchText) {\n break;\n }\n matchIndex = pageText.indexOf(searchText, matchIndex + queryLength);\n if (searchText.indexOf(' ') !== -1) {\n var newString = searchString.replace(' ', '\\r\\n');\n newIndex = pageText.indexOf(newString, newIndex + queryLength);\n newIndex = -1;\n if (!(newIndex <= -1)) {\n if (newIndex < matchIndex) {\n matches.push(newIndex);\n }\n }\n }\n if (matchIndex <= -1 && newIndex <= -1) {\n break;\n }\n if (!(matchIndex <= -1)) {\n matches.push(matchIndex);\n }\n if (newIndex > matchIndex && !(newIndex <= -1)) {\n matches.push(newIndex);\n }\n }\n if (matches.length == 0) {\n multiSearchIndex = multiSearch.indexOf(searchText, multiSearchIndex + queryLength);\n MultilineIndex = Multiline.indexOf(searchText, MultilineIndex + queryLength);\n specialcharcterIndex = specialCharcterSearch.indexOf(searchText, specialcharcterIndex + queryLength);\n if (multiSearchIndex !== -1) {\n arrayReturns = this.correctLinetext(searchString, matchIndex, pageText);\n matchIndex = -arrayReturns[0].length;\n for (var i = 0; i < arrayReturns.length; i++) {\n matchIndex = pageText.indexOf(arrayReturns[i].trim(), matchIndex + (arrayReturns[i - 1] === undefined || null ? arrayReturns[0].length : arrayReturns[i - 1].length));\n matchedArray.push(matchIndex);\n if (matchedArray.length > 1) {\n if ((matchedArray[1] - (matchedArray[0] + arrayReturns[0].length)) <= 3) {\n matches.push(matchedArray);\n this.searchMatches[pageIndex] = matches;\n }\n else {\n i = -1;\n matchIndex = matchedArray[0] + arrayReturns[0].length;\n matchedArray.splice(0, matchedArray.length);\n }\n }\n }\n }\n else if (specialcharcterIndex !== -1) {\n arrayReturns = this.correctLinetext(searchString, matchIndex, pageText);\n matchIndex = -arrayReturns[0].length;\n for (var i = 0; i < arrayReturns.length; i++) {\n matchIndex = pageText.indexOf(arrayReturns[i].trim(), matchIndex + (arrayReturns[i - 1] === undefined || null ? arrayReturns[0].length : arrayReturns[i - 1].length));\n matchedArray.push(matchIndex);\n if (matchedArray.length > 1) {\n if ((matchedArray[1] - (matchedArray[0] + arrayReturns[0].length)) <= 3) {\n matches.push(matchedArray);\n this.searchMatches[pageIndex] = matches;\n }\n else {\n i = -1;\n matchIndex = matchedArray[0] + arrayReturns[0].length;\n matchedArray.splice(0, matchedArray.length);\n }\n }\n }\n }\n else if (MultilineIndex !== -1) {\n arrayReturns = this.correctLinetext(searchString, matchIndex, pageText);\n matchIndex = -arrayReturns[0].length;\n for (var i = 0; i < arrayReturns.length; i++) {\n matchIndex = pageText.indexOf(arrayReturns[i].trim(), matchIndex + (arrayReturns[i - 1] === undefined || null ? arrayReturns[0].length : arrayReturns[i - 1].length));\n matchedArray.push(matchIndex);\n if (matchedArray.length > 1) {\n if ((matchedArray[1] - (matchedArray[0] + arrayReturns[0].length)) <= 3) {\n matches.push(matchedArray);\n this.searchMatches[pageIndex] = matches;\n }\n else {\n i = -1;\n matchIndex = matchedArray[0] + arrayReturns[0].length;\n matchedArray.splice(0, matchedArray.length);\n }\n }\n }\n }\n if (matches.length > 1) {\n matches.splice(1, matches.length);\n }\n }\n if (this.searchMatches && matches.length > 0) {\n this.searchMatches[pageIndex] = matches;\n }\n }\n if (!isSinglePageSearch) {\n if (this.searchedPages.indexOf(pageIndex) === -1) {\n this.searchedPages.push(pageIndex);\n this.startIndex = this.searchedPages[0];\n }\n this.updateSearchInputIcon(false);\n }\n if (this.searchMatches && this.searchMatches[pageIndex] && this.searchMatches[pageIndex].length !== 0) {\n if (!isSinglePageSearch) {\n if (this.isPrevSearch) {\n this.searchIndex = this.searchMatches[pageIndex].length - 1;\n }\n if ((this.pdfViewerBase.currentPageNumber - 1) !== this.searchPageIndex) {\n // eslint-disable-next-line max-len\n if (this.searchMatches.length > 0 && (this.searchIndex === 0 || this.searchIndex === -1) && (this.searchPageIndex) === this.currentSearchIndex) {\n if (!this.isMessagePopupOpened && !this.isSearchText) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = this.getSearchPage(this.pdfViewerBase.currentPageNumber - 1);\n this.searchedPages = [this.searchPageIndex];\n }\n // eslint-disable-next-line max-len\n else if (this.isPrevSearch && this.searchMatches && this.searchMatches.length > 0 && (this.searchMatches[this.searchPageIndex] && this.searchMatches[this.searchPageIndex].length > 0) && this.searchedPages.length === this.pdfViewerBase.pageCount && this.startIndex - 1 === this.searchPageIndex) {\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchedPages = [this.startIndex];\n }\n this.pdfViewerBase.updateScrollTop(this.searchPageIndex);\n }\n else if (this.searchMatches && (this.searchMatches[this.searchPageIndex] && this.searchMatches[this.searchPageIndex].length > 0) && this.searchedPages.length === this.pdfViewerBase.pageCount && this.startIndex === this.searchPageIndex && this.pdfViewerBase.pageCount > 1) {\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchedPages = [this.startIndex];\n }\n }\n this.highlightSearchedTexts(pageIndex, isSinglePageSearch, arrayReturns);\n }\n else {\n if (!isSinglePageSearch) {\n if (this.isPrevSearch) {\n this.searchPageIndex = ((this.searchPageIndex - 1) < 0) ? (this.pdfViewerBase.pageCount - 1) : this.searchPageIndex - 1;\n }\n else {\n this.searchPageIndex = ((this.searchPageIndex + 1) < this.pdfViewerBase.pageCount) ? (this.searchPageIndex + 1) : 0;\n }\n if (this.searchedPages.indexOf(this.searchPageIndex) === -1 && this.searchedPages.length !== this.pdfViewerBase.pageCount) {\n this.showLoadingIndicator(true);\n this.initSearch(this.searchPageIndex, false);\n }\n else {\n var searchPageIndex = this.getSearchPage(pageIndex);\n // eslint-disable-next-line max-len\n if (this.searchMatches && isNullOrUndefined(this.searchMatches[this.searchPageIndex]) && this.searchedPages.length === this.pdfViewerBase.pageCount) {\n // eslint-disable-next-line max-len\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.pdfViewerBase.updateScrollTop(this.startIndex);\n // eslint-disable-next-line max-len\n }\n else if (this.searchMatches && this.searchMatches.length > 0 && (this.searchIndex === 0 || this.searchIndex === -1) && (searchPageIndex) === this.currentSearchIndex) {\n if (this.isPrevSearch) {\n // eslint-disable-next-line max-len\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = searchPageIndex;\n this.searchedPages = [searchPageIndex];\n this.searchIndex = -1;\n }\n else {\n if (!this.isMessagePopupOpened && this.pdfViewerBase.currentPageNumber !== 1 && !this.isSearchText) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = searchPageIndex;\n this.searchedPages = [searchPageIndex];\n this.searchIndex = 0;\n }\n this.highlightSearchedTexts(this.searchPageIndex, isSinglePageSearch, undefined);\n }\n else if (this.searchMatches && (this.searchMatches[this.searchPageIndex] && this.searchMatches[this.searchPageIndex].length > 0) && this.searchedPages.length === this.pdfViewerBase.pageCount) {\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = this.startIndex;\n this.searchedPages = [this.searchPageIndex];\n this.searchIndex = 0;\n this.pdfViewerBase.updateScrollTop(this.startIndex);\n this.highlightSearchedTexts(this.searchPageIndex, isSinglePageSearch, undefined);\n }\n }\n }\n }\n };\n TextSearch.prototype.correctLinetext = function (searchString, matchIndex, pageText) {\n var indiuvalLineArray = [];\n var searchArray = searchString.split(/[\" \"]+/);\n if (!this.isMatchCase) {\n searchArray = searchString.toLowerCase().split(/[\" \"]+/);\n }\n matchIndex = 0;\n var linestring = \"\";\n var mergedText = pageText.replace(/ \\r\\n/g, \" \");\n mergedText = mergedText.replace(/\\r\\n/g, \" \");\n mergedText = mergedText.replace(/[^a-zA-Z0-9 ]/g, '');\n searchString = searchString.replace(/[^a-zA-Z0-9 ]/g, '');\n var result = mergedText.match(searchString);\n if (!this.isMatchCase) {\n result = mergedText.match(searchString.toLowerCase());\n }\n if (isNullOrUndefined(result)) {\n return indiuvalLineArray;\n }\n else {\n result = pageText.slice(result.index, pageText.length);\n }\n var pageCheck = result;\n for (var i = 0; i < searchArray.length; i++) {\n var searchArrayText = linestring + searchArray[i];\n matchIndex = pageText.indexOf(searchArrayText, matchIndex);\n pageCheck = pageCheck ? pageCheck.replace(searchArray[i - 1], \"\") : pageText.replace(searchArray[i - 1], \"\");\n if ((pageCheck[pageCheck.indexOf(searchArray[i]) - 1] === \"\\n\" && (pageCheck[pageCheck.indexOf(searchArray[i + 1]) - 1]) === \"\\n\") || (pageCheck[pageCheck.indexOf(searchArray[i]) - 1] === \"\\n\" && isNullOrUndefined((pageCheck[pageCheck.indexOf(searchArray[i + 1]) - 1])))) {\n matchIndex = -1;\n if (linestring === \"\") {\n linestring = searchArray[i];\n i = i + 1;\n }\n }\n if (matchIndex !== -1) {\n linestring += searchArray[i] + \" \";\n if (i == (searchArray.length - 1)) {\n indiuvalLineArray.push(linestring);\n }\n }\n else {\n indiuvalLineArray.push(linestring);\n linestring = searchArray[i] + \" \";\n if (pageCheck[pageCheck.indexOf(searchArray[i]) - 1] == \"\\n\" && pageCheck[pageCheck.indexOf(searchArray[i + 1]) - 1] == \"\\n\") {\n indiuvalLineArray.push(linestring);\n linestring = searchArray[i + 1] + \" \";\n pageCheck = pageCheck ? pageCheck.replace(searchArray[i - 1], \"\") : pageText.replace(searchArray[i - 1], \"\");\n i = i + 1;\n }\n if (i == (searchArray.length - 1)) {\n indiuvalLineArray.push(linestring);\n }\n }\n }\n return indiuvalLineArray;\n };\n // eslint-disable-next-line\n TextSearch.prototype.getSearchTextContent = function (pageIndex, searchString, pageString, textContents, isSinglePageSearch, characterBounds) {\n var pageText = pageString;\n var searchText = searchString;\n var queryLength = searchString.length;\n if (!this.isMatchCase) {\n searchText = searchString.toLowerCase();\n pageText = pageString.toLowerCase();\n }\n var matches = [];\n var matchIndex = -queryLength;\n var newIndex = -queryLength;\n while (matchIndex !== 0) {\n if (searchText === '' || searchText === ' ' || !searchText) {\n break;\n }\n matchIndex = pageText.indexOf(searchText, matchIndex + queryLength);\n if (searchText.indexOf(' ') !== -1) {\n var newString = searchString.replace(' ', '\\r\\n');\n newIndex = pageText.indexOf(newString, newIndex + queryLength);\n if (!(newIndex <= -1)) {\n if (newIndex < matchIndex) {\n matches.push(newIndex);\n }\n }\n }\n if (matchIndex <= -1 && newIndex <= -1) {\n break;\n }\n if (!(matchIndex <= -1)) {\n matches.push(matchIndex);\n }\n if (newIndex > matchIndex && !(newIndex <= -1)) {\n matches.push(newIndex);\n }\n }\n if (matches.length !== 0) {\n this.searchCount = this.searchCount + matches.length;\n }\n this.searchMatches[pageIndex] = matches;\n };\n TextSearch.prototype.getSearchPage = function (pageIndex) {\n var pageNumber = null;\n if (this.isPrevSearch) {\n for (var i = pageIndex; i >= 0; i--) {\n if (i !== pageIndex && this.searchMatches[i]) {\n pageNumber = i;\n break;\n }\n }\n if (!pageNumber) {\n for (var j = this.pdfViewerBase.pageCount - 1; j > pageIndex; j--) {\n if (this.searchMatches[j]) {\n pageNumber = j;\n break;\n }\n }\n }\n }\n else {\n for (var i = pageIndex; i < this.pdfViewerBase.pageCount; i++) {\n if (i !== pageIndex && this.searchMatches[i]) {\n pageNumber = i;\n break;\n }\n }\n if (!pageNumber) {\n if (pageIndex === 0) {\n pageNumber = pageIndex;\n }\n else {\n for (var j = 0; j < pageIndex; j++) {\n if (this.searchMatches[j]) {\n pageNumber = j;\n break;\n }\n }\n }\n }\n }\n return pageNumber;\n };\n TextSearch.prototype.highlightSearchedTexts = function (pageIndex, isSinglePageSearch, ArrayReturns) {\n // eslint-disable-next-line\n var matches = this.searchMatches[pageIndex];\n var prevEnd = null;\n // eslint-disable-next-line\n var scrollPoint = { y: -100, x: -100 };\n var startId;\n var className;\n var searchingText = this.searchString;\n // eslint-disable-next-line\n var characterBounds = this.pdfViewerBase.textLayer.characterBound[pageIndex];\n var isHighlight = false;\n if (isSinglePageSearch && (this.pdfViewerBase.currentPageNumber - 1) !== this.searchPageIndex) {\n if (this.searchMatches.length > 0) {\n if (pageIndex === this.getSearchPage(this.pdfViewerBase.currentPageNumber - 1)) {\n isHighlight = true;\n }\n }\n }\n if (characterBounds) {\n for (var i = 0; i < matches.length; i++) {\n if (matches[i].length !== undefined && ArrayReturns !== undefined) {\n if (i === this.searchIndex && pageIndex === this.searchPageIndex) {\n for (var j = 0; j < ArrayReturns.length; j++) {\n className = 'e-pv-search-text-highlight';\n this.searchString = ArrayReturns[j].trim();\n this.addDivForSearch(i, pageIndex, characterBounds, this.searchString.length, className, j);\n }\n }\n else {\n for (var j = 0; j < ArrayReturns.length; j++) {\n className = 'e-pv-search-text-highlightother';\n this.searchString = ArrayReturns[j].trim();\n this.addDivForSearch(i, pageIndex, characterBounds, this.searchString.length, className, j);\n }\n }\n }\n else if (i === this.searchIndex && pageIndex === this.searchPageIndex) {\n className = 'e-pv-search-text-highlight';\n }\n else {\n className = 'e-pv-search-text-highlightother';\n }\n if (matches[i].length == undefined) {\n this.addDivForSearch(i, pageIndex, characterBounds, this.searchString.length, className, undefined);\n }\n }\n this.searchString = searchingText;\n if (pageIndex === this.searchPageIndex && !isSinglePageSearch) {\n var element = this.pdfViewerBase.getElement('_searchtext_' + pageIndex + '_' + this.searchIndex);\n if (element) {\n var targetScrollElement = this.getScrollElement(element);\n this.scrollToSearchStr(targetScrollElement, scrollPoint);\n }\n else {\n this.pdfViewerBase.updateScrollTop(pageIndex);\n var element_1 = this.pdfViewerBase.getElement('_searchtext_' + pageIndex + '_' + this.searchIndex);\n if (element_1) {\n var targetScrollElement = this.getScrollElement(element_1);\n this.scrollToSearchStr(targetScrollElement, scrollPoint);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.addDivForSearch = function (index, pageIndex, characterBounds, queryLength, className, nestedIndex) {\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageIndex);\n if (isNullOrUndefined(textLayer) && className === 'e-pv-search-text-highlight') {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigation.goToPage(pageIndex + 1);\n }\n }\n var count;\n if (this.searchMatches[pageIndex][index].length !== undefined) {\n count = this.searchMatches[pageIndex][index][nestedIndex];\n }\n else {\n count = this.searchMatches[pageIndex][index];\n }\n var initial = count;\n var divCount = 0;\n while (count < initial + queryLength) {\n count = this.addDivElement(count, characterBounds, queryLength, className, index, pageIndex, initial, divCount, nestedIndex);\n divCount++;\n }\n if (className === 'e-pv-search-text-highlight') {\n this.showLoadingIndicator(false);\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.addDivElement = function (count, characterBounds, queryLength, className, index, pageIndex, initial, divCount, nestedIndex) {\n var height = 0;\n var width = 0;\n var top = 0;\n var left = 0;\n var isRTL = false;\n if (characterBounds[count]) {\n left = characterBounds[count].X;\n top = characterBounds[count].Y;\n }\n var v = 0;\n if ((count - initial) !== 0) {\n v = count - initial;\n queryLength += 1;\n }\n for (v = v; v < queryLength; v++) {\n if (characterBounds[count]) {\n // eslint-disable-next-line\n var charBound = characterBounds[count];\n if (left > charBound.X + charBound.Width) {\n isRTL = true;\n }\n top = (top < charBound.Y) ? top : charBound.Y;\n var topDifference = (top < charBound.Y) ? (charBound.Y - top) : (top - charBound.Y);\n height = (height > (topDifference + charBound.Height)) ? height : (topDifference + charBound.Height);\n count++;\n }\n }\n var isContinuation = false;\n if (!isRTL) {\n if (initial + queryLength !== count) {\n isContinuation = true;\n if (characterBounds[count - 1]) {\n width = (characterBounds[count - 1].X - left);\n }\n }\n else {\n isContinuation = false;\n // eslint-disable-next-line\n var storedData = this.pdfViewerBase.getStoredData(pageIndex, true);\n var pageText = null;\n if (storedData) {\n pageText = storedData['pageText'];\n }\n else if (this.pdfViewer.isExtractText && this.documentTextCollection.length !== 0) {\n // eslint-disable-next-line\n var documentIndex = this.documentTextCollection[pageIndex][pageIndex];\n pageText = documentIndex.pageText ? documentIndex.pageText : documentIndex.PageText;\n }\n if (characterBounds[count]) {\n if (pageText && (pageText[count] === '' || pageText[count] === ' ' || pageText[count] === '\\r' || pageText[count] === '\\n') && (characterBounds[count].Width) === 0) {\n width = (characterBounds[count - 1].X - left) + characterBounds[count - 1].Width;\n }\n else {\n width = (characterBounds[count].X - left);\n }\n }\n else {\n if (characterBounds[count - 1]) {\n width = (characterBounds[count - 1].X - left);\n }\n }\n }\n }\n else {\n var charBound = characterBounds[(initial + queryLength) - 1];\n left = charBound.X;\n width = characterBounds[initial].X - characterBounds[(initial + queryLength) - 1].X;\n top = (top < charBound.Y) ? top : charBound.Y;\n var topDifference = (top < charBound.Y) ? (charBound.Y - top) : (top - charBound.Y);\n height = (height > (topDifference + charBound.Height)) ? height : (topDifference + charBound.Height);\n //some RTL character calculated width is zero and width difference value calculated from Y possition difference in the same line.\n var widthDifference = characterBounds[initial - 1].Y - characterBounds[initial].Y;\n for (var j = (initial + queryLength) - 1; j >= initial; j--) {\n charBound = characterBounds[j];\n if (charBound.Width === 0) {\n widthDifference = charBound.Y - characterBounds[j - 1].Y;\n }\n }\n width = width + widthDifference;\n }\n this.createSearchTextDiv(index, pageIndex, height, width, top, left, className, isContinuation, divCount, nestedIndex);\n return count;\n };\n // eslint-disable-next-line\n TextSearch.prototype.createSearchTextDiv = function (index, pageIndex, height, width, top, left, className, isContinuation, divCount, nestedIndex) {\n var idString = '_searchtext_' + pageIndex + '_' + index;\n if (isContinuation) {\n idString += '_' + divCount;\n }\n if (nestedIndex !== undefined && this.pdfViewerBase.getElement(idString)) {\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + idString + \"_\" + nestedIndex });\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n this.calculateBounds(textDiv, height, width, top, left, pageDetails);\n textDiv.classList.add(className);\n if (className === 'e-pv-search-text-highlight') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchHighlightColor === '') ? '#fdd835' : this.pdfViewer.textSearchColorSettings.searchHighlightColor;\n var bounds = { left: left, top: top, width: width, height: height };\n this.pdfViewer.fireTextSearchHighlight(this.searchString, this.isMatchCase, bounds, (pageIndex + 1));\n }\n else if (className === 'e-pv-search-text-highlightother') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchColor === '') ? '#8b4c12' : this.pdfViewer.textSearchColorSettings.searchColor;\n }\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageIndex);\n textDiv.style.zIndex = this.searchTextDivzIndex;\n if (textLayer) {\n textLayer.appendChild(textDiv);\n }\n }\n if (!this.pdfViewerBase.getElement(idString)) {\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + idString });\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n this.calculateBounds(textDiv, height, width, top, left, pageDetails);\n textDiv.classList.add(className);\n if (className === 'e-pv-search-text-highlight') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchHighlightColor === '') ? '#fdd835' : this.pdfViewer.textSearchColorSettings.searchHighlightColor;\n var bounds = { left: left, top: top, width: width, height: height };\n this.pdfViewer.fireTextSearchHighlight(this.searchString, this.isMatchCase, bounds, (pageIndex + 1));\n }\n else if (className === 'e-pv-search-text-highlightother') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchColor === '') ? '#8b4c12' : this.pdfViewer.textSearchColorSettings.searchColor;\n }\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageIndex);\n textDiv.style.zIndex = this.searchTextDivzIndex;\n if (textLayer) {\n textLayer.appendChild(textDiv);\n }\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.calculateBounds = function (textDiv, height, width, top, left, pageDetails) {\n if (pageDetails.rotation === 0 || pageDetails.rotation === 2) {\n textDiv.style.height = Math.ceil(height) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.width = width * this.pdfViewerBase.getZoomFactor() + 'px';\n if (pageDetails.rotation === 2) {\n textDiv.style.top = (pageDetails.height - top - height) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = Math.ceil(pageDetails.width - left - width) * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n textDiv.style.top = top * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = left * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n }\n else if (pageDetails.rotation === 1) {\n textDiv.style.height = width * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.width = height * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = left * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = (pageDetails.height - top - height) * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else if (pageDetails.rotation === 3) {\n textDiv.style.height = width * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.width = height * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = ((pageDetails.width - pageDetails.height) + top) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = (pageDetails.height - left - width) * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n };\n TextSearch.prototype.isClassAvailable = function () {\n var isClass = false;\n for (var j = 0; j < this.tempElementStorage.length; j++) {\n if (this.tempElementStorage[j].classString) {\n // eslint-disable-next-line max-len\n if (this.tempElementStorage[j].classString === 'e-pv-search-text-highlight' || this.tempElementStorage[j].classString === 'e-pv-search-text-highlightother') {\n isClass = true;\n break;\n }\n }\n }\n return isClass;\n };\n TextSearch.prototype.getScrollElement = function (element) {\n var targetElement = element;\n if (element.childNodes.length > 0) {\n for (var i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].classList) {\n if (element.childNodes[i].classList.contains('e-pv-search-text-highlight')) {\n targetElement = element.childNodes[i];\n }\n }\n }\n }\n return targetElement;\n };\n // eslint-disable-next-line\n TextSearch.prototype.scrollToSearchStr = function (element, scrollPoint) {\n var parent = element.offsetParent;\n var offsetY = element.offsetTop + element.clientTop;\n var offsetX = element.offsetLeft + element.clientLeft;\n while (parent.id !== this.pdfViewerBase.viewerContainer.id) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n }\n if (scrollPoint) {\n offsetY += scrollPoint.y;\n offsetX += scrollPoint.x;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n parent.scrollLeft = offsetX;\n }\n else {\n if (this.pdfViewerBase.getZoomFactor() > 1.5) {\n parent.scrollLeft = offsetX;\n }\n }\n }\n parent.scrollTop = offsetY;\n this.pdfViewerBase.updateMobileScrollerPosition();\n };\n /**\n * @param pageIndex\n * @private\n */\n TextSearch.prototype.resizeSearchElements = function (pageIndex) {\n var searchDivs = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_searchtext_' + pageIndex + '\"]');\n for (var i = 0; i < searchDivs.length; i++) {\n var textDiv = searchDivs[i];\n var previousZoomFactor = 1;\n if (this.pdfViewer.magnificationModule) {\n previousZoomFactor = this.pdfViewer.magnificationModule.previousZoomFactor;\n }\n // eslint-disable-next-line max-len\n var outputdata = pageIndex + '_' + previousZoomFactor + '_' + this.pdfViewerBase.getZoomFactor();\n if (textDiv.getAttribute('name') !== outputdata) {\n // eslint-disable-next-line\n textDiv.style.width = (parseFloat(textDiv.style.width) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line\n textDiv.style.height = (parseFloat(textDiv.style.height) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line\n textDiv.style.top = (parseFloat(textDiv.style.top) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line\n textDiv.style.left = (parseFloat(textDiv.style.left) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.setAttribute('name', outputdata);\n }\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n TextSearch.prototype.highlightOtherOccurrences = function (pageNumber) {\n this.initSearch(pageNumber, true);\n };\n TextSearch.prototype.highlightOthers = function (isSearched) {\n var indexes = this.getIndexes();\n var lowerPageValue = parseFloat(indexes.lowerPageValue.toString());\n var higherPageValue = parseFloat(indexes.higherPageValue.toString());\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n this.highlightOtherOccurrences(i);\n }\n if (isSearched) {\n this.showLoadingIndicator(false);\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.clearAllOccurrences = function () {\n var searchTextDivs = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_searchtext_\"]');\n for (var i = 0; i < searchTextDivs.length; i++) {\n searchTextDivs[i].parentElement.removeChild(searchTextDivs[i]);\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n TextSearch.prototype.getIndexes = function () {\n var lowerPageValue = this.pdfViewerBase.currentPageNumber - 3;\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n var higherPageValue = this.pdfViewerBase.currentPageNumber + 1;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n return { lowerPageValue: lowerPageValue, higherPageValue: higherPageValue };\n };\n TextSearch.prototype.applyTextSelection = function () {\n if (this.pdfViewer.textSelectionModule && !this.pdfViewerBase.isTextSelectionDisabled) {\n var indexes = this.getIndexes();\n var lowerPageValue = parseFloat(indexes.lowerPageValue.toString());\n var higherPageValue = parseFloat(indexes.higherPageValue.toString());\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(i);\n }\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.resetTextSearch = function () {\n this.resetVariables();\n this.onTextSearchClose();\n this.searchPageIndex = null;\n this.searchIndex = 0;\n this.updateSearchInputIcon(true);\n this.enableNextButton(false);\n this.enablePrevButton(false);\n this.documentTextCollection = [];\n this.isTextRetrieved = false;\n this.isTextSearched = false;\n this.isSearchText = false;\n if (this.searchRequestHandler) {\n this.searchRequestHandler.clear();\n }\n };\n TextSearch.prototype.onTextSearchClose = function () {\n this.isPrevSearch = false;\n this.isTextSearch = false;\n if (this.pdfViewerBase.pageCount > 0) {\n this.clearAllOccurrences();\n }\n };\n TextSearch.prototype.createRequestForSearch = function (pageIndex) {\n var proxy = this;\n var viewPortWidth = 816;\n var viewPortHeight = this.pdfViewer.element.clientHeight;\n var pageWidth = this.pdfViewerBase.pageSize[pageIndex].width;\n var pageHeight = this.pdfViewerBase.pageSize[pageIndex].height;\n var tileCount = this.pdfViewerBase.getTileCount(pageWidth);\n var noTileX = viewPortWidth >= pageWidth ? 1 : tileCount;\n var noTileY = viewPortWidth >= pageWidth ? 1 : tileCount;\n var isTileRendering = false;\n var tileSettings = this.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n noTileX = viewPortWidth >= pageWidth ? 1 : tileSettings.x;\n noTileY = viewPortWidth >= pageWidth ? 1 : tileSettings.y;\n }\n if (noTileX > 1 && noTileY > 1) {\n isTileRendering = true;\n }\n var _loop_1 = function (x) {\n var _loop_2 = function (y) {\n var jsonObject = void 0;\n // eslint-disable-next-line max-len\n jsonObject = { xCoordinate: x, yCoordinate: y, pageNumber: pageIndex, viewPortWidth: viewPortWidth, viewPortHeight: viewPortHeight, documentId: proxy.pdfViewerBase.getDocumentId(), hashId: proxy.pdfViewerBase.hashId, zoomFactor: proxy.pdfViewerBase.getZoomFactor(), tilecount: tileCount, action: 'Search', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId,\n tileXCount: noTileX, tileYCount: noTileY };\n if (this_1.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this_1.pdfViewerBase.jsonDocumentId;\n }\n this_1.searchRequestHandler = new AjaxHandler(this_1.pdfViewer);\n this_1.searchRequestHandler.url = this_1.pdfViewer.serviceUrl + '/' + this_1.pdfViewer.serverActionSettings.renderPages;\n this_1.searchRequestHandler.responseType = 'json';\n this_1.searchRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this_1.searchRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderPages);\n data = null;\n }\n }\n if (data) {\n if (!isNullOrUndefined(data.pageText) && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderPages, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n if (viewPortWidth >= pageWidth) {\n proxy.pdfViewerBase.storeWinData(data, pageNumber);\n }\n else {\n proxy.pdfViewerBase.storeWinData(data, pageNumber, data.tileX, data.tileY);\n }\n if (!isTileRendering) {\n proxy.initSearch(pageIndex, false);\n }\n else {\n if (x === (noTileX - 1) && y === (noTileY - 1)) {\n proxy.initSearch(pageIndex, false);\n }\n }\n }\n else if (isTileRendering && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderPages, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.pdfViewerBase.storeWinData(data, pageNumber, data.tileX, data.tileY);\n if (x === (noTileX - 1) && y === (noTileY - 1)) {\n proxy.initSearch(pageIndex, false);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this_1.searchRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderPages);\n };\n // eslint-disable-next-line\n this_1.searchRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderPages);\n };\n };\n for (var y = 0; y < noTileY; y++) {\n _loop_2(y);\n }\n };\n var this_1 = this;\n for (var x = 0; x < noTileX; x++) {\n _loop_1(x);\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.getPDFDocumentTexts = function () {\n var startIndex = 0;\n var endIndex = 50;\n var pageCount = this.pdfViewerBase.pageCount;\n if (endIndex >= pageCount) {\n endIndex = pageCount;\n }\n this.createRequestForGetPdfTexts(startIndex, endIndex);\n };\n /**\n * @param startIndex\n * @param endIndex\n * @private\n */\n TextSearch.prototype.createRequestForGetPdfTexts = function (startIndex, endIndex) {\n var proxy = this;\n var jsonObject;\n // eslint-disable-next-line max-len\n jsonObject = { pageStartIndex: startIndex, pageEndIndex: endIndex, documentId: proxy.pdfViewerBase.getDocumentId(), hashId: proxy.pdfViewerBase.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId };\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n this.searchRequestHandler = new AjaxHandler(this.pdfViewer);\n this.searchRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.searchRequestHandler.responseType = 'json';\n this.searchRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.searchRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n if (data) {\n if (data.documentTextCollection && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderTexts, data);\n if (proxy.documentTextCollection.length > 0) {\n proxy.documentTextCollection = data.documentTextCollection.concat(proxy.documentTextCollection);\n proxy.documentTextCollection = proxy.orderPdfTextCollections(proxy.documentTextCollection);\n }\n else {\n proxy.documentTextCollection = data.documentTextCollection;\n }\n var pageCount = proxy.pdfViewerBase.pageCount;\n if (endIndex !== pageCount) {\n startIndex = endIndex;\n endIndex = endIndex + 50;\n if (endIndex >= pageCount) {\n endIndex = pageCount;\n }\n proxy.createRequestForGetPdfTexts(startIndex, endIndex);\n }\n else {\n proxy.isTextRetrieved = true;\n proxy.pdfViewer.fireTextExtractionCompleted(proxy.documentTextCollection);\n if (proxy.isTextSearched && proxy.searchString.length > 0) {\n proxy.textSearch(proxy.searchString);\n proxy.isTextSearched = false;\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.searchRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.searchRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderTexts);\n };\n };\n // eslint-disable-next-line\n TextSearch.prototype.orderPdfTextCollections = function (oldCollection) {\n // eslint-disable-next-line\n var annotationCollectionList = [];\n for (var i = 0; i < oldCollection.length; i++) {\n if (annotationCollectionList.length === 0) {\n annotationCollectionList.push(oldCollection[i]);\n }\n else {\n // eslint-disable-next-line\n if (parseInt(Object.keys(oldCollection[i])[0]) > parseInt(Object.keys(annotationCollectionList[annotationCollectionList.length - 1])[0])) {\n annotationCollectionList.push(oldCollection[i]);\n }\n else {\n for (var j = 0; j < annotationCollectionList.length; j++) {\n // eslint-disable-next-line\n if ((parseInt(Object.keys(oldCollection[i])[0]) < parseInt(Object.keys(annotationCollectionList[j])[0]))) {\n annotationCollectionList.splice(j, 0, oldCollection[i]);\n break;\n }\n }\n }\n }\n }\n return annotationCollectionList;\n };\n TextSearch.prototype.createSearchBoxButtons = function (id, className) {\n // eslint-disable-next-line max-len\n var button = createElement('button', { id: this.pdfViewer.element.id + '_' + id, className: 'e-btn e-icon-btn e-pv-search-btn ' + className });\n button.setAttribute('type', 'button');\n // eslint-disable-next-line max-len\n var iconSpan = createElement('span', { id: this.pdfViewer.element.id + '_' + id + 'Icon', className: 'e-pv-icon-search ' + className + '-icon' });\n button.disabled = true;\n button.appendChild(iconSpan);\n return button;\n };\n TextSearch.prototype.enablePrevButton = function (isEnable) {\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n if (isEnable) {\n this.prevSearchBtn.removeAttribute('disabled');\n }\n else {\n if (this.prevSearchBtn) {\n this.prevSearchBtn.disabled = true;\n }\n }\n }\n };\n TextSearch.prototype.enableNextButton = function (isEnable) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isEnable) {\n this.nextSearchBtn.removeAttribute('disabled');\n }\n else {\n if (this.nextSearchBtn) {\n this.nextSearchBtn.disabled = true;\n }\n }\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.resetVariables = function () {\n this.searchedPages = [];\n // eslint-disable-next-line\n this.searchMatches = new Array();\n };\n /**\n * @param element\n * @param inputElement\n * @private\n */\n TextSearch.prototype.searchButtonClick = function (element, inputElement) {\n this.isMessagePopupOpened = false;\n if (isBlazor() && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n var searchElement = this.pdfViewerBase.getElement('_search_box-icon');\n element = searchElement.children[0].children[0];\n inputElement = this.pdfViewerBase.getElement('_search_input');\n }\n if (element.classList.contains('e-pv-search-icon')) {\n this.initiateTextSearch(inputElement);\n }\n else if (element.classList.contains('e-pv-search-close')) {\n this.showLoadingIndicator(false);\n inputElement.value = '';\n this.resetTextSearch();\n inputElement.focus();\n }\n };\n TextSearch.prototype.updateSearchInputIcon = function (isEnable) {\n if (isBlazor()) {\n if (this.searchBtn && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.searchBtn = this.pdfViewerBase.getElement('_search_box-icon').children[0].children[0];\n }\n }\n if (this.searchBtn) {\n if (isEnable) {\n this.searchBtn.classList.remove('e-pv-search-close');\n this.searchBtn.classList.add('e-pv-search-icon');\n }\n else {\n this.searchBtn.classList.remove('e-pv-search-icon');\n this.searchBtn.classList.add('e-pv-search-close');\n }\n }\n };\n TextSearch.prototype.onMessageBoxOpen = function () {\n var _this = this;\n this.showLoadingIndicator(false);\n this.pdfViewerBase.getElement('_search_input').blur();\n this.isMessagePopupOpened = true;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Nomatches');\n promise.then(function (value) {\n _this.pdfViewerBase.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.pdfViewerBase.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('No matches'));\n }\n }\n else {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_NoTextFound');\n promise.then(function (value) {\n _this.pdfViewerBase.navigationPane.createTooltipMobile(value);\n });\n }\n else {\n this.pdfViewerBase.navigationPane.createTooltipMobile(this.pdfViewer.localeObj.getConstant('No Text Found'));\n }\n }\n };\n /**\n * Searches the target text in the PDF document and highlights the occurrences in the pages\n *\n * @param {string} searchText - Specifies the searchText content\n * @param {boolean} isMatchCase - If set true , its highlights the MatchCase content\n * @returns void\n */\n TextSearch.prototype.searchText = function (searchText, isMatchCase) {\n if (searchText && searchText.length > 0 && searchText[searchText.length - 1] === ' ') {\n searchText = searchText.slice(0, searchText.length - 1);\n }\n this.searchString = searchText;\n this.isMatchCase = isMatchCase;\n this.searchIndex = 0;\n this.textSearch(searchText);\n };\n /**\n * Searches the next occurrence of the searched text from the current occurrence of the PdfViewer.\n *\n * @returns void\n */\n TextSearch.prototype.searchNext = function () {\n this.nextSearch();\n };\n /**\n * Searches the previous occurrence of the searched text from the current occurrence of the PdfViewer.\n *\n * @returns void\n */\n TextSearch.prototype.searchPrevious = function () {\n this.prevSearch();\n };\n /**\n * Cancels the text search of the PdfViewer.\n *\n * @returns void\n */\n TextSearch.prototype.cancelTextSearch = function () {\n this.resetTextSearch();\n };\n /**\n * @private\n */\n TextSearch.prototype.destroy = function () {\n this.searchMatches = undefined;\n };\n /**\n * @private\n */\n TextSearch.prototype.getModuleName = function () {\n return 'TextSearch';\n };\n return TextSearch;\n}());\nexport { TextSearch };\n","/* eslint-disable */\nimport { Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { getDiagramElement } from '@syncfusion/ej2-drawings';\n/**\n * Magnification module\n */\nvar Magnification = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function Magnification(pdfViewer, viewerBase) {\n /**\n * @private\n */\n this.zoomFactor = 1;\n /**\n * @private\n */\n this.previousZoomFactor = 1;\n this.scrollWidth = 25;\n this.zoomPercentages = [10, 25, 50, 75, 100, 125, 150, 200, 400];\n this.isNotPredefinedZoom = false;\n this.pinchStep = 0;\n this.reRenderPageNumber = 0;\n // eslint-disable-next-line\n this.magnifyPageRerenderTimer = null;\n // eslint-disable-next-line\n this.rerenderOnScrollTimer = null;\n // eslint-disable-next-line\n this.rerenderInterval = null;\n this.touchCenterX = 0;\n this.touchCenterY = 0;\n this.mouseCenterX = 0;\n this.mouseCenterY = 0;\n this.pageRerenderCount = 0;\n this.imageObjects = [];\n this.topValue = 0;\n this.isTapToFitZoom = false;\n /**\n * @private\n */\n this.fitType = null;\n /**\n * @private\n */\n this.isPinchZoomed = false;\n /**\n * @private\n */\n this.isPagePinchZoomed = false;\n /**\n * @private\n */\n this.isRerenderCanvasCreated = false;\n /**\n * @private\n */\n this.isMagnified = false;\n /**\n * @private\n */\n this.isPagesZoomed = false;\n /**\n * @private\n */\n this.isPinchScrolled = false;\n /**\n * @private\n */\n this.isAutoZoom = false;\n /**\n * @private\n */\n this.isDoubleTapZoom = false;\n /**\n * @private\n */\n this.isFormFieldPageZoomed = false;\n this.isWebkitMobile = false;\n this.isFitToPageMode = true;\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n this.zoomLevel = 2;\n // eslint-disable-next-line max-len\n this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);\n }\n /**\n * Zoom the PDF document to the given zoom value\n *\n * @param {number} zoomValue - Specifies the Zoom Value for magnify the PDF document\n * @returns void\n */\n Magnification.prototype.zoomTo = function (zoomValue) {\n var MaximumZoomPercentage = 400;\n var MinmumZoomPercentage = 10;\n if (zoomValue < MinmumZoomPercentage) {\n zoomValue = MinmumZoomPercentage;\n }\n else if (zoomValue > MaximumZoomPercentage) {\n zoomValue = MaximumZoomPercentage;\n }\n this.fitType = null;\n this.isNotPredefinedZoom = false;\n if (this.isAutoZoom && this.isInitialLoading) {\n this.pdfViewerBase.onWindowResize();\n }\n else {\n this.isAutoZoom = false;\n this.onZoomChanged(zoomValue);\n }\n this.isInitialLoading = false;\n };\n /**\n * Magnifies the page to the next value in the zoom drop down list.\n *\n * @returns void\n */\n Magnification.prototype.zoomIn = function () {\n if (this.fitType || this.isNotPredefinedZoom) {\n this.zoomLevel = this.lowerZoomLevel;\n this.fitType = null;\n }\n this.isNotPredefinedZoom = false;\n if (this.zoomLevel >= 8) {\n this.zoomLevel = 8;\n }\n else {\n this.zoomLevel++;\n }\n this.isAutoZoom = false;\n this.onZoomChanged(this.zoomPercentages[this.zoomLevel]);\n };\n /**\n * Magnifies the page to the previous value in the zoom drop down list.\n *\n * @returns void\n */\n Magnification.prototype.zoomOut = function () {\n if (this.fitType || this.isNotPredefinedZoom) {\n this.zoomLevel = this.higherZoomLevel;\n this.fitType = null;\n }\n this.isNotPredefinedZoom = false;\n if (this.zoomLevel <= 0) {\n this.zoomLevel = 0;\n }\n else {\n this.zoomLevel--;\n }\n this.isAutoZoom = false;\n this.onZoomChanged(this.zoomPercentages[this.zoomLevel]);\n };\n /**\n * Scales the page to fit the page width to the width of the container in the control.\n *\n * @returns void\n */\n Magnification.prototype.fitToWidth = function () {\n this.isAutoZoom = false;\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.onZoomChanged(zoomValue);\n };\n /**\n * @private\n */\n Magnification.prototype.fitToAuto = function () {\n this.isAutoZoom = true;\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.onZoomChanged(zoomValue);\n };\n /**\n * Scales the page to fit the page in the container in the control.\n *\n * @param {number} zoomValue - Defines the Zoom Value for fit the page in the Container\n * @returns void\n */\n Magnification.prototype.fitToPage = function () {\n var zoomValue = this.calculateFitZoomFactor('fitToPage');\n if (zoomValue !== null) {\n this.isAutoZoom = false;\n this.onZoomChanged(zoomValue);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.isWebkitMobile) {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'hidden';\n }\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n if (this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1]) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top * this.zoomFactor;\n }\n }\n };\n /**\n * Returns zoom factor for the fit zooms.\n *\n * @param type\n */\n Magnification.prototype.calculateFitZoomFactor = function (type) {\n var viewerWidth = this.pdfViewerBase.viewerContainer.getBoundingClientRect().width;\n var viewerHeight = this.pdfViewerBase.viewerContainer.getBoundingClientRect().height;\n if (viewerWidth === 0 && viewerHeight === 0) {\n viewerWidth = parseFloat(this.pdfViewer.width.toString());\n viewerHeight = parseFloat(this.pdfViewer.height.toString());\n }\n if (isNaN(viewerHeight) || isNaN(viewerWidth)) {\n return null;\n }\n this.fitType = type;\n if (this.fitType === 'fitToWidth') {\n var scaleX = ((viewerWidth - this.scrollWidth) / this.pdfViewerBase.highestWidth);\n if (this.isAutoZoom) {\n this.fitType = null;\n scaleX = Math.min(1, scaleX);\n if (scaleX === 1) {\n this.zoomLevel = 2;\n }\n }\n // eslint-disable-next-line radix\n return parseInt((scaleX * 100).toString());\n }\n else {\n this.isFitToPageMode = true;\n var pageLeft = 10;\n var scaleX = ((viewerWidth - this.scrollWidth - pageLeft) / this.pdfViewerBase.highestWidth);\n var scaleY = (viewerHeight / this.pdfViewerBase.highestHeight);\n if (scaleY > scaleX) {\n scaleY = scaleX;\n this.isFitToPageMode = false;\n }\n // eslint-disable-next-line radix\n return parseInt((scaleY * 100).toString());\n }\n };\n /**\n * Initiating cursor based zoom.\n * @private\n */\n Magnification.prototype.initiateMouseZoom = function (pointX, pointY, zoomValue) {\n var pointInViewer = this.positionInViewer(pointX, pointY);\n this.mouseCenterX = pointInViewer.x;\n this.mouseCenterY = pointInViewer.y;\n this.zoomTo(zoomValue);\n };\n /**\n * Performs pinch in operation\n */\n Magnification.prototype.pinchIn = function () {\n this.fitType = null;\n var temporaryZoomFactor = this.zoomFactor - this.pinchStep;\n if (temporaryZoomFactor < 4 && temporaryZoomFactor > 2) {\n temporaryZoomFactor = this.zoomFactor - this.pinchStep;\n }\n if (temporaryZoomFactor <= 1.5) {\n temporaryZoomFactor = this.zoomFactor - (this.pinchStep / 1.5);\n }\n if (temporaryZoomFactor < 0.25) {\n temporaryZoomFactor = 0.25;\n }\n this.isPinchZoomed = true;\n this.onZoomChanged(temporaryZoomFactor * 100);\n this.isTapToFitZoom = true;\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && (this.zoomFactor * 100) === 50) {\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.fitType = null;\n if (zoomValue <= 50) {\n this.fitToWidth();\n }\n }\n };\n /**\n * Performs pinch out operation\n */\n Magnification.prototype.pinchOut = function () {\n this.fitType = null;\n var temporaryZoomFactor = this.zoomFactor + this.pinchStep;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (temporaryZoomFactor > 4) {\n temporaryZoomFactor = 4;\n }\n }\n else {\n if (temporaryZoomFactor > 2) {\n temporaryZoomFactor = temporaryZoomFactor + this.pinchStep;\n }\n if (temporaryZoomFactor > 4) {\n temporaryZoomFactor = 4;\n }\n }\n this.isTapToFitZoom = true;\n this.isPinchZoomed = true;\n this.onZoomChanged(temporaryZoomFactor * 100);\n };\n /**\n * returns zoom level for the zoom factor.\n *\n * @param zoomFactor\n */\n Magnification.prototype.getZoomLevel = function (zoomFactor) {\n var min = 0;\n var max = this.zoomPercentages.length - 1;\n while ((min <= max) && !(min === 0 && max === 0)) {\n var mid = Math.round((min + max) / 2);\n if (this.zoomPercentages[mid] <= zoomFactor) {\n min = mid + 1;\n }\n else if (this.zoomPercentages[mid] >= zoomFactor) {\n max = mid - 1;\n }\n }\n this.higherZoomLevel = min;\n this.lowerZoomLevel = max;\n return max;\n };\n /**\n * @private\n */\n Magnification.prototype.checkZoomFactor = function () {\n return this.zoomPercentages.indexOf(this.zoomFactor * 100) > -1;\n };\n /**\n * Executes when the zoom or pinch operation is performed\n *\n * @param zoomValue\n */\n Magnification.prototype.onZoomChanged = function (zoomValue) {\n if (zoomValue) {\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.closePopupMenu();\n }\n this.previousZoomFactor = this.zoomFactor;\n this.zoomLevel = this.getZoomLevel(zoomValue);\n this.zoomFactor = this.getZoomFactor(zoomValue);\n if (this.zoomFactor <= 0.25) {\n this.pdfViewerBase.isMinimumZoom = true;\n }\n else {\n this.pdfViewerBase.isMinimumZoom = false;\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.isWebkitMobile) {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'hidden';\n }\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n if (this.pdfViewerBase.pageCount > 0) {\n if ((this.previousZoomFactor !== this.zoomFactor)) {\n if (!this.isPinchZoomed) {\n this.magnifyPages();\n }\n else {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.mobilePageNoContainer.style.left = (this.pdfViewer.element.clientWidth / 2) - (parseFloat(this.pdfViewerBase.mobilePageNoContainer.style.width) / 2) + 'px';\n }\n this.responsivePages();\n }\n }\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateZoomButtons();\n }\n }\n if (!this.isInitialLoading) {\n if (this.previousZoomFactor !== this.zoomFactor) {\n // eslint-disable-next-line\n this.pdfViewer.zoomValue = parseInt((this.zoomFactor * 100).toString());\n this.pdfViewer.fireZoomChange();\n }\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateZoomPercentage(this.zoomFactor);\n }\n if (!this.isInitialLoading) {\n if (this.previousZoomFactor !== this.zoomFactor) {\n this.pdfViewer.zoomValue = parseInt((this.zoomFactor * 100).toString());\n this.pdfViewer.fireZoomChange();\n }\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.isPinchZoomed) {\n // eslint-disable-next-line radix\n var zoomPercentage = parseInt((this.zoomFactor * 100).toString()) + '%';\n this.pdfViewerBase.navigationPane.createTooltipMobile(zoomPercentage);\n }\n }\n };\n /**\n * @param clientX\n * @param clientY\n * @private\n */\n Magnification.prototype.setTouchPoints = function (clientX, clientY) {\n var pointInViewer = this.positionInViewer(clientX, clientY);\n this.touchCenterX = pointInViewer.x;\n this.touchCenterY = pointInViewer.y;\n };\n /**\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @private\n */\n Magnification.prototype.initiatePinchMove = function (pointX1, pointY1, pointX2, pointY2) {\n this.isPinchScrolled = false;\n this.isMagnified = false;\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n var pointInViewer = this.positionInViewer((pointX1 + pointX2) / 2, (pointY1 + pointY2) / 2);\n this.touchCenterX = pointInViewer.x;\n this.touchCenterY = pointInViewer.y;\n this.zoomOverPages(pointX1, pointY1, pointX2, pointY2);\n };\n Magnification.prototype.magnifyPages = function () {\n this.clearRerenderTimer();\n if (!this.isPagesZoomed) {\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n }\n if (!this.pdfViewerBase.documentLoaded && !this.pdfViewerBase.isInitialPageMode) {\n this.isPagesZoomed = true;\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(false, true);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewerBase.documentLoaded && !this.pdfViewerBase.isDocumentLoaded) {\n this.isFormFieldPageZoomed = true;\n }\n if (!this.isInitialLoading) {\n this.isMagnified = true;\n }\n this.updatePageLocation();\n this.resizeCanvas(this.reRenderPageNumber);\n this.calculateScrollValuesOnMouse(scrollValue);\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.resizeTouchElements();\n }\n // eslint-disable-next-line\n var annotModule = this.pdfViewer.annotationModule;\n if (annotModule && annotModule.textMarkupAnnotationModule) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateCurrentResizerPosition();\n }\n if (this.pdfViewerBase.pageSize.length > 0) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.pageContainer.style.height = this.topValue + this.pdfViewerBase.getPageHeight(this.pdfViewerBase.pageSize.length - 1) + 'px';\n // eslint-disable-next-line\n var proxy_1 = this;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n if (!this.pdfViewerBase.documentLoaded) {\n this.magnifyPageRerenderTimer = setTimeout(function () {\n proxy_1.rerenderMagnifiedPages();\n }, 800);\n }\n }\n };\n Magnification.prototype.updatePageLocation = function () {\n this.topValue = 0;\n for (var i = 1; i < this.pdfViewerBase.pageSize.length; i++) {\n this.topValue += (this.pdfViewerBase.pageSize[i].height + this.pdfViewerBase.pageGap) * this.zoomFactor;\n }\n var limit = this.pdfViewerBase.pageCount < 10 ? this.pdfViewerBase.pageCount : 10;\n for (var i = 0; i < limit; i++) {\n this.updatePageContainer(i, this.pdfViewerBase.getPageWidth(i), this.pdfViewerBase.getPageHeight(i), this.pdfViewerBase.getPageTop(i), true);\n }\n };\n Magnification.prototype.updatePageContainer = function (pageNumber, pageWidth, pageHeight, topValue, isReRender) {\n // eslint-disable-next-line\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + pageNumber);\n if (pageDiv) {\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n // eslint-disable-next-line\n var textLayerDiv = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n if (textLayerDiv) {\n textLayerDiv.style.width = pageWidth + 'px';\n textLayerDiv.style.height = pageHeight + 'px';\n }\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.pdfViewerBase.updateLeftPosition(pageNumber) + 'px';\n }\n else {\n pageDiv.style.left = this.pdfViewerBase.updateLeftPosition(pageNumber) + 'px';\n }\n pageDiv.style.top = topValue + 'px';\n this.pdfViewerBase.pageContainer.style.width = this.pdfViewerBase.viewerContainer.clientWidth + 'px';\n this.pdfViewerBase.renderPageCanvas(pageDiv, pageWidth, pageHeight, pageNumber, 'block');\n }\n };\n Magnification.prototype.clearRerenderTimer = function () {\n clearTimeout(this.rerenderOnScrollTimer);\n clearTimeout(this.magnifyPageRerenderTimer);\n this.clearIntervalTimer();\n this.isPinchScrolled = false;\n };\n /**\n * @private\n */\n Magnification.prototype.clearIntervalTimer = function () {\n clearInterval(this.rerenderInterval);\n this.rerenderInterval = null;\n this.clearRendering();\n var oldCanvases = document.querySelectorAll('canvas[id*=\"' + this.pdfViewer.element.id + '_oldCanvas_\"]');\n for (var i = 0; i < oldCanvases.length; i++) {\n // eslint-disable-next-line\n var pageNumber = parseInt(oldCanvases[i].id.split('_oldCanvas_')[1]);\n var pageCanvas = this.pdfViewerBase.getElement('_pageCanvas_' + pageNumber);\n if (pageCanvas) {\n oldCanvases[i].id = pageCanvas.id;\n pageCanvas.parentElement.removeChild(pageCanvas);\n }\n else {\n oldCanvases[i].id = this.pdfViewer.element.id + '_pageCanvas_' + pageNumber;\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotationsPinch(i);\n }\n }\n this.isRerenderCanvasCreated = false;\n };\n /**\n * @param image\n * @private\n */\n Magnification.prototype.pushImageObjects = function (image) {\n if (!isNullOrUndefined(this.imageObjects)) {\n this.imageObjects && this.imageObjects.push(image);\n }\n };\n Magnification.prototype.clearRendering = function () {\n if (this.imageObjects) {\n for (var j = 0; j < this.imageObjects.length; j++) {\n if (this.imageObjects[j]) {\n this.imageObjects[j].onload = null;\n }\n }\n this.imageObjects = [];\n }\n };\n Magnification.prototype.rerenderMagnifiedPages = function () {\n if ((this.pdfViewerBase.isInitialLoaded || this.pdfViewerBase.isDocumentLoaded) && !this.pdfViewerBase.isInitialPageMode) {\n this.renderInSeparateThread(this.reRenderPageNumber);\n this.isPagesZoomed = false;\n }\n else if (this.pdfViewerBase.isInitialPageMode) {\n this.pageRerenderCount = 0;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n this.isMagnified = false;\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n this.pdfViewerBase.isInitialPageMode = false;\n }\n };\n Magnification.prototype.renderInSeparateThread = function (pageNumber) {\n var _this = this;\n this.designNewCanvas(pageNumber);\n this.pageRerenderCount = 0;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n this.isMagnified = false;\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n // eslint-disable-next-line\n var proxy = this;\n this.rerenderInterval = setInterval(function () {\n _this.initiateRerender(proxy);\n }, 1);\n };\n Magnification.prototype.responsivePages = function () {\n this.isPagesZoomed = true;\n this.clearRerenderTimer();\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearchModule.clearAllOccurrences();\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n this.isAutoZoom = false;\n this.updatePageLocation();\n // eslint-disable-next-line max-len\n this.pdfViewerBase.pageContainer.style.height = this.topValue + this.pdfViewerBase.pageSize[this.pdfViewerBase.pageSize.length - 1].height * this.zoomFactor + 'px';\n this.resizeCanvas(this.pdfViewerBase.currentPageNumber);\n if (this.pdfViewerBase.textLayer && this.pdfViewer.formDesignerModule) {\n this.pdfViewerBase.textLayer.clearTextLayers(true);\n }\n if (this.isPinchZoomed) {\n this.calculateScrollValues(scrollValue);\n }\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n if (this.pdfViewer.formFieldsModule && !this.pdfViewer.formDesignerModule) {\n var proxy_2 = this;\n if (!this.pdfViewerBase.documentLoaded) {\n this.magnifyPageRerenderTimer = setTimeout(function () {\n proxy_2.rerenderMagnifiedPages();\n }, 800);\n }\n }\n };\n Magnification.prototype.calculateScrollValues = function (scrollValue) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var currentPageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex);\n if (currentPageCanvas) {\n var pointInViewer = void 0;\n var currentPageBounds = currentPageCanvas.getBoundingClientRect();\n if (this.pdfViewer.enableRtl && !this.isDoubleTapZoom) {\n pointInViewer = this.positionInViewer(currentPageBounds.right, currentPageBounds.top);\n }\n else {\n pointInViewer = this.positionInViewer(currentPageBounds.left, currentPageBounds.top);\n }\n var currentPageBoundsLeft = pointInViewer.x;\n var currentPageBoundsTop = pointInViewer.y;\n // update scroll top for the viewer container based on pinch zoom factor\n var previousPageTop = (currentPageBoundsTop) * this.previousZoomFactor;\n var canvasPreviousY = scrollValue + this.touchCenterY;\n // eslint-disable-next-line max-len\n var canvasCurrentY = (currentPageBoundsTop) * this.zoomFactor + ((canvasPreviousY - previousPageTop) < 0 ? canvasPreviousY - previousPageTop : (canvasPreviousY -\n // eslint-disable-next-line max-len\n previousPageTop) * (this.zoomFactor / this.previousZoomFactor));\n var pageGapValue = this.zoomFactor - this.previousZoomFactor > 0 ? -this.pdfViewerBase.pageGap * (this.zoomFactor / this.previousZoomFactor) : this.pdfViewerBase.pageGap * (this.previousZoomFactor / this.zoomFactor);\n this.pdfViewerBase.viewerContainer.scrollTop = canvasCurrentY - this.touchCenterY + pageGapValue / this.pdfViewerBase.zoomInterval;\n // update scroll left for the viewer container based on pinch zoom factor\n var previousWidthFactor = (currentPageBounds.width * this.previousZoomFactor) / currentPageBounds.width;\n var scaleCorrectionFactor = this.zoomFactor / previousWidthFactor - 1;\n var scrollX_1 = this.touchCenterX - currentPageBoundsLeft;\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_1 * scaleCorrectionFactor;\n }\n };\n Magnification.prototype.calculateScrollValuesOnMouse = function (scrollValue) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var currentPageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex);\n if (currentPageCanvas) {\n var pointInViewer = void 0;\n var currentPageBounds = currentPageCanvas.getBoundingClientRect();\n if (this.pdfViewer.enableRtl) {\n pointInViewer = this.positionInViewer(currentPageBounds.right, currentPageBounds.top);\n }\n else {\n pointInViewer = this.positionInViewer(currentPageBounds.left, currentPageBounds.top);\n }\n var currentPageBoundsLeft = pointInViewer.x;\n var currentPageBoundsTop = pointInViewer.y;\n // update scroll top for the viewer container based on mouse zoom factor\n var previousPageTop = (currentPageBoundsTop) * this.previousZoomFactor;\n var canvasPreviousY = scrollValue + this.mouseCenterY;\n // eslint-disable-next-line max-len\n var canvasCurrentY = (currentPageBoundsTop) * this.zoomFactor + ((canvasPreviousY - previousPageTop) < 0 ? canvasPreviousY - previousPageTop : (canvasPreviousY -\n // eslint-disable-next-line max-len\n previousPageTop) * (this.zoomFactor / this.previousZoomFactor));\n // eslint-disable-next-line max-len\n var pageGapValue = this.zoomFactor - this.previousZoomFactor > 0 ? -this.pdfViewerBase.pageGap * (this.zoomFactor / this.previousZoomFactor) : this.pdfViewerBase.pageGap * (this.previousZoomFactor / this.zoomFactor);\n if (this.pdfViewerBase.isTouchPad && !this.pdfViewerBase.isMacSafari) {\n pageGapValue = pageGapValue / this.pdfViewerBase.zoomInterval;\n }\n this.pdfViewerBase.viewerContainer.scrollTop = canvasCurrentY - this.mouseCenterY + pageGapValue;\n // update scroll left for the viewer container based on mouse zoom factor\n var previousWidthFactor = (currentPageBounds.width * this.previousZoomFactor) / currentPageBounds.width;\n var scaleCorrectionFactor = this.zoomFactor / previousWidthFactor - 1;\n var scrollX_2 = this.mouseCenterX - currentPageBoundsLeft;\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_2 * scaleCorrectionFactor;\n }\n };\n Magnification.prototype.rerenderOnScroll = function () {\n var _this = this;\n this.isPinchZoomed = false;\n if (this.isPinchScrolled) {\n this.rerenderOnScrollTimer = null;\n this.isPinchScrolled = false;\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n var pageDivs = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_pageCanvas_\"]');\n var viewPortWidth = 816;\n for (var i = 0; i < pageDivs.length; i++) {\n // eslint-disable-next-line radix\n var pageNumber = parseInt(pageDivs[i].id.split('_pageCanvas_')[1]);\n var pageWidth = this.pdfViewerBase.pageSize[pageNumber].width;\n if ((viewPortWidth < pageWidth) && this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n if (this.pdfViewer.restrictZoomRequest) {\n pageDivs[i].style.width = pageWidth * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n pageDivs[i].style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n pageDivs[i].style.width = pageWidth * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n pageDivs[i].style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n }\n }\n if (this.pdfViewerBase.textLayer) {\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n textLayers[i].style.display = 'block';\n }\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n // eslint-disable-next-line max-len\n var annotationLayers = document.querySelectorAll('canvas[id*=\"' + this.pdfViewer.element.id + '_annotationCanvas_\"]');\n for (var j = 0; j < annotationLayers.length; j++) {\n var pageNumber = annotationLayers[j].id.split('_annotationCanvas_')[1];\n // eslint-disable-next-line radix\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotationsPinch(parseInt(pageNumber));\n }\n }\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n this.isPagePinchZoomed = false;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.pdfViewerBase.pageViewScrollChanged(_this.reRenderPageNumber);\n }, 300);\n }\n };\n /**\n * @private\n */\n Magnification.prototype.pinchMoveScroll = function () {\n var _this = this;\n if (this.isRerenderCanvasCreated) {\n this.clearIntervalTimer();\n }\n if (this.isPagesZoomed || (!this.isRerenderCanvasCreated && this.isPagePinchZoomed)) {\n this.clearRendering();\n this.isPagesZoomed = false;\n clearTimeout(this.magnifyPageRerenderTimer);\n this.isPinchScrolled = true;\n this.isFormFieldPageZoomed = true;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.rerenderOnScroll();\n }, 100);\n }\n };\n // eslint-disable-next-line\n Magnification.prototype.initiateRerender = function (proxy) {\n var isReRender = false;\n if (this.previousZoomFactor < 0.4 || this.pdfViewerBase.isMinimumZoom) {\n isReRender = true;\n }\n // eslint-disable-next-line max-len\n if (((proxy.pageRerenderCount === proxy.pdfViewerBase.reRenderedCount) || isReRender) && proxy.pageRerenderCount !== 0 && proxy.pdfViewerBase.reRenderedCount !== 0) {\n proxy.reRenderAfterPinch(this.reRenderPageNumber);\n proxy.isFormFieldPageZoomed = false;\n }\n };\n Magnification.prototype.reRenderAfterPinch = function (currentPageIndex) {\n this.pageRerenderCount = 0;\n var lowerPageValue = currentPageIndex - 3;\n var higherPageValue = currentPageIndex + 1;\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = currentPageIndex - 4;\n higherPageValue = currentPageIndex + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + i);\n var pageCanvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n var oldCanvas = this.pdfViewerBase.getElement('_oldCanvas_' + i);\n if (oldCanvas) {\n oldCanvas.parentNode.removeChild(oldCanvas);\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(i);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.rerenderAnnotations(i);\n this.pdfViewer.renderDrawing(undefined, currentPageIndex);\n }\n if (pageDiv) {\n pageDiv.style.visibility = 'visible';\n }\n }\n this.isRerenderCanvasCreated = false;\n this.isPagePinchZoomed = false;\n if (this.pdfViewerBase.reRenderedCount !== 0) {\n this.pdfViewerBase.reRenderedCount = 0;\n this.pageRerenderCount = 0;\n clearInterval(this.rerenderInterval);\n this.rerenderInterval = null;\n }\n this.imageObjects = [];\n };\n /**\n * @param pageNumber\n * @private\n */\n Magnification.prototype.rerenderAnnotations = function (pageNumber) {\n // eslint-disable-next-line\n var oldCanvasCollection = document.querySelectorAll('#' + this.pdfViewer.element.id + '_old_annotationCanvas_' + pageNumber);\n for (var i = 0; i < oldCanvasCollection.length; i++) {\n if (oldCanvasCollection[i]) {\n oldCanvasCollection[i].parentElement.removeChild(oldCanvasCollection[i]);\n }\n }\n var newCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (newCanvas) {\n newCanvas.style.display = 'block';\n }\n };\n Magnification.prototype.designNewCanvas = function (currentPageIndex) {\n if (this.pdfViewerBase.textLayer) {\n this.pdfViewerBase.textLayer.clearTextLayers();\n }\n var lowerPageValue = currentPageIndex - 3;\n var higherPageValue = currentPageIndex + 1; // jshint ignore:line\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = currentPageIndex - 4;\n higherPageValue = currentPageIndex + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var canvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n var width = this.pdfViewerBase.pageSize[i].width * this.zoomFactor;\n var height = this.pdfViewerBase.pageSize[i].height * this.zoomFactor;\n if (canvas && !this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.renderPageCanvas(this.pdfViewerBase.getElement('_pageDiv_' + i), width, height, i, 'none');\n }\n else if (!this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.renderPageCanvas(this.pdfViewerBase.getElement('_pageDiv_' + i), width, height, i, 'none');\n }\n }\n this.isRerenderCanvasCreated = true;\n };\n /**\n * @private\n */\n Magnification.prototype.pageRerenderOnMouseWheel = function () {\n var _this = this;\n if (this.isRerenderCanvasCreated) {\n this.clearIntervalTimer();\n clearTimeout(this.magnifyPageRerenderTimer);\n if (!this.isPinchScrolled) {\n this.isPinchScrolled = true;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.rerenderOnScroll();\n }, 100);\n }\n }\n };\n /**\n * @private\n */\n Magnification.prototype.renderCountIncrement = function () {\n if (this.isRerenderCanvasCreated) {\n this.pageRerenderCount++;\n }\n };\n /**\n * @private\n */\n Magnification.prototype.rerenderCountIncrement = function () {\n if (this.pageRerenderCount > 0) {\n this.pdfViewerBase.reRenderedCount++;\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n Magnification.prototype.resizeCanvas = function (pageNumber) {\n var annotationModule = this.pdfViewer.annotationModule;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(annotationModule.inkAnnotationModule.currentPageNumber);\n annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (annotationModule && annotationModule.freeTextAnnotationModule) {\n // eslint-disable-next-line\n var currentPosition = { x: annotationModule.freeTextAnnotationModule.currentPosition[0], y: annotationModule.freeTextAnnotationModule.currentPosition[1], width: annotationModule.freeTextAnnotationModule.currentPosition[2], height: annotationModule.freeTextAnnotationModule.currentPosition[3] };\n annotationModule.freeTextAnnotationModule.addInputInZoom(currentPosition);\n }\n var lowerPageValue = pageNumber - 3;\n var higherPageValue = pageNumber + 3;\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = pageNumber - 4;\n higherPageValue = pageNumber + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + i);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + i);\n if (pageDiv) {\n if ((lowerPageValue <= i) && (i <= higherPageValue)) {\n var isSelectionAvailable = false;\n if (this.pdfViewer.textSelectionModule) {\n isSelectionAvailable = this.pdfViewer.textSelectionModule.isSelectionAvailableOnScroll(i);\n }\n if (this.pdfViewerBase.pageSize[i] != null) {\n var width = this.pdfViewerBase.pageSize[i].width * this.zoomFactor;\n var height = this.pdfViewerBase.pageSize[i].height * this.zoomFactor;\n pageDiv.style.width = width + 'px';\n pageDiv.style.height = height + 'px';\n // eslint-disable-next-line max-len\n pageDiv.style.top = ((this.pdfViewerBase.pageSize[i].top) * this.zoomFactor) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.pdfViewerBase.updateLeftPosition(i) + 'px';\n }\n else {\n pageDiv.style.left = this.pdfViewerBase.updateLeftPosition(i) + 'px';\n }\n var canvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n if (canvas) {\n canvas.style.width = (width) + 'px';\n canvas.style.height = height + 'px';\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotationModule.resizeAnnotations(width, height, i);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formDesignerModule.resizeAnnotations(width, height, i);\n }\n }\n var zoomFactor = this.pdfViewerBase.retrieveCurrentZoomFactor();\n var tileCount = this.pdfViewerBase.getTileCount(this.pdfViewerBase.pageSize[i].width);\n var noTileX = void 0;\n var noTileY = void 0;\n noTileX = noTileY = tileCount;\n var tileSettings = this.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n if ((1200 < this.pdfViewerBase.pageSize[i].width || this.pdfViewerBase.getZoomFactor() > 2)) {\n noTileX = tileSettings.x;\n noTileY = tileSettings.y;\n }\n }\n var tileRequestCount = noTileX * noTileY;\n if (tileRequestCount === 1) {\n var storedData = this.pdfViewerBase.getWindowSessionStorage(i, zoomFactor) ? this.pdfViewerBase.getWindowSessionStorage(i, zoomFactor) : this.pdfViewerBase.getPinchZoomPage(i);\n if (storedData) {\n storedData = JSON.parse(storedData);\n var imageData = storedData['image'];\n if (imageData) {\n canvas.src = imageData;\n canvas.style.display = 'block';\n var oldCanvases = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_tileimg_' + i + '_\"]');\n var pageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + i);\n for (var k = 0; k < oldCanvases.length; k++) {\n var tileImgId = oldCanvases[k].id.split('_');\n if (parseFloat(tileImgId[tileImgId.length - 3]) != this.pdfViewerBase.getZoomFactor())\n pageCanvas.removeChild(oldCanvases[k]);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_oldCanvas\"]');\n for (var j = 0; j < oldPageDiv.length; j++) {\n pageDiv.removeChild(oldPageDiv[j]);\n }\n }\n this.pdfViewerBase.isReRenderRequired = false;\n }\n else {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n else {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_tileimg_' + i + '_\"]');\n for (var l = 0; l < oldCanvases.length; l++) {\n var tileImgId = oldCanvases[l].id.split('_');\n var tileX = parseFloat(tileImgId[tileImgId.length - 2]);\n var tileY = parseFloat(tileImgId[tileImgId.length - 1]);\n // eslint-disable-next-line\n var tileData = JSON.parse(this.pdfViewerBase.getWindowSessionStorageTile(i, tileX, tileY, zoomFactor));\n if (tileData && tileData.zoomFactor) {\n zoomFactor = tileData.zoomFactor;\n }\n if (parseFloat(tileImgId[tileImgId.length - 4]) === i) {\n canvas.style.display = 'none';\n var node = oldCanvases[l];\n // Make sure it's really an Element\n if (node.nodeType == Node.ELEMENT_NODE) {\n var dataScaleFactor = 1.5;\n if (!isNullOrUndefined(tileData)) {\n dataScaleFactor = (!isNullOrUndefined(tileData.scaleFactor)) ? tileData.scaleFactor : 1.5;\n }\n var pageWidth = this.pdfViewerBase.pageSize[i].width;\n var serverImageWidth = pageWidth * zoomFactor * dataScaleFactor;\n var serverImageHeight = this.pdfViewerBase.pageSize[i].height * zoomFactor * dataScaleFactor;\n var tilewidth = serverImageWidth / noTileX;\n var tileHeight = serverImageHeight / noTileY;\n var originalWidth = tilewidth;\n var originalLeft = parseFloat(tileImgId[tileImgId.length - 2]) * tilewidth;\n var originalTop = parseFloat(tileImgId[tileImgId.length - 1]) * tileHeight;\n node.width = (((originalWidth * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor);\n node.style.width = (((originalWidth * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.style.left = (((originalLeft * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.style.top = (((originalTop * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.id = this.pdfViewer.element.id + '_tileimg_' + i + '_' + this.pdfViewerBase.getZoomFactor() + '_' + tileX + '_' + tileY;\n if (tileData) {\n var imageData = tileData['image'];\n if (imageData) {\n node.src = imageData;\n }\n this.pdfViewerBase.isReRenderRequired = false;\n }\n else {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n }\n }\n if (oldCanvases.length === 0) {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n var aElement = pageDiv.getElementsByTagName('a');\n if (aElement.length !== 0) {\n for (var index = aElement.length - 1; index >= 0; index--) {\n aElement[index].parentNode.removeChild(aElement[index]);\n }\n }\n if (textLayer) {\n textLayer.style.width = width + 'px';\n textLayer.style.height = height + 'px';\n if (this.pdfViewer.textSelectionModule) {\n if (this.isPinchZoomed) {\n textLayer.style.display = 'none';\n }\n else if (this.isMagnified) {\n var lowerValue = ((pageNumber - 2) === 0) ? 0 : (pageNumber - 2);\n // eslint-disable-next-line max-len\n var higherValue = ((pageNumber) === (this.pdfViewerBase.pageCount)) ? (this.pdfViewerBase.pageCount - 1) : (pageNumber + 1);\n if ((lowerValue <= i) && (i <= higherValue) && ((this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) || this.pdfViewerBase.textLayer.getTextSearchStatus() || this.pdfViewerBase.isInitialPageMode)) {\n this.pdfViewerBase.textLayer.resizeTextContentsOnZoom(i);\n if (this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(i);\n }\n }\n else {\n textLayer.style.display = 'none';\n }\n }\n else {\n textLayer.style.display = 'block';\n }\n }\n this.pdfViewerBase.applyElementStyles(textLayer, i);\n }\n var adornerSvg = getDiagramElement(this.pdfViewer.element.id + '_textLayer_' + i);\n if (adornerSvg) {\n var adonerLayer = getDiagramElement(this.pdfViewer.element.id + i + '_diagramAdorner_svg');\n if (adonerLayer) {\n adonerLayer.style.width = width + 'px';\n adonerLayer.style.height = height + 'px';\n }\n var diagramAdornerLayer = getDiagramElement(this.pdfViewer.element.id + i + '_diagramAdornerLayer');\n if (diagramAdornerLayer) {\n diagramAdornerLayer.style.width = width + 'px';\n diagramAdornerLayer.style.height = height + 'px';\n }\n adornerSvg.style.width = width + 'px';\n adornerSvg.style.height = height + 'px';\n this.pdfViewer.renderSelector(i, this.pdfViewer.annotationSelectorSettings);\n this.pdfViewerBase.applyElementStyles(diagramAdornerLayer, i);\n }\n }\n }\n }\n }\n };\n Magnification.prototype.zoomOverPages = function (pointX1, pointY1, pointX2, pointY2) {\n // eslint-disable-next-line\n var currentDifference = Math.sqrt(Math.pow((pointX1 - pointX2), 2) + Math.pow((pointY1 - pointY2), 2));\n if (this.previousTouchDifference > -1) {\n if (currentDifference > this.previousTouchDifference) {\n this.pinchStep = this.getPinchStep(currentDifference, this.previousTouchDifference);\n this.pinchOut();\n }\n else if (currentDifference < this.previousTouchDifference) {\n this.pinchStep = this.getPinchStep(this.previousTouchDifference, currentDifference);\n this.pinchIn();\n }\n }\n this.previousTouchDifference = currentDifference;\n };\n /**\n * @private\n */\n Magnification.prototype.pinchMoveEnd = function () {\n this.touchCenterX = 0;\n this.touchCenterY = 0;\n this.previousTouchDifference = -1;\n if (this.isPinchZoomed) {\n this.isPinchScrolled = false;\n this.isPagePinchZoomed = true;\n this.pinchMoveScroll();\n }\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Magnification.prototype.fitPageScrollMouseWheel = function (event) {\n if (this.fitType === 'fitToPage') {\n this.isMagnified = false;\n event.preventDefault();\n if (event.deltaY > 0) {\n this.downwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n else {\n this.upwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n }\n };\n /**\n * @param event\n * @private\n */\n Magnification.prototype.magnifyBehaviorKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n switch (event.keyCode) {\n case 38: // up arrow\n case 37: // left arrow\n case 33: // page up\n if (this.fitType === 'fitToPage' && !((event.ctrlKey || isCommandKey) && event.shiftKey)) {\n event.preventDefault();\n this.upwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n break;\n case 40: // down arrow\n case 39: // right arrow\n case 34: // page down\n if (this.fitType === 'fitToPage' && !((event.ctrlKey || isCommandKey) && event.shiftKey)) {\n event.preventDefault();\n this.downwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n break;\n case 187: // equal key\n if (event.ctrlKey || isCommandKey) {\n event.preventDefault();\n this.zoomIn();\n }\n break;\n case 189: // minus key\n if (event.ctrlKey || isCommandKey) {\n event.preventDefault();\n this.zoomOut();\n }\n break;\n case 48: // zero key\n if ((event.ctrlKey || isCommandKey) && !event.shiftKey) {\n event.preventDefault();\n this.fitToPage();\n }\n break;\n case 49: // one key\n if ((event.ctrlKey || isCommandKey) && !event.shiftKey) {\n event.preventDefault();\n this.zoomTo(100);\n }\n break;\n default:\n break;\n }\n };\n Magnification.prototype.upwardScrollFitPage = function (currentPageIndex) {\n if (currentPageIndex > 0) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1)).style.visibility = 'visible';\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[currentPageIndex - 1].top * this.zoomFactor;\n if (this.isFitToPageMode) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex)).style.visibility = 'hidden';\n }\n }\n };\n /**\n * @param currentPageIndex\n * @private\n */\n Magnification.prototype.updatePagesForFitPage = function (currentPageIndex) {\n if (this.fitType === 'fitToPage') {\n if (this.isFitToPageMode) {\n if (currentPageIndex > 0 && this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1))) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1)).style.visibility = 'hidden';\n }\n // eslint-disable-next-line max-len\n if ((currentPageIndex < (this.pdfViewerBase.pageCount - 1)) && this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1))) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1)).style.visibility = 'hidden';\n }\n }\n }\n };\n /**\n * @private\n */\n Magnification.prototype.onDoubleTapMagnification = function () {\n if (this.pdfViewer.toolbarModule && isBlazor()) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n if (!this.pdfViewer.selectedItems.annotations[0]) {\n this.isDoubleTapZoom = true;\n if (!this.isTapToFitZoom) {\n if (this.zoomFactor < 2) {\n this.zoomTo(200);\n }\n else {\n this.fitToWidth();\n }\n }\n else {\n this.fitToWidth();\n }\n this.calculateScrollValues(scrollValue);\n this.isTapToFitZoom = !this.isTapToFitZoom;\n this.isDoubleTapZoom = false;\n }\n else {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, this.pdfViewer.selectedItems.annotations[0]);\n }\n }\n }\n };\n Magnification.prototype.downwardScrollFitPage = function (currentPageIndex) {\n if (currentPageIndex !== (this.pdfViewerBase.pageCount - 1)) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1)).style.visibility = 'visible';\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[currentPageIndex + 1].top * this.zoomFactor;\n if (this.isFitToPageMode) {\n if (currentPageIndex + 1 === (this.pdfViewerBase.pageCount - 1)) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex)).style.visibility = 'hidden';\n }\n else {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 2)).style.visibility = 'hidden';\n }\n }\n }\n };\n Magnification.prototype.getMagnifiedValue = function (value) {\n return (value / this.previousZoomFactor) * this.zoomFactor;\n };\n /**\n * @private\n */\n Magnification.prototype.destroy = function () {\n this.imageObjects = undefined;\n };\n /**\n * returns zoom factor when the zoom percent is passed.\n *\n * @param zoomValue\n */\n Magnification.prototype.getZoomFactor = function (zoomValue) {\n return zoomValue / 100;\n };\n /**\n * @private\n */\n Magnification.prototype.getModuleName = function () {\n return 'Magnification';\n };\n /**\n * Returns the pinch step value.\n * @param higherValue\n * @param lowerValue\n */\n Magnification.prototype.getPinchStep = function (higherValue, lowerValue) {\n var defaultPinchStep = 0.02; // Default pinch step value.\n var higherPinchStep = 1; // higher pinch step value.\n var pinchstep = (higherValue - lowerValue) / 100;\n if (pinchstep < defaultPinchStep) {\n pinchstep = defaultPinchStep;\n }\n else if (pinchstep > higherPinchStep) {\n pinchstep = 0.1; // set the pinch step as 0.1 if the pinch reaches the higher pinch step value.\n }\n return pinchstep;\n };\n /**\n * @private\n * Brings the given rectangular region to view and zooms in the document to fit the region in client area (view port).\n *\n * @param {Rect} zoomRect - Specifies the region in client coordinates that is to be brought to view.\n */\n Magnification.prototype.zoomToRect = function (zoomRect) {\n var desiredScaleFactor;\n var pdfViewerBase = this.pdfViewerBase;\n var viewerContainer = pdfViewerBase.viewerContainer;\n var pdfViewer = this.pdfViewer;\n if (zoomRect.width > 0 && zoomRect.height > 0) {\n var location_1 = { x: zoomRect.x, y: zoomRect.y };\n var pageNumber = pdfViewer.getPageNumberFromClientPoint(location_1);\n if (pageNumber > 0) {\n var desiredHorizontalScale = viewerContainer.getBoundingClientRect().width / zoomRect.width;\n var desiredVerticalScale = viewerContainer.getBoundingClientRect().height / zoomRect.height;\n if (desiredHorizontalScale < desiredVerticalScale) {\n desiredScaleFactor = desiredHorizontalScale;\n }\n else {\n desiredScaleFactor = desiredVerticalScale;\n }\n var zoomValue = 100; // default zoom value\n var zoomPercentage = pdfViewerBase.getZoomFactor() * 100;\n zoomValue = zoomPercentage * desiredScaleFactor;\n var prevScrollTop = viewerContainer.scrollTop;\n var prevScrollLeft = viewerContainer.scrollLeft;\n // Zoom to desired zoom value.\n this.zoomTo(zoomValue);\n viewerContainer.scrollTop = prevScrollTop;\n viewerContainer.scrollLeft = prevScrollLeft;\n var zoomFactor = pdfViewerBase.getZoomFactor();\n var pagepoint = { x: zoomRect.x, y: zoomRect.y };\n // Convert the client point to page point.\n pagepoint = pdfViewer.convertClientPointToPagePoint(pagepoint, pageNumber);\n pdfViewerBase.updateScrollTop(pageNumber - 1);\n // To adjust the container to the left position.\n viewerContainer.scrollLeft = (pagepoint.x - prevScrollLeft) * zoomFactor;\n // To adjust the container to the top position.\n viewerContainer.scrollTop = ((pagepoint.y + pdfViewerBase.pageSize[pageNumber - 1].top) - prevScrollTop) * zoomFactor;\n }\n }\n };\n /**\n * Returns Point value respect to Main container.\n * @param PointX\n * @param PointY\n */\n Magnification.prototype.positionInViewer = function (pointX, pointY) {\n var mainRect = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n return { x: pointX - mainRect.left, y: pointY - mainRect.top };\n };\n return Magnification;\n}());\nexport { Magnification };\n","import React, { useEffect } from \"react\";\nimport {\n PdfViewerComponent,\n Toolbar,\n Magnification,\n Navigation,\n TextSearch,\n Inject,\n} from \"@syncfusion/ej2-react-pdfviewer\";\nimport { registerLicense } from \"@syncfusion/ej2-base\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { getTokens } from \"utils\";\n\nregisterLicense(\n \"Mgo+DSMBaFt/QHRqVVhkVFpFdEBBXHxAd1p/VWJYdVt5flBPcDwsT3RfQF5jS39QdkJgW39cdH1UTw==;Mgo+DSMBPh8sVXJ0S0J+XE9AflRDX3xKf0x/TGpQb19xflBPallYVBYiSV9jS31TdERgWXhdcnRXQ2NZWA==;ORg4AjUWIQA/Gnt2VVhkQlFacldJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkdiWn9Zc3ZVRGVZU00=;MTExOTM0MUAzMjMwMmUzNDJlMzBNNXFpZ1dqKzJmQ09GRXh6SHk0QVhMQ0o2Vk9jRFovS0hlbmN2R295MFZnPQ==;MTExOTM0MkAzMjMwMmUzNDJlMzBFWlRsOVgzYWhIaUMxbENZZ3h5MVZXdDBQcUV6YlRUTCtwRTV6YVgwc2FNPQ==;NRAiBiAaIQQuGjN/V0Z+WE9EaFtKVmJLYVB3WmpQdldgdVRMZVVbQX9PIiBoS35RdUVhWHxed3dXRmJaUkF/;MTExOTM0NEAzMjMwMmUzNDJlMzBsWFpuVGk2dEh2S1VvRko0dmoxUTlxNWtKdE5WK0lLb1ZveXd0YzZoVFBnPQ==;MTExOTM0NUAzMjMwMmUzNDJlMzBwQjYxRU5PeG1BOC9Sc0R2dlk2YTVjRkhLVlpNZ0R4Y1NKSmxwZnJqUVdrPQ==;Mgo+DSMBMAY9C3t2VVhkQlFacldJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkdiWn9Zc3ZVRGdeV00=;MTExOTM0N0AzMjMwMmUzNDJlMzBXZ2wxYmRQbnFoOEp2eFdiZlZyQlZiaks4djk2SEZ1bjRCcGp3MjlSV0swPQ==;MTExOTM0OEAzMjMwMmUzNDJlMzBFQ3RhOWNUZ2dSS3V4T3dwTXdSMUhic3hlMG5mNlF1RXdPaDcrWW5QQTc4PQ==;MTExOTM0OUAzMjMwMmUzNDJlMzBsWFpuVGk2dEh2S1VvRko0dmoxUTlxNWtKdE5WK0lLb1ZveXd0YzZoVFBnPQ==\"\n);\n\nexport const PDFViewer = ({ filePaths = null }) => {\n const { file, dir } = useParams();\n const navigate = useNavigate();\n let filePath = filePaths ? filePaths : `${dir}/${file}`;\n\n const tokens = getTokens();\n\n useEffect(() => {\n if (!tokens?.token) {\n navigate(\"/login\");\n }\n }, [tokens]);\n\n return (\n
    \n \n \n \n
    \n );\n};\n","import React from \"react\";\nimport { Route, Routes } from \"react-router-dom\";\nimport \"./styles/help.styles.css\";\nimport { HelpView } from \".\";\n\nexport const Help = () => {\n return (\n \n } path={\"/\"} />\n \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68, _path69, _path70, _path71, _path72, _path73, _path74, _path75, _path76, _path77, _path78, _path79, _path80, _path81, _path82, _path83, _path84, _path85, _path86, _path87, _path88, _path89, _path90, _path91, _path92, _path93, _path94, _path95, _path96, _path97, _path98, _path99, _path100, _path101, _path102, _path103, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgErrorSomethingWentWrongGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 377,\n height: 286,\n viewBox: \"0 0 377 286\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M205.787 2.37963C251.38 4.9345 298.03 11.2968 329.984 35.9639C361.635 60.398 366.719 95.6234 370.661 129.658C375.154 168.446 387.211 211.639 353.766 241.293C318.982 272.135 258.254 284.397 205.787 275.845C159.371 268.279 188.853 222.71 154.505 197.972C118.465 172.016 37.5849 205.666 2.80427 129.658C-7.95162 89.7772 20.1722 46.9419 61.6595 20.9277C100.623 -3.50369 155.261 -0.451682 205.787 2.37963Z\",\n fill: \"url(#paint0_linear_6310_21545)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M212.329 249.182L191.791 265.511L191.552 182.574C191.59 182.586 191.639 182.601 191.699 182.62C191.853 182.667 192.08 182.739 192.368 182.833C192.944 183.021 193.768 183.298 194.757 183.659C196.734 184.379 199.369 185.429 202.003 186.746C204.638 188.062 207.267 189.645 209.236 191.43C211.205 193.216 212.502 195.195 212.494 197.305L212.329 249.182Z\",\n fill: \"#2760AD\",\n stroke: \"black\",\n strokeWidth: 0.139431\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M191.675 249.281L191.722 265.655L226.166 265.549L212.406 249.215L191.675 249.281Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.293 256.258C209.19 256.258 209.091 256.218 209.018 256.144C208.944 256.071 208.904 255.972 208.904 255.869C208.904 255.765 208.944 255.665 209.018 255.593C209.091 255.52 209.19 255.478 209.293 255.478L215.073 255.457C215.176 255.457 215.276 255.498 215.348 255.571C215.422 255.644 215.463 255.743 215.463 255.847C215.463 255.951 215.422 256.05 215.348 256.123C215.276 256.196 215.176 256.237 215.073 256.237L209.293 256.258Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.305 258.872C209.201 258.872 209.102 258.831 209.029 258.758C208.956 258.684 208.915 258.585 208.915 258.482C208.915 258.379 208.956 258.279 209.029 258.206C209.102 258.133 209.201 258.092 209.305 258.092L215.084 258.07C215.188 258.07 215.287 258.111 215.361 258.184C215.433 258.258 215.475 258.357 215.475 258.461C215.475 258.564 215.433 258.663 215.361 258.736C215.287 258.81 215.188 258.85 215.084 258.85L209.305 258.872Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M191.728 262.48L191.722 265.661L226.166 265.548L223.486 262.367L191.728 262.48Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.123 263.147L224.488 264.773L192.498 264.878V263.255L223.123 263.147ZM223.486 262.367L191.728 262.48V265.662L226.172 265.549L223.492 262.367H223.486Z\",\n fill: \"black\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.592 198.282L165.592 198.282C161.453 198.304 157.432 196.909 154.197 194.328C150.962 191.747 148.708 188.136 147.81 184.097L146.314 177.374L229.247 177.448L212.958 198.194L165.592 198.282Z\",\n fill: \"#2760AD\",\n stroke: \"black\",\n strokeWidth: 0.139431\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M213.019 177.363L229.391 177.379L229.354 211.823L212.992 198.264L213.019 177.363Z\",\n fill: \"black\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M219.627 201.136C219.524 201.136 219.425 201.095 219.352 201.022C219.278 200.949 219.238 200.85 219.238 200.746L219.249 194.969C219.249 194.865 219.291 194.765 219.363 194.692C219.436 194.62 219.535 194.578 219.64 194.578C219.743 194.578 219.842 194.62 219.915 194.692C219.988 194.765 220.029 194.865 220.029 194.969L220.018 200.748C220.017 200.851 219.976 200.95 219.903 201.023C219.83 201.095 219.731 201.136 219.627 201.136Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.241 201.143C222.138 201.143 222.039 201.101 221.965 201.028C221.892 200.954 221.851 200.855 221.851 200.752L221.863 194.972C221.863 194.869 221.904 194.77 221.977 194.697C222.05 194.624 222.15 194.582 222.253 194.582C222.357 194.582 222.456 194.624 222.529 194.697C222.602 194.77 222.643 194.869 222.643 194.972L222.631 200.752C222.631 200.855 222.591 200.954 222.517 201.028C222.444 201.101 222.345 201.143 222.241 201.143Z\",\n fill: \"white\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.217 177.389L229.399 177.379L229.354 211.823L226.166 209.146L226.217 177.389Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M228.618 178.159L228.575 210.149L226.947 208.784L226.995 178.159H228.618ZM229.399 177.379L226.217 177.389L226.166 209.148L229.354 211.823L229.399 177.379Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M212.572 198.242H191.49V199.022H212.572V198.242Z\",\n fill: \"#2760AD\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M195.896 198.633H195.116V249.213H195.896V198.633Z\",\n fill: \"#2760AD\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.413 123.002C273.066 121.817 271.933 121.468 270.193 121.922L260.083 124.507L269.772 119.045C270.677 118.515 271.344 117.424 270.851 116.383L270.783 116.254C270.355 115.316 269.103 114.932 267.917 115.39L257.223 120.43L265.126 114.694C265.906 114.181 266.323 112.991 265.885 112.158L265.816 112.029C265.377 111.191 264.199 110.689 262.89 111.368L250.72 118.38C250.72 118.38 252.105 114.84 252.687 113.861C254.303 111.13 250.475 108.789 248.785 112.134C246.737 116.188 243.94 120.343 239.526 124.835L239.211 125.132C239.26 125.178 239.309 125.223 239.356 125.272L251.5 138.271C254.641 135.897 256.851 135.089 260.147 134.056L271.287 132.078C272.413 131.84 272.827 130.923 272.653 130L272.604 129.864C272.278 128.976 271.553 128.672 270.068 128.709L262.112 128.853L271.574 125.613C273.25 124.964 273.722 124.058 273.413 123.002Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M251.032 111.26C251.257 111.261 251.476 111.322 251.669 111.435C251.863 111.548 252.022 111.711 252.133 111.906C252.388 112.353 252.345 112.905 252.017 113.467C251.41 114.489 250.053 117.953 249.994 118.099C249.948 118.218 249.932 118.346 249.946 118.472C249.96 118.598 250.005 118.719 250.076 118.824C250.148 118.93 250.245 119.015 250.357 119.074C250.47 119.134 250.595 119.165 250.722 119.165C250.859 119.165 250.993 119.128 251.113 119.061L263.243 112.063C263.505 111.922 263.796 111.846 264.093 111.84C264.299 111.831 264.503 111.879 264.683 111.977C264.863 112.076 265.013 112.222 265.116 112.4L265.184 112.526C265.414 112.965 265.16 113.738 264.682 114.056L264.658 114.074L256.755 119.81C256.622 119.907 256.522 120.043 256.471 120.201C256.42 120.357 256.42 120.527 256.471 120.683C256.522 120.84 256.621 120.977 256.754 121.073C256.888 121.171 257.049 121.223 257.214 121.223C257.329 121.223 257.442 121.197 257.545 121.148L268.213 116.118C268.439 116.031 268.679 115.986 268.921 115.985C269.456 115.985 269.897 116.215 270.063 116.586L270.082 116.625L270.14 116.738C270.455 117.423 269.858 118.092 269.372 118.377L259.691 123.838C259.54 123.923 259.421 124.056 259.353 124.215C259.286 124.375 259.274 124.553 259.319 124.721C259.363 124.888 259.463 125.036 259.601 125.14C259.738 125.245 259.908 125.301 260.081 125.299C260.147 125.299 260.213 125.29 260.276 125.274L270.4 122.684C270.765 122.581 271.142 122.526 271.521 122.518C272.352 122.518 272.569 122.876 272.672 123.228C272.775 123.579 272.969 124.24 271.307 124.886L261.86 128.122C261.686 128.182 261.539 128.302 261.445 128.46C261.35 128.619 261.315 128.805 261.345 128.987C261.376 129.168 261.469 129.333 261.609 129.454C261.75 129.573 261.927 129.638 262.112 129.639H262.128L270.087 129.495H270.304C271.645 129.495 271.775 129.852 271.881 130.139L271.905 130.209C271.952 130.525 271.937 131.147 271.149 131.319L260.009 133.283C259.976 133.289 259.943 133.297 259.911 133.307C256.855 134.266 254.573 135.078 251.594 137.227L240.306 125.149C244.242 121.103 247.162 117.072 249.474 112.482C249.879 111.696 250.43 111.26 251.032 111.26ZM251.032 110.48C250.238 110.48 249.38 110.955 248.785 112.132C246.737 116.186 243.94 120.341 239.526 124.833L239.211 125.13C239.26 125.176 239.309 125.222 239.356 125.27L251.5 138.269C254.641 135.895 256.851 135.087 260.147 134.054L271.287 132.075C272.413 131.838 272.827 130.921 272.653 129.999L272.604 129.862C272.296 129.021 271.629 128.705 270.294 128.705H270.058L262.102 128.849L271.564 125.609C273.252 124.96 273.724 124.049 273.416 122.997C273.166 122.148 272.51 121.728 271.516 121.728C271.069 121.737 270.625 121.803 270.195 121.923L260.083 124.505L269.772 119.044C270.677 118.514 271.344 117.423 270.851 116.381L270.783 116.252C270.476 115.583 269.753 115.195 268.931 115.195C268.584 115.197 268.24 115.264 267.917 115.39L257.223 120.43L265.126 114.694C265.906 114.181 266.323 112.991 265.885 112.158L265.816 112.029C265.647 111.726 265.398 111.474 265.096 111.303C264.794 111.131 264.451 111.045 264.103 111.054C263.676 111.06 263.257 111.169 262.88 111.37L250.72 118.378C250.72 118.378 252.105 114.838 252.687 113.859C253.733 112.09 252.491 110.48 251.03 110.48H251.032Z\",\n fill: \"black\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240.088 124.579L239.943 124.438C231.165 132.857 220.41 142.126 214.212 147.846C214.212 147.846 193.754 125.609 189.198 120.732C187.924 119.367 186.38 118.279 184.666 117.538C182.951 116.796 181.102 116.417 179.234 116.423L152.331 116.511L152.62 99.8875C144.91 99.868 117.328 100.217 110.877 100.143C97.3047 99.987 94.8821 115.065 104.53 121.104C112.584 126.146 143.437 145.218 146.177 147.205L145.917 171.019H185.043L185.16 146.956L198.856 160.984C216.136 178.959 222.653 164.671 252.009 137.747C252.086 137.688 252.16 137.636 252.236 137.579C252.115 137.578 240.088 124.579 240.088 124.579Z\",\n fill: \"#82C6AE\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.824 100.673L151.551 116.509C151.55 116.614 151.568 116.716 151.607 116.812C151.645 116.909 151.702 116.996 151.775 117.07C151.847 117.144 151.934 117.203 152.03 117.243C152.125 117.283 152.228 117.303 152.331 117.303L179.236 117.222H179.273C181.027 117.224 182.761 117.586 184.37 118.285C185.978 118.983 187.427 120.003 188.627 121.283C193.129 126.101 213.432 148.166 213.637 148.397C213.707 148.472 213.79 148.533 213.884 148.576C213.977 148.619 214.077 148.644 214.18 148.648H214.211C214.408 148.649 214.597 148.574 214.741 148.441C217.002 146.352 219.932 143.735 223.035 140.963C228.411 136.164 234.48 130.745 239.914 125.553C240.834 126.548 243.197 129.095 245.543 131.62C247.299 133.507 248.701 135.012 249.716 136.09C250.301 136.717 250.766 137.204 251.081 137.543C245.814 142.39 241.289 146.81 237.292 150.72C226.143 161.619 219.419 168.201 212.711 168.201C208.679 168.201 204.579 165.807 199.413 160.438L185.718 146.407C185.61 146.296 185.471 146.22 185.319 146.188C185.168 146.157 185.011 146.171 184.867 146.229C184.724 146.287 184.601 146.387 184.514 146.515C184.427 146.643 184.38 146.794 184.38 146.949L184.266 170.235H146.706L146.957 147.218C146.959 147.094 146.931 146.97 146.874 146.859C146.818 146.748 146.736 146.651 146.636 146.579C144.57 145.084 127.366 134.393 114.802 126.586C110.623 123.99 107.015 121.748 104.947 120.454C102.784 119.134 101.113 117.14 100.19 114.78C99.3623 112.649 99.2461 110.308 99.858 108.107C101.147 103.62 105.191 100.934 110.672 100.934H110.867C111.466 100.934 112.281 100.946 113.286 100.946C117.901 100.946 126.055 100.874 133.941 100.803C141.227 100.735 148.118 100.675 151.824 100.673ZM151.966 99.8926C144.306 99.8926 122.183 100.16 113.29 100.16C112.315 100.16 111.499 100.16 110.879 100.148H110.666C97.2774 100.148 94.925 115.101 104.528 121.11C112.584 126.146 143.437 145.217 146.177 147.204L145.917 171.018H185.043L185.16 146.955L198.856 160.983C204.165 166.506 208.46 168.981 212.704 168.981C222.292 168.981 231.665 156.396 252.004 137.744C252.08 137.686 252.154 137.633 252.23 137.576C252.109 137.576 240.082 124.576 240.082 124.576L239.938 124.436C231.16 132.854 220.404 142.123 214.207 147.842C214.207 147.842 193.749 125.606 189.192 120.729C187.922 119.369 186.386 118.285 184.678 117.544C182.971 116.803 181.131 116.42 179.269 116.42H179.229L152.331 116.509L152.62 99.8867L151.966 99.8926Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.93 170.011H184.376V166.762L145.93 170.011Z\",\n fill: \"black\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.032 109.979C175.324 109.709 176.08 108.101 175.722 106.386C175.365 104.672 174.029 103.5 172.737 103.769C171.447 104.038 170.69 105.647 171.047 107.361C171.405 109.076 172.742 110.248 174.032 109.979Z\",\n fill: \"white\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.107 104.511C173.85 104.511 174.604 105.268 174.9 106.313C175.257 107.577 174.843 108.892 173.995 109.182C173.887 109.219 173.773 109.239 173.659 109.239C172.918 109.239 172.163 108.48 171.869 107.437C171.51 106.171 171.925 104.856 172.773 104.565C172.881 104.53 172.994 104.511 173.107 104.511ZM173.107 103.73C172.909 103.731 172.711 103.764 172.523 103.828C171.272 104.255 170.644 105.974 171.12 107.649C171.522 109.071 172.586 110.02 173.656 110.02C173.855 110.019 174.053 109.985 174.241 109.922C175.493 109.492 176.121 107.776 175.643 106.101C175.241 104.677 174.178 103.73 173.107 103.73Z\",\n fill: \"black\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.704 108.1C173.656 108.101 173.609 108.092 173.564 108.075C173.468 108.038 173.39 107.964 173.348 107.87C173.305 107.776 173.303 107.668 173.34 107.572C173.729 106.552 173.002 106.109 172.97 106.089C172.921 106.067 172.877 106.034 172.841 105.993C172.804 105.953 172.777 105.905 172.76 105.853C172.743 105.801 172.738 105.746 172.743 105.692C172.75 105.637 172.766 105.585 172.795 105.538C172.822 105.491 172.859 105.45 172.903 105.418C172.947 105.386 172.998 105.363 173.051 105.352C173.105 105.341 173.159 105.341 173.213 105.352C173.266 105.364 173.317 105.386 173.361 105.418C173.821 105.688 174.562 106.546 174.063 107.851C174.035 107.923 173.986 107.986 173.922 108.031C173.858 108.075 173.782 108.099 173.704 108.1Z\",\n fill: \"black\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.925 119.884C168.616 119.884 173.228 115.271 173.228 109.58C173.228 103.89 168.616 99.2773 162.925 99.2773C157.235 99.2773 152.622 103.89 152.622 109.58C152.622 115.271 157.235 119.884 162.925 119.884Z\",\n fill: \"white\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.925 100.058C165.131 100.059 167.268 100.826 168.97 102.228C170.673 103.63 171.836 105.579 172.26 107.744C172.685 109.908 172.345 112.153 171.298 114.093C170.252 116.035 168.563 117.553 166.522 118.387C164.481 119.222 162.213 119.322 160.106 118.67C157.999 118.018 156.184 116.655 154.971 114.813C153.757 112.972 153.221 110.765 153.454 108.572C153.686 106.379 154.674 104.335 156.246 102.789C158.024 101.031 160.425 100.05 162.925 100.058ZM162.925 99.2774C160.545 99.2775 158.239 100.102 156.397 101.61C154.556 103.118 153.294 105.217 152.825 107.55C152.356 109.883 152.709 112.307 153.825 114.41C154.94 116.512 156.749 118.164 158.944 119.083C161.139 120.003 163.585 120.135 165.867 119.455C168.147 118.776 170.123 117.328 171.457 115.357C172.792 113.387 173.402 111.015 173.187 108.645C172.97 106.274 171.94 104.052 170.271 102.355C169.313 101.379 168.17 100.603 166.909 100.075C165.648 99.5462 164.293 99.2751 162.925 99.2774Z\",\n fill: \"black\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M154.446 105.361C155.242 103.098 155.154 102.062 157.403 100.783C161.264 98.5884 167.31 99.7705 169.054 101.807L154.446 105.361Z\",\n fill: \"black\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.258 117.288C165.073 117.275 164.891 117.224 164.727 117.137C164.564 117.049 164.42 116.928 164.307 116.781C163.976 116.384 163.741 115.917 163.619 115.415C163.481 114.918 163.46 114.395 163.558 113.888C163.676 113.351 163.96 112.998 164.355 112.897C165.096 112.701 165.9 113.497 166.222 114.742C166.543 115.986 166.222 117.069 165.487 117.26C165.412 117.279 165.335 117.288 165.258 117.288ZM164.581 113.646H164.551C164.476 113.665 164.375 113.798 164.318 114.051C164.248 114.441 164.267 114.841 164.375 115.221C164.468 115.6 164.646 115.953 164.893 116.253C165.066 116.448 165.217 116.515 165.284 116.495C165.479 116.445 165.689 115.812 165.461 114.935C165.248 114.086 164.792 113.638 164.581 113.638V113.646Z\",\n fill: \"black\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.523 112.297C162.43 112.297 162.339 112.263 162.269 112.203C162.197 112.142 162.15 112.058 162.136 111.966C162.122 111.873 162.142 111.779 162.191 111.7C162.241 111.62 162.317 111.562 162.407 111.534L164.501 110.87C163.758 110.334 162.771 109.211 162.317 106.923C162.307 106.872 162.307 106.821 162.317 106.77C162.327 106.72 162.347 106.672 162.376 106.63C162.404 106.587 162.441 106.551 162.483 106.522C162.527 106.494 162.574 106.474 162.625 106.464C162.675 106.454 162.727 106.455 162.777 106.465C162.827 106.475 162.876 106.495 162.918 106.523C162.96 106.552 162.997 106.589 163.025 106.632C163.053 106.674 163.074 106.722 163.083 106.772C163.739 110.073 165.531 110.56 165.607 110.58C165.69 110.601 165.763 110.648 165.817 110.714C165.871 110.779 165.901 110.862 165.904 110.947C165.908 111.033 165.883 111.118 165.835 111.188C165.785 111.258 165.715 111.311 165.633 111.337L162.642 112.283C162.604 112.293 162.564 112.298 162.523 112.297Z\",\n fill: \"black\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.334 107.647C165.256 107.647 165.179 107.624 165.115 107.58C165.05 107.536 165 107.473 164.971 107.4C164.942 107.328 164.936 107.248 164.953 107.171C164.97 107.095 165.01 107.025 165.067 106.972L167.004 105.166C167.041 105.128 167.085 105.099 167.133 105.079C167.182 105.06 167.234 105.05 167.286 105.051C167.339 105.052 167.39 105.063 167.439 105.084C167.487 105.106 167.53 105.136 167.565 105.174C167.602 105.213 167.629 105.258 167.647 105.307C167.665 105.356 167.673 105.409 167.67 105.461C167.668 105.513 167.655 105.565 167.632 105.612C167.609 105.659 167.576 105.701 167.536 105.735L166.474 106.726L168.153 106.531C168.204 106.525 168.256 106.529 168.306 106.543C168.355 106.557 168.402 106.581 168.443 106.613C168.482 106.645 168.517 106.685 168.541 106.73C168.567 106.775 168.583 106.824 168.589 106.875C168.594 106.927 168.591 106.979 168.577 107.028C168.563 107.078 168.539 107.124 168.507 107.165C168.475 107.205 168.435 107.239 168.39 107.264C168.345 107.289 168.296 107.305 168.245 107.311L165.381 107.657L165.334 107.647Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.754 109.845C157.663 109.845 157.575 109.813 157.505 109.754C157.435 109.695 157.388 109.614 157.372 109.525C157.356 109.435 157.372 109.343 157.417 109.263C157.461 109.184 157.532 109.123 157.617 109.09L159.202 108.505L157.801 108.115C157.701 108.087 157.616 108.021 157.566 107.93C157.515 107.84 157.501 107.733 157.53 107.633C157.558 107.533 157.624 107.449 157.714 107.398C157.804 107.347 157.911 107.334 158.011 107.362L160.563 108.078C160.643 108.1 160.712 108.147 160.764 108.211C160.815 108.276 160.844 108.355 160.848 108.437C160.851 108.52 160.828 108.601 160.783 108.669C160.737 108.738 160.672 108.79 160.594 108.819L157.891 109.82C157.847 109.837 157.801 109.845 157.754 109.845Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.243 104.672C165.177 104.288 164.995 103.934 164.721 103.657C164.448 103.379 164.096 103.192 163.713 103.121C163.713 103.121 162.121 102.793 162.311 102.805C163.286 102.864 164.006 101.9 163.855 100.831C163.717 99.8559 162.736 99.3585 161.737 99.1828C161.737 99.1828 161.152 98.9878 161.175 98.9878C162.247 98.9605 162.846 97.9813 162.695 96.9143C162.557 95.939 160.842 95.1821 159.89 95.0378L151.267 93.1516C151.348 93.0189 151.43 92.8922 151.514 92.7615C149.484 92.6264 147.459 93.0838 145.684 94.0782C138.951 109.377 151.873 116.572 151.873 116.572C153.611 113.875 154.677 106.248 154.677 106.248L163.311 106.833C163.447 106.85 163.585 106.85 163.721 106.833C163.963 106.792 164.195 106.704 164.403 106.573C164.611 106.441 164.791 106.271 164.932 106.07C165.073 105.869 165.174 105.642 165.227 105.402C165.28 105.162 165.285 104.914 165.243 104.672Z\",\n fill: \"white\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.871 116.963C151.811 116.963 151.751 116.949 151.697 116.922C151.582 116.865 148.877 115.485 146.552 112.366C144.406 109.484 142.212 104.528 143.954 97.2602C144.41 95.3545 145.231 94.0631 146.466 93.3161C148.37 92.1652 150.952 92.6041 152.971 93.1209C153.072 93.1468 153.157 93.2115 153.21 93.3008C153.263 93.39 153.278 93.4965 153.252 93.5969C153.226 93.6973 153.162 93.7833 153.072 93.8359C152.983 93.8887 152.876 93.9037 152.777 93.8778C150.894 93.4038 148.522 92.9864 146.866 93.9909C145.819 94.623 145.11 95.7465 144.708 97.4474C143.37 103.034 144.193 107.887 147.152 111.882C148.399 113.562 149.959 114.984 151.747 116.07C153.513 113.267 154.282 106.292 154.282 106.219C154.293 106.116 154.345 106.021 154.426 105.956C154.507 105.891 154.61 105.86 154.714 105.871C154.818 105.882 154.912 105.934 154.978 106.015C155.043 106.096 155.073 106.2 155.063 106.303C155.029 106.619 154.212 114.067 152.185 116.817C152.148 116.864 152.1 116.902 152.045 116.927C151.99 116.952 151.931 116.965 151.871 116.963Z\",\n fill: \"black\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M163.49 107.224C163.418 107.224 163.345 107.22 163.272 107.213L153.629 106.364C153.525 106.355 153.429 106.305 153.363 106.226C153.296 106.146 153.263 106.043 153.273 105.94C153.282 105.836 153.331 105.741 153.411 105.674C153.49 105.607 153.594 105.575 153.697 105.584L163.345 106.43C163.586 106.454 163.829 106.413 164.049 106.31C164.268 106.206 164.455 106.046 164.591 105.845C164.822 105.514 164.916 105.107 164.856 104.708C164.755 103.986 164.142 103.6 163.643 103.489L153.535 101.973L152.671 101.843C152.618 101.838 152.566 101.822 152.52 101.797C152.474 101.771 152.433 101.737 152.4 101.695C152.368 101.653 152.344 101.605 152.33 101.554C152.316 101.502 152.314 101.449 152.321 101.396C152.329 101.344 152.347 101.294 152.375 101.249C152.403 101.203 152.44 101.165 152.483 101.134C152.527 101.104 152.576 101.083 152.628 101.072C152.68 101.061 152.734 101.061 152.786 101.072L153.632 101.199C157.28 101.739 162.108 102.381 162.336 102.398C162.484 102.407 162.633 102.381 162.77 102.324C162.907 102.267 163.028 102.179 163.126 102.067C163.267 101.904 163.371 101.713 163.43 101.506C163.489 101.299 163.502 101.082 163.467 100.869C163.337 99.9407 162.166 99.6384 161.671 99.5506L153.1 98.1969C152.451 98.0973 151.838 98.0017 151.293 97.914C151.19 97.8977 151.097 97.841 151.035 97.7563C150.975 97.6716 150.949 97.5659 150.965 97.4625C150.982 97.3589 151.038 97.2662 151.123 97.2045C151.208 97.143 151.313 97.1174 151.416 97.1338L153.316 97.4341C156.853 97.9783 160.899 98.5558 161.183 98.5713C161.34 98.5691 161.495 98.5331 161.636 98.4657C161.778 98.3984 161.904 98.3015 162.005 98.1812C162.139 98.0072 162.236 97.8069 162.288 97.5932C162.34 97.3795 162.347 97.1572 162.309 96.9407C162.2 96.1604 161.724 95.702 160.922 95.5752H160.899L151.187 93.5291C151.136 93.5184 151.088 93.4979 151.046 93.4687C151.004 93.4397 150.967 93.4025 150.94 93.3593C150.912 93.3162 150.892 93.268 150.884 93.2174C150.875 93.1669 150.875 93.115 150.886 93.0648C150.908 92.964 150.969 92.8761 151.056 92.8202C151.142 92.7643 151.247 92.7449 151.348 92.7663L161.051 94.834C162.202 95.0115 162.923 95.7293 163.081 96.8548C163.136 97.1802 163.121 97.5135 163.038 97.8328C162.955 98.1523 162.806 98.4505 162.599 98.7079C162.532 98.7887 162.458 98.8632 162.377 98.9303C163.452 99.256 164.119 99.9056 164.242 100.774C164.292 101.101 164.269 101.435 164.174 101.753C164.081 102.071 163.918 102.363 163.698 102.611C163.668 102.645 163.636 102.677 163.602 102.707L163.771 102.732H163.795C164.257 102.817 164.681 103.044 165.01 103.38C165.338 103.715 165.554 104.145 165.629 104.609C165.718 105.204 165.574 105.811 165.227 106.304C165.059 106.544 164.845 106.748 164.595 106.902C164.345 107.055 164.066 107.156 163.776 107.197C163.681 107.213 163.587 107.222 163.49 107.224Z\",\n fill: \"black\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.62 117.331H117.076C116.973 117.331 116.873 117.29 116.8 117.217C116.727 117.144 116.686 117.045 116.686 116.941C116.686 116.838 116.727 116.738 116.8 116.665C116.873 116.592 116.973 116.551 117.076 116.551H152.62C152.724 116.551 152.823 116.592 152.896 116.665C152.969 116.738 153.011 116.838 153.011 116.941C153.011 117.045 152.969 117.144 152.896 117.217C152.823 117.29 152.724 117.331 152.62 117.331Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M211.968 150.793C211.889 150.792 211.812 150.769 211.748 150.724C211.683 150.68 211.634 150.618 211.605 150.544C211.576 150.471 211.571 150.391 211.589 150.315C211.606 150.239 211.646 150.169 211.705 150.116L214.94 147.155C214.977 147.12 215.022 147.091 215.071 147.073C215.12 147.054 215.171 147.045 215.223 147.047C215.275 147.049 215.325 147.061 215.373 147.082C215.42 147.105 215.462 147.135 215.498 147.173C215.533 147.212 215.559 147.256 215.577 147.306C215.595 147.355 215.602 147.407 215.599 147.459C215.597 147.51 215.583 147.561 215.56 147.608C215.537 147.655 215.506 147.696 215.467 147.731L212.231 150.692C212.159 150.757 212.065 150.793 211.968 150.793Z\",\n fill: \"black\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.925 124.768C162.871 124.768 162.818 124.757 162.769 124.735C162.719 124.714 162.675 124.682 162.639 124.643L155.775 117.209C155.738 117.172 155.709 117.128 155.691 117.079C155.671 117.031 155.662 116.978 155.664 116.926C155.665 116.874 155.677 116.823 155.699 116.775C155.72 116.728 155.751 116.685 155.79 116.65C155.828 116.615 155.873 116.587 155.922 116.569C155.971 116.552 156.023 116.545 156.075 116.547C156.127 116.55 156.178 116.563 156.225 116.586C156.272 116.609 156.313 116.641 156.348 116.681L163.212 124.118C163.263 124.174 163.297 124.243 163.309 124.318C163.322 124.392 163.312 124.469 163.281 124.538C163.251 124.608 163.202 124.666 163.138 124.708C163.074 124.749 163.001 124.771 162.925 124.771V124.768Z\",\n fill: \"black\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.376 146.506V140.812L195.994 157.125L184.376 146.506Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.364 131.202C159.295 131.201 159.229 131.182 159.171 131.149C159.113 131.114 159.064 131.066 159.03 131.007L150.67 117.134C150.616 117.045 150.601 116.939 150.626 116.839C150.65 116.738 150.715 116.652 150.803 116.599C150.891 116.546 150.998 116.53 151.098 116.554C151.199 116.58 151.285 116.644 151.338 116.732L159.349 130.026L162.584 124.174C162.634 124.083 162.718 124.017 162.817 123.988C162.917 123.959 163.024 123.972 163.114 124.022C163.205 124.072 163.272 124.156 163.301 124.255C163.329 124.355 163.316 124.462 163.267 124.552L159.704 130.989C159.671 131.048 159.622 131.097 159.564 131.131C159.506 131.166 159.439 131.183 159.371 131.184L159.364 131.202Z\",\n fill: \"black\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.925 147.832C162.822 147.832 162.723 147.792 162.65 147.718C162.576 147.645 162.536 147.546 162.536 147.443V124.376C162.534 124.29 162.561 124.205 162.614 124.135C162.666 124.065 162.741 124.016 162.824 123.993C162.909 123.971 162.998 123.977 163.078 124.011C163.158 124.045 163.225 124.105 163.267 124.181L166.501 130.033L174.512 116.74C174.566 116.652 174.651 116.587 174.752 116.562C174.853 116.538 174.959 116.553 175.047 116.607C175.136 116.66 175.2 116.746 175.226 116.847C175.25 116.947 175.234 117.053 175.181 117.142L166.821 131.015C166.787 131.076 166.738 131.126 166.678 131.16C166.617 131.194 166.549 131.212 166.48 131.21C166.412 131.209 166.345 131.19 166.287 131.156C166.228 131.122 166.179 131.073 166.146 131.015L163.316 125.9V147.454C163.312 147.556 163.27 147.652 163.197 147.723C163.124 147.793 163.027 147.832 162.925 147.832Z\",\n fill: \"black\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.925 124.768C162.85 124.768 162.776 124.746 162.712 124.704C162.65 124.663 162.599 124.603 162.569 124.535C162.539 124.465 162.529 124.389 162.542 124.314C162.554 124.239 162.588 124.17 162.639 124.114L169.503 116.681C169.537 116.641 169.578 116.609 169.626 116.586C169.673 116.563 169.723 116.55 169.775 116.547C169.828 116.545 169.88 116.552 169.929 116.569C169.978 116.587 170.023 116.615 170.062 116.65C170.1 116.685 170.131 116.728 170.152 116.775C170.174 116.823 170.185 116.874 170.187 116.926C170.188 116.978 170.179 117.031 170.161 117.079C170.141 117.128 170.113 117.172 170.077 117.209L163.212 124.643C163.175 124.682 163.131 124.714 163.082 124.735C163.032 124.757 162.979 124.768 162.925 124.768Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.429 130.697C164.797 130.697 165.095 130.4 165.095 130.032C165.095 129.665 164.797 129.367 164.429 129.367C164.062 129.367 163.764 129.665 163.764 130.032C163.764 130.4 164.062 130.697 164.429 130.697Z\",\n fill: \"white\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.429 136.334C164.797 136.334 165.095 136.037 165.095 135.669C165.095 135.302 164.797 135.004 164.429 135.004C164.062 135.004 163.764 135.302 163.764 135.669C163.764 136.037 164.062 136.334 164.429 136.334Z\",\n fill: \"white\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.429 141.967C164.797 141.967 165.095 141.669 165.095 141.302C165.095 140.935 164.797 140.637 164.429 140.637C164.062 140.637 163.764 140.935 163.764 141.302C163.764 141.669 164.062 141.967 164.429 141.967Z\",\n fill: \"white\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.429 147.604C164.797 147.604 165.095 147.306 165.095 146.939C165.095 146.571 164.797 146.273 164.429 146.273C164.062 146.273 163.764 146.571 163.764 146.939C163.764 147.306 164.062 147.604 164.429 147.604Z\",\n fill: \"white\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.413 117.935L101.143 117.204C102.694 116.63 104.112 115.75 105.312 114.613C106.512 113.476 107.468 112.107 108.124 110.59C108.779 109.073 109.12 107.438 109.125 105.785C109.13 104.132 108.8 102.496 108.154 100.974L108.872 100.668C109.558 102.275 109.91 104.005 109.906 105.753C109.899 108.407 109.082 110.996 107.564 113.172C106.047 115.349 103.9 117.011 101.413 117.935Z\",\n fill: \"black\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.084 164.587C220.994 162.972 219.533 161.642 217.823 160.707C216.112 159.772 214.204 159.261 212.256 159.215C210.307 159.169 208.377 159.591 206.625 160.445C204.874 161.298 203.352 162.558 202.188 164.121L201.565 163.655C202.803 161.992 204.423 160.65 206.287 159.741C208.151 158.833 210.206 158.385 212.279 158.433C214.351 158.482 216.383 159.027 218.202 160.021C220.021 161.017 221.576 162.433 222.735 164.153L222.084 164.587Z\",\n fill: \"black\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M199.068 58.2852L179.572 73.539L174.393 69.2632L167.367 89.8363L176.006 76.7711L180.361 81.4545L199.068 58.2852Z\",\n fill: \"white\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.367 90.2269C167.307 90.2266 167.248 90.2125 167.195 90.1859C167.11 90.1438 167.044 90.0723 167.008 89.9847C166.972 89.8972 166.969 89.7995 167 89.71L174.022 69.1369C174.043 69.0772 174.077 69.0232 174.123 68.9799C174.169 68.9365 174.225 68.9049 174.286 68.8878C174.347 68.8708 174.411 68.8686 174.472 68.8818C174.534 68.895 174.592 68.923 174.641 68.9633L179.578 73.0382L198.834 57.9775C198.91 57.9184 199.004 57.8892 199.099 57.8953C199.195 57.9014 199.285 57.9425 199.352 58.0107C199.419 58.079 199.459 58.1695 199.464 58.2652C199.469 58.3609 199.439 58.4549 199.379 58.5295L180.672 81.7008C180.637 81.7443 180.593 81.7797 180.542 81.8046C180.492 81.8295 180.437 81.8434 180.382 81.8452C180.326 81.8472 180.27 81.8372 180.219 81.816C180.167 81.7948 180.121 81.7628 180.083 81.7223L176.057 77.3997L167.693 90.0514C167.657 90.1053 167.609 90.1496 167.552 90.1802C167.495 90.2109 167.431 90.2269 167.367 90.2269ZM174.584 69.923L168.732 87.0885L175.692 76.5551C175.725 76.5059 175.768 76.4648 175.818 76.4347C175.869 76.4046 175.926 76.3864 175.984 76.3815C176.044 76.3766 176.103 76.3851 176.158 76.4064C176.213 76.4277 176.263 76.4612 176.302 76.5044L180.354 80.8581L196.634 60.6927L179.823 73.8438C179.754 73.8997 179.668 73.9301 179.579 73.9301C179.489 73.9301 179.403 73.8997 179.334 73.8438L174.584 69.923Z\",\n fill: \"black\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.722 40.0195L159.475 60.2494L153.808 60.0406L159.654 77.4381L158.743 64.2461L164.066 65.1512L164.722 40.0195Z\",\n fill: \"#2760AD\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M163.764 46.8193L163.311 64.2305L158.872 63.4757C158.829 63.4678 158.785 63.4639 158.741 63.4639C158.634 63.4636 158.528 63.4855 158.429 63.5281C158.331 63.5707 158.243 63.6331 158.169 63.7114C158.096 63.7898 158.039 63.8823 158.004 63.9834C157.968 64.0844 157.954 64.1919 157.961 64.2988L158.456 71.4225L154.908 60.8618L159.446 61.0296H159.475C159.647 61.0294 159.816 60.9719 159.952 60.866C160.089 60.7601 160.186 60.6118 160.229 60.4444L163.764 46.8193ZM164.722 40.0195L159.475 60.2494L153.808 60.0406L159.659 77.4381L158.747 64.2461L164.072 65.1512L164.727 40.0195H164.722Z\",\n fill: \"black\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.127 166.223H114.158C113.391 166.223 112.769 166.844 112.769 167.611V168.344C112.769 169.111 113.391 169.733 114.158 169.733H164.127C164.894 169.733 165.516 169.111 165.516 168.344V167.611C165.516 166.844 164.894 166.223 164.127 166.223Z\",\n fill: \"#454B51\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.205 169.73H91.0315C89.8377 169.73 89.3383 168.892 88.8858 167.585L78.9884 129.599C78.4345 127.763 79.5736 127.453 81.1341 127.453H128.302C129.472 127.453 130.044 128.112 130.448 129.599L140.352 167.593C140.694 169.023 139.943 169.73 138.205 169.73Z\",\n fill: \"#454B51\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.515 150.082C111.451 150.082 113.021 149.417 113.021 148.597C113.021 147.778 111.451 147.113 109.515 147.113C107.58 147.113 106.01 147.778 106.01 148.597C106.01 149.417 107.58 150.082 109.515 150.082Z\",\n fill: \"white\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M213.587 169.797H84.9398V178.074H213.587V169.797Z\",\n fill: \"white\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M212.806 170.578V177.295H85.7201V170.578H212.806ZM213.587 169.797H84.9398V178.075H213.587V169.797Z\",\n fill: \"black\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.387 221.688H82.7726C80.5216 221.688 78.6958 220.128 78.6958 218.207C78.6958 216.283 80.5216 214.723 82.7726 214.723H127.387C127.387 214.723 124.126 217.671 127.387 221.688Z\",\n fill: \"white\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.387 222.082H82.7725C80.3089 222.082 78.3055 220.343 78.3055 218.21C78.3055 216.076 80.3089 214.336 82.7725 214.336H127.387C127.466 214.336 127.543 214.36 127.609 214.404C127.674 214.449 127.724 214.513 127.753 214.586C127.781 214.66 127.786 214.74 127.768 214.817C127.749 214.894 127.707 214.964 127.648 215.017C127.527 215.126 124.701 217.777 127.689 221.454C127.737 221.511 127.766 221.58 127.775 221.653C127.784 221.727 127.772 221.802 127.74 221.868C127.708 221.935 127.659 221.992 127.596 222.032C127.533 222.071 127.461 222.092 127.387 222.092V222.082ZM82.7725 215.116C80.7399 215.116 79.0858 216.503 79.0858 218.21C79.0858 219.917 80.7399 221.302 82.7725 221.302H126.61C124.715 218.487 125.779 216.201 126.55 215.116H82.7725Z\",\n fill: \"white\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.445 242.339H73.6944C71.0962 242.339 68.9915 240.541 68.9915 238.322C68.9915 236.107 71.0962 234.309 73.6944 234.309H139.445C139.445 234.309 135.995 238.322 139.445 242.339Z\",\n fill: \"white\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.296 242.733H73.6944C70.8854 242.733 68.6013 240.757 68.6013 238.326C68.6013 235.896 70.8854 233.922 73.6944 233.922H140.296L139.742 234.566C139.611 234.72 136.555 238.381 139.742 242.089L140.296 242.733ZM73.6944 234.702C71.3166 234.702 69.3816 236.329 69.3816 238.326C69.3816 240.323 71.3166 241.952 73.6944 241.952H138.649C136.547 238.917 137.903 235.968 138.694 234.702H73.6944Z\",\n fill: \"black\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.387 222.082H82.7725C80.3089 222.082 78.3055 220.343 78.3055 218.21C78.3055 215.929 80.1431 214.336 82.7725 214.336H127.387C127.466 214.336 127.543 214.36 127.609 214.404C127.674 214.449 127.724 214.513 127.753 214.586C127.781 214.66 127.786 214.74 127.768 214.817C127.749 214.894 127.707 214.964 127.648 215.017C127.527 215.126 124.701 217.777 127.689 221.454C127.737 221.511 127.766 221.58 127.775 221.653C127.784 221.727 127.772 221.802 127.74 221.868C127.708 221.935 127.659 221.992 127.596 222.032C127.533 222.071 127.461 222.092 127.387 222.092V222.082ZM82.7725 215.116C80.5663 215.116 79.0858 216.359 79.0858 218.21C79.0858 219.915 80.7399 221.302 82.7725 221.302H126.61C124.715 218.487 125.779 216.201 126.55 215.116H82.7725Z\",\n fill: \"black\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.3506 222.25L129.825 222.279C132.469 222.279 134.612 224.998 134.612 228.351C134.612 231.703 132.455 234.311 129.812 234.311L81.3506 234.297V222.25Z\",\n fill: \"#2760AD\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.812 234.7L81.3505 234.687C81.2471 234.687 81.1479 234.646 81.0747 234.572C81.0015 234.5 80.9604 234.4 80.9604 234.297C80.9604 234.193 81.0015 234.094 81.0747 234.021C81.1479 233.948 81.2471 233.906 81.3505 233.906L129.812 233.92C132.242 233.92 134.222 231.421 134.222 228.351C134.222 225.219 132.25 222.669 129.825 222.669L81.3505 222.64C81.2471 222.64 81.1479 222.599 81.0747 222.525C81.0015 222.452 80.9604 222.353 80.9604 222.25C80.9604 222.146 81.0015 222.048 81.0747 221.974C81.1479 221.901 81.2471 221.859 81.3505 221.859L129.825 221.889C132.679 221.889 135.002 224.788 135.002 228.351C135.002 231.915 132.722 234.7 129.812 234.7Z\",\n fill: \"black\"\n })), _path63 || (_path63 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.6715 243.02C96.3879 243.02 97.7807 245.806 97.7807 249.238C97.7807 252.673 96.3879 255.457 94.6715 255.457L59.9095 254.948L94.6715 243.02Z\",\n fill: \"white\"\n })), _path64 || (_path64 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.8494 255.846H59.9191C59.8157 255.846 59.7165 255.805 59.6433 255.731C59.5701 255.659 59.5291 255.559 59.5291 255.456C59.5291 255.352 59.5701 255.254 59.6433 255.18C59.7165 255.107 59.8157 255.065 59.9191 255.065H92.8494C94.3952 255.065 95.8777 254.451 96.9707 253.359C98.0638 252.265 98.6779 250.783 98.6779 249.237C98.6779 247.691 98.0638 246.209 96.9707 245.116C95.8777 244.023 94.3952 243.409 92.8494 243.409H59.9191C59.8157 243.409 59.7165 243.367 59.6433 243.295C59.5701 243.222 59.5291 243.122 59.5291 243.018C59.5291 242.915 59.5701 242.816 59.6433 242.743C59.7165 242.67 59.8157 242.629 59.9191 242.629H92.8494C94.6022 242.629 96.2831 243.325 97.5225 244.564C98.7618 245.804 99.4581 247.485 99.4581 249.237C99.4581 250.99 98.7618 252.671 97.5225 253.91C96.2831 255.149 94.6022 255.846 92.8494 255.846Z\",\n fill: \"black\"\n })), _path65 || (_path65 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.9498 243.02H129.23C130.878 243.022 132.457 243.678 133.621 244.844C134.786 246.01 135.439 247.591 135.439 249.238C135.439 250.055 135.279 250.864 134.967 251.618C134.654 252.372 134.197 253.058 133.619 253.635C133.042 254.213 132.357 254.671 131.602 254.983C130.848 255.296 130.039 255.457 129.222 255.457H61.9498V243.02Z\",\n fill: \"#82C6AE\"\n })), _path66 || (_path66 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.23 255.846H61.95C61.8465 255.846 61.7473 255.805 61.6741 255.731C61.6009 255.659 61.5598 255.559 61.5598 255.456C61.5598 255.352 61.6009 255.254 61.6741 255.18C61.7473 255.107 61.8465 255.065 61.95 255.065H129.23C130.776 255.065 132.259 254.451 133.352 253.359C134.445 252.265 135.059 250.783 135.059 249.237C135.059 247.691 134.445 246.209 133.352 245.116C132.259 244.023 130.776 243.409 129.23 243.409H61.95C61.8465 243.409 61.7473 243.367 61.6741 243.295C61.6009 243.222 61.5598 243.122 61.5598 243.018C61.5598 242.915 61.6009 242.816 61.6741 242.743C61.7473 242.67 61.8465 242.629 61.95 242.629H129.23C130.983 242.629 132.664 243.325 133.903 244.564C135.143 245.804 135.839 247.485 135.839 249.237C135.839 250.99 135.143 252.671 133.903 253.91C132.664 255.149 130.983 255.846 129.23 255.846Z\",\n fill: \"black\"\n })), _path67 || (_path67 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.9192 255.457H92.8494C94.4987 255.457 96.0804 254.801 97.2466 253.635C98.4128 252.469 99.068 250.887 99.068 249.238C99.068 248.422 98.9071 247.613 98.5946 246.858C98.2821 246.104 97.824 245.419 97.2466 244.841C96.6691 244.264 95.9837 243.806 95.2291 243.493C94.4747 243.18 93.6661 243.02 92.8494 243.02H59.9192C59.9192 243.02 63.2664 248.371 59.9192 255.457Z\",\n fill: \"white\"\n })), _path68 || (_path68 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.8494 255.846H59.9192C59.8535 255.846 59.7888 255.829 59.7311 255.798C59.6735 255.766 59.6248 255.72 59.5896 255.664C59.5542 255.609 59.5335 255.545 59.5294 255.48C59.5253 255.413 59.538 255.348 59.5662 255.288C62.773 248.5 59.6189 243.276 59.5876 243.225C59.5507 243.166 59.5303 243.099 59.5284 243.029C59.5267 242.959 59.5436 242.89 59.5775 242.829C59.6113 242.768 59.6609 242.717 59.721 242.682C59.7811 242.647 59.8495 242.629 59.9192 242.629H92.8494C94.6022 242.629 96.2831 243.325 97.5225 244.564C98.7619 245.804 99.4582 247.485 99.4582 249.237C99.4582 250.99 98.7619 252.671 97.5225 253.91C96.2831 255.149 94.6022 255.846 92.8494 255.846ZM60.522 255.065H92.8494C94.3953 255.065 95.8778 254.451 96.9708 253.359C98.0639 252.265 98.6779 250.783 98.6779 249.237C98.6779 247.691 98.0639 246.209 96.9708 245.116C95.8778 244.023 94.3953 243.409 92.8494 243.409H60.5688C61.3159 244.972 62.9524 249.424 60.522 255.065Z\",\n fill: \"black\"\n })), _path69 || (_path69 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.9208 256.133H133.326C133.954 256.133 134.575 256.256 135.155 256.496C135.734 256.736 136.262 257.088 136.705 257.532C137.149 257.975 137.5 258.502 137.74 259.081C137.981 259.662 138.104 260.283 138.103 260.91C138.103 263.547 135.958 265.509 133.326 265.509H79.9208V256.133Z\",\n fill: \"black\"\n })), _path70 || (_path70 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.326 265.903H79.9208C79.8174 265.903 79.7181 265.861 79.6449 265.789C79.5718 265.715 79.5306 265.616 79.5306 265.512C79.5306 265.409 79.5718 265.31 79.6449 265.237C79.7181 265.163 79.8174 265.123 79.9208 265.123H133.326C135.787 265.123 137.714 263.273 137.714 260.913C137.712 259.75 137.249 258.635 136.427 257.813C135.605 256.991 134.49 256.528 133.326 256.526H79.9208C79.8174 256.526 79.7181 256.485 79.6449 256.412C79.5718 256.339 79.5306 256.239 79.5306 256.136C79.5306 256.032 79.5718 255.933 79.6449 255.86C79.7181 255.787 79.8174 255.746 79.9208 255.746H133.326C134.696 255.747 136.01 256.292 136.979 257.261C137.947 258.23 138.492 259.543 138.494 260.913C138.494 263.71 136.219 265.903 133.326 265.903Z\",\n fill: \"black\"\n })), _path71 || (_path71 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.477 234.687H76.7803C76.6769 234.687 76.5776 234.646 76.5045 234.572C76.4313 234.5 76.3903 234.4 76.3903 234.297C76.3903 234.193 76.4313 234.094 76.5045 234.021C76.5776 233.948 76.6769 233.906 76.7803 233.906H98.477C99.9711 233.906 101.404 233.314 102.46 232.257C103.517 231.201 104.11 229.767 104.11 228.273C104.11 226.78 103.517 225.347 102.46 224.29C101.404 223.234 99.9711 222.64 98.477 222.64H76.7803C76.6769 222.64 76.5776 222.599 76.5045 222.525C76.4313 222.452 76.3903 222.353 76.3903 222.25C76.3903 222.146 76.4313 222.048 76.5045 221.974C76.5776 221.901 76.6769 221.859 76.7803 221.859H98.477C100.178 221.859 101.809 222.535 103.012 223.738C104.215 224.941 104.891 226.572 104.891 228.273C104.891 229.975 104.215 231.605 103.012 232.808C101.809 234.011 100.178 234.687 98.477 234.687Z\",\n fill: \"black\"\n })), _path72 || (_path72 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.8379 265.466H95.1335C95.751 265.466 96.3625 265.345 96.9331 265.109C97.5037 264.873 98.0222 264.527 98.4589 264.09C98.8956 263.654 99.2421 263.135 99.4784 262.565C99.7148 261.994 99.8365 261.383 99.8365 260.765C99.8367 260.148 99.7153 259.536 99.479 258.965C99.2427 258.395 98.8963 257.876 98.4595 257.44C98.0228 257.002 97.5043 256.656 96.9336 256.42C96.3628 256.184 95.7512 256.062 95.1335 256.062H63.8379C63.8379 256.062 66.8321 259.708 63.8379 265.466Z\",\n fill: \"white\"\n })), _path73 || (_path73 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.4769 234.686H75.2393L75.8342 234.033C81.4013 227.916 76.0839 222.748 75.8537 222.524L75.1437 221.852H98.4769C100.178 221.852 101.809 222.526 103.012 223.73C104.215 224.933 104.891 226.564 104.891 228.265C104.891 229.966 104.215 231.597 103.012 232.8C101.809 234.003 100.178 234.678 98.4769 234.678V234.686ZM76.9694 233.906H98.4769C99.971 233.906 101.404 233.313 102.46 232.256C103.517 231.2 104.11 229.766 104.11 228.273C104.11 226.779 103.517 225.346 102.46 224.29C101.404 223.233 99.971 222.639 98.4769 222.639H76.987C78.3115 224.295 81.0618 228.801 76.9694 233.906Z\",\n fill: \"black\"\n })), _path74 || (_path74 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.1335 265.858H63.1942L63.4907 265.29C66.321 259.847 63.6506 256.453 63.5356 256.317L63.0187 255.681H95.1335C95.8106 255.667 96.4836 255.789 97.113 256.039C97.7423 256.289 98.3156 256.662 98.7991 257.136C99.2826 257.611 99.6668 258.176 99.9289 258.801C100.191 259.425 100.326 260.096 100.326 260.772C100.326 261.45 100.191 262.12 99.9289 262.745C99.6668 263.369 99.2826 263.935 98.7991 264.409C98.3156 264.883 97.7423 265.256 97.113 265.506C96.4836 265.756 95.8106 265.878 95.1335 265.865V265.858ZM64.4641 265.078H95.1335C95.7075 265.091 96.2781 264.988 96.8119 264.777C97.3457 264.566 97.832 264.25 98.2423 263.849C98.6525 263.447 98.9784 262.967 99.2009 262.438C99.4234 261.909 99.5381 261.341 99.5381 260.767C99.5381 260.193 99.4234 259.625 99.2009 259.095C98.9784 258.566 98.6525 258.087 98.2423 257.685C97.832 257.283 97.3457 256.968 96.8119 256.757C96.2781 256.545 95.7075 256.443 95.1335 256.455H64.5597C65.2774 257.721 66.4634 260.791 64.4641 265.078Z\",\n fill: \"black\"\n })), _path75 || (_path75 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.123 234.295H98.4771C100.073 234.295 101.604 233.66 102.733 232.531C103.862 231.403 104.497 229.874 104.499 228.277C104.499 227.486 104.343 226.703 104.041 225.972C103.738 225.241 103.295 224.577 102.736 224.018C102.176 223.459 101.513 223.014 100.782 222.712C100.051 222.409 99.268 222.254 98.4771 222.254H76.123C76.123 222.254 82.0257 227.809 76.123 234.295Z\",\n fill: \"white\"\n })), _path76 || (_path76 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.4769 234.686H75.2393L75.8342 234.033C81.4013 227.916 76.0839 222.748 75.8537 222.524L75.1437 221.852H98.4769C100.178 221.852 101.809 222.526 103.012 223.73C104.215 224.933 104.891 226.564 104.891 228.265C104.891 229.966 104.215 231.597 103.012 232.8C101.809 234.003 100.178 234.678 98.4769 234.678V234.686ZM76.9694 233.906H98.4769C99.971 233.906 101.404 233.313 102.46 232.256C103.517 231.2 104.11 229.766 104.11 228.273C104.11 226.779 103.517 225.346 102.46 224.29C101.404 223.233 99.971 222.639 98.4769 222.639H76.987C78.3115 224.295 81.0618 228.801 76.9694 233.906Z\",\n fill: \"black\"\n })), _path77 || (_path77 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.686 243.395V250.793L82.638 247.095V243.395H78.686Z\",\n fill: \"black\"\n })), _path78 || (_path78 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.5969 198.372H114.035C115.4 198.372 116.497 196.811 116.497 194.903C116.497 192.986 115.395 191.434 114.035 191.434H79.5969C79.5969 191.434 81.4071 194.903 79.5969 198.372Z\",\n fill: \"white\"\n })), _path79 || (_path79 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.035 198.759H78.9532L79.2517 198.187C80.939 194.95 79.2674 191.644 79.2517 191.61L78.9571 191.043H114.035C115.607 191.043 116.889 192.774 116.889 194.903C116.889 197.031 115.607 198.759 114.035 198.759ZM80.2114 197.979H114.035C115.178 197.979 116.109 196.598 116.109 194.9C116.109 193.204 115.178 191.821 114.035 191.821H80.1919C80.6113 192.905 81.3018 195.378 80.2114 197.979Z\",\n fill: \"black\"\n })), _path80 || (_path80 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.6688 199.16C98.5433 199.16 97.6323 200.984 97.6323 203.233C97.6323 205.484 98.5433 207.308 99.6688 207.308L122.442 206.974L99.6688 199.16Z\",\n fill: \"white\"\n })), _path81 || (_path81 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.442 207.701H100.866C99.6987 207.677 98.587 207.196 97.7698 206.361C96.9526 205.527 96.4949 204.406 96.4949 203.237C96.4949 202.069 96.9526 200.947 97.7698 200.113C98.587 199.279 99.6987 198.797 100.866 198.773H122.442C122.545 198.773 122.645 198.814 122.718 198.887C122.791 198.961 122.832 199.06 122.832 199.163C122.832 199.266 122.791 199.366 122.718 199.439C122.645 199.512 122.545 199.553 122.442 199.553H100.866C99.9042 199.576 98.9888 199.973 98.316 200.662C97.6433 201.35 97.2665 202.275 97.2665 203.237C97.2665 204.2 97.6433 205.124 98.316 205.813C98.9888 206.501 99.9042 206.898 100.866 206.92H122.442C122.545 206.92 122.645 206.962 122.718 207.035C122.791 207.109 122.832 207.208 122.832 207.311C122.832 207.414 122.791 207.514 122.718 207.586C122.645 207.66 122.545 207.701 122.442 207.701Z\",\n fill: \"black\"\n })), _path82 || (_path82 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.112 199.16H77.0282C76.4931 199.16 75.9633 199.265 75.4689 199.47C74.9745 199.674 74.5253 199.975 74.1469 200.353C73.7685 200.731 73.4683 201.18 73.2635 201.674C73.0587 202.169 72.9532 202.698 72.9532 203.233C72.9532 204.314 73.3826 205.351 74.1468 206.115C74.911 206.879 75.9474 207.308 77.0282 207.308H121.112V199.16Z\",\n fill: \"#82C6AE\"\n })), _path83 || (_path83 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.112 207.698H77.0281C76.4341 207.711 75.8435 207.604 75.291 207.386C74.7385 207.167 74.2353 206.84 73.8108 206.425C73.3862 206.009 73.049 205.512 72.8187 204.964C72.5884 204.417 72.4698 203.828 72.4698 203.234C72.4698 202.639 72.5884 202.052 72.8187 201.504C73.049 200.956 73.3862 200.459 73.8108 200.044C74.2353 199.628 74.7385 199.301 75.291 199.083C75.8435 198.864 76.4341 198.758 77.0281 198.771H121.112C121.215 198.771 121.315 198.811 121.388 198.884C121.461 198.958 121.502 199.057 121.502 199.16C121.502 199.263 121.461 199.363 121.388 199.437C121.315 199.509 121.215 199.55 121.112 199.55H77.0281C76.5372 199.539 76.049 199.626 75.5922 199.806C75.1354 199.986 74.7192 200.255 74.368 200.599C74.0168 200.942 73.7378 201.352 73.5473 201.805C73.3568 202.257 73.2587 202.743 73.2587 203.234C73.2587 203.725 73.3568 204.211 73.5473 204.664C73.7378 205.116 74.0168 205.526 74.368 205.87C74.7192 206.213 75.1354 206.482 75.5922 206.662C76.049 206.842 76.5372 206.929 77.0281 206.917H121.112C121.215 206.917 121.315 206.959 121.388 207.032C121.461 207.106 121.502 207.205 121.502 207.308C121.502 207.411 121.461 207.511 121.388 207.584C121.315 207.657 121.215 207.698 121.112 207.698Z\",\n fill: \"black\"\n })), _path84 || (_path84 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.442 207.308H100.866C100.331 207.308 99.8017 207.203 99.3074 206.998C98.8131 206.793 98.3641 206.493 97.9858 206.115C97.6076 205.736 97.3076 205.287 97.1031 204.792C96.8985 204.299 96.7933 203.769 96.7936 203.233C96.7936 202.153 97.2227 201.117 97.9865 200.354C98.7503 199.589 99.7863 199.16 100.866 199.16H122.442C122.442 199.16 120.252 202.67 122.442 207.308Z\",\n fill: \"white\"\n })), _path85 || (_path85 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.442 207.701H100.866C99.6987 207.677 98.587 207.196 97.7698 206.361C96.9526 205.527 96.4949 204.406 96.4949 203.237C96.4949 202.069 96.9526 200.947 97.7698 200.113C98.587 199.279 99.6987 198.797 100.866 198.773H122.442C122.512 198.773 122.58 198.792 122.64 198.827C122.7 198.863 122.749 198.914 122.783 198.975C122.817 199.036 122.833 199.105 122.831 199.174C122.829 199.243 122.809 199.311 122.771 199.37C122.688 199.505 120.728 202.768 122.795 207.143C122.824 207.203 122.836 207.268 122.832 207.335C122.828 207.4 122.808 207.464 122.771 207.519C122.737 207.575 122.688 207.621 122.63 207.653C122.573 207.684 122.508 207.701 122.442 207.701ZM100.866 199.553C99.9042 199.576 98.9888 199.973 98.316 200.662C97.6433 201.35 97.2665 202.275 97.2665 203.237C97.2665 204.2 97.6433 205.124 98.316 205.813C98.9888 206.501 99.9042 206.898 100.866 206.92H121.843C120.431 203.476 121.287 200.718 121.806 199.553H100.866Z\",\n fill: \"black\"\n })), _path86 || (_path86 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.338 207.75H74.3478C73.5201 207.75 72.7263 208.079 72.141 208.664C71.5557 209.25 71.2269 210.044 71.2269 210.872C71.2269 212.599 72.6801 213.752 74.4083 213.752L109.346 213.885L109.338 207.75Z\",\n fill: \"black\"\n })), _path87 || (_path87 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.338 214.286L74.4026 214.153C72.3662 214.153 70.8311 212.746 70.8311 210.881C70.8341 209.951 71.2051 209.06 71.8629 208.403C72.5206 207.745 73.4119 207.374 74.3421 207.371H109.338C109.442 207.371 109.541 207.412 109.614 207.485C109.687 207.558 109.728 207.657 109.728 207.761C109.728 207.864 109.687 207.964 109.614 208.037C109.541 208.11 109.442 208.151 109.338 208.151H74.348C73.6247 208.154 72.9319 208.443 72.4204 208.954C71.9089 209.465 71.6202 210.159 71.6171 210.881C71.6171 212.302 72.8168 213.372 74.4085 213.372L109.346 213.505C109.449 213.505 109.549 213.546 109.622 213.62C109.695 213.693 109.736 213.792 109.736 213.895C109.736 213.999 109.695 214.099 109.622 214.171C109.549 214.244 109.449 214.286 109.346 214.286H109.338Z\",\n fill: \"black\"\n })), _path88 || (_path88 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.875 213.867H99.3704C98.5535 213.867 97.7702 213.542 97.1925 212.965C96.6149 212.387 96.2904 211.603 96.2904 210.786C96.2904 209.97 96.6149 209.187 97.1925 208.609C97.7702 208.031 98.5535 207.707 99.3704 207.707H119.875C119.875 207.707 117.913 210.094 119.875 213.867Z\",\n fill: \"white\"\n })), _path89 || (_path89 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.517 214.257H99.3704C98.4501 214.257 97.5674 213.891 96.9166 213.24C96.2659 212.589 95.9003 211.707 95.9003 210.786C95.9003 209.866 96.2659 208.983 96.9166 208.333C97.5674 207.682 98.4501 207.316 99.3704 207.316H120.7L120.176 207.954C120.103 208.042 118.41 210.208 120.22 213.687L120.517 214.257ZM99.3704 208.096C98.657 208.096 97.9728 208.38 97.4684 208.884C96.9639 209.389 96.6805 210.073 96.6805 210.786C96.6805 211.5 96.9639 212.184 97.4684 212.689C97.9728 213.193 98.657 213.477 99.3704 213.477H119.249C118.127 210.92 118.705 209.025 119.173 208.096H99.3704Z\",\n fill: \"black\"\n })), _path90 || (_path90 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M189.471 201.144H145.426C145.323 201.144 145.224 201.103 145.151 201.029C145.077 200.956 145.036 200.857 145.036 200.754C145.036 200.65 145.077 200.551 145.151 200.478C145.224 200.405 145.323 200.363 145.426 200.363H189.471C189.574 200.363 189.674 200.405 189.747 200.478C189.82 200.551 189.862 200.65 189.862 200.754C189.862 200.857 189.82 200.956 189.747 201.029C189.674 201.103 189.574 201.144 189.471 201.144Z\",\n fill: \"black\"\n })), _path91 || (_path91 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.679 265.865C167.575 265.865 167.476 265.824 167.403 265.751C167.329 265.677 167.289 265.579 167.289 265.474V200.75C167.289 200.646 167.329 200.547 167.403 200.473C167.476 200.4 167.575 200.359 167.679 200.359C167.783 200.359 167.882 200.4 167.955 200.473C168.028 200.547 168.069 200.646 168.069 200.75V265.474C168.069 265.579 168.028 265.677 167.955 265.751C167.882 265.824 167.783 265.865 167.679 265.865Z\",\n fill: \"black\"\n })), _path92 || (_path92 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176 265.862H159.356C159.252 265.862 159.153 265.821 159.08 265.748C159.007 265.675 158.965 265.576 158.965 265.472C158.965 265.368 159.007 265.269 159.08 265.196C159.153 265.123 159.252 265.082 159.356 265.082H176C176.104 265.082 176.203 265.123 176.276 265.196C176.349 265.269 176.391 265.368 176.391 265.472C176.391 265.576 176.349 265.675 176.276 265.748C176.203 265.821 176.104 265.862 176 265.862Z\",\n fill: \"black\"\n })), _path93 || (_path93 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M245.024 51.4383L228.495 75.4381C226.244 78.7073 228.238 83.2012 232.173 83.7246L262.556 87.7683C266.774 88.3296 269.909 83.9566 268.025 80.1422L254.17 52.0988C252.373 48.4606 247.326 48.0959 245.024 51.4383Z\",\n fill: \"#2760AD\"\n })), _path94 || (_path94 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M232.894 81.5749C231.789 81.4281 230.828 80.7311 230.325 79.7115C229.821 78.6915 229.879 77.5618 230.48 76.6887L247.05 52.6285C247.651 51.7561 248.67 51.3227 249.775 51.4696C250.88 51.6168 251.84 52.3134 252.344 53.3331L266.234 81.4471C266.738 82.4671 266.68 83.5968 266.078 84.4699C265.477 85.3423 264.459 85.7757 263.354 85.6288L232.894 81.5749Z\",\n fill: \"white\"\n })), _path95 || (_path95 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M248.364 59.9735L250.299 60.2311C251.543 60.3967 252.501 61.5287 252.438 62.7593L252.308 65.2836C252.303 65.3763 252.292 65.4679 252.276 65.558L250.899 73.165C250.701 74.2612 249.699 74.9703 248.563 74.8191C247.424 74.6677 246.508 73.6996 246.427 72.5633L245.869 64.702C245.862 64.611 245.861 64.5199 245.866 64.4296L245.996 61.9023C246.059 60.6714 247.119 59.8079 248.364 59.9735ZM248.209 76.9159L248.737 76.9862C249.85 77.1344 250.707 78.1468 250.65 79.2476C250.594 80.3484 249.645 81.1206 248.532 80.9728L248.004 80.9024C246.891 80.7543 246.035 79.7418 246.091 78.6411C246.148 77.5403 247.096 76.7677 248.209 76.9159Z\",\n fill: \"#2760AD\"\n })), _path96 || (_path96 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.486 243.172H112.787V255.186H113.486V243.172Z\",\n fill: \"black\"\n })), _path97 || (_path97 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.442 243.172H114.883V255.186H115.442V243.172Z\",\n fill: \"black\"\n })), _path98 || (_path98 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116 222.219H115.302V233.953H116V222.219Z\",\n fill: \"#F0F8FF\"\n })), _path99 || (_path99 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.956 222.219H117.397V233.953H117.956V222.219Z\",\n fill: \"#F0F8FF\"\n })), _path100 || (_path100 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.6357 208.113H80.9373V214.26H81.6357V208.113Z\",\n fill: \"#F0F8FF\"\n })), _path101 || (_path101 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.5914 208.113H83.0326V214.26H83.5914V208.113Z\",\n fill: \"#F0F8FF\"\n })), _path102 || (_path102 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.7823 199.449H87.0839V206.853H87.7823V199.449Z\",\n fill: \"black\"\n })), _path103 || (_path103 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.738 199.449H89.1792V206.853H89.738V199.449Z\",\n fill: \"black\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_6310_21545\",\n x1: 297.5,\n y1: -20,\n x2: 243.255,\n y2: 192.36,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEF8EE\",\n stopOpacity: 0.5\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.655,\n stopColor: \"#F6E0DA\",\n stopOpacity: 0.57\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.88,\n stopColor: \"#F5DED8\",\n stopOpacity: 0.48\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgErrorSomethingWentWrongGraphics);\nexport default __webpack_public_path__ + \"static/media/error-something-went-wrong-graphics.f4b02a8edc407ed01236cb8b15bfd14c.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { useHelp } from \"..\";\nimport { ErrorComponent, LoadingSpinner, PageLayout } from \"shared\";\nimport { useImmer } from \"use-immer\";\nimport parse from \"html-react-parser\";\nimport \"../styles/help.styles.css\";\nimport ErrorImg from \"assets/images/error-something-went-wrong-graphics.svg\";\nimport { useNavigate } from \"react-router-dom\";\nimport { getSelectedProgram } from \"utils\";\n\nexport const HelpView = () => {\n const navigate = useNavigate();\n const { id, name } = getSelectedProgram();\n\n const [activeTabIndex, setActiveTabIndex] = useImmer(0);\n\n const { programHelp } = useHelp({ load: true, programId: id });\n const { data: helpData, isLoading, isFetching } = programHelp;\n const titles =\n helpData &&\n helpData?.map((tab, i) => {\n return (\n setActiveTabIndex(i)}\n >\n {tab?.name}\n \n );\n });\n\n const contents =\n helpData &&\n helpData\n ?.filter((_, i) => i === activeTabIndex)\n .map((tab, i) => {\n return (\n
    \n {tab?.content && parse(tab?.content)}\n
    \n );\n });\n\n const goToPreviousPage = () => {\n navigate(-1, { replace: true });\n };\n\n if (isLoading || isFetching) return ;\n\n return (\n \n
    \n {helpData?.length > 0 ? (\n
    \n
    \n
    \n

    How Can We Help You?

    \n
    \n
    \n
    \n
    \n
      {titles}
    \n
    \n
    \n
    {contents}
    \n
    \n
    \n
    \n ) : (\n
    \n \n
    \n )}\n
    \n \n );\n};\n","import { useHelpQuery } from \".\";\n\nexport const useHelp = ({ load = false, programId }) => {\n const programHelp = useHelpQuery({ load, programId });\n return {\n programHelp,\n };\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { GET_HELP, getProgramHelps } from \"..\";\n\nexport const useHelpQuery = ({ programId, load }) => {\n return useQuery({\n queryKey: [GET_HELP],\n queryFn: () => getProgramHelps(programId),\n enabled: !!programId && !!load,\n });\n};\n","export const GET_HELP = \"GET_HELP\";\n","import { Axios } from \"utils\";\n\nexport const getProgramHelps = async (programId) => {\n const res = await Axios.get(`/v2/portal/programs/${programId}/help`);\n return res.data;\n};\n","import React from \"react\";\nimport parse from \"html-react-parser\";\nimport { usePrivacy } from \"..\";\nimport { LoadingSpinner } from \"shared\";\n\nexport const PrivacyAndPolicy = () => {\n const { settingsInfo } = usePrivacy({ load: true, key: \"page_privacy\" });\n const { data, isLoading } = settingsInfo;\n\n if (isLoading) return ;\n\n return

    {data ? parse(data?.content) : \"\"}

    ;\n};\n","import { useSettings } from \"master\";\n\nexport const usePrivacy = ({ load = false, key = \"\" }) => {\n const { settingsInfo } = useSettings({ load, key });\n return {\n settingsInfo,\n };\n};\n","import React from \"react\";\nimport { MainHeader, PageLayout } from \"shared\";\nimport { PrivacyAndPolicy } from \".\";\n\nexport const Privacy = () => {\n return (\n <>\n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport { MainHeader, PageLayout } from \"shared\";\nimport { FrequentlyQuestions } from \".\";\n\nexport const Faq = () => {\n return (\n <>\n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport parse from \"html-react-parser\";\nimport { useFaq } from \"..\";\nimport { LoadingSpinner } from \"shared\";\n\nexport const FrequentlyQuestions = () => {\n const { settingsInfo } = useFaq({\n load: true,\n key: \"page_FAQ\",\n });\n const { data, isLoading } = settingsInfo;\n\n if (isLoading) return ;\n\n return

    {data ? parse(data?.content) : \"\"}

    ;\n};\n","import { useSettings } from \"master\";\n\nexport const useFaq = ({ load = false, key = \"\" }) => {\n const { settingsInfo } = useSettings({ load, key });\n return {\n settingsInfo,\n };\n};\n","import React from \"react\";\nimport { LoadingSpinner } from \"shared\";\nimport parse from \"html-react-parser\";\nimport { useTermsAndCondition } from \"..\";\n\nexport const TermsCondition = () => {\n const { settingsInfo } = useTermsAndCondition({\n load: true,\n key: \"page_terms\",\n });\n const { data, isLoading } = settingsInfo;\n\n if (isLoading) return ;\n\n return

    {data ? parse(data?.content) : \"\"}

    ;\n};\n","import { useSettings } from \"master\";\n\nexport const useTermsAndCondition = ({ load = false, key = \"\" }) => {\n const { settingsInfo } = useSettings({ load, key });\n return {\n settingsInfo,\n };\n};\n","import React from \"react\";\nimport { MainHeader, PageLayout } from \"shared\";\nimport { TermsCondition } from \".\";\n\nexport const TermsAndConditions = () => {\n return (\n <>\n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport {\n AssessmentList,\n AssessmentResult,\n ExpiredPage,\n Questionnaire,\n QuestionsAllMobile,\n Review,\n} from \"..\";\nimport { Routes, Route } from \"react-router-dom\";\nimport \"./styles/assessment.styles.css\";\nimport \"./styles/assessmentQuestions.styles.css\";\nimport \"./styles/assessmentReview.styles.css\";\nimport \"./styles/assessmentResult.styles.css\";\n\nexport const Assessment = () => {\n return (\n \n } />\n } />\n } />\n } />\n } />\n } />\n \n );\n};\n","import { useImmer } from \"use-immer\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport {\n createAssessmentSchedule,\n useAssessmentQuery,\n useAssessmentScheduleQuery,\n useAssessmentSlotQuery,\n useAssessmentResultQuery,\n GET_ASSESSMENT_LIST,\n} from \"..\";\nimport { getSelectedProgram } from \"utils\";\n\nexport const useAssessment = ({ load = false, assessmentMasterId = null }) => {\n const queryClient = useQueryClient();\n\n const [isSlotInfoOpen, setIsSlotInfoOpen] = useImmer({\n type: \"\",\n isOpen: false,\n data: null,\n });\n const [selectedSlotId, setSelectedSlotId] = useImmer(null);\n const [assessmentPayload, setAssessmentPayload] = useImmer({\n assessmentId: null,\n scheduleMasterId: null,\n });\n const [scheduleId, setScheduleId] = useImmer(null);\n\n const isScheduleModalOpen =\n isSlotInfoOpen.isOpen && isSlotInfoOpen.type === \"scheduleModal\";\n\n const selectedProgram = getSelectedProgram();\n const studentBatchId = selectedProgram?.studentBatchId;\n\n const assessmentsQuery = useAssessmentQuery({\n load,\n studentBatchId,\n });\n\n const assessmentScheduleQuery = useAssessmentScheduleQuery({\n assessmentId: assessmentPayload.assessmentId,\n studentBatchId,\n scheduleMasterId: assessmentPayload.scheduleMasterId,\n isModalOpen: isScheduleModalOpen,\n });\n const assessmentSlotQuery = useAssessmentSlotQuery({\n scheduleId,\n isModalOpen: isScheduleModalOpen,\n });\n\n const assessmentResultQuery = useAssessmentResultQuery({\n assessmentMasterId,\n });\n\n const createSchedule = useMutation({\n mutationFn: createAssessmentSchedule,\n onError: (e) => {\n setIsSlotInfoOpen((draft) => {\n draft.isOpen = true;\n draft.type = \"unsuccess\";\n draft.data = { ...draft.data, message: e.response.data.message };\n return draft;\n });\n },\n onSuccess: (e) => {\n queryClient.invalidateQueries([GET_ASSESSMENT_LIST, studentBatchId]);\n setIsSlotInfoOpen((draft) => {\n draft.isOpen = true;\n draft.type = \"success\";\n draft.data = { ...draft.data };\n return draft;\n });\n },\n });\n\n const onAssessmentScheduleModal = ({\n assessmentId = null,\n scheduleMasterId = null,\n }) => {\n setScheduleId(null);\n setSelectedSlotId(null);\n setAssessmentPayload((draft) => {\n draft = {\n assessmentId,\n scheduleMasterId,\n };\n return draft;\n });\n setIsSlotInfoOpen((draft) => {\n draft.isOpen = true;\n draft.type = \"scheduleModal\";\n draft.data = null;\n return draft;\n });\n };\n\n return {\n selectedSlotId,\n setSelectedSlotId,\n scheduleId,\n setScheduleId,\n createSchedule,\n assessmentsQuery,\n assessmentScheduleQuery,\n assessmentSlotQuery,\n isSlotInfoOpen,\n setIsSlotInfoOpen,\n onAssessmentScheduleModal,\n assessmentResultQuery,\n studentBatchId,\n };\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { getAssessmentList, GET_ASSESSMENT_LIST } from \"..\";\n\nexport const useAssessmentQuery = ({ load = false, studentBatchId = null }) => {\n return useQuery({\n queryKey: [GET_ASSESSMENT_LIST, studentBatchId],\n queryFn: () => getAssessmentList(studentBatchId),\n enabled: load && !!studentBatchId,\n refetchOnWindowFocus: true,\n });\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { getAssessmentSchedule, GET_ASSESSMENT_SCHEDULE } from \"..\";\n\nexport const useAssessmentScheduleQuery = ({\n assessmentId = null,\n studentBatchId = null,\n isModalOpen = false,\n}) => {\n return useQuery({\n queryKey: [GET_ASSESSMENT_SCHEDULE, assessmentId, studentBatchId],\n queryFn: () => getAssessmentSchedule({ assessmentId, studentBatchId }),\n enabled: !!assessmentId && !!studentBatchId && isModalOpen,\n });\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { getAssessmentSlot, GET_ASSESSMENT_SLOT } from \"..\";\n\nexport const useAssessmentSlotQuery = ({\n isModalOpen = false,\n scheduleId = null,\n}) => {\n return useQuery({\n queryKey: [GET_ASSESSMENT_SLOT, scheduleId],\n queryFn: () => getAssessmentSlot(scheduleId),\n enabled: !!scheduleId && isModalOpen,\n });\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { assessmentResult, GET_ASSESSMENT_RESULT } from \"..\";\n\nexport const useAssessmentResultQuery = ({ assessmentMasterId }) => {\n return useQuery({\n queryKey: [GET_ASSESSMENT_RESULT, assessmentMasterId],\n queryFn: () => assessmentResult(assessmentMasterId),\n enabled: !!assessmentMasterId,\n });\n};\n","import { useEffect, useRef } from \"react\";\nimport moment from \"moment\";\nimport { useImmer } from \"use-immer\";\n\nexport const useTimeout = ({ currentTime, startTime }) => {\n const intervalRef = useRef();\n\n const calculateTimeDifference = (start, current) => {\n const startAt = moment(start).format(\"YYYY-MM-DDTHH:mm:ss\");\n const currTime = moment(current).format(\"YYYY-MM-DDTHH:mm:ss\");\n return new Date(startAt) - new Date(currTime);\n };\n\n const [timer, setTimer] = useImmer(() =>\n calculateTimeDifference(startTime, currentTime)\n );\n\n useEffect(() => {\n clearInterval(intervalRef.current);\n\n const newTimer = calculateTimeDifference(startTime, currentTime);\n setTimer(newTimer);\n\n const interval = setInterval(() => {\n setTimer((draft) => {\n if (isNaN(draft) || draft <= 0) {\n clearInterval(intervalRef.current);\n return 0;\n }\n return draft - 1000;\n });\n }, 1000);\n intervalRef.current = interval;\n return () => clearInterval(intervalRef.current);\n }, [currentTime, startTime, setTimer]);\n\n useEffect(() => {\n if (timer <= 0) {\n clearInterval(intervalRef.current);\n }\n }, [timer]);\n\n return {\n timer,\n };\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _rect, _path66, _path67, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgAssessmetEmptyGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 377,\n height: 286,\n viewBox: \"0 0 377 286\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M205.787 2.37963C251.38 4.9345 298.03 11.2968 329.984 35.9639C361.635 60.398 366.719 95.6234 370.661 129.658C375.154 168.446 387.211 211.639 353.766 241.293C318.982 272.135 258.254 284.397 205.787 275.845C159.371 268.279 188.853 222.71 154.505 197.972C118.465 172.016 37.5849 205.666 2.80427 129.658C-7.95162 89.7772 20.1722 46.9419 61.6595 20.9277C100.623 -3.50369 155.261 -0.451682 205.787 2.37963Z\",\n fill: \"url(#paint0_linear_6310_21846)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M251.37 99.5197C251.302 99.6002 251.217 99.6647 251.123 99.7099C251.027 99.754 250.923 99.7782 250.818 99.7788L194.132 100.321C194.036 100.322 193.94 100.305 193.851 100.269C193.762 100.233 193.681 100.179 193.612 100.112C193.475 99.9766 193.397 99.7927 193.395 99.5999L193.03 61.2845C193.028 61.0913 193.103 60.9051 193.238 60.767C193.373 60.6288 193.558 60.5501 193.751 60.5481L250.432 60.0111C250.626 60.0091 250.812 60.084 250.95 60.2192C251.088 60.3544 251.167 60.539 251.169 60.7323L251.535 99.048C251.537 99.2191 251.478 99.3863 251.37 99.5197ZM194.848 98.8557L250.072 98.3342L249.716 61.4766L194.495 62.0008L194.848 98.8557Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M232.905 89.2591C232.809 89.373 232.68 89.4548 232.536 89.4931C232.392 89.5317 232.24 89.5253 232.1 89.4746C231.96 89.424 231.838 89.3316 231.753 89.2099C231.666 89.0882 231.62 88.9431 231.619 88.794L231.5 70.1339C231.485 70.031 231.492 69.926 231.521 69.826C231.549 69.726 231.599 69.6333 231.667 69.554C231.734 69.4749 231.818 69.4111 231.912 69.3669C232.006 69.3228 232.109 69.2993 232.213 69.2981C232.317 69.2969 232.42 69.318 232.515 69.3599C232.61 69.4018 232.696 69.4638 232.765 69.5413C232.834 69.619 232.886 69.7105 232.917 69.8099C232.948 69.9092 232.958 70.014 232.945 70.1173L233.045 88.7996C233.051 88.9641 233.002 89.1259 232.905 89.2591Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.905 89.2591C222.809 89.373 222.68 89.4548 222.536 89.4931C222.392 89.5317 222.24 89.5253 222.1 89.4746C221.96 89.424 221.838 89.3316 221.753 89.2099C221.666 89.0882 221.62 88.9431 221.619 88.794L221.5 70.1339C221.485 70.031 221.492 69.926 221.521 69.826C221.549 69.726 221.599 69.6333 221.667 69.554C221.734 69.4749 221.818 69.4111 221.912 69.3669C222.006 69.3228 222.109 69.2993 222.213 69.2981C222.317 69.2969 222.42 69.318 222.515 69.3599C222.61 69.4018 222.696 69.4638 222.765 69.5413C222.834 69.619 222.886 69.7105 222.917 69.8099C222.948 69.9092 222.958 70.014 222.945 70.1173L223.045 88.7996C223.051 88.9641 223.002 89.1259 222.905 89.2591Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.829 89.3959C237.733 89.5098 237.605 89.5915 237.461 89.63C237.317 89.6686 237.164 89.6622 237.024 89.6114C236.884 89.5607 236.763 89.4685 236.677 89.3467C236.591 89.225 236.544 89.0799 236.543 88.9308L236.431 70.2624C236.417 70.1601 236.425 70.0559 236.454 69.957C236.484 69.8578 236.534 69.7661 236.601 69.6878C236.668 69.6096 236.752 69.5465 236.845 69.5028C236.939 69.4591 237.041 69.4357 237.144 69.4344C237.247 69.4331 237.35 69.4536 237.444 69.4947C237.539 69.536 237.624 69.5967 237.693 69.6731C237.763 69.7496 237.815 69.84 237.847 69.9382C237.879 70.0364 237.89 70.1403 237.878 70.243L237.998 88.9183C238.001 89.0926 237.941 89.2619 237.829 89.3959Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M227.829 89.3959C227.733 89.5098 227.605 89.5915 227.461 89.63C227.317 89.6686 227.164 89.6622 227.024 89.6114C226.884 89.5607 226.763 89.4685 226.677 89.3467C226.591 89.225 226.544 89.0799 226.543 88.9308L226.431 70.2624C226.417 70.1601 226.425 70.0559 226.454 69.957C226.484 69.8578 226.534 69.7661 226.601 69.6878C226.668 69.6096 226.752 69.5465 226.845 69.5028C226.939 69.4591 227.041 69.4357 227.144 69.4344C227.247 69.4331 227.35 69.4536 227.444 69.4947C227.539 69.536 227.624 69.5967 227.693 69.6731C227.763 69.7496 227.815 69.84 227.847 69.9382C227.879 70.0364 227.89 70.1403 227.878 70.243L227.998 88.9183C228.001 89.0926 227.941 89.2619 227.829 89.3959Z\",\n fill: \"black\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M218.044 89.5025C217.948 89.6164 217.82 89.6982 217.675 89.7367C217.532 89.7752 217.379 89.7687 217.239 89.7182C217.099 89.6674 216.978 89.5751 216.892 89.4533C216.806 89.3316 216.759 89.1865 216.758 89.0375L216.678 76.1275C216.664 76.0252 216.671 75.9211 216.701 75.8219C216.73 75.7229 216.78 75.6313 216.847 75.5529C216.915 75.4747 216.998 75.4116 217.092 75.3679C217.185 75.3243 217.287 75.3009 217.39 75.2995C217.493 75.2981 217.596 75.3187 217.69 75.3598C217.785 75.401 217.87 75.4619 217.94 75.5383C218.009 75.6147 218.062 75.705 218.093 75.8032C218.125 75.9016 218.136 76.0054 218.125 76.1081L218.205 89.0179C218.212 89.1936 218.154 89.3656 218.044 89.5025Z\",\n fill: \"black\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.226 88.6037C219.965 88.3554 219.098 89.0309 218.77 91.0176C217.999 95.6745 217.777 96.3241 217.285 98.6743L217.399 87.8686C217.399 86.2435 216.267 85.5005 215.168 85.6078C214.07 85.715 213.356 86.6547 213.424 88.264L212.938 98.8691L212.143 87.8885C212.137 87.6006 212.072 87.317 211.951 87.0556C211.83 86.7942 211.656 86.5609 211.44 86.3704C211.224 86.1799 210.971 86.0362 210.697 85.9488C210.422 85.8612 210.132 85.8317 209.846 85.862C208.753 86.0131 208.009 87.1654 208.185 88.4448L208.501 98.9962L207.635 88.9534C207.546 87.7256 206.762 87.1931 205.704 87.2011C204.645 87.209 203.801 88.0057 203.801 88.9891C203.801 91.3255 203.86 98.0068 203.868 98.9227C203.904 102.405 201.227 104.684 199.136 106.732C196.543 109.275 179.511 123.395 179.511 123.395L192.836 136.508C192.836 136.508 210.563 120.512 215.427 116.156C222.005 110.265 221.915 97.5499 222.672 92.1957C222.992 89.8911 222.472 88.856 221.226 88.6037Z\",\n fill: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M215.379 86.4001C215.534 86.3976 215.688 86.4259 215.831 86.4832C215.975 86.5405 216.105 86.6257 216.216 86.7339C216.354 86.8874 216.46 87.0666 216.528 87.2613C216.596 87.4561 216.625 87.6624 216.612 87.8683L216.498 98.674C216.497 98.8708 216.568 99.061 216.699 99.2078C216.831 99.3546 217.012 99.4477 217.207 99.4688H217.293C217.475 99.4685 217.651 99.4056 217.793 99.2906C217.934 99.1756 218.032 99.0154 218.069 98.837C218.186 98.2807 218.287 97.8218 218.387 97.3768C218.701 95.9483 218.983 94.7146 219.563 91.1464C219.86 89.3584 220.513 89.3584 220.755 89.3584C220.863 89.3597 220.971 89.371 221.077 89.3921C221.474 89.4716 222.231 89.6206 221.886 92.0801C221.753 93.0239 221.647 94.1603 221.526 95.4774C220.96 101.616 220.108 110.894 214.899 115.559C210.573 119.433 195.907 132.663 192.86 135.41L180.695 123.443C183.929 120.757 197.372 109.571 199.692 107.296L200.212 106.79C202.211 104.855 204.699 102.449 204.663 98.9105C204.663 97.7542 204.596 91.2457 204.596 88.9769C204.596 88.4385 205.095 87.9955 205.709 87.9836H205.728C206.457 87.9836 206.791 88.2875 206.844 89.0087L207.708 99.0516C207.725 99.2504 207.816 99.4356 207.964 99.5703C208.111 99.7051 208.304 99.7794 208.503 99.7787H208.551C208.757 99.7664 208.95 99.6742 209.09 99.5219C209.229 99.3694 209.304 99.1686 209.298 98.9622L208.984 88.4107C208.984 88.3809 208.984 88.3531 208.984 88.3253C208.92 87.921 209.003 87.5073 209.218 87.1591C209.298 87.0244 209.407 86.9087 209.536 86.8202C209.666 86.7316 209.812 86.6724 209.967 86.6465C210.013 86.6434 210.059 86.6434 210.104 86.6465C210.435 86.6556 210.751 86.7916 210.984 87.0264C211.218 87.2612 211.352 87.5769 211.36 87.908C211.36 87.922 211.36 87.9379 211.36 87.9518L212.154 98.9323C212.169 99.1329 212.259 99.3206 212.407 99.4574C212.554 99.5942 212.748 99.67 212.949 99.6695H212.962C213.164 99.6665 213.358 99.5864 213.503 99.4454C213.649 99.3043 213.734 99.113 213.744 98.9105L214.229 88.3054C214.231 88.2822 214.231 88.259 214.229 88.2359C214.203 87.5922 214.301 86.4995 215.258 86.4041C215.286 86.4021 215.335 86.4001 215.379 86.4001ZM215.379 85.6055C215.309 85.6055 215.238 85.6055 215.168 85.6055C214.07 85.7147 213.356 86.6525 213.424 88.2617L212.938 98.8668L212.143 87.8862C212.131 87.3469 211.911 86.8329 211.529 86.4522C211.146 86.0715 210.632 85.8535 210.093 85.8439C210.01 85.8432 209.927 85.8485 209.846 85.8598C208.753 86.0107 208.009 87.163 208.185 88.4425L208.501 98.994L207.635 88.9511C207.546 87.7312 206.775 87.1988 205.728 87.1988H205.704C204.645 87.1988 203.801 88.0035 203.801 88.9869C203.801 91.3232 203.86 98.0046 203.868 98.9204C203.904 102.403 201.227 104.682 199.136 106.73C196.543 109.273 179.511 123.392 179.511 123.392L192.836 136.506C192.836 136.506 210.563 120.51 215.427 116.154C222.005 110.263 221.915 97.5476 222.672 92.1934C222.996 89.8948 222.473 88.8597 221.23 88.6173C221.073 88.5858 220.914 88.5691 220.755 88.5676C219.75 88.5676 219.06 89.3047 218.769 91.0312C217.997 95.688 217.775 96.3377 217.282 98.688L217.398 87.8823C217.398 86.3605 216.404 85.6114 215.377 85.6114L215.379 85.6055Z\",\n fill: \"black\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.355 122.578C178.647 123.984 177.165 125.199 176.072 126.087L135.345 107.109C136.09 111.298 139.686 131.981 139.686 131.981L161.607 141.253C174.451 146.568 181.732 144.508 193.06 135.649C188.67 131.461 184.361 127.187 180.355 122.578Z\",\n fill: \"#82C6AE\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.586 107.654L136.608 107.666L175.512 126.47C175.739 126.584 175.989 126.644 176.243 126.645C176.615 126.645 176.976 126.516 177.264 126.279C178.195 125.517 179.251 124.642 180.443 123.621C182.491 125.741 189.723 133.158 192.339 135.846C186.039 141.329 180.937 143.578 174.89 143.578C170.062 143.578 164.323 142.086 156.836 138.881L132.476 128.337C132.855 126.748 133.486 123.371 134.198 119.554C135.029 115.114 135.97 110.08 136.566 107.664C136.567 107.66 136.57 107.657 136.574 107.654C136.577 107.652 136.582 107.65 136.586 107.65V107.654ZM136.586 106.859C136.403 106.858 136.226 106.918 136.082 107.03C135.938 107.143 135.835 107.3 135.791 107.477C134.609 112.263 132.18 126.748 131.528 128.8L156.539 139.612C164.027 142.817 169.85 144.38 174.908 144.38C181.81 144.38 187.257 141.476 193.51 135.897C193.51 135.897 180.735 122.785 180.516 122.541C179.165 123.689 177.906 124.744 176.771 125.673C176.625 125.792 176.442 125.858 176.253 125.859C176.122 125.859 175.993 125.827 175.877 125.767L136.963 106.951C136.847 106.891 136.718 106.86 136.586 106.859Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.369 128.734C131.369 128.949 131.385 129.051 131.415 129.051C131.444 129.051 131.482 128.965 131.531 128.806L131.369 128.734Z\",\n fill: \"black\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.354 163.273C107.775 158.177 145.38 156.049 150.823 155.054C170.214 151.511 196.807 151.366 227.943 167.345L250.232 161.805L229.242 192.478C229.242 192.478 187.621 158.546 144.578 184.514C155.796 199.3 166.864 219.981 173.309 247.279L192.778 259.47L156.739 265.565C156.739 265.565 146.333 219.437 120.142 194.317C106.501 181.235 105.089 167.812 106.354 163.273Z\",\n fill: \"#2760AD\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.92 183.84L116.437 183.207C116.463 183.19 118.95 181.265 120.96 177.687C122.81 174.399 124.628 168.991 122.779 161.906L123.547 161.707C125.467 169.058 123.567 174.688 121.636 178.11C119.542 181.817 117.025 183.768 116.92 183.84Z\",\n fill: \"white\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.431 250.189C151.513 234.541 142.679 211.43 122.903 191.448C117.422 185.91 113.82 180.706 111.891 175.538C110.503 171.884 109.988 167.956 110.387 164.066L111.182 164.141C110.622 170.242 111.512 178.796 123.48 190.887C132.333 199.827 139.953 210.461 146.129 222.476C151.729 233.369 155.128 243.375 157.196 249.952L156.431 250.189Z\",\n fill: \"white\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M250.232 161.805L229.242 192.478C229.242 192.478 222.333 187.908 216.227 184.463L228.088 167.31L250.232 161.805Z\",\n fill: \"black\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.309 247.278L192.778 259.469L156.739 265.564C156.739 265.564 154.49 257.966 152.277 250.96C152.273 250.96 173.273 247.123 173.309 247.278Z\",\n fill: \"black\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144.578 184.908C144.493 184.908 144.408 184.88 144.339 184.829C144.27 184.777 144.22 184.704 144.195 184.621C144.171 184.539 144.175 184.451 144.205 184.37C144.236 184.289 144.291 184.22 144.364 184.174C156.564 176.426 170.142 173.174 184.726 174.507C197.532 175.678 208.803 180.251 216.098 183.948L227.365 167.484C195.101 150.108 166.667 152.423 145.477 156.394C145.425 156.403 145.372 156.403 145.321 156.392C145.27 156.381 145.221 156.36 145.179 156.331C145.136 156.301 145.099 156.264 145.07 156.22C145.042 156.175 145.022 156.127 145.013 156.076C145.003 156.023 145.004 155.971 145.015 155.92C145.025 155.869 145.047 155.82 145.076 155.777C145.106 155.735 145.144 155.698 145.187 155.669C145.231 155.64 145.281 155.621 145.332 155.612C154.552 153.885 166.951 152.035 181.122 153.029C197.314 154.157 213.13 158.86 228.132 167.005C228.181 167.032 228.225 167.068 228.258 167.112C228.293 167.156 228.317 167.207 228.331 167.261C228.343 167.315 228.345 167.371 228.335 167.426C228.325 167.48 228.304 167.532 228.273 167.577L216.551 184.695C216.497 184.775 216.415 184.833 216.321 184.856C216.226 184.88 216.127 184.869 216.041 184.824C201.307 177.291 172.458 167.28 144.785 184.855C144.722 184.892 144.651 184.909 144.578 184.908Z\",\n fill: \"black\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.273 251.358C152.19 251.358 152.11 251.331 152.042 251.284C151.975 251.235 151.924 251.168 151.898 251.089C146.098 234.152 135.559 210.296 118.272 192.829C112.215 186.708 108.43 180.966 106.704 175.276C105.261 170.508 105.512 166.689 106.014 163.263C106.029 163.157 106.086 163.062 106.171 162.998C106.256 162.934 106.363 162.907 106.468 162.922C106.574 162.937 106.669 162.993 106.733 163.078C106.797 163.163 106.824 163.27 106.809 163.376C105.714 170.959 106.412 179.709 118.847 192.271C136.131 209.733 146.698 233.514 152.547 250.509L172.832 246.961C164.696 212.859 149.625 190.395 138.4 177.537C138.339 177.457 138.311 177.357 138.322 177.257C138.331 177.157 138.379 177.065 138.455 176.999C138.53 176.933 138.628 176.897 138.729 176.9C138.829 176.903 138.924 176.944 138.996 177.015C150.334 189.99 165.56 212.698 173.704 247.188C173.716 247.24 173.718 247.294 173.708 247.348C173.698 247.401 173.678 247.452 173.648 247.498C173.618 247.543 173.579 247.582 173.534 247.611C173.488 247.641 173.438 247.661 173.384 247.67L152.349 251.352C152.323 251.356 152.299 251.358 152.273 251.358Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.069 107.004C137.287 108.109 136.745 115.231 136.999 116.488C140.045 131.536 145.29 156.09 145.29 156.09L104.626 164.674C104.626 164.674 104.763 124.868 109.99 107.781L124.242 106.074L137.069 107.004Z\",\n fill: \"#82C6AE\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.911 164.033C105.849 164.033 105.789 164.019 105.734 163.991C105.678 163.963 105.631 163.923 105.594 163.873C105.557 163.824 105.532 163.767 105.521 163.706C105.511 163.645 105.514 163.582 105.532 163.523L117.327 123.494C117.339 123.442 117.362 123.392 117.394 123.349C117.426 123.305 117.467 123.268 117.514 123.242C117.561 123.214 117.612 123.197 117.666 123.191C117.72 123.184 117.774 123.189 117.826 123.204C117.878 123.219 117.927 123.244 117.968 123.28C118.01 123.314 118.044 123.357 118.068 123.405C118.093 123.453 118.107 123.506 118.11 123.56C118.114 123.615 118.106 123.668 118.088 123.719L106.477 163.122L144.925 155.691L139.485 132.061C139.461 131.959 139.479 131.851 139.535 131.762C139.591 131.671 139.68 131.609 139.783 131.585C139.885 131.561 139.994 131.579 140.083 131.635C140.172 131.691 140.236 131.78 140.26 131.883L145.793 155.922C145.804 155.974 145.805 156.028 145.796 156.081C145.787 156.133 145.766 156.183 145.737 156.228C145.708 156.272 145.67 156.31 145.626 156.34C145.582 156.369 145.532 156.391 145.48 156.4L105.987 164.025C105.962 164.032 105.937 164.034 105.911 164.033Z\",\n fill: \"black\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.141 155.789L106.132 162.892C105.536 165.683 105.639 166.637 105.639 166.637L145.141 155.789Z\",\n fill: \"black\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.069 177.977L142.27 181.552L144.578 184.512L158.069 177.977Z\",\n fill: \"black\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.698 250.882C167.593 250.891 167.488 250.857 167.407 250.789C167.327 250.72 167.277 250.623 167.268 250.517C167.261 250.411 167.294 250.307 167.363 250.227C167.431 250.146 167.529 250.096 167.634 250.087L172.711 249.255C172.814 249.238 172.921 249.263 173.007 249.324C173.092 249.386 173.151 249.479 173.167 249.583C173.184 249.687 173.159 249.794 173.098 249.88C173.037 249.965 172.944 250.023 172.84 250.04L167.763 250.871L167.698 250.882Z\",\n fill: \"white\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.32 253.324C168.214 253.332 168.11 253.299 168.03 253.23C167.949 253.161 167.899 253.064 167.89 252.958C167.882 252.853 167.916 252.748 167.985 252.668C168.053 252.588 168.151 252.537 168.256 252.529L173.333 251.696C173.438 251.68 173.545 251.705 173.632 251.768C173.719 251.831 173.776 251.925 173.794 252.03C173.81 252.135 173.784 252.243 173.722 252.33C173.659 252.416 173.565 252.475 173.46 252.491L168.383 253.322C168.362 253.324 168.341 253.325 168.32 253.324Z\",\n fill: \"white\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.939 174.209C226.869 174.209 226.799 174.19 226.738 174.153C226.677 174.117 226.627 174.065 226.593 174.003C226.559 173.941 226.542 173.871 226.545 173.799C226.546 173.729 226.568 173.66 226.606 173.6L229.366 169.262C229.422 169.173 229.512 169.111 229.615 169.088C229.718 169.065 229.826 169.084 229.914 169.141C230.004 169.197 230.066 169.286 230.089 169.39C230.112 169.493 230.094 169.601 230.037 169.69L227.275 174.031C227.239 174.086 227.189 174.131 227.13 174.163C227.072 174.194 227.007 174.21 226.939 174.209Z\",\n fill: \"white\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M229.175 175.374C229.104 175.374 229.034 175.354 228.972 175.318C228.911 175.282 228.861 175.23 228.826 175.167C228.793 175.104 228.776 175.034 228.779 174.963C228.781 174.892 228.802 174.823 228.841 174.763L231.601 170.424C231.657 170.334 231.747 170.271 231.849 170.248C231.952 170.225 232.06 170.243 232.149 170.3C232.238 170.357 232.301 170.446 232.324 170.549C232.347 170.652 232.329 170.759 232.272 170.849L229.511 175.189C229.475 175.246 229.425 175.293 229.367 175.325C229.308 175.357 229.241 175.374 229.175 175.374Z\",\n fill: \"white\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.387 132.632L115.606 132.481L118.006 120.086C118.896 115.104 118.783 111.193 115.469 107.11L116.085 106.609C119.592 110.928 119.725 115.027 118.789 120.23L116.387 132.632Z\",\n fill: \"#82C6AE\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.108 107.381L130.652 118.022L118.716 107.613L131.108 107.381ZM131.939 106.57L116.641 106.858L131.377 119.706L131.947 106.57H131.939Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.664 127.578L139.447 131.987L154.466 137.994L138.664 127.578Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.409 129.176C173.327 129.176 173.247 129.151 173.179 129.102C173.112 129.054 173.061 128.987 173.034 128.909C173.007 128.831 173.005 128.746 173.028 128.667C173.052 128.588 173.099 128.518 173.163 128.467L177.6 124.96C177.64 124.924 177.687 124.896 177.739 124.88C177.79 124.863 177.845 124.856 177.899 124.861C177.952 124.866 178.005 124.881 178.052 124.907C178.1 124.933 178.141 124.968 178.175 125.01C178.209 125.053 178.233 125.101 178.247 125.153C178.262 125.206 178.265 125.26 178.257 125.313C178.249 125.367 178.231 125.418 178.202 125.464C178.174 125.511 178.137 125.551 178.092 125.582L173.656 129.098C173.585 129.151 173.498 129.178 173.409 129.176Z\",\n fill: \"black\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.289 108.427C138.228 108.427 138.168 108.412 138.114 108.385C135.67 107.176 134.782 107.007 133.346 106.911C130.518 106.723 125.663 106.583 125.27 106.574L108.553 108.234C108.501 108.239 108.449 108.234 108.398 108.219C108.348 108.204 108.302 108.179 108.261 108.145C108.221 108.112 108.187 108.071 108.162 108.025C108.138 107.979 108.122 107.928 108.117 107.876C108.112 107.824 108.117 107.771 108.133 107.721C108.148 107.671 108.173 107.624 108.206 107.584C108.24 107.543 108.281 107.509 108.327 107.485C108.373 107.46 108.424 107.445 108.476 107.44L125.216 105.779C125.233 105.777 125.251 105.777 125.268 105.779C125.319 105.779 130.449 105.922 133.397 106.119C135.044 106.228 136.058 106.478 138.469 107.674C138.55 107.714 138.614 107.78 138.652 107.861C138.69 107.942 138.7 108.033 138.679 108.121C138.658 108.208 138.61 108.285 138.539 108.341C138.469 108.397 138.382 108.427 138.292 108.427H138.289Z\",\n fill: \"black\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.478 99.9741C136.791 99.6904 137.55 98.0466 137.173 96.3028C136.795 94.559 135.426 93.3754 134.114 93.6592C132.801 93.943 132.042 95.5867 132.419 97.3305C132.796 99.0744 134.166 100.258 135.478 99.9741Z\",\n fill: \"white\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134.504 94.4197C135.256 94.4197 136.026 95.1866 136.333 96.2415C136.707 97.5289 136.296 98.87 135.431 99.172C135.32 99.2116 135.203 99.2318 135.084 99.2315C134.331 99.2315 133.562 98.4647 133.254 97.4097C132.881 96.1243 133.292 94.7813 134.154 94.4794C134.266 94.4398 134.385 94.4196 134.504 94.4197ZM134.504 93.625C134.295 93.6248 134.089 93.6604 133.892 93.7303C132.621 94.1753 131.994 95.9157 132.501 97.6322C132.921 99.0726 134.003 100.026 135.084 100.026C135.293 100.026 135.499 99.9911 135.696 99.9229C136.967 99.4779 137.593 97.7375 137.096 96.021C136.678 94.5807 135.595 93.625 134.504 93.625Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.126 98.0719C135.078 98.0717 135.031 98.0636 134.986 98.0481C134.938 98.0297 134.893 98.002 134.855 97.9662C134.817 97.9305 134.786 97.8877 134.764 97.84C134.742 97.7924 134.73 97.741 134.729 97.6887C134.727 97.6364 134.735 97.5844 134.754 97.5355C135.151 96.4945 134.399 96.0494 134.367 96.0296C134.28 95.9745 134.219 95.8883 134.194 95.7888C134.17 95.6892 134.185 95.5841 134.236 95.4954C134.288 95.4066 134.371 95.3412 134.47 95.3127C134.568 95.284 134.674 95.2946 134.765 95.3422C135.237 95.6143 135.996 96.4825 135.498 97.8136C135.469 97.8893 135.418 97.9547 135.352 98.0008C135.286 98.0469 135.206 98.0717 135.126 98.0719Z\",\n fill: \"black\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.234 110.702C130.03 110.702 134.728 106.004 134.728 100.209C134.728 94.4131 130.03 89.7148 124.234 89.7148C118.439 89.7148 113.741 94.4131 113.741 100.209C113.741 106.004 118.439 110.702 124.234 110.702Z\",\n fill: \"white\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.229 90.5056C126.505 90.5044 128.709 91.3039 130.456 92.764C132.202 94.2242 133.379 96.252 133.78 98.4926C134.182 100.733 133.783 103.044 132.653 105.02C131.524 106.996 129.735 108.511 127.6 109.301C125.465 110.091 123.12 110.105 120.976 109.34C118.832 108.576 117.025 107.081 115.872 105.119C114.718 103.156 114.292 100.851 114.667 98.6055C115.043 96.3603 116.196 94.3188 117.925 92.838C119.681 91.3339 121.916 90.5068 124.229 90.5056ZM124.229 89.711C121.835 89.7115 119.514 90.5299 117.65 92.0305C115.786 93.5311 114.49 95.6238 113.978 97.9616C113.466 100.299 113.769 102.742 114.835 104.884C115.902 107.027 117.669 108.741 119.843 109.741C122.017 110.742 124.467 110.969 126.788 110.386C129.109 109.803 131.161 108.444 132.605 106.535C134.047 104.626 134.794 102.28 134.722 99.8883C134.65 97.4962 133.761 95.2007 132.205 93.3824C131.221 92.229 129.998 91.3032 128.621 90.6693C127.244 90.0353 125.745 89.7084 124.229 89.711Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.014 102.045C126.917 102.044 126.824 102.009 126.752 101.944C126.679 101.88 126.632 101.791 126.621 101.695C126.61 101.599 126.632 101.502 126.688 101.422C126.743 101.342 126.825 101.285 126.919 101.262L129.569 100.602C128.576 100.058 127.195 98.9413 126.438 96.7381C126.404 96.6382 126.411 96.5289 126.457 96.4341C126.504 96.3392 126.586 96.2667 126.685 96.2325C126.785 96.1982 126.895 96.205 126.989 96.2514C127.084 96.2979 127.156 96.38 127.191 96.4798C128.29 99.6884 130.827 100.28 130.933 100.304C131.021 100.324 131.099 100.372 131.155 100.441C131.212 100.51 131.243 100.597 131.244 100.686C131.246 100.775 131.217 100.862 131.163 100.933C131.109 101.004 131.032 101.055 130.946 101.077L127.111 102.033C127.079 102.04 127.047 102.044 127.014 102.045Z\",\n fill: \"black\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.358 105.015C114.667 104.713 115.403 103.059 115.002 101.321C114.601 99.5822 113.215 98.4177 111.906 98.7195C110.597 99.0214 109.861 100.675 110.262 102.414C110.664 104.152 112.049 105.317 113.358 105.015Z\",\n fill: \"white\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.322 99.4744C113.198 99.4744 114.075 100.494 114.271 101.749C114.394 102.53 114.241 103.289 113.864 103.782C113.769 103.914 113.648 104.026 113.508 104.11C113.369 104.194 113.213 104.249 113.051 104.27H112.938C112.06 104.27 111.186 103.249 110.989 101.996C110.866 101.215 111.019 100.454 111.396 99.9632C111.491 99.8304 111.612 99.7186 111.752 99.6345C111.892 99.5505 112.047 99.496 112.209 99.4744H112.322ZM112.322 98.6797C112.257 98.6797 112.193 98.6797 112.124 98.6897C110.785 98.8287 109.922 100.366 110.2 102.125C110.463 103.799 111.663 105.071 112.934 105.071C112.998 105.071 113.063 105.071 113.133 105.061C114.472 104.922 115.334 103.384 115.056 101.624C114.792 99.9512 113.592 98.6797 112.322 98.6797Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.408 92.2354C116.436 93.0679 115.624 94.0711 115.012 95.1955L130.453 91.7565C128.544 90.3521 126.216 89.6349 123.847 89.7219C121.479 89.8088 119.209 90.6946 117.408 92.2354Z\",\n fill: \"black\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.692 103.182C112.588 103.182 112.488 103.142 112.414 103.069C111.396 102.076 111.714 100.967 112.016 100.52C112.046 100.477 112.084 100.44 112.128 100.412C112.171 100.383 112.22 100.364 112.272 100.354C112.323 100.345 112.376 100.346 112.427 100.356C112.478 100.367 112.527 100.388 112.57 100.418C112.613 100.447 112.649 100.485 112.678 100.529C112.706 100.573 112.726 100.622 112.735 100.673C112.745 100.725 112.744 100.777 112.733 100.828C112.722 100.879 112.702 100.928 112.672 100.971C112.618 101.05 112.193 101.75 112.96 102.501C113.016 102.556 113.055 102.627 113.071 102.704C113.087 102.781 113.08 102.861 113.05 102.934C113.021 103.007 112.97 103.07 112.905 103.114C112.84 103.158 112.763 103.182 112.684 103.182H112.692Z\",\n fill: \"black\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.9 99.198C124.217 99.1294 124.349 98.4948 124.195 97.7805C124.04 97.0663 123.657 96.5429 123.339 96.6115C123.022 96.6802 122.89 97.3148 123.044 98.029C123.199 98.7433 123.582 99.2666 123.9 99.198Z\",\n fill: \"black\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.601 97.7488C130.919 97.6802 131.051 97.0455 130.897 96.3312C130.743 95.617 130.36 95.0937 130.042 95.1623C129.725 95.2309 129.593 95.8655 129.747 96.5798C129.902 97.294 130.284 97.8174 130.601 97.7488Z\",\n fill: \"black\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.064 161.972L117.521 123.358C120.502 103.787 100.901 101.58 98.0616 120.047C98.0616 120.047 94.0206 150.61 91.7776 167.102C91.1717 171.554 90.8856 176.775 92.3359 180.254C96.4245 190.056 109.986 189.826 114.388 180.893C117.192 175.225 119.327 163.367 119.327 163.367L112.064 161.972Z\",\n fill: \"#82C6AE\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.905 108.158C110.965 108.158 112.892 109.08 114.329 110.755C116.689 113.5 117.539 117.935 116.745 123.247L111.277 161.861C111.249 162.063 111.3 162.267 111.418 162.434C111.537 162.599 111.715 162.713 111.915 162.751L118.39 163.996C117.867 166.704 115.99 175.859 113.681 180.542C111.774 184.406 107.832 186.806 103.39 186.806C101.265 186.818 99.1789 186.231 97.3722 185.111C95.4355 183.879 93.9313 182.074 93.069 179.946C91.9504 177.262 91.7796 172.976 92.5643 167.207C94.7696 150.995 98.7629 120.804 98.8484 120.155C100.126 111.869 104.824 108.158 108.905 108.158ZM108.905 107.363C104.302 107.363 99.3688 111.479 98.0616 120.047C98.0616 120.047 94.0206 150.61 91.7776 167.102C91.1717 171.554 90.8856 176.775 92.3359 180.254C94.4021 185.209 98.892 187.605 103.39 187.605C107.795 187.605 112.215 185.314 114.394 180.898C117.192 175.225 119.327 163.366 119.327 163.366L112.074 161.976L117.531 123.362C119.121 112.871 114.235 107.367 108.915 107.367L108.905 107.363Z\",\n fill: \"black\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.705 140.055L118.753 166.394L101.399 162.069L107.926 135.875L124.705 140.055Z\",\n fill: \"black\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.506 136.838L123.76 140.639L118.157 165.427L102.363 161.492L108.506 136.838ZM107.926 135.875L101.399 162.071L118.753 166.394L124.713 140.055L107.934 135.883L107.926 135.875Z\",\n fill: \"black\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.179 263.697L155.949 262.93L189.257 257.266L190.269 257.9L156.179 263.697Z\",\n fill: \"white\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M227.628 191.425L226.938 191.024L246.439 162.747L247.606 162.457L227.628 191.425Z\",\n fill: \"white\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.0601 63.2142L84.0266 63.2316C83.6402 63.4327 83.49 63.9089 83.691 64.2954L137.279 167.281C137.48 167.667 137.956 167.818 138.343 167.617L138.376 167.599C138.763 167.398 138.913 166.922 138.712 166.536L85.1239 63.5498C84.9227 63.1634 84.4465 63.0132 84.0601 63.2142Z\",\n fill: \"black\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.318 131.67C110.709 129.755 122.679 124.733 122.679 124.733C123.973 124.288 125.514 124.008 125.949 125.287C126.13 125.818 125.708 126.558 125.54 127.056C126.089 127.003 126.64 127.14 127.102 127.442C127.564 127.745 127.91 128.195 128.083 128.719C128.256 129.244 128.245 129.811 128.054 130.328C127.862 130.847 127.501 131.284 127.028 131.569C127.487 131.786 128.359 132.191 128.617 132.67C129.249 133.862 128.055 135.028 126.845 135.668L125.057 136.937C125.534 136.901 126.519 137.241 126.752 137.607C127.404 138.642 126.499 139.91 125.449 140.569L121.096 143.289C116.262 146.309 113.84 146.468 112.426 144.836C109.616 141.596 106.555 135.463 109.318 131.67Z\",\n fill: \"white\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.932 138.843C121.844 138.843 121.758 138.815 121.688 138.762C121.618 138.708 121.568 138.633 121.545 138.548C121.523 138.464 121.529 138.374 121.563 138.292C121.597 138.211 121.657 138.144 121.733 138.101L127.275 134.971C128.101 134.534 128.7 133.67 128.268 132.857C128.167 132.668 128.025 132.503 127.854 132.374C127.682 132.245 127.484 132.156 127.275 132.112C126.821 132.02 126.348 132.09 125.941 132.311L119.981 135.383C119.887 135.43 119.778 135.44 119.678 135.407C119.577 135.375 119.494 135.304 119.446 135.21C119.397 135.117 119.388 135.008 119.421 134.907C119.453 134.807 119.524 134.724 119.617 134.675L125.578 131.607C126.152 131.297 126.82 131.204 127.457 131.346C127.777 131.415 128.078 131.553 128.339 131.751C128.6 131.949 128.814 132.202 128.967 132.491C129.64 133.765 128.814 135.058 127.65 135.671L122.129 138.794C122.068 138.827 122.001 138.844 121.932 138.843Z\",\n fill: \"black\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.791 132.851C124.702 132.853 124.616 132.824 124.545 132.771C124.475 132.718 124.423 132.642 124.4 132.556C124.377 132.47 124.384 132.379 124.419 132.298C124.453 132.217 124.514 132.149 124.592 132.106L126.688 130.95L126.723 130.931C127.136 130.763 127.474 130.453 127.677 130.056C127.77 129.874 127.821 129.674 127.827 129.47C127.833 129.265 127.793 129.062 127.711 128.876C127.367 128.081 126.416 127.736 125.548 128.109L118.255 131.453C118.158 131.494 118.048 131.497 117.95 131.458C117.852 131.419 117.773 131.343 117.731 131.247C117.689 131.151 117.687 131.041 117.725 130.942C117.764 130.844 117.84 130.765 117.937 130.723L125.239 127.376C125.828 127.115 126.492 127.085 127.102 127.292C127.403 127.395 127.679 127.562 127.913 127.779C128.147 127.996 128.332 128.26 128.457 128.554C128.583 128.846 128.644 129.163 128.634 129.481C128.625 129.8 128.548 130.113 128.404 130.397C128.122 130.959 127.648 131.401 127.07 131.647L124.989 132.794C124.929 132.831 124.861 132.85 124.791 132.851Z\",\n fill: \"black\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.062 146.362C113.92 146.362 112.837 145.927 111.859 144.814C109.35 141.963 105.565 135.488 109.195 131.405C112.867 127.275 122.506 124.363 122.919 124.242H122.938C124.072 123.965 125.663 123.779 126.384 125.326C126.497 125.565 126.557 125.824 126.56 126.089C126.563 126.352 126.509 126.613 126.402 126.854C126.079 127.623 125.263 128.316 124.274 128.666L118.258 131.448C118.162 131.49 118.053 131.493 117.954 131.455C117.856 131.417 117.777 131.341 117.734 131.245C117.691 131.148 117.689 131.039 117.727 130.941C117.765 130.842 117.84 130.763 117.937 130.72L123.959 127.939L123.994 127.923C124.775 127.653 125.433 127.112 125.671 126.548C125.735 126.409 125.769 126.259 125.769 126.106C125.769 125.953 125.735 125.802 125.671 125.664C125.395 125.068 124.899 124.59 123.142 125.014C122.788 125.121 113.268 128.035 109.795 131.942C106.533 135.614 110.111 141.629 112.459 144.298C114.633 146.767 117.39 145.291 121.346 142.76L125.528 139.859C126.124 139.488 126.491 139.065 126.585 138.65C126.614 138.507 126.613 138.361 126.584 138.219C126.554 138.077 126.496 137.943 126.412 137.825C125.754 136.788 124.353 137.592 124.08 137.765L122.25 138.85C122.16 138.891 122.059 138.896 121.965 138.866C121.871 138.836 121.792 138.772 121.743 138.688C121.693 138.603 121.677 138.502 121.697 138.406C121.718 138.31 121.773 138.225 121.853 138.166L123.672 137.088C125.063 136.212 126.414 136.333 127.089 137.4C127.23 137.606 127.328 137.839 127.376 138.084C127.424 138.329 127.421 138.582 127.367 138.826C127.224 139.453 126.742 140.04 125.977 140.522L121.805 143.42C119.502 144.874 117.176 146.362 115.062 146.362Z\",\n fill: \"black\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.868 119.41L184.305 119.971L196.698 132.408L197.26 131.847L184.868 119.41Z\",\n fill: \"black\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.191 156.516L103.004 157.289L119.549 161.3L119.736 160.528L103.191 156.516Z\",\n fill: \"black\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.299 161.212C105.954 161.212 106.485 160.681 106.485 160.026C106.485 159.371 105.954 158.84 105.299 158.84C104.644 158.84 104.113 159.371 104.113 160.026C104.113 160.681 104.644 161.212 105.299 161.212Z\",\n fill: \"white\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.832 162.094C109.487 162.094 110.018 161.564 110.018 160.908C110.018 160.254 109.487 159.723 108.832 159.723C108.176 159.723 107.646 160.254 107.646 160.908C107.646 161.564 108.176 162.094 108.832 162.094Z\",\n fill: \"white\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M190.714 130.869C191.369 130.869 191.9 130.338 191.9 129.682C191.9 129.027 191.369 128.496 190.714 128.496C190.058 128.496 189.528 129.027 189.528 129.682C189.528 130.338 190.058 130.869 190.714 130.869Z\",\n fill: \"white\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.158 133.567C193.813 133.567 194.344 133.036 194.344 132.381C194.344 131.726 193.813 131.195 193.158 131.195C192.503 131.195 191.972 131.726 191.972 132.381C191.972 133.036 192.503 133.567 193.158 133.567Z\",\n fill: \"white\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.589 49.6525L83.9265 49.7981L84.1661 49.5194L86.64 46.643L89.6419 48.9651L89.9327 49.19L90.2341 48.9796L93.3452 46.8077L95.6742 49.8024L95.8997 50.0923L96.2439 49.9638L99.7987 48.6358L101.31 52.1145L101.457 52.4514L101.822 52.4124L105.594 52.0098L106.192 55.7569L106.25 56.1198L106.614 56.1728L110.368 56.7202L110.016 60.4992L109.982 60.865L110.321 61.0067L113.821 62.4706L112.541 66.0409L112.417 66.3868L112.71 66.6085L115.737 68.8969L113.607 72.0382L113.401 72.3424L113.63 72.6301L115.992 75.6002L113.149 78.1129L112.874 78.3562L113.024 78.6917L114.573 82.1543L111.195 83.8813L110.867 84.0485L110.929 84.4107L111.569 88.1506L107.868 88.9822L107.509 89.0628L107.479 89.4291L107.168 93.2115L103.375 93.0968L103.008 93.0856L102.888 93.433L101.646 97.0193L98.0019 95.9651L97.6488 95.863L97.446 96.1695L95.3518 99.3337L92.0833 97.4055L91.7667 97.2187L91.494 97.4653L88.6793 100.01L85.9918 97.3292L85.7316 97.0696L85.4062 97.2405L82.0478 99.0044L80.1126 95.7414L79.9251 95.4252L79.5674 95.5099L75.8753 96.3839L74.8123 92.7412L74.7093 92.3884L74.3418 92.3814L70.5471 92.309L70.4235 88.5161L70.4115 88.1488L70.0574 88.0506L66.4024 87.037L67.2251 83.3343L67.3048 82.9757L66.9864 82.7925L63.6965 80.8994L65.4146 77.518L65.5811 77.1904L65.3181 76.9337L62.6022 74.2832L65.108 71.433L65.3507 71.157L65.1596 70.843L63.1873 67.6011L66.3233 65.4646L66.6271 65.2576L66.5201 64.9059L65.4166 61.2774L68.9852 59.9866L69.3308 59.8616L69.3147 59.4945L69.1487 55.7036L72.9254 55.3433L73.2914 55.3084L73.3672 54.9486L74.1495 51.2351L77.8985 51.8231L78.2614 51.88L78.4242 51.5507L80.1051 48.1498L83.589 49.6525Z\",\n fill: \"white\",\n stroke: \"#B9BFC6\"\n })), _path63 || (_path63 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.0175 64.0783L81.6247 82.0761C81.7074 84.5278 84.3498 86.0275 86.497 84.8417L103.079 75.6856C105.38 74.4147 105.331 71.0897 102.993 69.8871L85.8044 61.0454C83.5744 59.8983 80.9331 61.5716 81.0175 64.0783Z\",\n fill: \"#2760AD\"\n })), _path64 || (_path64 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.0655 83.5076C85.4625 83.8407 84.7292 83.8474 84.1042 83.5259C83.4792 83.2043 83.0928 82.6218 83.0705 81.9671L82.4618 63.9239C82.4399 63.2696 82.7867 62.6799 83.3895 62.347C83.9927 62.014 84.7259 62.0072 85.3508 62.3286L102.583 71.1926C103.208 71.5141 103.594 72.0968 103.617 72.7515C103.639 73.4059 103.292 73.9955 102.689 74.3285L86.0655 83.5076Z\",\n fill: \"white\"\n })), _path65 || (_path65 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.8134 67.0912L86.8695 66.5081C87.5486 66.1331 88.4405 66.3435 88.8612 66.9782L89.7243 68.2801C89.7561 68.3278 89.7844 68.3773 89.8094 68.428L91.9208 72.7134C92.225 73.331 91.988 74.0513 91.3679 74.3938C90.7463 74.737 89.9353 74.5928 89.4776 74.058L86.3113 70.3574C86.2746 70.3145 86.2409 70.2696 86.2099 70.223L85.3457 68.9197C84.9249 68.2848 85.1342 67.4662 85.8134 67.0912ZM91.9625 75.5656L92.2506 75.4066C92.8582 75.0711 93.6556 75.2594 94.0321 75.8271C94.4085 76.3948 94.2211 77.127 93.6137 77.4626L93.3256 77.6216C92.718 77.9571 91.9206 77.7687 91.5441 77.201C91.1678 76.6332 91.3551 75.9009 91.9625 75.5656Z\",\n fill: \"#2760AD\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 180.639,\n y: 123.582,\n width: 23.3072,\n height: 17.1129,\n transform: \"rotate(-41.7459 180.639 123.582)\",\n fill: \"black\"\n })), _path66 || (_path66 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.844 124.972C184.461 125.192 185.139 124.87 185.359 124.254C185.579 123.636 185.257 122.958 184.64 122.738C184.023 122.518 183.344 122.84 183.124 123.457C182.905 124.074 183.226 124.752 183.844 124.972Z\",\n fill: \"white\"\n })), _path67 || (_path67 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M186.874 126.992C187.491 127.212 188.17 126.89 188.39 126.272C188.61 125.656 188.288 124.978 187.671 124.758C187.054 124.538 186.375 124.859 186.156 125.476C185.935 126.093 186.257 126.772 186.874 126.992Z\",\n fill: \"white\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_6310_21846\",\n x1: 297.5,\n y1: -20,\n x2: 243.255,\n y2: 192.36,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEF8EE\",\n stopOpacity: 0.5\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.655,\n stopColor: \"#F6E0DA\",\n stopOpacity: 0.57\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.88,\n stopColor: \"#F5DED8\",\n stopOpacity: 0.48\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssessmetEmptyGraphics);\nexport default __webpack_public_path__ + \"static/media/assessmet-empty-graphics.12432623e30854b208db0fd9c432dbe9.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useCallback, useEffect } from \"react\";\nimport { LoadingSpinner, PageLayout, ErrorComponent } from \"shared\";\nimport {\n AssessmentItem,\n useAssessment,\n AssessmentScheduleModal,\n ScheduleConfirmModal,\n ScheduleSuccessfullModal,\n ScheduleUnsuccessfullModal,\n} from \"..\";\nimport { getSelectedProgram, clearLocalKeysWithPrefix } from \"utils\";\nimport { useQuestionareContext } from \"master\";\nimport noAssessmentImage from \"assets/images/assessmet-empty-graphics.svg\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport const AssessmentList = () => {\n const navigate = useNavigate();\n const { onToggleInstruction, setMarkedQuestions } = useQuestionareContext();\n\n const {\n assessmentsQuery,\n assessmentScheduleQuery,\n assessmentSlotQuery,\n setScheduleId,\n scheduleId,\n selectedSlotId,\n setSelectedSlotId,\n createSchedule,\n isSlotInfoOpen,\n setIsSlotInfoOpen,\n onAssessmentScheduleModal,\n studentBatchId,\n } = useAssessment({\n load: true,\n });\n\n const {\n isPending,\n data: assessmentListData,\n isRefetching,\n isFetching,\n } = assessmentsQuery;\n\n const selectedProgram = getSelectedProgram();\n\n const { data: schedules } = assessmentScheduleQuery;\n const { data: slots, isLoading: isSlotLoading } = assessmentSlotQuery;\n\n useEffect(() => {\n window.scrollTo(0, 0);\n sessionStorage.removeItem(\"assessmentToken\");\n sessionStorage.removeItem(\"slotId\");\n sessionStorage.removeItem(\"attemptId\");\n sessionStorage.removeItem(\"assessmentId\");\n }, []);\n\n useEffect(() => {\n return () => {\n if (isSlotInfoOpen.isOpen) {\n window.history.forward();\n }\n };\n }, [isSlotInfoOpen.isOpen]);\n\n const onCreateAssessmentSchedule = useCallback(() => {\n setIsSlotInfoOpen((draft) => {\n draft.type = \"confirm\";\n draft.isOpen = true;\n return draft;\n });\n }, [isSlotInfoOpen]);\n\n const onStartAssessment = ({\n assessmentId,\n slotId,\n attemptId,\n noOfQuestions,\n maxTime,\n maxAttempt,\n instructions,\n name,\n attemptStatus,\n isStartAssessment = false,\n }) => {\n const isStart = attemptStatus === 2;\n const isScheduled = attemptStatus === 1;\n\n if (isStart || isScheduled) {\n setMarkedQuestions((draft) => {\n draft = [];\n return draft;\n });\n }\n\n if (isStartAssessment) {\n clearLocalKeysWithPrefix(\"assessmentData_\", \"sessionStorage\");\n clearLocalKeysWithPrefix(\"currentQuestionIndex_\", \"sessionStorage\");\n }\n clearLocalKeysWithPrefix(\"assessmentMasterId_\", \"sessionStorage\");\n sessionStorage.setItem(\"assessmentId\", assessmentId);\n sessionStorage.setItem(\"slotId\", slotId);\n sessionStorage.setItem(\"attemptId\", attemptId);\n\n const instructionsPayload = {\n noOfQuestions,\n maxTime,\n maxAttempt,\n instructions,\n name,\n };\n onToggleInstruction(instructionsPayload, \"assessmentList\");\n };\n\n const slotInfoModalClose = useCallback(() => {\n setIsSlotInfoOpen((draft) => {\n draft.isOpen = false;\n draft.type = \"\";\n return draft;\n });\n }, [isSlotInfoOpen]);\n\n const onConfirm = () => {\n createSchedule.mutate({ slotId: selectedSlotId });\n slotInfoModalClose();\n };\n\n const breadcrumb = [\n { label: selectedProgram?.name, location: \"/program\" },\n { label: \"Assessment\" },\n ];\n\n if (isPending) return ;\n\n return (\n <>\n 0 ? \"Assessment\" : false}\n breadcrumb={breadcrumb}\n >\n
    \n
    \n
      \n {assessmentListData && assessmentListData?.length > 0 ? (\n assessmentListData?.map((item, index) => {\n return (\n \n );\n })\n ) : (\n navigate(\"/program\", { replace: true })}\n />\n )}\n
    \n
    \n
    \n\n {/* SCHEDULE MODAL */}\n\n {isSlotInfoOpen.isOpen && isSlotInfoOpen.type === \"scheduleModal\" && (\n {\n setIsSlotInfoOpen((draft) => {\n draft.isOpen = false;\n draft.type = \"\";\n return draft;\n });\n }}\n setIsSlotInfoOpen={setIsSlotInfoOpen}\n isSlotInfoOpen={isSlotInfoOpen}\n />\n )}\n\n {/* SCHEDULE CONFIRM MODAL */}\n\n {isSlotInfoOpen.isOpen && isSlotInfoOpen.type === \"confirm\" && (\n \n )}\n\n {/* SCHEDULE SUCCESS MODAL */}\n\n {isSlotInfoOpen.isOpen && isSlotInfoOpen.type === \"success\" && (\n \n )}\n\n {/* SCHEDULE UNSUCCESS MODAL */}\n\n {isSlotInfoOpen.isOpen && isSlotInfoOpen.type === \"unsuccess\" && (\n \n )}\n \n \n );\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgTileMenuIconGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.25 3C4.01625 3 3 4.01625 3 5.25V9.25C3 10.4838 4.01625 11.5 5.25 11.5H9.25C10.4838 11.5 11.5 10.4838 11.5 9.25V5.25C11.5 4.01625 10.4838 3 9.25 3H5.25ZM14.75 3C13.5162 3 12.5 4.01625 12.5 5.25V9.25C12.5 10.4838 13.5162 11.5 14.75 11.5H18.75C19.9838 11.5 21 10.4838 21 9.25V5.25C21 4.01625 19.9838 3 18.75 3H14.75ZM5.25 4.5H9.25C9.67325 4.5 10 4.82675 10 5.25V9.25C10 9.67325 9.67325 10 9.25 10H5.25C4.82675 10 4.5 9.67325 4.5 9.25V5.25C4.5 4.82675 4.82675 4.5 5.25 4.5ZM14.75 4.5H18.75C19.1733 4.5 19.5 4.82675 19.5 5.25V9.25C19.5 9.67325 19.1733 10 18.75 10H14.75C14.3268 10 14 9.67325 14 9.25V5.25C14 4.82675 14.3268 4.5 14.75 4.5ZM5.25 12.5C4.01625 12.5 3 13.5162 3 14.75V18.75C3 19.9838 4.01625 21 5.25 21H9.25C10.4838 21 11.5 19.9838 11.5 18.75V14.75C11.5 13.5162 10.4838 12.5 9.25 12.5H5.25ZM14.75 12.5C13.5162 12.5 12.5 13.5162 12.5 14.75V18.75C12.5 19.9838 13.5162 21 14.75 21H18.75C19.9838 21 21 19.9838 21 18.75V14.75C21 13.5162 19.9838 12.5 18.75 12.5H14.75ZM5.25 14H9.25C9.67325 14 10 14.3268 10 14.75V18.75C10 19.1733 9.67325 19.5 9.25 19.5H5.25C4.82675 19.5 4.5 19.1733 4.5 18.75V14.75C4.5 14.3268 4.82675 14 5.25 14ZM14.75 14H18.75C19.1733 14 19.5 14.3268 19.5 14.75V18.75C19.5 19.1733 19.1733 19.5 18.75 19.5H14.75C14.3268 19.5 14 19.1733 14 18.75V14.75C14 14.3268 14.3268 14 14.75 14Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTileMenuIconGrey);\nexport default __webpack_public_path__ + \"static/media/tile-menu-icon-grey.c431247362e9306ce7cb2c94901ecb25.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgPrevIconBlack(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 7,\n height: 10,\n viewBox: \"0 0 7 10\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5 9.55273L6.625 8.42773L3.19727 5L6.625 1.57227L5.5 0.447266L0.947266 5L5.5 9.55273Z\",\n fill: \"#131314\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPrevIconBlack);\nexport default __webpack_public_path__ + \"static/media/prev-icon-black.14d65090c5cb41ef7ea94cac05b1f9c6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgNextIconBlack(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 7,\n height: 10,\n viewBox: \"0 0 7 10\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 0.447266L0.375 1.57227L3.80273 5L0.375 8.42773L1.5 9.55273L6.05273 5L1.5 0.447266Z\",\n fill: \"#131314\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNextIconBlack);\nexport default __webpack_public_path__ + \"static/media/next-icon-black.cd46e983801ecbcc924c40a679ef30d6.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCloseIconBlue(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_2815_23910)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.8916 5.10938L14.6729 14.8907\",\n stroke: \"#00438B\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.6719 5.10938L4.89053 14.8907\",\n stroke: \"#00438B\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_2815_23910\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 19.5627,\n height: 19.5627,\n fill: \"white\",\n transform: \"translate(0 0.21875)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseIconBlue);\nexport default __webpack_public_path__ + \"static/media/close-icon-blue.bd9747484951c8e9c9ae15411ffd8715.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgFlagIconBlue(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 20,\n viewBox: \"0 0 21 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.69231 17.3477V12.475L15 7.61386L6 2.34766V17.3477H6.69231Z\",\n fill: \"#00438B\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFlagIconBlue);\nexport default __webpack_public_path__ + \"static/media/flag-icon-blue.766ba1e147bb29568539077b920fd7e0.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\nimport { PageLayout, LoadingSpinner } from \"shared\";\nimport { useImmer } from \"use-immer\";\nimport {\n QuestionItem,\n QuestionsModal,\n QuestionStatusBadge,\n QuestionLegend,\n AssessmentTimer,\n QuestionIndexMobileModal,\n} from \"..\";\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\nimport { useQuestionareContext } from \"master\";\nimport tileIcon from \"assets/images/icons/tile-menu-icon-grey.svg\";\nimport prevIcon from \"assets/images/icons/prev-icon-black.svg\";\nimport nextIcon from \"assets/images/icons/next-icon-black.svg\";\nimport clearIcon from \"assets/images/icons/close-icon-blue.svg\";\nimport flagIcon from \"assets/images/icons/flag-icon-blue.svg\";\n\nexport const Questionnaire = () => {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n\n const assessmentId_q = searchParams.get(\"assessmentId\");\n const slotId_q = searchParams.get(\"slotId\");\n const attemptId_q = searchParams.get(\"attemptId\");\n const assessmentToken_q = searchParams.get(\"assessmentToken\");\n\n const isAssessmentStartedFromMobileApp =\n assessmentId_q && slotId_q && assessmentToken_q;\n\n useEffect(() => {\n if (isAssessmentStartedFromMobileApp) {\n sessionStorage.setItem(\"assessmentId\", assessmentId_q);\n sessionStorage.setItem(\"slotId\", slotId_q);\n if (!!attemptId_q && attemptId_q !== \"null\") {\n sessionStorage.setItem(\"attemptId\", attemptId_q);\n }\n sessionStorage.setItem(\"assessmentToken\", assessmentToken_q);\n sessionStorage.setItem(\"isFromMobileApp\", true);\n }\n }, []);\n\n const [isOpenNavModal, setIsOpenNavModal] = useImmer(false);\n const questionnaireContext = useQuestionareContext();\n const {\n questionnaire,\n markedQuestions,\n currentQuestionIndex,\n onChangeSection,\n currentQuestion,\n onAnswer,\n onClearAnswer,\n onNext,\n onPrevious,\n onMarkQuestion,\n setIsModalOpen,\n startAssessmentQuery,\n onChangeSidebarButton,\n mediaPreviewState,\n answeringQuestion,\n clearAnswer,\n onToggleInstruction,\n onToggleHelp,\n answerPayload,\n clearPayload,\n } = questionnaireContext;\n\n const isLastSection =\n questionnaire?.sections?.length - 1 === currentQuestionIndex?.sectionIndex;\n const isLastQuestion =\n questionnaire?.questions?.length - 1 ===\n currentQuestionIndex?.questionIndex;\n const isFirstSection = currentQuestionIndex?.sectionIndex === 0;\n const isFirstQuestion = currentQuestionIndex?.questionIndex === 0;\n\n const { answer, questionId, sectionId } =\n !!currentQuestion && currentQuestion;\n\n const isClearingAnswer = clearAnswer?.isPending;\n const isAnswering = answeringQuestion?.isPending;\n\n const isMarked =\n markedQuestions &&\n markedQuestions?.some(\n (c) => c?.questionId === questionId && c?.sectionId === sectionId\n );\n\n const isClearingCurrentQuestion =\n answer &&\n answer?.id === clearPayload?.answerId &&\n answer?.sectionId === sectionId &&\n answer?.questionId === questionId;\n\n const isAnsweringCurrentQuestion =\n answerPayload?.sectionId === sectionId &&\n answerPayload?.questionId === questionId;\n\n const isDisabledClear =\n answer === null ||\n (isClearingCurrentQuestion && isClearingAnswer) ||\n (isAnsweringCurrentQuestion && isAnswering);\n\n if (startAssessmentQuery?.isLoading) return ;\n\n return (\n <>\n \n
    \n
    \n
    \n
    \n
    \n
    \n {questionnaire &&\n questionnaire?.sections?.map((section, index) => (\n onChangeSection(section?.sectionId)}\n className={`question-header-btn ${\n currentQuestionIndex?.sectionIndex === index\n ? \"active\"\n : \"\"\n }`}\n >\n {section?.name}\n \n ))}\n
    \n
    \n
    \n
    \n
    \n
    \n\n {/* INNER PAGE TASK SUB HEADER - MOB */}\n
    \n
    \n
    \n
    \n
    \n setIsOpenNavModal(true)}\n className=\"question-subheader-menu-btn\"\n >\n \"\"\n \n \n navigate(\"/program/assessment/review\")}\n className=\"question-subheader-submit-btn\"\n >\n Review/Submit\n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n {currentQuestion && (\n \n )}\n
    \n\n
    \n
    \n \n onClearAnswer(answer?.id, questionId, sectionId)\n }\n >\n \"\"\n Clear\n \n onMarkQuestion({ questionId, sectionId })}\n className={`question-rounded-btn ${\n isMarked ? \"marked\" : \"\"\n }`}\n >\n \"\"\n {isMarked ? \"Unmark\" : \"Mark for Review\"}\n \n
    \n
    \n \n \"\"\n Previous\n \n \n Next\n \"\"\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    {`Questions (${\n questionnaire?.questions?.length ?? 0\n })`}

    \n \n setIsModalOpen((draft) => {\n draft = {\n type: \"allQuestions\",\n isOpen: true,\n };\n return draft;\n })\n }\n >\n All Questions\n \n
    \n
    \n
    \n {questionnaire &&\n questionnaire?.questions?.map((question, index) => {\n return (\n {\n onChangeSidebarButton(\n question.sectionId,\n index\n );\n }}\n />\n );\n })}\n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n navigate(\"/program/assessment/review\")}\n className=\"btn btn-blue\"\n >\n Review/Submit\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n {/* */}\n\n
    \n
    \n
    \n
    \n
    \n \n \"\"\n \n
    \n \n onClearAnswer(answer?.id, questionId, sectionId)\n }\n className=\"question-rounded-btn\"\n >\n \"\"\n Clear\n \n onMarkQuestion({ questionId, sectionId })}\n className={`question-rounded-btn ${\n isMarked ? \"marked\" : \"\"\n }`}\n >\n \"\"\n {isMarked ? \"Unmark\" : \"Mark for Review\"}\n \n
    \n \n \"\"\n \n
    \n
    \n
    \n
    \n
    \n \n {isOpenNavModal && (\n \n )}\n
    \n \n );\n};\n","import React, { useEffect } from \"react\";\nimport { ReviewItem, AnswerSubmitConfirmModal } from \"..\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useQuestionareContext } from \"master\";\nimport { PageLayout } from \"shared\";\n\nexport const Review = () => {\n const navigate = useNavigate();\n const questionnaireContext = useQuestionareContext();\n const {\n questionnaire,\n markedQuestions,\n onFindQuestion,\n isModalOpen,\n setIsModalOpen,\n isTimeout,\n disableBackButton,\n onSubmitAnswer,\n submitAllAnswers,\n } = questionnaireContext;\n\n const isSubmittingAnswers = submitAllAnswers?.isPending;\n\n const onQuestionClick = (sectionId, questionId) => {\n onFindQuestion(sectionId, questionId);\n navigate(\"/program/assessment/start\");\n };\n\n useEffect(() => {\n if (isTimeout) {\n disableBackButton();\n }\n }, [isTimeout]);\n\n const goBackToQuestions = () => {\n if (!isTimeout) {\n navigate(\"/program/assessment/start\", { replace: true });\n }\n };\n\n return (\n \n
    \n

    Review Your Answer

    \n
    \n \n Back\n \n \n setIsModalOpen((draft) => {\n draft.type = \"submitConfirm\";\n draft.isOpen = true;\n return draft;\n })\n }\n className=\"btn btn-blue\"\n >\n Submit\n \n
    \n
    \n
    \n
      \n {!!questionnaire &&\n questionnaire?.questions?.map((question, index) => {\n return (\n \n );\n })}\n
    \n
    \n\n {isModalOpen.isOpen && isModalOpen.type === \"submitConfirm\" && (\n {\n if (!isSubmittingAnswers) {\n setIsModalOpen((draft) => {\n draft.type = \"\";\n draft.isOpen = false;\n return draft;\n });\n }\n }}\n onSubmit={onSubmitAnswer}\n isSubmittingAnswers={isSubmittingAnswers}\n />\n )}\n
    \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgAssessmentSessionExpired(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 377,\n height: 321,\n viewBox: \"0 0 377 321\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M205.787 2.62963C251.38 5.1845 298.03 11.5468 329.984 36.2139C361.635 60.648 366.719 95.8734 370.661 129.908C375.154 168.696 387.211 211.889 353.766 241.543C318.982 272.385 258.254 284.647 205.787 276.095C159.371 268.529 188.853 222.96 154.505 198.222C118.465 172.266 37.5849 205.916 2.80427 129.908C-7.95162 90.0272 20.1722 47.1919 61.6595 21.1777C100.623 -3.25369 155.261 -0.201682 205.787 2.62963Z\",\n fill: \"url(#paint0_linear_6310_23706)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M195.312 295.751L195.288 153.193L167.706 152.838L168.394 287.166L158.125 295.751H195.312Z\",\n fill: \"#2760AD\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.679 153.786L194.363 154.118V294.802H160.757L169.011 287.901C169.224 287.711 169.343 287.45 169.343 287.166L168.679 153.786ZM167.73 152.814L168.394 287.166L158.125 295.727H195.312V153.194L167.73 152.838V152.814Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.411 145.842L224.554 155.684L228.538 143.186L259.701 180.515L239.495 185.211C239.495 185.211 235.843 200.128 232.807 212.556C228.799 228.991 217.818 234.279 207.17 231.789C195.075 228.967 192.561 215.069 192.561 204.943V147.645L224.411 145.842Z\",\n fill: \"#2760AD\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M228.918 145.129L257.993 179.944L239.281 184.284C238.926 184.355 238.665 184.64 238.57 184.972C238.523 185.114 234.87 200.032 231.882 212.316C228.918 224.459 221.708 231.408 212.103 231.408C202.498 231.408 208.972 231.218 207.383 230.862C195.312 228.064 193.509 213.407 193.509 204.941V148.52L223.487 146.813L223.629 155.659C223.629 156.133 223.985 156.512 224.435 156.584C224.483 156.584 224.53 156.584 224.577 156.584C224.981 156.584 225.36 156.323 225.479 155.92L228.941 145.081L228.918 145.129ZM228.538 143.184L224.554 155.682L224.411 145.84L192.561 147.643V204.941C192.561 215.067 195.098 228.965 207.17 231.787C208.806 232.167 210.466 232.357 212.103 232.357C221.044 232.357 229.439 226.428 232.807 212.53C235.843 200.103 239.495 185.185 239.495 185.185L259.701 180.489L228.538 143.16V143.184Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.394 278.676V282.969L154.022 295.752H195.312V287.783L168.394 278.676Z\",\n fill: \"black\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M259.701 180.514L227.305 141.715L224.388 156.49L237.977 191.424L239.495 185.21L259.701 180.514Z\",\n fill: \"black\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M160.093 145.818C164.931 145.557 174.015 144.608 174.869 139.889C176.695 129.975 172.046 120.513 167.232 118.26L167.018 126.062C167.018 126.062 159.026 126.11 156.417 126.157C155.398 126.157 154.591 127.058 154.591 128.173C154.591 129.288 155.16 130.094 156.441 130.165L166.947 130.9L155.919 130.758C154.591 130.592 153.405 131.398 153.263 132.537C153.121 133.675 154.07 134.908 155.421 134.908L166.9 135.549L155.943 135.596C154.259 135.549 153.287 136.308 153.192 137.47C153.097 138.608 153.903 139.794 155.587 139.77L166.758 140.102C164.315 140.648 163.627 140.908 158.789 141.786C156.726 142.165 156.038 143.067 156.323 144.395C156.607 145.699 157.674 145.96 160.093 145.841V145.818Z\",\n fill: \"#82C6AE\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.133 119.92C169.888 121.272 171.501 123.619 172.663 126.536C174.299 130.663 174.75 135.335 173.944 139.699C173.422 142.592 168.465 144.418 160.046 144.869C159.714 144.869 159.406 144.893 159.145 144.893C157.413 144.893 157.342 144.537 157.271 144.181C157.176 143.754 157.271 143.565 157.342 143.446C157.556 143.138 158.149 142.877 159.002 142.711C162.726 142.023 164.007 141.738 165.501 141.383C165.951 141.264 166.449 141.169 167.018 141.027C167.493 140.932 167.801 140.482 167.754 140.007C167.706 139.533 167.327 139.153 166.829 139.153L155.658 138.821C155.658 138.821 155.658 138.821 155.635 138.821H155.587C155.113 138.821 154.734 138.679 154.473 138.418C154.259 138.205 154.164 137.873 154.188 137.541C154.259 136.663 155.255 136.545 155.848 136.545C155.896 136.545 155.919 136.545 155.967 136.545C155.967 136.545 155.967 136.545 155.99 136.545L166.947 136.497C167.469 136.497 167.872 136.094 167.896 135.572C167.92 135.051 167.516 134.624 166.995 134.6L155.516 133.96C155.516 133.96 155.492 133.96 155.469 133.96C154.994 133.96 154.686 133.699 154.568 133.556C154.33 133.296 154.235 132.964 154.259 132.679C154.33 132.133 154.923 131.707 155.635 131.707C156.346 131.707 155.777 131.707 155.872 131.707C155.896 131.707 155.943 131.707 155.967 131.707L166.995 131.849C167.493 131.849 167.92 131.446 167.943 130.948C167.943 130.426 167.564 129.999 167.066 129.952L156.56 129.216C155.99 129.193 155.611 129.003 155.587 128.173C155.587 127.604 155.99 127.129 156.489 127.106C159.074 127.058 167.018 127.011 167.09 127.011C167.611 127.011 168.015 126.608 168.038 126.086L168.204 119.92H168.133ZM167.232 118.26L167.018 126.062C167.018 126.062 159.026 126.11 156.417 126.157C155.398 126.157 154.591 127.058 154.591 128.173C154.591 129.288 155.16 130.094 156.441 130.165L166.947 130.9L155.919 130.758C155.801 130.758 155.682 130.758 155.587 130.758C154.401 130.758 153.405 131.517 153.263 132.56C153.121 133.699 154.069 134.932 155.421 134.932L166.9 135.572L155.943 135.62C155.896 135.62 155.848 135.62 155.801 135.62C154.212 135.62 153.287 136.379 153.192 137.493C153.097 138.632 153.88 139.794 155.516 139.794C157.153 139.794 155.564 139.794 155.587 139.794L166.758 140.126C164.315 140.671 163.627 140.932 158.789 141.81C156.726 142.189 156.038 143.09 156.322 144.418C156.56 145.533 157.366 145.889 159.145 145.889C160.923 145.889 159.761 145.889 160.093 145.865C164.931 145.604 174.015 144.656 174.868 139.936C176.695 130.023 172.046 120.56 167.232 118.307V118.26Z\",\n fill: \"black\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M190.45 73.5538C190.45 73.5538 121.175 73.8383 114.463 73.7672C104.147 73.6723 97.3879 88.2103 108.131 96.1552C118.732 104.005 168.228 139.627 168.228 139.627L168.394 156.18H224.483L224.601 69.3086H194.458L190.45 73.53V73.5538Z\",\n fill: \"#82C6AE\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.228 140.103C168.133 140.103 168.038 140.079 167.943 140.008C167.445 139.652 118.33 104.291 107.847 96.5361C102.914 92.8839 101.041 87.4292 102.867 81.9982C104.622 76.7806 109.223 73.2944 114.345 73.2944C119.468 73.2944 114.416 73.2944 114.464 73.2944C123.595 73.3892 185.138 73.1758 185.778 73.1758C186.039 73.1758 186.252 73.3892 186.252 73.6501C186.252 73.911 186.039 74.1244 185.778 74.1244C185.161 74.1244 123.595 74.3379 114.464 74.243C114.44 74.243 114.393 74.243 114.369 74.243C109.649 74.243 105.428 77.4684 103.792 82.3065C102.108 87.358 103.839 92.3858 108.44 95.8009C118.922 103.556 168.038 138.917 168.513 139.273C168.726 139.415 168.774 139.724 168.631 139.937C168.536 140.056 168.394 140.127 168.252 140.127L168.228 140.103Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.228 156.655C167.967 156.655 167.754 156.442 167.754 156.181V117.998C167.754 117.737 167.967 117.523 168.228 117.523C168.489 117.523 168.702 117.737 168.702 117.998V156.181C168.702 156.442 168.489 156.655 168.228 156.655Z\",\n fill: \"black\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.228 118.497C168.133 118.497 168.038 118.473 167.943 118.402L124.709 86.2669C124.496 86.1009 124.448 85.8163 124.614 85.6029C124.78 85.3895 125.065 85.342 125.278 85.508L168.513 117.643C168.726 117.809 168.774 118.094 168.608 118.307C168.513 118.426 168.37 118.497 168.228 118.497Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.458 153.169L199.533 147.074L196.094 95.8945H192.822L189.383 147.074L194.458 153.169Z\",\n fill: \"black\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196.094 95.8964H192.822L190.189 88.4258H198.727L196.094 95.8964Z\",\n fill: \"black\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M205.415 81.2617H183.501L188.173 95.8945L194.458 90.7007L200.743 95.8945L205.415 81.2617Z\",\n fill: \"#1F1F1F\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M210.473 76.3068C210.574 74.1742 209.362 72.3843 207.765 72.3091C206.169 72.2338 204.794 73.9016 204.693 76.0342C204.593 78.1668 205.805 79.9566 207.401 80.0319C208.997 80.1072 210.373 78.4394 210.473 76.3068Z\",\n fill: \"white\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.834 73.3177C208.83 73.3177 209.684 74.5272 209.707 76.0213C209.755 77.6103 208.854 79.0333 207.763 79.1281C207.739 79.1281 207.692 79.1281 207.668 79.1281C206.672 79.1281 205.818 77.9186 205.794 76.4245C205.747 74.8355 206.648 73.4126 207.739 73.3177C207.763 73.3177 207.81 73.3177 207.834 73.3177ZM207.834 72.3691C207.786 72.3691 207.715 72.3691 207.668 72.3691C206.055 72.4876 204.798 74.3138 204.846 76.4482C204.893 78.4878 206.15 80.0768 207.668 80.0768C209.186 80.0768 207.786 80.0768 207.834 80.0768C209.447 79.9582 210.704 78.1321 210.656 75.9976C210.609 73.958 209.352 72.3691 207.834 72.3691Z\",\n fill: \"black\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.858 77.7765C207.763 77.7765 207.668 77.7527 207.573 77.6816C207.36 77.5393 207.312 77.231 207.454 77.0175C208.19 75.974 207.549 75.2388 207.454 75.1677C207.265 74.978 207.288 74.6696 207.454 74.5036C207.644 74.3139 207.929 74.3139 208.118 74.5036C208.569 74.9542 209.186 76.1875 208.213 77.5867C208.119 77.7053 207.976 77.7765 207.834 77.7765H207.858Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.454 80.2039C183.051 80.1286 184.263 78.3388 184.163 76.2061C184.062 74.0735 182.686 72.4057 181.09 72.481C179.494 72.5563 178.282 74.3461 178.382 76.4787C178.483 78.6113 179.858 80.2791 181.454 80.2039Z\",\n fill: \"white\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.248 73.3178C181.272 73.3178 181.319 73.3178 181.343 73.3178C182.434 73.3889 183.312 74.8119 183.288 76.4246C183.264 77.9187 182.41 79.1282 181.414 79.1282C180.418 79.1282 181.343 79.1282 181.319 79.1282C180.228 79.0571 179.351 77.6341 179.375 76.0214C179.398 74.5273 180.252 73.3178 181.248 73.3178ZM181.248 72.3691C179.73 72.3691 178.473 73.9581 178.426 75.9977C178.379 78.1322 179.636 79.9346 181.248 80.0769C181.296 80.0769 181.367 80.0769 181.414 80.0769C182.932 80.0769 184.189 78.4879 184.236 76.4483C184.284 74.3139 183.027 72.5114 181.414 72.3691C181.367 72.3691 181.296 72.3691 181.248 72.3691Z\",\n fill: \"black\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.201 77.7765C181.058 77.7765 180.916 77.7053 180.821 77.5867C179.825 76.2112 180.442 74.978 180.916 74.5036C181.106 74.3139 181.39 74.3139 181.58 74.5036C181.77 74.6934 181.77 74.978 181.58 75.1677C181.509 75.2388 180.845 75.974 181.58 77.0175C181.722 77.231 181.675 77.5156 181.462 77.6816C181.367 77.7527 181.272 77.7765 181.177 77.7765H181.201Z\",\n fill: \"black\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.458 88.7337C201.374 88.7337 206.98 83.1273 206.98 76.2116C206.98 69.2958 201.374 63.6895 194.458 63.6895C187.542 63.6895 181.936 69.2958 181.936 76.2116C181.936 83.1273 187.542 88.7337 194.458 88.7337Z\",\n fill: \"white\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.458 64.6381C196.474 64.6381 198.466 65.1836 200.245 66.2034C205.771 69.405 207.668 76.4962 204.49 82.0219C202.427 85.6031 198.585 87.8087 194.458 87.8087C190.331 87.8087 190.45 87.2633 188.671 86.2672C183.146 83.0655 181.248 75.9744 184.426 70.4486C186.489 66.8674 190.331 64.6618 194.458 64.6618V64.6381ZM194.458 63.6895C190.118 63.6895 185.92 65.9425 183.596 69.9505C180.134 75.9507 182.197 83.611 188.173 87.0735C190.142 88.2119 192.3 88.7574 194.434 88.7574C198.774 88.7574 202.972 86.5042 205.296 82.4962C208.759 76.4961 206.696 68.8359 200.719 65.3733C198.751 64.2349 196.593 63.6895 194.458 63.6895Z\",\n fill: \"black\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M195.691 80.5039L191.185 80.4328C190.972 80.4328 190.782 80.2668 190.735 80.0533C190.687 79.8399 190.806 79.6264 190.995 79.5316C190.995 79.5316 192.964 78.4169 192.679 72.1796C192.679 71.9187 192.869 71.7053 193.13 71.6816C193.391 71.6816 193.604 71.8713 193.628 72.1322C193.818 76.3773 193.011 78.4881 192.324 79.5079L195.715 79.5553C195.976 79.5553 196.189 79.7687 196.189 80.0296C196.189 80.2905 195.976 80.5039 195.715 80.5039H195.691Z\",\n fill: \"black\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.007 75.9023C186.679 75.9023 185.541 74.9536 185.304 73.6492C185.256 73.3884 185.422 73.1512 185.683 73.1038C185.944 73.0563 186.181 73.2224 186.229 73.4832C186.395 74.337 187.13 74.9536 188.007 74.9536C188.885 74.9536 189.62 74.337 189.786 73.4832C189.833 73.2224 190.071 73.0563 190.331 73.1038C190.592 73.1512 190.758 73.3884 190.711 73.6492C190.474 74.9536 189.335 75.9023 188.007 75.9023Z\",\n fill: \"black\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.846 75.9023C197.517 75.9023 196.379 74.9536 196.142 73.6492C196.094 73.3884 196.26 73.1512 196.521 73.1038C196.782 73.0563 197.019 73.2224 197.067 73.4832C197.233 74.337 197.968 74.9536 198.846 74.9536C199.723 74.9536 200.458 74.337 200.624 73.4832C200.672 73.2224 200.909 73.0563 201.17 73.1038C201.431 73.1512 201.597 73.3884 201.549 73.6492C201.312 74.9536 200.174 75.9023 198.846 75.9023Z\",\n fill: \"black\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.554 102.488C224.554 102.488 255.171 80.5028 264.61 72.8188C272.46 66.4629 270.516 51.166 256.428 51.0474C245.092 50.9526 216.253 51.0474 216.253 51.0474C209.826 50.5257 203.873 49.0553 198.466 47.0394L193.177 45.0235C190.26 43.6954 188.363 46.6837 191.043 48.5098C191.944 49.1264 198.205 51.9486 198.205 51.9486L179.825 52.0435C178.924 52.0435 178.189 52.8024 178.189 53.7036V53.8459C178.189 54.7471 178.971 55.3875 179.849 55.4823L192.845 56.7156L177.62 57.2136C176.718 57.2136 175.983 57.9725 175.983 58.8737V59.016C175.983 59.9172 176.647 60.605 177.643 60.6524L191.802 61.3402L178.331 61.862C177.359 61.9331 176.695 62.6209 176.695 63.5221V63.6644C176.695 64.5656 177.383 65.2296 178.355 65.3008L191.683 65.9174L180.798 67.791C179.825 67.9333 179.256 68.7633 179.398 69.6646V69.8068C179.541 70.7081 180.371 71.301 181.272 71.2061L192.964 69.7831C194.079 69.6408 195.17 69.546 196.284 69.4985L224.056 69.3325L224.578 102.488H224.554Z\",\n fill: \"#82C6AE\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.293 136.189C220.285 136.023 217.131 134.647 214.925 132.062C210.632 127.035 211.462 119.351 211.51 119.019C211.534 118.758 211.771 118.568 212.032 118.592C212.292 118.616 212.482 118.853 212.458 119.114C212.458 119.185 211.628 126.726 215.66 131.422C217.676 133.794 220.617 135.051 224.34 135.217C224.601 135.217 224.815 135.454 224.791 135.715C224.791 135.976 224.577 136.165 224.317 136.165L224.293 136.189Z\",\n fill: \"#1F1F1F\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.554 102.963C224.411 102.963 224.269 102.892 224.174 102.773C224.032 102.56 224.079 102.275 224.293 102.109C224.601 101.896 255.005 80.0293 264.349 72.4638C268.239 69.3096 269.757 63.76 268.096 58.9694C266.46 54.2973 262.215 51.5937 256.452 51.5225C245.258 51.4277 216.561 51.5225 216.277 51.5225C216.277 51.5225 216.253 51.5225 216.229 51.5225C210.206 51.0245 204.182 49.6727 198.324 47.4908L193.035 45.4749C193.035 45.4749 193.035 45.4749 193.011 45.4749C191.731 44.882 190.758 45.2852 190.426 45.9018C190.118 46.4473 190.189 47.3485 191.351 48.1311C192.063 48.6054 196.711 50.7399 198.419 51.5225C198.632 51.6174 198.727 51.8308 198.679 52.0443C198.632 52.2577 198.442 52.4237 198.229 52.4237L179.849 52.5186C179.541 52.5186 179.232 52.6372 179.019 52.8743C178.805 53.1115 178.687 53.3961 178.687 53.7044V53.8467C178.687 54.5345 179.303 54.9614 179.92 55.0088L192.916 56.242C193.154 56.242 193.343 56.4792 193.343 56.7401C193.343 57.0009 193.13 57.1907 192.893 57.1907L177.667 57.6887C177.335 57.6887 177.05 57.8073 176.837 58.0444C176.624 58.2579 176.505 58.5662 176.505 58.8745V59.0168C176.505 59.7046 176.979 60.1315 177.714 60.1789L191.873 60.8667C192.134 60.8667 192.324 61.0801 192.324 61.341C192.324 61.6019 192.11 61.7916 191.873 61.8153L178.402 62.3371C177.714 62.3845 177.216 62.8588 177.216 63.5229V63.6652C177.216 64.3292 177.691 64.7798 178.45 64.8272L191.778 65.4439C192.015 65.4439 192.205 65.6573 192.229 65.8945C192.229 66.1316 192.063 66.3451 191.826 66.3925L180.94 68.2661C180.252 68.3609 179.825 68.9301 179.92 69.5942V69.7365C180.039 70.3768 180.608 70.8037 181.296 70.7326L192.988 69.3096C194.814 69.0961 196.687 68.9776 198.513 68.9538L249.645 68.7167V69.6653L198.513 69.9025C196.711 69.9025 194.885 70.0211 193.082 70.2345L181.39 71.6575C180.205 71.7761 179.161 70.9934 178.995 69.8551V69.7128C178.805 68.527 179.588 67.4835 180.774 67.3174L187.367 66.1791L178.402 65.7759C177.169 65.681 176.292 64.8272 176.292 63.6652V63.5229C176.292 62.3608 177.169 61.4596 178.379 61.3884L181.13 61.2698L177.691 61.1038C176.458 61.0327 175.58 60.1552 175.58 58.9931V58.8508C175.58 58.2816 175.793 57.7599 176.197 57.3567C176.6 56.9535 177.122 56.7163 177.691 56.7163L185.493 56.4555L179.896 55.9337C178.687 55.8151 177.809 54.9376 177.809 53.823V53.6807C177.809 53.1115 178.023 52.5897 178.426 52.1866C178.829 51.7834 179.351 51.5462 179.92 51.5462L196.118 51.4751C194.197 50.5976 191.47 49.3169 190.853 48.9138C189.264 47.8465 189.098 46.3999 189.644 45.4512C190.189 44.4788 191.612 43.7911 193.438 44.6211L198.727 46.6133C204.49 48.7715 210.419 50.0996 216.348 50.5976C217.249 50.5976 245.448 50.5027 256.523 50.5976C262.713 50.645 267.266 53.5858 269.045 58.6611C270.848 63.8312 269.187 69.8076 265.013 73.2227C255.669 80.8119 225.218 102.678 224.933 102.892C224.838 102.963 224.743 102.986 224.649 102.986L224.554 102.963Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.554 156.727C224.293 156.727 224.079 156.514 224.079 156.253L223.819 91.1521C223.819 90.8912 224.032 90.6777 224.293 90.6777C224.554 90.6777 224.767 90.8912 224.767 91.1521L225.028 156.253C225.028 156.514 224.815 156.727 224.554 156.727Z\",\n fill: \"black\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.706 156.205L224.483 156.182L167.754 159.17L167.706 156.205Z\",\n fill: \"black\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256.784 181.203L226.664 144.965L226.925 143.803L257.827 180.942L256.784 181.203Z\",\n fill: \"white\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M195.312 294.066H155.848L156.963 293.117H195.312V294.066Z\",\n fill: \"white\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M169.153 90.8438L168.679 119.09L164.86 115.651L169.153 90.8438Z\",\n fill: \"black\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M220.071 50.502H216.799V69.9018H220.071V50.502Z\",\n fill: \"black\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M218.435 61.5313C220.413 61.5313 222.016 59.928 222.016 57.9502C222.016 55.9724 220.413 54.3691 218.435 54.3691C216.457 54.3691 214.854 55.9724 214.854 57.9502C214.854 59.928 216.457 61.5313 218.435 61.5313Z\",\n fill: \"white\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M172.687 283.775C172.615 283.775 172.568 283.775 172.497 283.727C172.331 283.656 172.212 283.49 172.212 283.301V277.988C172.212 277.727 172.426 277.514 172.687 277.514C172.948 277.514 173.161 277.727 173.161 277.988V282.186L176.291 279.174C176.481 278.984 176.79 279.008 176.956 279.174C177.145 279.364 177.122 279.672 176.956 279.838L173.019 283.633C172.924 283.727 172.805 283.775 172.687 283.775Z\",\n fill: \"white\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M233.376 183.574C233.234 183.574 233.115 183.526 233.02 183.408C232.854 183.218 232.878 182.91 233.092 182.744L236.317 180.064L232.001 179.589C231.74 179.566 231.55 179.328 231.574 179.068C231.597 178.807 231.835 178.617 232.096 178.641L237.527 179.234C237.716 179.234 237.882 179.376 237.93 179.566C237.977 179.755 237.93 179.945 237.787 180.064L233.708 183.455C233.613 183.526 233.519 183.574 233.4 183.574H233.376Z\",\n fill: \"white\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.204 156.679C167.943 156.679 167.73 156.465 167.73 156.204C167.73 155.943 167.943 155.73 168.204 155.73H224.483C224.743 155.73 224.957 155.92 224.957 156.18C224.957 156.441 224.743 156.655 224.483 156.655H168.204V156.679Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.87 114.031L152.813 128.5L153.592 129.042L163.649 114.573L162.87 114.031Z\",\n fill: \"black\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.676 111.545L149.619 126.014L150.398 126.556L160.455 112.086L159.676 111.545Z\",\n fill: \"black\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M303.078 204.611L272.318 197.52L272.199 210.374L302.959 217.489L313.702 213.505L303.078 204.611Z\",\n fill: \"#EDEDED\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M272.199 210.372L272.318 197.494L303.054 204.585L313.679 213.479L302.935 217.439L272.199 210.348V210.372ZM303.125 203.684L271.962 196.498C271.867 196.498 271.796 196.498 271.725 196.569C271.654 196.64 271.63 196.759 271.63 196.877L271.512 210.68C271.512 210.799 271.535 210.917 271.606 211.036C271.678 211.131 271.749 211.202 271.844 211.226L303.006 218.412C303.054 218.412 303.101 218.412 303.149 218.412L314.675 214.167C314.793 214.119 314.888 213.977 314.888 213.787C314.888 213.597 314.817 213.431 314.699 213.313L303.315 203.779C303.267 203.755 303.22 203.731 303.172 203.708L303.125 203.684Z\",\n fill: \"black\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.037 149.256L75.285 141.453L64.3281 145.461L75.2612 154.686L108.013 162.465L108.037 149.256Z\",\n fill: \"white\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.2613 154.687L64.3282 145.462L75.3087 141.454L108.061 149.233L108.013 162.443L75.2613 154.664V154.687ZM108.725 148.498L75.1664 140.529L62.668 145.082L75.1427 155.589L108.701 163.557L108.748 148.498H108.725Z\",\n fill: \"black\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.808 210.824L108.487 202.879L108.439 217.844L141.785 225.788L154.188 221.235L141.808 210.824Z\",\n fill: \"#CCCCCC\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.5375 198.088C83.3952 198.159 83.2529 198.017 83.2766 197.756C83.3003 197.495 83.4189 197.258 83.5612 197.187L103.293 188.744C103.435 188.673 103.578 188.815 103.554 189.076C103.53 189.337 103.412 189.574 103.269 189.645L83.5375 198.088ZM63.948 201.053C63.8057 201.124 63.6634 200.981 63.6871 200.72C63.7108 200.46 63.8294 200.222 63.9717 200.151L103.435 183.242C103.578 183.171 103.72 183.313 103.696 183.574C103.672 183.835 103.554 184.072 103.412 184.143L63.948 201.053ZM64.0903 195.55C63.948 195.622 63.8057 195.479 63.8294 195.218C63.8531 194.957 63.9717 194.72 64.114 194.649L103.578 177.74C103.72 177.668 103.862 177.811 103.839 178.072C103.815 178.332 103.696 178.57 103.554 178.641L64.0903 195.55ZM108.534 168.633L61.4341 188.815L43.5996 208.737L60.7938 213.646L107.894 193.463L108.534 168.633Z\",\n fill: \"black\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.602 177.739L64.1381 194.649C63.9958 194.72 63.8535 194.957 63.8535 195.218C63.8535 195.479 63.9721 195.621 64.1144 195.55L103.578 178.641C103.72 178.569 103.863 178.332 103.863 178.071C103.863 177.81 103.744 177.668 103.602 177.739Z\",\n fill: \"white\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.459 183.243L63.9955 200.152C63.8532 200.223 63.7109 200.461 63.7109 200.721C63.7109 200.982 63.8295 201.125 63.9718 201.053L103.435 184.144C103.578 184.073 103.72 183.836 103.72 183.575C103.72 183.314 103.601 183.172 103.459 183.243Z\",\n fill: \"white\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.317 188.743L83.5854 197.186C83.4431 197.257 83.3008 197.494 83.3008 197.755C83.3008 198.016 83.4194 198.158 83.5617 198.087L103.293 189.644C103.436 189.573 103.578 189.336 103.578 189.075C103.578 188.814 103.459 188.671 103.317 188.743Z\",\n fill: \"white\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M274.974 133.249L306.303 119.944C306.445 119.873 306.588 119.612 306.588 119.375C306.588 119.137 306.469 118.971 306.303 119.043L274.974 132.348C274.808 132.419 274.689 132.656 274.689 132.917C274.689 133.178 274.808 133.32 274.974 133.249L274.903 137.589C274.737 137.66 274.618 137.494 274.618 137.257C274.618 137.02 274.761 136.759 274.903 136.688L306.232 123.383C306.374 123.312 306.516 123.454 306.516 123.715C306.516 123.976 306.374 124.213 306.232 124.284L274.903 137.589L274.832 141.929C274.666 142 274.547 141.858 274.547 141.597C274.547 141.336 274.689 141.099 274.832 141.028L290.484 134.387C290.65 134.316 290.769 134.458 290.769 134.719C290.769 134.98 290.627 135.217 290.484 135.289L274.832 141.929L274.95 133.273L274.974 133.249ZM308.675 112.592L271.298 128.458L271.013 148.048L308.39 132.182L322.43 116.481L308.675 112.592Z\",\n fill: \"#CCCCCC\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M306.327 119.065L274.998 132.371C274.832 132.442 274.713 132.679 274.713 132.94C274.713 133.201 274.832 133.343 274.998 133.272L306.327 119.967C306.469 119.896 306.611 119.635 306.611 119.398C306.611 119.16 306.493 118.994 306.327 119.065Z\",\n fill: \"white\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M306.256 123.382L274.927 136.687C274.761 136.758 274.642 136.995 274.642 137.256C274.642 137.517 274.761 137.66 274.927 137.588L306.256 124.284C306.398 124.213 306.54 123.952 306.54 123.714C306.54 123.477 306.422 123.311 306.256 123.382Z\",\n fill: \"white\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M290.532 134.364L274.879 141.004C274.713 141.076 274.595 141.313 274.595 141.574C274.595 141.835 274.713 141.977 274.879 141.906L290.532 135.265C290.698 135.194 290.817 134.957 290.817 134.696C290.817 134.435 290.698 134.293 290.532 134.364Z\",\n fill: \"white\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.108 296.224C107.847 296.224 107.634 296.011 107.634 295.75V148.544C107.634 148.283 107.847 148.07 108.108 148.07C108.369 148.07 108.582 148.283 108.582 148.544V295.75C108.582 296.011 108.369 296.224 108.108 296.224Z\",\n fill: \"black\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.476 296.224H92.7165C92.4556 296.224 92.2422 296.011 92.2422 295.75C92.2422 295.489 92.4556 295.275 92.7165 295.275H123.476C123.737 295.275 123.951 295.489 123.951 295.75C123.951 296.011 123.737 296.224 123.476 296.224Z\",\n fill: \"black\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M271.488 296.224C271.227 296.224 271.013 296.01 271.013 295.75V128.836C271.013 128.575 271.227 128.361 271.488 128.361C271.749 128.361 271.962 128.575 271.962 128.836V295.726C271.962 295.987 271.749 296.2 271.488 296.2V296.224Z\",\n fill: \"black\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M286.856 296.224H256.096C255.835 296.224 255.622 296.011 255.622 295.75C255.622 295.489 255.835 295.275 256.096 295.275H286.856C287.117 295.275 287.33 295.489 287.33 295.75C287.33 296.011 287.117 296.224 286.856 296.224Z\",\n fill: \"black\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.483 156.182L213.241 209.424L219.716 156.443L224.483 156.182Z\",\n fill: \"black\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_6310_23706\",\n x1: 297.5,\n y1: -19.75,\n x2: 243.255,\n y2: 192.61,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEF8EE\",\n stopOpacity: 0.5\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.655,\n stopColor: \"#F6E0DA\",\n stopOpacity: 0.57\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.88,\n stopColor: \"#F5DED8\",\n stopOpacity: 0.48\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssessmentSessionExpired);\nexport default __webpack_public_path__ + \"static/media/assessment-session-expired.18673d598a2c6cc59a49f4ecc37cd504.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\nimport { PageLayout, ErrorComponent, LoadingSpinner } from \"shared\";\nimport SessionExpired from \"assets/images/assessment-session-expired.svg\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nexport const ExpiredPage = () => {\n const navigate = useNavigate();\n const location = useLocation();\n\n const message = location?.state?.message;\n\n const isFromMobileApp = sessionStorage.getItem(\"isFromMobileApp\");\n useEffect(() => {\n if (isFromMobileApp) {\n navigate(\"?tokenExpiredForMobileApp\");\n }\n }, []);\n\n if (isFromMobileApp) {\n return ;\n }\n\n const goToDashboard = () => {\n navigate(\"/program/assessment\", { replace: true });\n };\n\n return (\n \n \n \n );\n};\n","import React, { useCallback } from \"react\";\nimport { QuestionModalItem } from \"..\";\nimport { useQuestionareContext } from \"master\";\nimport { useNavigate } from \"react-router-dom\";\nimport { PageLayout } from \"shared\";\n\nexport const QuestionsAllMobile = () => {\n const navigate = useNavigate();\n const questionnaireContext = useQuestionareContext();\n const {\n questionnaire,\n currentQuestionIndex,\n onChangeSection,\n setCurrentQuestionIndex,\n getFilteredQuestions,\n markedQuestions,\n getCurrentSectionIndex,\n getCurrentQuestionIndex,\n setIsModalOpen,\n } = questionnaireContext;\n\n const currentSectionQuestions = getFilteredQuestions(\n currentQuestionIndex.sectionIndex\n );\n\n const navigateQuestionHandle = useCallback(\n (questionNumber, sectionId) => {\n const sectionIndex = getCurrentSectionIndex(sectionId);\n const questionIndex = getCurrentQuestionIndex(questionNumber);\n setCurrentQuestionIndex((draft) => {\n draft = {\n sectionIndex,\n questionIndex,\n };\n return draft;\n });\n navigate(\"/program/assessment/start\");\n\n setIsModalOpen((draft) => {\n draft = {\n type: \"\",\n isOpen: false,\n };\n return draft;\n });\n },\n [currentQuestionIndex]\n );\n\n return (\n \n <>\n
    \n
    \n
    \n
    \n

    All Questions View

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {questionnaire &&\n questionnaire?.sections?.map((section, index) => (\n onChangeSection(section?.sectionId)}\n className={`question-header-btn ${\n currentQuestionIndex?.sectionIndex === index\n ? \"active\"\n : \"\"\n }`}\n >\n {section?.name}\n \n ))}\n
    \n
    \n
    \n
    \n
      \n {currentSectionQuestions &&\n currentSectionQuestions?.map((question, index) => {\n return (\n \n );\n })}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n );\n};\n","import React, { useEffect } from \"react\";\nimport { LoadingSpinner, PageLayout } from \"shared\";\nimport { useAssessment, ResultCard, PublishSoonCard } from \"..\";\nimport { useQuestionareContext } from \"master\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport const AssessmentResult = () => {\n const questionnaireContext = useQuestionareContext();\n const navigate = useNavigate();\n const { disableBackButton, setIsModalOpen } = questionnaireContext;\n\n useEffect(() => {\n disableBackButton();\n }, []);\n\n const assessmentId = JSON.parse(sessionStorage.getItem(\"assessmentId\"));\n const assessmentMasterId = sessionStorage.getItem(\n `assessmentMasterId_${assessmentId}`\n );\n const { assessmentResultQuery } = useAssessment({\n load: false,\n assessmentMasterId,\n });\n\n const { data: assessmentResult, isLoading } = assessmentResultQuery;\n\n const errorDetails =\n assessmentResultQuery && assessmentResultQuery?.error?.response;\n\n useEffect(() => {\n if (assessmentResultQuery?.error) {\n if (errorDetails?.status === 405) {\n setIsModalOpen((draft) => {\n draft = {\n type: \"tokenExpired\",\n isOpen: true,\n message: errorDetails?.data?.message,\n };\n return draft;\n });\n }\n }\n }, [assessmentResultQuery?.error]);\n\n const isPassedAssessment =\n assessmentResult && assessmentResult?.resultStatus === 4;\n const isFailedAssessment =\n assessmentResult && assessmentResult?.resultStatus === 5;\n const isAwaitingResult =\n assessmentResult && assessmentResult?.resultStatus === 6;\n\n const goToDashboard = () => {\n sessionStorage.removeItem(`assessmentData_${assessmentId}`);\n sessionStorage.removeItem(`currentQuestionIndex_${assessmentId}`);\n sessionStorage.removeItem(`assessmentMasterId_${assessmentId}`);\n sessionStorage.removeItem(\"markedQuestions\");\n sessionStorage.removeItem(\"slotId\");\n sessionStorage.removeItem(\"attemptId\");\n sessionStorage.removeItem(\"assessmentId\");\n sessionStorage.removeItem(\"assessmentToken\");\n const isFromMobil = sessionStorage.getItem(\"isFromMobileApp\");\n if (!!isFromMobil) {\n navigate(\"?assessmentCompleted\");\n } else {\n window.close();\n }\n };\n\n if (isLoading) return ;\n\n return (\n \n {(isPassedAssessment || isFailedAssessment) && (\n \n )}\n {isAwaitingResult && (\n \n )}\n \n );\n};\n","import { useAppScope } from \"master\";\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { LoadingSpinner } from \"shared\";\nimport { setCookie } from \"utils\";\n\nexport const StartingAssessment = () => {\n const { AppState } = useAppScope();\n const navigate = useNavigate();\n const params = new URLSearchParams(window.location.search);\n const assessmentId_q = params.get(\"assessmentId\");\n const slotId_q = params.get(\"slotId\");\n const attemptId_q = params.get(\"attemptId\");\n const assessmentToken_q = params.get(\"assessmentToken\");\n const isFromMobileApp = params.get(\"isFromMobileApp\");\n\n useEffect(() => {\n if (assessmentId_q && slotId_q && assessmentToken_q && isFromMobileApp) {\n return;\n } else if (AppState.token) return navigate(\"/\");\n }, [AppState.token]);\n\n useEffect(() => {\n if (assessmentId_q && slotId_q && assessmentToken_q && isFromMobileApp) {\n try {\n setCookie(\n \"_stu_user_data\",\n JSON.stringify({\n refreshToken: \"20e5db5b66dc4\",\n token: \"eyJhbGciOi-HIkR4H_o\",\n user: {\n userId: \"126c8e\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n },\n })\n );\n localStorage.setItem(\"_stu_selectedProgram\", true);\n window.location.href = `/program/assessment/start?assessmentId=${assessmentId_q}&slotId=${slotId_q}&attemptId=${attemptId_q}&assessmentToken=${assessmentToken_q}`;\n } catch (error) {\n console.log(error);\n }\n }\n }, []);\n\n return ;\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgQuesionMarkGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 0C3.5912 0 0 3.5912 0 8C0 12.4088 3.5912 16 8 16C12.4088 16 16 12.4088 16 8C16 3.5912 12.4088 0 8 0ZM8 1.6C11.5441 1.6 14.4 4.4559 14.4 8C14.4 11.5441 11.5441 14.4 8 14.4C4.4559 14.4 1.6 11.5441 1.6 8C1.6 4.4559 4.4559 1.6 8 1.6ZM8 3.2C6.232 3.2 4.8 4.632 4.8 6.4H6.4C6.4 5.52 7.12 4.8 8 4.8C8.88 4.8 9.6 5.52 9.6 6.4C9.6 8 7.2 8.2936 7.2 10.4H8.8C8.8 9.0792 11.2 8.4 11.2 6.4C11.2 4.632 9.768 3.2 8 3.2ZM7.2 11.2V12.8H8.8V11.2H7.2Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuesionMarkGrey);\nexport default __webpack_public_path__ + \"static/media/quesion-mark-grey.c9b725223ee05b5b9c343aea7fe9ff71.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgTimerIconDarkGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 21,\n viewBox: \"0 0 18 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.75 0.500075C7.65062 0.498669 7.55194 0.51703 7.45972 0.554091C7.36749 0.591151 7.28355 0.646172 7.21277 0.715955C7.142 0.785738 7.08579 0.868893 7.04743 0.960586C7.00907 1.05228 6.98932 1.15068 6.98932 1.25007C6.98932 1.34947 7.00907 1.44787 7.04743 1.53956C7.08579 1.63126 7.142 1.71441 7.21277 1.78419C7.28355 1.85398 7.36749 1.909 7.45972 1.94606C7.55194 1.98312 7.65062 2.00148 7.75 2.00007H8.25V3.03816C3.63849 3.42144 0 7.29149 0 12.0001C0 16.9618 4.03832 21.0001 9 21.0001C13.9617 21.0001 18 16.9618 18 12.0001C18 9.78868 17.1948 7.76416 15.8662 6.19539L16.7783 5.2823C16.8865 5.17692 16.9604 5.04134 16.9903 4.89328C17.0201 4.74523 17.0046 4.59161 16.9457 4.45253C16.8868 4.31344 16.7873 4.19537 16.6602 4.11377C16.5331 4.03217 16.3844 3.99084 16.2334 3.99519C16.0386 4.00087 15.8537 4.08212 15.7178 4.22175L14.8047 5.13386C13.4155 3.95733 11.6679 3.19756 9.75 3.03816V2.00007H10.25C10.3494 2.00148 10.4481 1.98312 10.5403 1.94606C10.6325 1.909 10.7164 1.85398 10.7872 1.78419C10.858 1.71441 10.9142 1.63126 10.9526 1.53956C10.9909 1.44787 11.0107 1.34947 11.0107 1.25007C11.0107 1.15068 10.9909 1.05228 10.9526 0.960586C10.9142 0.868893 10.858 0.785738 10.7872 0.715955C10.7164 0.646172 10.6325 0.591151 10.5403 0.554091C10.4481 0.51703 10.3494 0.498669 10.25 0.500075H7.75ZM8.91113 4.50496C8.97146 4.51232 9.03245 4.51232 9.09277 4.50496C11.11 4.52952 12.9315 5.34265 14.2637 6.65437C14.288 6.68267 14.3145 6.70911 14.3428 6.73347C15.6765 8.08649 16.5 9.94403 16.5 12.0001C16.5 16.1511 13.151 19.5001 9 19.5001C4.84898 19.5001 1.5 16.1511 1.5 12.0001C1.5 7.87906 4.80176 4.55289 8.91113 4.50496ZM12.2354 7.99324C12.0406 7.99891 11.8556 8.08017 11.7197 8.2198L9.38672 10.5528C9.26066 10.5185 9.13065 10.5007 9 10.5001C8.60218 10.5001 8.22064 10.6581 7.93934 10.9394C7.65804 11.2207 7.5 11.6022 7.5 12.0001C7.5 12.3979 7.65804 12.7794 7.93934 13.0607C8.22064 13.342 8.60218 13.5001 9 13.5001C9.22997 13.5 9.45683 13.447 9.66305 13.3452C9.86927 13.2434 10.0493 13.0956 10.1893 12.9131C10.3293 12.7307 10.4254 12.5185 10.4703 12.2929C10.5152 12.0674 10.5077 11.8345 10.4482 11.6124L12.7803 9.28035C12.8885 9.17497 12.9623 9.03938 12.9922 8.89133C13.0221 8.74328 13.0066 8.58966 12.9477 8.45057C12.8888 8.31149 12.7893 8.19342 12.6622 8.11182C12.5351 8.03022 12.3863 7.98889 12.2354 7.99324Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTimerIconDarkGrey);\nexport default __webpack_public_path__ + \"static/media/timer-icon-dark-grey.aed893808d97df0fbfa75d2d3b0f6d32.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCloseFilledRed(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 0C4.47 0 0 4.47 0 10C0 15.53 4.47 20 10 20C15.53 20 20 15.53 20 10C20 4.47 15.53 0 10 0ZM15 13.59L13.59 15L10 11.41L6.41 15L5 13.59L8.59 10L5 6.41L6.41 5L10 8.59L13.59 5L15 6.41L11.41 10L15 13.59Z\",\n fill: \"#F01F1F\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseFilledRed);\nexport default __webpack_public_path__ + \"static/media/close-filled-red.77ba7b944da89b9c4b5889388717f1ea.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgSandTimerBownIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 18,\n viewBox: \"0 0 17 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.49996 0.000100007C1.36745 -0.00177404 1.23589 0.0227073 1.11292 0.072121C0.989949 0.121535 0.878028 0.194895 0.783658 0.28794C0.689289 0.380984 0.614352 0.491857 0.563205 0.614114C0.512057 0.736371 0.485718 0.867575 0.485718 1.0001C0.485718 1.13263 0.512057 1.26383 0.563205 1.38609C0.614352 1.50834 0.689289 1.61922 0.783658 1.71226C0.878028 1.8053 0.989949 1.87867 1.11292 1.92808C1.23589 1.97749 1.36745 2.00197 1.49996 2.0001V2.5001C1.49996 5.45991 3.39031 7.92012 5.99996 8.93858V9.06162C3.39027 10.0796 1.49996 12.5399 1.49996 15.5001V16.0001C1.36745 15.9982 1.23589 16.0227 1.11292 16.0721C0.989949 16.1215 0.878028 16.1949 0.783658 16.2879C0.689289 16.381 0.614352 16.4919 0.563205 16.6141C0.512057 16.7364 0.485718 16.8676 0.485718 17.0001C0.485718 17.1326 0.512057 17.2638 0.563205 17.3861C0.614352 17.5083 0.689289 17.6192 0.783658 17.7123C0.878028 17.8053 0.989949 17.8787 1.11292 17.9281C1.23589 17.9775 1.36745 18.002 1.49996 18.0001H2.49996H14.5H15.5C15.6325 18.002 15.764 17.9775 15.887 17.9281C16.01 17.8787 16.1219 17.8053 16.2163 17.7123C16.3106 17.6192 16.3856 17.5083 16.4367 17.3861C16.4879 17.2638 16.5142 17.1326 16.5142 17.0001C16.5142 16.8676 16.4879 16.7364 16.4367 16.6141C16.3856 16.4919 16.3106 16.381 16.2163 16.2879C16.1219 16.1949 16.01 16.1215 15.887 16.0721C15.764 16.0227 15.6325 15.9982 15.5 16.0001V15.5001C15.5 12.5399 13.6095 10.08 11 9.06162V8.93858C13.6097 7.92052 15.5 5.45991 15.5 2.5001V2.0001C15.6325 2.00197 15.764 1.97749 15.887 1.92808C16.01 1.87867 16.1219 1.8053 16.2163 1.71226C16.3106 1.61922 16.3856 1.50834 16.4367 1.38609C16.4879 1.26383 16.5142 1.13263 16.5142 1.0001C16.5142 0.867575 16.4879 0.736371 16.4367 0.614114C16.3856 0.491857 16.3106 0.380984 16.2163 0.28794C16.1219 0.194895 16.01 0.121535 15.887 0.072121C15.764 0.0227073 15.6325 -0.00177404 15.5 0.000100007H14.5H2.49996H1.49996ZM3.49996 2.0001H13.5V2.5001C13.5 4.83811 11.9037 6.78007 9.74996 7.33506C9.53539 7.39048 9.3453 7.5156 9.20955 7.69076C9.0738 7.86593 9.00008 8.08122 8.99996 8.30283V9.69639C8.99986 9.91817 9.07349 10.1337 9.20926 10.3091C9.34502 10.4844 9.53523 10.6097 9.74996 10.6651C11.904 11.2206 13.5 13.1615 13.5 15.5001V16.0001H12.0322C11.5169 14.5444 10.1321 13.5001 8.49996 13.5001C6.86782 13.5001 5.48298 14.5444 4.96773 16.0001H3.49996V15.5001C3.49996 13.1615 5.09609 11.2202 7.24996 10.6651C7.46453 10.6097 7.65461 10.4846 7.79036 10.3094C7.92611 10.1343 7.99984 9.91898 7.99996 9.69737V8.30381C8.00005 8.08203 7.92643 7.86651 7.79066 7.69115C7.6549 7.51578 7.46469 7.39052 7.24996 7.33506C5.09606 6.77962 3.49996 4.83811 3.49996 2.5001V2.0001ZM6.49996 5.0001C6.49996 6.1046 7.39546 7.0001 8.49996 7.0001C9.60446 7.0001 10.5 6.1046 10.5 5.0001H6.49996Z\",\n fill: \"#B97C02\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSandTimerBownIcon);\nexport default __webpack_public_path__ + \"static/media/sand-timer-bown-icon.c0d6ea5d0e62a9d1bbd8e016eefb252c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgNotAttempted(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5 1C5.74746 1 3.5 3.24746 3.5 6C3.5 8.75254 5.74746 11 8.5 11C11.2525 11 13.5 8.75254 13.5 6C13.5 3.24746 11.2525 1 8.5 1ZM8.5 2.5C10.4419 2.5 12 4.05812 12 6C12 7.94188 10.4419 9.5 8.5 9.5C6.55812 9.5 5 7.94188 5 6C5 4.05812 6.55812 2.5 8.5 2.5ZM17.5 12C14.4625 12 12 14.4625 12 17.5C12 20.5375 14.4625 23 17.5 23C20.5375 23 23 20.5375 23 17.5C23 14.4625 20.5375 12 17.5 12ZM3.11133 13C2.08483 13 1.25 13.8923 1.25 14.9893V15.75C1.25 17.3905 2.0977 18.8162 3.6377 19.7637C4.9332 20.5612 6.66 21 8.5 21C9.595 21 10.7158 20.8379 11.7393 20.5049C11.5093 20.0644 11.332 19.5931 11.207 19.1006C10.3585 19.3676 9.4185 19.5 8.5 19.5C5.7305 19.5 2.75 18.3265 2.75 15.75V14.9893C2.75 14.7238 2.91533 14.5 3.11133 14.5H11.7373C12.0248 13.9485 12.3894 13.4445 12.8164 13H3.11133ZM15 14.5C15.1279 14.5 15.2558 14.5487 15.3535 14.6465L17.5 16.793L19.6465 14.6465C19.842 14.451 20.158 14.451 20.3535 14.6465C20.549 14.842 20.549 15.158 20.3535 15.3535L18.207 17.5L20.3535 19.6465C20.549 19.842 20.549 20.158 20.3535 20.3535C20.256 20.451 20.128 20.5 20 20.5C19.872 20.5 19.744 20.451 19.6465 20.3535L17.5 18.207L15.3535 20.3535C15.256 20.451 15.128 20.5 15 20.5C14.872 20.5 14.744 20.451 14.6465 20.3535C14.451 20.158 14.451 19.842 14.6465 19.6465L16.793 17.5L14.6465 15.3535C14.451 15.158 14.451 14.842 14.6465 14.6465C14.7442 14.5487 14.8721 14.5 15 14.5Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotAttempted);\nexport default __webpack_public_path__ + \"static/media/not-attempted.ef6990d82576fdfc5368362e5efa5c9f.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from \"react\";\nimport {\n AssessmentStatusRow,\n AttemptItem,\n useTimeout,\n AssessmentSpinnerElement,\n ScheduledDateView,\n GET_ASSESSMENT_LIST,\n} from \"..\";\nimport questionIcon from \"assets/images/icons/quesion-mark-grey.svg\";\nimport timerIcon from \"assets/images/icons/timer-icon-dark-grey.svg\";\nimport greenCheck from \"assets/images/icons/green-check-filled.svg\";\nimport closeIcon from \"assets/images/icons/close-filled-red.svg\";\nimport sandClockIcon from \"assets/images/icons/sand-timer-bown-icon.svg\";\nimport notAttemptedIcon from \"assets/images/icons/not-attempted.svg\";\nimport { useQueryClient } from \"@tanstack/react-query\";\n\nexport const AssessmentItem = ({\n assessmentData,\n onStartAssessment,\n onScheduleAssessment,\n isFetching,\n studentBatchId,\n}) => {\n const {\n name,\n noOfQuestions,\n maxTime,\n remainingAttempt,\n maxAttempt,\n attemptStatus,\n activeSchedule,\n assessmentId,\n attempts,\n slotId,\n attemptId,\n instructions,\n currentSystemTime,\n startAt,\n endAt,\n scheduleMasterId,\n } = assessmentData;\n const queryClient = useQueryClient();\n\n const [isTimeUp, setIsTimeUp] = useState(false);\n\n const { timer } = useTimeout({\n currentTime: currentSystemTime,\n startTime: startAt,\n });\n const { timer: endTimer } = useTimeout({\n startTime: endAt,\n currentTime: currentSystemTime,\n });\n\n const isFetchingData = isFetching;\n const isSchedule = attemptStatus === 0;\n const isScheduled = attemptStatus === 1;\n const isStart = attemptStatus === 2;\n const isContinue = attemptStatus === 3;\n const isNotAttempted = attemptStatus === 4;\n const isPassed = attemptStatus === 5;\n const isFailed = attemptStatus === 6;\n const isAwaitingResult = attemptStatus === 7;\n\n const classNames = () => {\n switch (attemptStatus) {\n case 3:\n return \"assessment-card-continue\";\n case 4:\n return \"assessment-card-not-attempted\";\n case 5:\n return \"assessment-card-passed\";\n case 6:\n return \"assessment-card-failed\";\n case 7:\n return \"assessment-card-waiting\";\n default:\n return \"assessment-card-default\";\n }\n };\n\n useEffect(() => {\n if (timer <= 0 && isScheduled) {\n setIsTimeUp(true);\n } else {\n setIsTimeUp(false);\n }\n }, [timer]);\n\n useEffect(() => {\n if (endTimer <= 0 && (isScheduled || isStart || isContinue)) {\n queryClient.invalidateQueries([GET_ASSESSMENT_LIST, studentBatchId]);\n }\n }, [endTimer]);\n\n return (\n
  • \n {isPassed && (\n \n )}\n {isFailed && }\n {isAwaitingResult && (\n \n )}\n {isNotAttempted && (\n \n )}\n\n
    \n
    \n

    {name}

    \n
    \n
    \n
    \n \"\"\n {`${noOfQuestions} Questions`}\n
    \n
    \n \"\"\n {`${maxTime} Min`}\n
    \n
    \n
    \n {`You have ${remainingAttempt}/${maxAttempt} Attempts left`}\n
    \n
    \n
    \n {(isSchedule || isScheduled || isStart || isContinue) && (\n
    \n {isFetchingData ? (\n \n ) : (\n <>\n {isSchedule && (\n \n onScheduleAssessment({ assessmentId, scheduleMasterId })\n }\n className=\"btn btn-blue\"\n >\n Schedule Assessment\n \n )}\n {isScheduled && !isTimeUp && (\n \n )}\n {(isStart || (isTimeUp && isScheduled)) && (\n \n onStartAssessment({\n assessmentId,\n slotId,\n attemptId,\n noOfQuestions,\n maxTime,\n maxAttempt,\n instructions,\n name,\n attemptStatus,\n isStartAssessment: true,\n })\n }\n className=\"btn btn-green\"\n >\n Start Assessment\n \n )}\n {isContinue && (\n \n onStartAssessment({\n assessmentId,\n slotId,\n attemptId,\n noOfQuestions,\n maxTime,\n maxAttempt,\n instructions,\n name,\n attemptStatus,\n isStartAssessment: false,\n })\n }\n className=\"btn btn-blue-outline\"\n >\n Continue Assessment\n \n )}\n \n )}\n
    \n )}\n
    \n {attempts && attempts?.length > 0 && (\n
    \n {attempts?.map((attempt, index) => {\n return (\n \n );\n })}\n
    \n )}\n
  • \n );\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCalendarIconDarkGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 12,\n viewBox: \"0 0 13 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.19169 0C1.00105 0 0.0250244 0.976021 0.0250244 2.16667V9.83333C0.0250244 11.024 1.00105 12 2.19169 12H9.85836C11.049 12 12.025 11.024 12.025 9.83333V2.16667C12.025 0.976021 11.049 0 9.85836 0H2.19169ZM2.19169 1H9.85836C10.5084 1 11.025 1.51665 11.025 2.16667V2.66667H1.02502V2.16667C1.02502 1.51665 1.54167 1 2.19169 1ZM1.02502 3.66667H11.025V9.83333C11.025 10.4834 10.5084 11 9.85836 11H2.19169C1.54167 11 1.02502 10.4834 1.02502 9.83333V3.66667ZM3.19169 5C2.97068 5 2.75872 5.0878 2.60244 5.24408C2.44616 5.40036 2.35836 5.61232 2.35836 5.83333C2.35836 6.05435 2.44616 6.26631 2.60244 6.42259C2.75872 6.57887 2.97068 6.66667 3.19169 6.66667C3.4127 6.66667 3.62467 6.57887 3.78095 6.42259C3.93723 6.26631 4.02502 6.05435 4.02502 5.83333C4.02502 5.61232 3.93723 5.40036 3.78095 5.24408C3.62467 5.0878 3.4127 5 3.19169 5ZM6.02502 5C5.80401 5 5.59205 5.0878 5.43577 5.24408C5.27949 5.40036 5.19169 5.61232 5.19169 5.83333C5.19169 6.05435 5.27949 6.26631 5.43577 6.42259C5.59205 6.57887 5.80401 6.66667 6.02502 6.66667C6.24604 6.66667 6.458 6.57887 6.61428 6.42259C6.77056 6.26631 6.85836 6.05435 6.85836 5.83333C6.85836 5.61232 6.77056 5.40036 6.61428 5.24408C6.458 5.0878 6.24604 5 6.02502 5ZM8.85836 5C8.63734 5 8.42538 5.0878 8.2691 5.24408C8.11282 5.40036 8.02502 5.61232 8.02502 5.83333C8.02502 6.05435 8.11282 6.26631 8.2691 6.42259C8.42538 6.57887 8.63734 6.66667 8.85836 6.66667C9.07937 6.66667 9.29133 6.57887 9.44761 6.42259C9.60389 6.26631 9.69169 6.05435 9.69169 5.83333C9.69169 5.61232 9.60389 5.40036 9.44761 5.24408C9.29133 5.0878 9.07937 5 8.85836 5ZM3.19169 8C2.97068 8 2.75872 8.0878 2.60244 8.24408C2.44616 8.40036 2.35836 8.61232 2.35836 8.83333C2.35836 9.05435 2.44616 9.26631 2.60244 9.42259C2.75872 9.57887 2.97068 9.66667 3.19169 9.66667C3.4127 9.66667 3.62467 9.57887 3.78095 9.42259C3.93723 9.26631 4.02502 9.05435 4.02502 8.83333C4.02502 8.61232 3.93723 8.40036 3.78095 8.24408C3.62467 8.0878 3.4127 8 3.19169 8ZM6.02502 8C5.80401 8 5.59205 8.0878 5.43577 8.24408C5.27949 8.40036 5.19169 8.61232 5.19169 8.83333C5.19169 9.05435 5.27949 9.26631 5.43577 9.42259C5.59205 9.57887 5.80401 9.66667 6.02502 9.66667C6.24604 9.66667 6.458 9.57887 6.61428 9.42259C6.77056 9.26631 6.85836 9.05435 6.85836 8.83333C6.85836 8.61232 6.77056 8.40036 6.61428 8.24408C6.458 8.0878 6.24604 8 6.02502 8Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendarIconDarkGrey);\nexport default __webpack_public_path__ + \"static/media/calendar-icon-dark-grey.4ef78911edd6b29d4e8195be118cb011.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useCallback } from \"react\";\nimport calendarIcon from \"assets/images/icons/calendar-icon-dark-grey.svg\";\nimport clockIcon from \"assets/images/icons/timer-icon-dark-grey.svg\";\n\nexport const AttemptItem = ({ attempt, index }) => {\n const {\n referenceNo,\n scheduledOn,\n startedAtStr,\n endedAtStr,\n startAt,\n endAt,\n assessmentMasterStatus,\n } = attempt;\n\n const isAbsent = assessmentMasterStatus === 8;\n\n const status = useCallback(() => {\n switch (assessmentMasterStatus) {\n case 0:\n return {\n color: \"teal-txt\",\n text: \"In progress\",\n };\n case 1:\n return {\n color: \"green-txt\",\n text: \"Completed\",\n };\n case 2:\n return {\n color: \"orange-txt\",\n text: \"Invalid\",\n };\n case 3:\n return {\n color: \"yellow-txt\",\n text: \"Not started\",\n };\n case 4:\n return {\n color: \"green-txt\",\n text: \"Passed\",\n };\n case 5:\n return {\n color: \"red-txt\",\n text: \"Failed\",\n };\n case 6:\n return {\n color: \"blue-txt\",\n text: \"Awaiting result\",\n };\n case 7:\n return {\n color: \"blue-txt\",\n text: \"Not completed\",\n };\n case 8:\n return {\n color: \"grey-txt\",\n text: \"Absent\",\n };\n case 9:\n return {\n color: \"yellow-txt\",\n text: \"Upcoming\",\n };\n default:\n return {\n color: \"\",\n text: \"\",\n };\n }\n }, [assessmentMasterStatus]);\n\n const statusIndicator = status();\n\n return (\n
    \n
    \n Reference No\n \n {!isAbsent && referenceNo ? referenceNo : \"_ _\"}\n \n
    \n
    \n {`Attempt ${\n index + 1\n } Scheduled On`}\n
    \n
    \n \"\"\n {scheduledOn}\n
    \n
    \n \"\"\n {`${startAt} - ${endAt}`}\n
    \n
    \n
    \n
    \n Started\n \n {!isAbsent && startedAtStr ? startedAtStr : \"_ _\"}\n \n
    \n
    \n Ended\n \n {!isAbsent && endedAtStr ? endedAtStr : \"_ _\"}\n \n
    \n
    \n Status\n \n {statusIndicator?.text}\n \n
    \n
    \n );\n};\n","export const AssessmentStatusRow = ({ icon, label = \"\" }) => {\n return (\n
    \n
    \n {icon && \"\"}\n {label}\n
    \n
    \n );\n};\n","export const AssessmentSpinnerElement = ({ color = \"#999\", ...rest }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","var _excluded = [\"className\", \"cssModule\", \"children\", \"toggle\", \"tag\", \"wrapTag\", \"closeAriaLabel\", \"close\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n /** Add custom class */\n className: PropTypes.string,\n /** Custom close button */\n close: PropTypes.object,\n closeAriaLabel: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Function to be triggered when close button is clicked */\n toggle: PropTypes.func,\n wrapTag: tagPropType\n};\nfunction ModalHeader(props) {\n var closeButton;\n var className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n toggle = props.toggle,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'h5' : _props$tag,\n _props$wrapTag = props.wrapTag,\n WrapTag = _props$wrapTag === void 0 ? 'div' : _props$wrapTag,\n _props$closeAriaLabel = props.closeAriaLabel,\n closeAriaLabel = _props$closeAriaLabel === void 0 ? 'Close' : _props$closeAriaLabel,\n close = props.close,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'modal-header'), cssModule);\n if (!close && toggle) {\n closeButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: toggle,\n className: mapToCssModules('btn-close', cssModule),\n \"aria-label\": closeAriaLabel\n });\n }\n return /*#__PURE__*/React.createElement(WrapTag, _extends({}, attributes, {\n className: classes\n }), /*#__PURE__*/React.createElement(Tag, {\n className: mapToCssModules('modal-title', cssModule)\n }, children), close || closeButton);\n}\nModalHeader.propTypes = propTypes;\nexport default ModalHeader;","var _excluded = [\"className\", \"cssModule\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction ModalBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'modal-body'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nModalBody.propTypes = propTypes;\nexport default ModalBody;","var _excluded = [\"className\", \"cssModule\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction ModalFooter(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'modal-footer'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nModalFooter.propTypes = propTypes;\nexport default ModalFooter;","import React from \"react\";\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\nimport Datetime from \"react-datetime\";\nimport moment from \"moment\";\nimport { TimeSelector } from \"..\";\n\nexport const AssessmentScheduleModal = ({\n isOpen,\n onCancel,\n setScheduleId,\n scheduleId,\n scheduleDateList,\n slots,\n isSlotLoading,\n setSelectedSlotId,\n selectedSlotId,\n onCreateAssessmentSchedule,\n setIsSlotInfoOpen,\n isSlotInfoOpen,\n ...rest\n}) => {\n const onSelectAssessmentDate = (date) => {\n const selectedDate = moment(date).format(\"DD-MMM-YYYY\");\n const selectedSchedule =\n scheduleDateList &&\n scheduleDateList?.find((s) => {\n return s?.scheduledDate === selectedDate;\n });\n\n setScheduleId((draft) => {\n draft = selectedSchedule?.scheduleId;\n return draft;\n });\n };\n\n const onSelectSlot = ({ slotId, scheduledDate, startAtStr, endAtStr }) => {\n setSelectedSlotId((draft) => {\n draft = slotId;\n return draft;\n });\n setIsSlotInfoOpen((draft) => {\n draft.data = {\n scheduledDate,\n startAtStr,\n endAtStr,\n };\n });\n };\n\n const yesterday = moment().subtract(1, \"day\");\n const validDates =\n scheduleDateList &&\n scheduleDateList?.map((date) => moment(date?.scheduledDate, \"DD-MMM-YYYY\"));\n\n const isValidDate = (current) => {\n return (\n validDates?.some((date) => date?.isSame(current, \"day\")) &&\n current?.isAfter(yesterday)\n );\n };\n\n return (\n \n Schedule Your Assessment\n \n
    \n
    \n Select a date for Assessment\n
    \n \n
    \n
    \n
    \n {!isSlotLoading ? (\n slots && slots?.slots?.length > 0 ? (\n
    \n Select a suitable time\n
    \n {slots?.slots?.map((slot) => {\n return (\n \n onSelectSlot({\n slotId: slot?.slotId,\n scheduledDate: slots?.scheduledDate,\n startAtStr: slot?.startAtStr,\n endAtStr: slot?.endAtStr,\n })\n }\n isEnabled={slot?.isEnabled}\n isSelected={selectedSlotId === slot?.slotId}\n startAtStr={slot?.startAtStr}\n endAtStr={slot?.endAtStr}\n />\n );\n })}\n
    \n
    \n ) : (\n
    \n Please select a date to show available slots.\n
    \n )\n ) : (\n
    \n Loading...\n
    \n )}\n
    \n
    \n
    \n \n
    \n \n Schedule Assessment\n \n
    \n
    \n \n );\n};\n","import React from \"react\";\n\nexport const TimeSelector = ({\n isEnabled,\n isSelected,\n startAtStr,\n endAtStr,\n onSelectTime,\n}) => {\n return (\n \n \n \n \n {`${startAtStr} - ${endAtStr}`}\n \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgAssessmentDateConfirmGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 200,\n height: 200,\n viewBox: \"0 0 200 200\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.429 119.063L157.645 118.163L167.526 109.146L168.691 95.1523L155.562 102.123C155.562 102.123 106.948 102.334 96.7476 102.511L114.429 119.063Z\",\n fill: \"#2760AD\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.88 96.3877L166.838 108.81L157.345 117.475L114.694 118.375L98.4949 103.199C111.43 103.022 155.086 102.828 155.545 102.828C155.651 102.828 155.774 102.793 155.88 102.74L167.862 96.3703L167.88 96.3877ZM168.691 95.1523L155.562 102.123C155.562 102.123 106.948 102.334 96.7476 102.511L114.429 119.063L157.645 118.163L167.526 109.146L168.691 95.1523Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.811 133.921L172.679 133.992L182.402 124.71L182.544 110.699L170.438 117.687C170.438 117.687 121.823 117.899 111.624 118.075L125.794 133.904L125.811 133.921Z\",\n fill: \"#2760AD\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.837 111.934L181.696 124.41L172.397 133.286L126.128 133.216L113.194 118.764C125.863 118.587 169.979 118.393 170.438 118.393C170.561 118.393 170.685 118.358 170.791 118.305L181.837 111.934ZM182.561 110.7L170.455 117.687C170.455 117.687 121.84 117.899 111.641 118.076L125.811 133.904L172.679 133.975L182.402 124.693L182.543 110.682L182.561 110.7Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.738 134.028L182.614 133.957L182.666 131.116L176.472 131.151C178.378 128.822 182.666 124.569 182.666 124.569L182.614 110.682L176.543 114.282L170.738 134.028Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.702 132.969C174.423 132.969 175.008 132.385 175.008 131.663C175.008 130.942 174.423 130.357 173.702 130.357C172.981 130.357 172.396 130.942 172.396 131.663C172.396 132.385 172.981 132.969 173.702 132.969Z\",\n fill: \"#2760AD\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.461 126.775L179.755 127.516L179.896 112.234L180.602 111.811L180.461 126.775Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.762 118.304L168.638 118.234L168.726 115.622L162.533 115.658C164.438 113.328 168.726 109.075 168.726 109.075L168.674 95.1875L162.603 98.7875L156.762 118.286V118.304Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.762 117.492C160.483 117.492 161.068 116.908 161.068 116.186C161.068 115.466 160.483 114.881 159.762 114.881C159.041 114.881 158.456 115.466 158.456 116.186C158.456 116.908 159.041 117.492 159.762 117.492Z\",\n fill: \"#2760AD\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.521 111.299L165.815 112.04L165.974 96.5996L166.68 96.2109L166.521 111.299Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.6796 78.9353C51.6796 75.9333 49.2462 73.5 46.2446 73.5C43.2429 73.5 40.8096 75.9333 40.8096 78.9353C40.8096 81.9367 43.2429 84.37 46.2446 84.37C49.2462 84.37 51.6796 81.9367 51.6796 78.9353Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.7906 176.501L71.9726 108.105L47.8147 91.1641C47.8147 91.1641 44.5502 89.0641 42.8032 90.2288C12.1694 110.522 1.08764 177.119 58.8082 176.501H58.7906Z\",\n fill: \"#7AB9A3\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.9968 176.854C47.4091 176.854 38.639 174.577 31.9158 170.06C25.722 165.913 21.4163 160.002 19.1223 152.52C17.5342 147.367 16.9695 141.65 17.446 135.526C17.8871 129.685 19.2458 123.756 21.4692 117.898C25.9867 106.04 33.698 95.8397 42.6094 89.9283C44.5328 88.6577 47.8679 90.7757 48.0091 90.8637L72.1843 107.804C72.2903 107.892 72.361 108.016 72.3256 108.157L59.1438 176.554C59.1086 176.712 58.9674 176.836 58.8086 176.836C58.5439 176.836 58.2615 176.836 57.9968 176.836V176.854ZM44.1093 90.2283C43.7034 90.2283 43.3152 90.317 42.9976 90.511C24.328 102.863 13.4932 131.75 19.7929 152.308C24.5574 167.819 38.3037 176.271 58.5086 176.148L71.5843 108.263L47.6209 91.4463C46.9856 91.0403 45.3975 90.2283 44.1093 90.2283Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.59 84.6699H117.941V158.413H72.59C70.084 158.413 68.0547 156.385 68.0547 153.879V89.2052C68.0547 86.6992 70.084 84.6699 72.59 84.6699Z\",\n fill: \"#8CABD8\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.447 84.6016L117.499 158.362L141.533 143.504C141.551 143.504 141.569 143.486 141.586 143.469C144.215 141.81 146.315 138.298 146.315 135.599L146.263 71.7196C146.263 68.9842 144.11 68.1022 141.481 69.7429L117.429 84.6016H117.447Z\",\n fill: \"#8CABD8\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.376 88.3939L118.064 153.773L139.081 140.891C139.081 140.891 139.116 140.873 139.133 140.856C141.427 139.427 143.245 136.338 143.227 133.939L142.627 77.3293C142.61 74.9119 140.704 74.0999 138.393 75.5119L117.376 88.3939Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.0944 111.281H78.6244C77.6791 111.281 76.9131 112.048 76.9131 112.993V130.092C76.9131 131.037 77.6791 131.804 78.6244 131.804H87.0944C88.0398 131.804 88.8064 131.037 88.8064 130.092V112.993C88.8064 112.048 88.0398 111.281 87.0944 111.281Z\",\n fill: \"white\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.277 94.7109H96.2362C95.6022 94.7109 95.0889 95.2249 95.0889 95.8583V146.044C95.0889 146.678 95.6022 147.191 96.2362 147.191H106.277C106.91 147.191 107.424 146.678 107.424 146.044V95.8583C107.424 95.2249 106.91 94.7109 106.277 94.7109Z\",\n fill: \"white\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.91 129.74C136.681 129.881 136.505 129.811 136.487 129.581L136.434 126.863C136.434 126.634 136.61 126.334 136.839 126.193L139.504 124.517C139.733 124.375 139.91 124.446 139.928 124.675L139.981 127.393C139.981 127.623 139.804 127.923 139.575 128.063L136.91 129.74ZM139.487 123.987L136.822 125.663C136.31 125.981 135.905 126.669 135.922 127.181L135.975 129.899C135.975 130.411 136.416 130.587 136.928 130.269L139.593 128.593C140.104 128.275 140.51 127.587 140.493 127.075L140.439 124.358C140.439 123.846 139.998 123.669 139.487 123.987Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.275 133.374C136.204 133.41 136.151 133.48 136.098 133.568C135.993 133.727 136.01 133.904 136.098 133.939L139.751 135.404C139.804 135.421 139.875 135.404 139.945 135.368C140.016 135.333 140.069 135.262 140.121 135.174C140.227 135.015 140.227 134.839 140.121 134.804L136.469 133.339C136.416 133.321 136.345 133.339 136.275 133.374Z\",\n fill: \"black\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.822 131.134C139.752 131.169 139.681 131.24 139.646 131.328L136.152 137.257C136.046 137.416 136.064 137.593 136.152 137.628C136.204 137.645 136.275 137.628 136.328 137.593C136.381 137.557 136.47 137.487 136.504 137.399L139.998 131.469C140.104 131.311 140.087 131.134 139.998 131.099C139.946 131.081 139.875 131.099 139.822 131.134Z\",\n fill: \"black\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.872 111.299C76.19 110.205 75.678 109.375 73.9487 108.934C69.89 107.876 69.3434 107.611 67.296 106.993L76.79 107.434C78.2194 107.576 78.978 106.622 78.978 105.652C78.978 104.664 78.2014 103.958 76.772 103.888L67.4727 103.146L77.2487 103.34C78.3954 103.428 79.278 102.458 79.2247 101.47C79.1894 100.499 78.2194 99.7402 77.09 99.7935L67.7374 99.1935L76.684 99.2642C77.778 99.2815 78.3074 98.6462 78.3954 97.6935C78.484 96.7582 77.8487 95.9462 76.984 95.8582C75.396 95.7169 62.9905 94.5522 56.0908 93.9169C53.6027 93.6875 51.4322 95.6289 51.4146 98.1349C51.4146 99.3169 51.397 100.394 51.4146 100.923C51.4675 103.534 52.0146 105.987 54.485 107.664C58.473 110.381 68.496 111.758 72.59 112.287C74.6367 112.552 75.5547 112.393 75.872 111.299Z\",\n fill: \"white\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.685 94.5886C55.7908 94.5886 55.9144 94.5886 56.0202 94.5886C62.9199 95.2239 75.3254 96.3886 76.9134 96.5299C77.39 96.5826 77.7427 97.0592 77.69 97.6059C77.6194 98.4179 77.16 98.5239 76.7367 98.5239H76.684L67.7374 98.4532C67.3494 98.4532 67.0494 98.7532 67.0314 99.1412C67.0314 99.5299 67.314 99.8472 67.684 99.8652L77.0367 100.465C77.0367 100.465 77.072 100.465 77.09 100.465C77.1074 100.465 77.1074 100.465 77.1254 100.465C77.1427 100.465 77.178 100.465 77.1954 100.465C77.9014 100.465 78.5014 100.924 78.5194 101.471C78.5194 101.735 78.4134 102.035 78.2014 102.247C77.99 102.477 77.69 102.6 77.39 102.6C77.09 102.6 77.3367 102.6 77.3014 102.6C77.3014 102.6 77.284 102.6 77.266 102.6L67.49 102.406C67.1194 102.406 66.802 102.706 66.7847 103.077C66.7667 103.465 67.0494 103.783 67.4374 103.818L76.7367 104.559C76.7367 104.559 76.7367 104.559 76.7547 104.559C77.3194 104.594 78.2894 104.771 78.2894 105.618C78.2894 105.917 78.184 106.183 77.99 106.377C77.778 106.588 77.46 106.694 77.09 106.694C76.7194 106.694 76.9487 106.694 76.878 106.694C76.878 106.694 76.86 106.694 76.8427 106.694L67.3494 106.253C67.3494 106.253 67.3314 106.253 67.314 106.253C66.9787 106.253 66.6787 106.5 66.6256 106.835C66.5726 107.188 66.7667 107.523 67.1194 107.629C67.596 107.771 68.002 107.912 68.39 108.035C69.6254 108.423 70.702 108.776 73.8074 109.588C74.7607 109.835 75.096 110.153 75.2194 110.365C75.2547 110.435 75.378 110.629 75.2367 111.07C75.1487 111.353 75.0607 111.653 74.0367 111.653C73.0134 111.653 73.2607 111.617 72.7134 111.547C63.5552 110.365 57.5731 108.847 54.9085 107.029C52.5616 105.441 52.191 103.112 52.1381 100.853C52.1381 100.395 52.1381 99.4766 52.1381 98.1006C52.1557 96.1592 53.7615 94.5712 55.7026 94.5712L55.685 94.5886ZM55.685 93.8826C53.3733 93.8826 51.4322 95.7532 51.4146 98.1179C51.4146 99.3006 51.397 100.377 51.4146 100.906C51.4675 103.518 52.0146 105.971 54.485 107.647C58.473 110.365 68.496 111.741 72.59 112.27C73.1367 112.341 73.6134 112.376 74.0014 112.376C75.078 112.376 75.6427 112.076 75.872 111.282C76.19 110.188 75.678 109.359 73.9487 108.917C69.89 107.859 69.3434 107.594 67.296 106.977L76.79 107.417C76.878 107.417 76.984 107.417 77.072 107.417C78.3247 107.417 78.978 106.535 78.978 105.618C78.978 104.629 78.2014 103.923 76.772 103.853L67.4727 103.112L77.2487 103.306C77.3014 103.306 77.3367 103.306 77.39 103.306C78.466 103.306 79.26 102.371 79.2247 101.435C79.1894 100.483 78.2894 99.7592 77.1954 99.7592C77.16 99.7592 77.1254 99.7592 77.09 99.7592L67.7374 99.1592L76.684 99.2299C76.684 99.2299 76.7194 99.2299 76.7367 99.2299C77.7954 99.2299 78.3074 98.5946 78.3954 97.6592C78.484 96.7239 77.8487 95.9119 76.984 95.8239C75.396 95.6826 62.9905 94.5179 56.0908 93.8826C55.9496 93.8826 55.8261 93.8652 55.685 93.8652V93.8826Z\",\n fill: \"black\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.2074 95.1966C62.0017 93.8213 61.8109 92.224 60.7812 91.6293C59.7515 91.0353 58.2729 91.6686 57.4786 93.044C56.6844 94.42 56.8752 96.0173 57.9048 96.6113C58.9346 97.206 60.4132 96.5726 61.2074 95.1966Z\",\n fill: \"white\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.9024 92.1174C60.0436 92.1174 60.1847 92.1528 60.3082 92.2061C60.6259 92.3474 60.7847 92.6294 60.8729 92.8234C61.067 93.3354 60.9964 94.0234 60.6964 94.6588C60.273 95.5234 59.4789 96.1234 58.773 96.1234C58.0672 96.1234 58.4907 96.0881 58.3672 96.0354C58.0495 95.8941 57.8907 95.6114 57.8025 95.4174C57.6084 94.9061 57.679 94.2174 57.979 93.5821C58.4024 92.7174 59.1965 92.1174 59.9024 92.1174ZM59.9024 91.4121C58.9318 91.4121 57.8907 92.1354 57.3437 93.2821C56.6555 94.7114 56.9908 96.2294 58.0848 96.7054C58.2966 96.7941 58.526 96.8468 58.773 96.8468C59.7436 96.8468 60.7847 96.1234 61.3317 94.9761C62.0199 93.5468 61.6846 92.0294 60.5906 91.5528C60.3788 91.4648 60.1494 91.4121 59.9024 91.4121Z\",\n fill: \"black\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.8026 99.4237C56.9483 99.4237 61.1198 95.2524 61.1198 90.1064C61.1198 84.9604 56.9483 80.7891 51.8026 80.7891C46.6568 80.7891 42.4854 84.9604 42.4854 90.1064C42.4854 95.2524 46.6568 99.4237 51.8026 99.4237Z\",\n fill: \"white\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.7851 81.4951C54.9437 81.4951 57.8377 83.2071 59.3553 85.9771C61.6316 90.1417 60.0964 95.3824 55.9319 97.6764C54.6614 98.3651 53.2321 98.7351 51.8027 98.7351C48.6441 98.7351 45.7501 97.0237 44.2325 94.2531C41.9561 90.0891 43.4913 84.8477 47.6559 82.5537C48.9264 81.8657 50.3557 81.4951 51.7851 81.4951ZM51.7851 80.7891C50.2675 80.7891 48.7323 81.1597 47.3206 81.9364C42.8031 84.4064 41.1444 90.0711 43.6149 94.5884C45.3089 97.6764 48.5029 99.4411 51.8027 99.4411C55.1025 99.4411 54.8555 99.0704 56.2672 98.2944C60.7846 95.8237 62.4433 90.1591 59.9729 85.6417C58.2789 82.5537 55.0849 80.7891 51.7851 80.7891Z\",\n fill: \"black\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.7798 84.3714C47.1797 81.4427 51.2383 80.4541 53.6911 81.0367C57.8909 82.0427 60.132 86.2954 60.3614 87.6187L44.7798 84.3714Z\",\n fill: \"black\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.3555 95.5939C56.3379 95.5939 56.3026 95.5939 56.285 95.5939L53.4968 95.0292C53.3028 94.9939 53.1792 94.7999 53.2145 94.6059C53.2498 94.4112 53.4439 94.2879 53.638 94.3232L55.5791 94.7292C55.2262 93.9706 54.9438 92.6646 55.5791 90.6532C55.632 90.4586 55.8438 90.3706 56.0202 90.4232C56.2144 90.4766 56.3026 90.6879 56.2496 90.8646C55.3144 93.7586 56.5144 94.9412 56.5673 94.9939C56.6908 95.0999 56.7084 95.2759 56.6378 95.4172C56.5849 95.5412 56.4614 95.6112 56.3202 95.6112L56.3555 95.5939Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.6959 91.8517C59.8604 91.2197 59.7645 90.6477 59.4816 90.5743C59.1987 90.5003 58.8359 90.953 58.6713 91.585C58.5067 92.2163 58.6026 92.7883 58.8856 92.8623C59.1685 92.9357 59.5313 92.4837 59.6959 91.8517Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.813 90.3209C53.9776 89.6889 53.8817 89.1169 53.5988 89.0429C53.3158 88.9696 52.9531 89.4223 52.7885 90.0536C52.6239 90.6856 52.7198 91.2576 53.0028 91.3316C53.2857 91.4049 53.6485 90.9523 53.813 90.3209Z\",\n fill: \"black\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.2868 87.9056C45.7086 86.3736 45.1213 84.8763 43.9751 84.5609C42.8288 84.2449 41.5575 85.2303 41.1357 86.7623C40.7139 88.2936 41.3011 89.7909 42.4474 90.1069C43.5937 90.4223 44.8649 89.4369 45.2868 87.9056Z\",\n fill: \"white\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.8916 90.5477C42.6269 90.5477 42.3622 90.4944 42.1328 90.389C40.8623 89.8597 40.2976 88.077 40.8799 86.4184C41.2152 85.4657 41.8505 84.7417 42.6269 84.389C43.1916 84.1417 43.7739 84.1244 44.3033 84.3364C45.5738 84.8657 46.1385 86.6477 45.5561 88.3064C45.2209 89.2597 44.5856 89.983 43.8092 90.3357C43.5092 90.477 43.1916 90.5297 42.8916 90.5297V90.5477ZM43.5445 84.901C43.3327 84.901 43.1387 84.9537 42.9269 85.0417C42.3445 85.3064 41.8328 85.9064 41.5681 86.6657C41.1093 87.989 41.4799 89.365 42.4151 89.7537C42.7681 89.8944 43.1563 89.877 43.5269 89.7184C44.1092 89.4537 44.6209 88.8537 44.8856 88.095C45.3444 86.771 44.9739 85.395 44.0386 85.0064C43.8798 84.9364 43.7209 84.901 43.5445 84.901Z\",\n fill: \"black\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.0325 88.6941C42.8736 88.6941 42.7502 88.6054 42.6972 88.4468C42.3266 87.2468 43.0325 86.5054 43.4736 86.2941C43.6501 86.2054 43.8618 86.2761 43.9501 86.4528C44.0383 86.6294 43.9677 86.8408 43.7912 86.9294C43.7207 86.9648 43.0854 87.3348 43.3678 88.2528C43.4207 88.4468 43.3148 88.6408 43.1384 88.6941C43.103 88.6941 43.0678 88.6941 43.0325 88.6941Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.7375 134.381L51.5735 134.769L51.8029 106.006C51.8029 89.4894 35.6743 88.854 35.4626 104.735L35.0391 168.35C36.7684 197.643 67.4375 197.801 68.0022 166.621L67.7375 134.381Z\",\n fill: \"#7AB9A3\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.6778 113.451C68.5838 113.981 58.561 115.375 54.573 118.075C50.6732 120.721 51.5731 125.239 51.5731 129.351V134.768L68.1251 135.121L68.0898 130.656C68.0898 130.656 74.8658 130.091 77.0898 129.88C77.9545 129.791 78.5891 128.98 78.5011 128.045C78.4131 127.109 77.8838 126.457 76.7898 126.474L67.8431 126.545L77.1951 125.945C78.3245 125.997 79.2951 125.239 79.3305 124.268C79.3658 123.298 78.5011 122.309 77.3545 122.398L67.5785 122.592L76.8778 121.851C78.3071 121.78 79.0838 121.075 79.0838 120.086C79.0838 119.098 78.3425 118.163 76.8951 118.304L67.4018 118.745C69.4311 118.11 69.9958 117.863 74.0545 116.804C75.7838 116.345 76.3131 115.533 75.9778 114.439C75.6605 113.363 74.7425 113.204 72.6958 113.451H72.6778Z\",\n fill: \"white\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.0898 114.052C75.1131 114.052 75.2011 114.352 75.2898 114.634C75.4131 115.075 75.2898 115.269 75.2718 115.34C75.1485 115.552 74.7958 115.869 73.8605 116.117C70.7545 116.928 69.6778 117.281 68.4431 117.669C68.0545 117.793 67.6665 117.916 67.1725 118.075C66.8371 118.181 66.6253 118.516 66.6785 118.869C66.7311 119.205 67.0311 119.451 67.3665 119.451C67.7018 119.451 67.3838 119.451 67.4018 119.451L76.8951 119.011C76.8951 119.011 76.9131 119.011 76.9305 119.011C77.0011 119.011 77.0718 119.011 77.1425 119.011C77.5305 119.011 77.8305 119.116 78.0425 119.328C78.2365 119.522 78.3425 119.805 78.3425 120.087C78.3425 120.934 77.3718 121.11 76.8071 121.145C76.8071 121.145 76.8071 121.145 76.7898 121.145L67.4898 121.887C67.1018 121.922 66.8191 122.239 66.8371 122.628C66.8545 122.999 67.1725 123.299 67.5431 123.299L77.3191 123.104C77.3191 123.104 77.3365 123.104 77.3545 123.104C77.3898 123.104 77.4071 123.104 77.4425 123.104C77.7425 123.104 78.0425 123.228 78.2545 123.457C78.4658 123.669 78.5718 123.969 78.5718 124.233C78.5545 124.798 77.9545 125.239 77.2485 125.239C76.5425 125.239 77.1951 125.239 77.1778 125.239C77.1778 125.239 77.1598 125.239 77.1425 125.239C77.1425 125.239 77.1071 125.239 77.0898 125.239L67.7371 125.839C67.3491 125.857 67.0665 126.193 67.0838 126.563C67.0838 126.951 67.4018 127.251 67.7898 127.251L76.7545 127.181H76.7898C77.2305 127.181 77.6718 127.287 77.7425 128.098C77.7951 128.645 77.4425 129.121 76.9658 129.175C74.7778 129.386 68.0545 129.951 67.9838 129.951C67.6138 129.986 67.3311 130.286 67.3311 130.657L67.3665 134.398L52.2437 134.08V129.351C52.2437 128.698 52.2261 128.01 52.1907 127.375C52.0672 123.933 51.9613 120.687 54.9259 118.675C57.5905 116.857 63.5725 115.34 72.7311 114.158C73.2778 114.087 73.7191 114.052 74.0545 114.052H74.0898ZM74.0898 113.346C73.7011 113.346 73.2251 113.381 72.6778 113.452C68.5838 113.981 58.561 115.375 54.573 118.075C50.6732 120.722 51.5731 125.239 51.5731 129.351V134.769L68.1251 135.121L68.0898 130.657C68.0898 130.657 74.8658 130.092 77.0898 129.881C77.9545 129.792 78.5891 128.981 78.5011 128.045C78.4305 127.127 77.9011 126.475 76.8425 126.475C76.8425 126.475 76.8071 126.475 76.7898 126.475L67.8431 126.545L77.1951 125.945C77.2305 125.945 77.2658 125.945 77.3011 125.945C78.3951 125.945 79.2951 125.204 79.3305 124.269C79.3658 123.334 78.5718 122.399 77.4951 122.399C77.4425 122.399 77.4071 122.399 77.3545 122.399L67.5785 122.593L76.8778 121.851C78.3071 121.781 79.0838 121.075 79.0838 120.087C79.0838 119.169 78.4305 118.287 77.1778 118.287C77.0898 118.287 77.0011 118.287 76.8951 118.287L67.4018 118.728C69.4311 118.093 69.9958 117.846 74.0545 116.787C75.7838 116.328 76.3131 115.517 75.9778 114.423C75.7485 113.628 75.1838 113.328 74.1071 113.328L74.0898 113.346Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.4199 142.587C56.0534 142.587 56.5669 142.073 56.5669 141.44C56.5669 140.806 56.0534 140.293 55.4199 140.293C54.7865 140.293 54.2729 140.806 54.2729 141.44C54.2729 142.073 54.7865 142.587 55.4199 142.587Z\",\n fill: \"white\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.644 190.513C44.0562 190.513 35.586 183.631 34.686 168.367C34.686 168.367 34.686 168.367 34.686 168.35L35.1096 104.735C34.9331 99.6532 36.6448 95.6472 39.8034 93.7592C42.0268 92.4179 44.709 92.4005 46.9678 93.7239C50.3206 95.6652 52.1734 100.024 52.0675 105.671L52.4028 167.45C52.4028 167.644 52.244 167.803 52.0498 167.803C51.8558 167.803 51.697 167.644 51.697 167.45L51.3616 105.653C51.4676 100.271 49.7382 96.1412 46.6148 94.3239C44.5856 93.1419 42.1856 93.1592 40.174 94.3592C37.2447 96.1065 35.6566 99.8825 35.8154 104.718L35.3919 168.332C36.2742 183.296 44.5679 189.949 51.891 189.807C55.9497 189.719 59.7436 187.655 62.5493 183.967C65.7433 179.785 67.5081 173.767 67.6488 166.603L67.4728 134.999C67.4728 134.805 67.6314 134.645 67.8254 134.645C68.0194 134.645 68.1788 134.805 68.1788 134.999L68.3548 166.603C68.2134 173.943 66.4138 180.085 63.114 184.39C60.1671 188.237 56.179 190.407 51.9087 190.496C51.8204 190.496 51.7322 190.496 51.644 190.496V190.513Z\",\n fill: \"black\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.1254 132.51H51.5381V137.962H68.1254V132.51Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.4194 133.215V137.256H52.244V133.215H67.4194ZM68.1254 132.51H51.5381V137.962H68.1254V132.51Z\",\n fill: \"black\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.4199 136.71C56.0534 136.71 56.5669 136.197 56.5669 135.563C56.5669 134.93 56.0534 134.416 55.4199 134.416C54.7865 134.416 54.2729 134.93 54.2729 135.563C54.2729 136.197 54.7865 136.71 55.4199 136.71Z\",\n fill: \"white\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.4271 132.387H18.0103V133.093H35.4271V132.387Z\",\n fill: \"black\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.4271 137.256H18.0103V137.962H35.4271V137.256Z\",\n fill: \"black\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.653 64.3946C116.623 64.3946 128.758 52.2595 128.758 37.2901C128.758 22.3207 116.623 10.1855 101.653 10.1855C86.6842 10.1855 74.5488 22.3207 74.5488 37.2901C74.5488 52.2595 86.6842 64.3946 101.653 64.3946Z\",\n fill: \"white\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.653 10.1863C116.617 10.1863 128.758 22.3445 128.758 37.3085C128.758 52.2724 116.617 64.413 101.653 64.413C86.6894 64.413 74.5488 52.2547 74.5488 37.2908C74.5488 22.3269 86.6894 10.1863 101.653 10.1863ZM101.653 9.48047C94.2241 9.48047 87.2361 12.3744 81.9954 17.6153C76.7368 22.8739 73.8428 29.8441 73.8428 37.2731C73.8428 44.7022 76.7368 51.6901 81.9781 56.9487C87.2361 62.2072 94.2068 65.1011 101.635 65.1011C109.065 65.1011 116.053 62.2072 121.293 56.9663C126.552 51.7077 129.446 44.7375 129.446 37.3085C129.446 29.8794 126.552 22.8915 121.311 17.633C116.053 12.3744 109.082 9.48047 101.653 9.48047Z\",\n fill: \"black\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.936 37.5211C101.83 37.5211 101.742 37.4858 101.671 37.3976L92.2477 26.7922C92.1243 26.651 92.1243 26.4216 92.283 26.2981C92.4243 26.1746 92.6537 26.1746 92.7777 26.3334L101.936 36.6564L114.058 23.4042C114.182 23.263 114.412 23.2454 114.553 23.3865C114.694 23.51 114.712 23.7395 114.57 23.8807L102.183 37.4328C102.112 37.5034 102.024 37.5564 101.918 37.5564L101.936 37.5211Z\",\n fill: \"#2760AD\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.653 9.83398C101.847 9.83398 102.006 9.99278 102.006 10.1869V18.1453C102.006 18.3394 101.847 18.4983 101.653 18.4983C101.459 18.4983 101.3 18.3394 101.3 18.1453V10.1869C101.3 9.99278 101.459 9.83398 101.653 9.83398Z\",\n fill: \"black\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.635 56.1016C101.829 56.1016 101.989 56.2604 101.989 56.4545V64.413C101.989 64.607 101.829 64.7658 101.635 64.7658C101.441 64.7658 101.283 64.607 101.283 64.413V56.4545C101.283 56.2604 101.441 56.1016 101.635 56.1016Z\",\n fill: \"black\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.758 37.6609H120.8C120.606 37.6609 120.446 37.5021 120.446 37.308C120.446 37.1139 120.606 36.9551 120.8 36.9551H128.758C128.952 36.9551 129.111 37.1139 129.111 37.308C129.111 37.5021 128.952 37.6609 128.758 37.6609Z\",\n fill: \"black\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.4896 37.6433H74.5309C74.3369 37.6433 74.1782 37.4845 74.1782 37.2904C74.1782 37.0963 74.3369 36.9375 74.5309 36.9375H82.4896C82.6836 36.9375 82.8422 37.0963 82.8422 37.2904C82.8422 37.4845 82.6836 37.6433 82.4896 37.6433Z\",\n fill: \"black\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.518 59.6839C114.394 59.6839 114.27 59.6133 114.218 59.5075L112.135 55.9077C112.029 55.7312 112.1 55.5194 112.259 55.4312C112.435 55.3253 112.647 55.3959 112.735 55.5547L114.818 59.1545C114.923 59.331 114.853 59.5427 114.694 59.631C114.641 59.6663 114.57 59.6839 114.518 59.6839Z\",\n fill: \"#2760AD\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.8362 18.6742C90.7129 18.6742 90.5896 18.6036 90.5362 18.4977L88.4542 14.8979C88.3482 14.7214 88.4189 14.5096 88.5776 14.4214C88.7542 14.3156 88.9656 14.3862 89.0542 14.545L91.1362 18.1448C91.2422 18.3212 91.1715 18.533 91.0129 18.6212C90.9595 18.6565 90.8896 18.6742 90.8362 18.6742Z\",\n fill: \"#2760AD\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.94 50.2602C123.887 50.2602 123.817 50.2602 123.763 50.2072L120.164 48.125C119.987 48.0191 119.935 47.8074 120.04 47.6486C120.146 47.4721 120.358 47.4192 120.517 47.525L124.117 49.6073C124.293 49.7132 124.346 49.9249 124.24 50.0838C124.169 50.1896 124.063 50.2602 123.94 50.2602Z\",\n fill: \"#2760AD\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.9128 26.5805C82.8601 26.5805 82.7895 26.5805 82.7368 26.5275L79.1368 24.4453C78.9601 24.3395 78.9075 24.1277 79.0135 23.9689C79.1195 23.7924 79.3308 23.7395 79.4895 23.8453L83.0895 25.9276C83.2661 26.0335 83.3188 26.2452 83.2128 26.4041C83.1428 26.5099 83.0368 26.5805 82.9128 26.5805Z\",\n fill: \"#2760AD\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.435 18.6743C112.382 18.6743 112.312 18.6743 112.259 18.6213C112.082 18.5154 112.03 18.3037 112.135 18.1449L114.218 14.5451C114.324 14.3686 114.535 14.3156 114.694 14.4215C114.87 14.5274 114.924 14.7391 114.818 14.8979L112.735 18.4978C112.664 18.6037 112.559 18.6743 112.435 18.6743Z\",\n fill: \"#2760AD\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.7539 59.684C88.7006 59.684 88.6299 59.684 88.5772 59.631C88.4006 59.5251 88.3479 59.3134 88.4539 59.1546L90.5359 55.5548C90.6419 55.3783 90.8539 55.3254 91.0126 55.4313C91.1892 55.5371 91.2419 55.7489 91.1359 55.9077L89.0539 59.5075C88.9832 59.6134 88.8772 59.684 88.7539 59.684Z\",\n fill: \"#2760AD\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.341 26.5805C120.217 26.5805 120.093 26.5099 120.041 26.404C119.935 26.2275 120.005 26.0158 120.164 25.9275L123.764 23.8453C123.94 23.7394 124.152 23.81 124.24 23.9688C124.346 24.1453 124.275 24.3571 124.117 24.4453L120.517 26.5275C120.464 26.5628 120.393 26.5805 120.341 26.5805Z\",\n fill: \"#2760AD\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.3133 50.2601C79.1893 50.2601 79.066 50.1895 79.0133 50.0836C78.9073 49.9072 78.978 49.6954 79.1366 49.6072L82.7366 47.525C82.9126 47.4191 83.1246 47.4896 83.2126 47.6485C83.3186 47.825 83.248 48.0367 83.0893 48.1249L79.4893 50.2072C79.4366 50.2424 79.366 50.2601 79.3133 50.2601Z\",\n fill: \"#2760AD\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.77 21.498L111.711 22.9274L114.976 25.7331L115.77 21.498Z\",\n fill: \"#2760AD\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.7832 24.957L91.4885 27.6216L93.4299 25.6805L90.7832 24.957Z\",\n fill: \"#2760AD\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.883 38.7024C102.672 38.7024 103.312 38.0625 103.312 37.2731C103.312 36.4837 102.672 35.8438 101.883 35.8438C101.094 35.8438 100.454 36.4837 100.454 37.2731C100.454 38.0625 101.094 38.7024 101.883 38.7024Z\",\n fill: \"#2760AD\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssessmentDateConfirmGraphics);\nexport default __webpack_public_path__ + \"static/media/assessment-date-confirm-graphics.7ea4caa2b3b75e55ee7ae1b5c1653289.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport moment from \"moment\";\nimport scheduleImage from \"assets/images/assessment-date-confirm-graphics.svg\";\n\nexport const ScheduleConfirmModal = ({\n isOpen,\n onCancel,\n onConfirm,\n data,\n ...rest\n}) => {\n const { scheduledDate, startAtStr, endAtStr } = data;\n\n return (\n \n \n
    \n \"\"\n

    \n Please confirm your assessment date and time !\n

    \n

    \n {moment(scheduledDate, \"DD-MMM-YYYY\").format(\"MMMM DD YYYY\")}\n

    \n

    {`${startAtStr} - ${endAtStr}`}

    \n
    \n \n \n
    \n
    \n
    \n \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgAssessmentScheduledGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 200,\n height: 200,\n viewBox: \"0 0 200 200\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.429 119.063L157.645 118.163L167.526 109.146L168.691 95.1523L155.562 102.123C155.562 102.123 106.948 102.334 96.7476 102.511L114.429 119.063Z\",\n fill: \"#2760AD\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.88 96.3877L166.838 108.81L157.345 117.475L114.694 118.375L98.4949 103.199C111.43 103.022 155.086 102.828 155.545 102.828C155.651 102.828 155.774 102.793 155.88 102.74L167.862 96.3703L167.88 96.3877ZM168.691 95.1523L155.562 102.123C155.562 102.123 106.948 102.334 96.7476 102.511L114.429 119.063L157.645 118.163L167.526 109.146L168.691 95.1523Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.811 133.921L172.679 133.992L182.402 124.71L182.544 110.699L170.438 117.687C170.438 117.687 121.823 117.899 111.624 118.075L125.794 133.904L125.811 133.921Z\",\n fill: \"#2760AD\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.837 111.934L181.696 124.41L172.397 133.286L126.128 133.216L113.194 118.764C125.863 118.587 169.979 118.393 170.438 118.393C170.561 118.393 170.685 118.358 170.791 118.305L181.837 111.934ZM182.561 110.7L170.455 117.687C170.455 117.687 121.84 117.899 111.641 118.076L125.811 133.904L172.679 133.975L182.402 124.693L182.543 110.682L182.561 110.7Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.738 134.028L182.614 133.957L182.666 131.116L176.472 131.151C178.378 128.822 182.666 124.569 182.666 124.569L182.614 110.682L176.543 114.282L170.738 134.028Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.702 132.969C174.423 132.969 175.008 132.385 175.008 131.663C175.008 130.942 174.423 130.357 173.702 130.357C172.981 130.357 172.396 130.942 172.396 131.663C172.396 132.385 172.981 132.969 173.702 132.969Z\",\n fill: \"#2760AD\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.461 126.775L179.755 127.516L179.896 112.234L180.602 111.811L180.461 126.775Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.762 118.304L168.638 118.234L168.726 115.622L162.533 115.658C164.438 113.328 168.726 109.075 168.726 109.075L168.674 95.1875L162.603 98.7875L156.762 118.286V118.304Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.762 117.492C160.483 117.492 161.068 116.908 161.068 116.186C161.068 115.466 160.483 114.881 159.762 114.881C159.041 114.881 158.456 115.466 158.456 116.186C158.456 116.908 159.041 117.492 159.762 117.492Z\",\n fill: \"#2760AD\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.521 111.299L165.815 112.04L165.974 96.5996L166.68 96.2109L166.521 111.299Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.6796 78.9353C51.6796 75.9333 49.2462 73.5 46.2446 73.5C43.2429 73.5 40.8096 75.9333 40.8096 78.9353C40.8096 81.9367 43.2429 84.37 46.2446 84.37C49.2462 84.37 51.6796 81.9367 51.6796 78.9353Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.7906 176.501L71.9726 108.105L47.8147 91.1641C47.8147 91.1641 44.5502 89.0641 42.8032 90.2288C12.1694 110.522 1.08764 177.119 58.8082 176.501H58.7906Z\",\n fill: \"#7AB9A3\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.9968 176.854C47.4091 176.854 38.639 174.577 31.9158 170.06C25.722 165.913 21.4163 160.002 19.1223 152.52C17.5342 147.367 16.9695 141.65 17.446 135.526C17.8871 129.685 19.2458 123.756 21.4692 117.898C25.9867 106.04 33.698 95.8397 42.6094 89.9283C44.5328 88.6577 47.8679 90.7757 48.0091 90.8637L72.1843 107.804C72.2903 107.892 72.361 108.016 72.3256 108.157L59.1438 176.554C59.1086 176.712 58.9674 176.836 58.8086 176.836C58.5439 176.836 58.2615 176.836 57.9968 176.836V176.854ZM44.1093 90.2283C43.7034 90.2283 43.3152 90.317 42.9976 90.511C24.328 102.863 13.4932 131.75 19.7929 152.308C24.5574 167.819 38.3037 176.271 58.5086 176.148L71.5843 108.263L47.6209 91.4463C46.9856 91.0403 45.3975 90.2283 44.1093 90.2283Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.59 84.6699H117.941V158.413H72.59C70.084 158.413 68.0547 156.385 68.0547 153.879V89.2052C68.0547 86.6992 70.084 84.6699 72.59 84.6699Z\",\n fill: \"#8CABD8\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.447 84.6016L117.499 158.362L141.533 143.504C141.551 143.504 141.569 143.486 141.586 143.469C144.215 141.81 146.315 138.298 146.315 135.599L146.263 71.7196C146.263 68.9842 144.11 68.1022 141.481 69.7429L117.429 84.6016H117.447Z\",\n fill: \"#8CABD8\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.376 88.3939L118.064 153.773L139.081 140.891C139.081 140.891 139.116 140.873 139.133 140.856C141.427 139.427 143.245 136.338 143.227 133.939L142.627 77.3293C142.61 74.9119 140.704 74.0999 138.393 75.5119L117.376 88.3939Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.0944 111.281H78.6244C77.6791 111.281 76.9131 112.048 76.9131 112.993V130.092C76.9131 131.037 77.6791 131.804 78.6244 131.804H87.0944C88.0398 131.804 88.8064 131.037 88.8064 130.092V112.993C88.8064 112.048 88.0398 111.281 87.0944 111.281Z\",\n fill: \"white\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.277 94.7109H96.2362C95.6022 94.7109 95.0889 95.2249 95.0889 95.8583V146.044C95.0889 146.678 95.6022 147.191 96.2362 147.191H106.277C106.91 147.191 107.424 146.678 107.424 146.044V95.8583C107.424 95.2249 106.91 94.7109 106.277 94.7109Z\",\n fill: \"white\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.91 129.74C136.681 129.881 136.505 129.811 136.487 129.581L136.434 126.863C136.434 126.634 136.61 126.334 136.839 126.193L139.504 124.517C139.733 124.375 139.91 124.446 139.928 124.675L139.981 127.393C139.981 127.623 139.804 127.923 139.575 128.063L136.91 129.74ZM139.487 123.987L136.822 125.663C136.31 125.981 135.905 126.669 135.922 127.181L135.975 129.899C135.975 130.411 136.416 130.587 136.928 130.269L139.593 128.593C140.104 128.275 140.51 127.587 140.493 127.075L140.439 124.358C140.439 123.846 139.998 123.669 139.487 123.987Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.275 133.374C136.204 133.41 136.151 133.48 136.098 133.568C135.993 133.727 136.01 133.904 136.098 133.939L139.751 135.404C139.804 135.421 139.875 135.404 139.945 135.368C140.016 135.333 140.069 135.262 140.121 135.174C140.227 135.015 140.227 134.839 140.121 134.804L136.469 133.339C136.416 133.321 136.345 133.339 136.275 133.374Z\",\n fill: \"black\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.822 131.134C139.752 131.169 139.681 131.24 139.646 131.328L136.152 137.257C136.046 137.416 136.064 137.593 136.152 137.628C136.204 137.645 136.275 137.628 136.328 137.593C136.381 137.557 136.47 137.487 136.504 137.399L139.998 131.469C140.104 131.311 140.087 131.134 139.998 131.099C139.946 131.081 139.875 131.099 139.822 131.134Z\",\n fill: \"black\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.872 111.299C76.19 110.205 75.678 109.375 73.9487 108.934C69.89 107.876 69.3434 107.611 67.296 106.993L76.79 107.434C78.2194 107.576 78.978 106.622 78.978 105.652C78.978 104.664 78.2014 103.958 76.772 103.888L67.4727 103.146L77.2487 103.34C78.3954 103.428 79.278 102.458 79.2247 101.47C79.1894 100.499 78.2194 99.7402 77.09 99.7935L67.7374 99.1935L76.684 99.2642C77.778 99.2815 78.3074 98.6462 78.3954 97.6935C78.484 96.7582 77.8487 95.9462 76.984 95.8582C75.396 95.7169 62.9905 94.5522 56.0908 93.9169C53.6027 93.6875 51.4322 95.6289 51.4146 98.1349C51.4146 99.3169 51.397 100.394 51.4146 100.923C51.4675 103.534 52.0146 105.987 54.485 107.664C58.473 110.381 68.496 111.758 72.59 112.287C74.6367 112.552 75.5547 112.393 75.872 111.299Z\",\n fill: \"white\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.685 94.5886C55.7908 94.5886 55.9144 94.5886 56.0202 94.5886C62.9199 95.2239 75.3254 96.3886 76.9134 96.5299C77.39 96.5826 77.7427 97.0592 77.69 97.6059C77.6194 98.4179 77.16 98.5239 76.7367 98.5239H76.684L67.7374 98.4532C67.3494 98.4532 67.0494 98.7532 67.0314 99.1412C67.0314 99.5299 67.314 99.8472 67.684 99.8652L77.0367 100.465C77.0367 100.465 77.072 100.465 77.09 100.465C77.1074 100.465 77.1074 100.465 77.1254 100.465C77.1427 100.465 77.178 100.465 77.1954 100.465C77.9014 100.465 78.5014 100.924 78.5194 101.471C78.5194 101.735 78.4134 102.035 78.2014 102.247C77.99 102.477 77.69 102.6 77.39 102.6C77.09 102.6 77.3367 102.6 77.3014 102.6C77.3014 102.6 77.284 102.6 77.266 102.6L67.49 102.406C67.1194 102.406 66.802 102.706 66.7847 103.077C66.7667 103.465 67.0494 103.783 67.4374 103.818L76.7367 104.559C76.7367 104.559 76.7367 104.559 76.7547 104.559C77.3194 104.594 78.2894 104.771 78.2894 105.618C78.2894 105.917 78.184 106.183 77.99 106.377C77.778 106.588 77.46 106.694 77.09 106.694C76.7194 106.694 76.9487 106.694 76.878 106.694C76.878 106.694 76.86 106.694 76.8427 106.694L67.3494 106.253C67.3494 106.253 67.3314 106.253 67.314 106.253C66.9787 106.253 66.6787 106.5 66.6256 106.835C66.5726 107.188 66.7667 107.523 67.1194 107.629C67.596 107.771 68.002 107.912 68.39 108.035C69.6254 108.423 70.702 108.776 73.8074 109.588C74.7607 109.835 75.096 110.153 75.2194 110.365C75.2547 110.435 75.378 110.629 75.2367 111.07C75.1487 111.353 75.0607 111.653 74.0367 111.653C73.0134 111.653 73.2607 111.617 72.7134 111.547C63.5552 110.365 57.5731 108.847 54.9085 107.029C52.5616 105.441 52.191 103.112 52.1381 100.853C52.1381 100.395 52.1381 99.4766 52.1381 98.1006C52.1557 96.1592 53.7615 94.5712 55.7026 94.5712L55.685 94.5886ZM55.685 93.8826C53.3733 93.8826 51.4322 95.7532 51.4146 98.1179C51.4146 99.3006 51.397 100.377 51.4146 100.906C51.4675 103.518 52.0146 105.971 54.485 107.647C58.473 110.365 68.496 111.741 72.59 112.27C73.1367 112.341 73.6134 112.376 74.0014 112.376C75.078 112.376 75.6427 112.076 75.872 111.282C76.19 110.188 75.678 109.359 73.9487 108.917C69.89 107.859 69.3434 107.594 67.296 106.977L76.79 107.417C76.878 107.417 76.984 107.417 77.072 107.417C78.3247 107.417 78.978 106.535 78.978 105.618C78.978 104.629 78.2014 103.923 76.772 103.853L67.4727 103.112L77.2487 103.306C77.3014 103.306 77.3367 103.306 77.39 103.306C78.466 103.306 79.26 102.371 79.2247 101.435C79.1894 100.483 78.2894 99.7592 77.1954 99.7592C77.16 99.7592 77.1254 99.7592 77.09 99.7592L67.7374 99.1592L76.684 99.2299C76.684 99.2299 76.7194 99.2299 76.7367 99.2299C77.7954 99.2299 78.3074 98.5946 78.3954 97.6592C78.484 96.7239 77.8487 95.9119 76.984 95.8239C75.396 95.6826 62.9905 94.5179 56.0908 93.8826C55.9496 93.8826 55.8261 93.8652 55.685 93.8652V93.8826Z\",\n fill: \"black\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.2074 95.1966C62.0017 93.8213 61.8109 92.224 60.7812 91.6293C59.7515 91.0353 58.2729 91.6686 57.4786 93.044C56.6844 94.42 56.8752 96.0173 57.9048 96.6113C58.9346 97.206 60.4132 96.5726 61.2074 95.1966Z\",\n fill: \"white\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.9024 92.1174C60.0436 92.1174 60.1847 92.1528 60.3082 92.2061C60.6259 92.3474 60.7847 92.6294 60.8729 92.8234C61.067 93.3354 60.9964 94.0234 60.6964 94.6588C60.273 95.5234 59.4789 96.1234 58.773 96.1234C58.0672 96.1234 58.4907 96.0881 58.3672 96.0354C58.0495 95.8941 57.8907 95.6114 57.8025 95.4174C57.6084 94.9061 57.679 94.2174 57.979 93.5821C58.4024 92.7174 59.1965 92.1174 59.9024 92.1174ZM59.9024 91.4121C58.9318 91.4121 57.8907 92.1354 57.3437 93.2821C56.6555 94.7114 56.9908 96.2294 58.0848 96.7054C58.2966 96.7941 58.526 96.8468 58.773 96.8468C59.7436 96.8468 60.7847 96.1234 61.3317 94.9761C62.0199 93.5468 61.6846 92.0294 60.5906 91.5528C60.3788 91.4648 60.1494 91.4121 59.9024 91.4121Z\",\n fill: \"black\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.8026 99.4237C56.9483 99.4237 61.1198 95.2524 61.1198 90.1064C61.1198 84.9604 56.9483 80.7891 51.8026 80.7891C46.6568 80.7891 42.4854 84.9604 42.4854 90.1064C42.4854 95.2524 46.6568 99.4237 51.8026 99.4237Z\",\n fill: \"white\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.7851 81.4951C54.9437 81.4951 57.8377 83.2071 59.3553 85.9771C61.6316 90.1417 60.0964 95.3824 55.9319 97.6764C54.6614 98.3651 53.2321 98.7351 51.8027 98.7351C48.6441 98.7351 45.7501 97.0237 44.2325 94.2531C41.9561 90.0891 43.4913 84.8477 47.6559 82.5537C48.9264 81.8657 50.3557 81.4951 51.7851 81.4951ZM51.7851 80.7891C50.2675 80.7891 48.7323 81.1597 47.3206 81.9364C42.8031 84.4064 41.1444 90.0711 43.6149 94.5884C45.3089 97.6764 48.5029 99.4411 51.8027 99.4411C55.1025 99.4411 54.8555 99.0704 56.2672 98.2944C60.7846 95.8237 62.4433 90.1591 59.9729 85.6417C58.2789 82.5537 55.0849 80.7891 51.7851 80.7891Z\",\n fill: \"black\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.7798 84.3714C47.1797 81.4427 51.2383 80.4541 53.6911 81.0367C57.8909 82.0427 60.132 86.2954 60.3614 87.6187L44.7798 84.3714Z\",\n fill: \"black\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.3555 95.5939C56.3379 95.5939 56.3026 95.5939 56.285 95.5939L53.4968 95.0292C53.3028 94.9939 53.1792 94.7999 53.2145 94.6059C53.2498 94.4112 53.4439 94.2879 53.638 94.3232L55.5791 94.7292C55.2262 93.9706 54.9438 92.6646 55.5791 90.6532C55.632 90.4586 55.8438 90.3706 56.0202 90.4232C56.2144 90.4766 56.3026 90.6879 56.2496 90.8646C55.3144 93.7586 56.5144 94.9412 56.5673 94.9939C56.6908 95.0999 56.7084 95.2759 56.6378 95.4172C56.5849 95.5412 56.4614 95.6112 56.3202 95.6112L56.3555 95.5939Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.6959 91.8517C59.8604 91.2197 59.7645 90.6477 59.4816 90.5743C59.1987 90.5003 58.8359 90.953 58.6713 91.585C58.5067 92.2163 58.6026 92.7883 58.8856 92.8623C59.1685 92.9357 59.5313 92.4837 59.6959 91.8517Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.813 90.3209C53.9776 89.6889 53.8817 89.1169 53.5988 89.0429C53.3158 88.9696 52.9531 89.4223 52.7885 90.0536C52.6239 90.6856 52.7198 91.2576 53.0028 91.3316C53.2857 91.4049 53.6485 90.9523 53.813 90.3209Z\",\n fill: \"black\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.2868 87.9056C45.7086 86.3736 45.1213 84.8763 43.9751 84.5609C42.8288 84.2449 41.5575 85.2303 41.1357 86.7623C40.7139 88.2936 41.3011 89.7909 42.4474 90.1069C43.5937 90.4223 44.8649 89.4369 45.2868 87.9056Z\",\n fill: \"white\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.8916 90.5477C42.6269 90.5477 42.3622 90.4944 42.1328 90.389C40.8623 89.8597 40.2976 88.077 40.8799 86.4184C41.2152 85.4657 41.8505 84.7417 42.6269 84.389C43.1916 84.1417 43.7739 84.1244 44.3033 84.3364C45.5738 84.8657 46.1385 86.6477 45.5561 88.3064C45.2209 89.2597 44.5856 89.983 43.8092 90.3357C43.5092 90.477 43.1916 90.5297 42.8916 90.5297V90.5477ZM43.5445 84.901C43.3327 84.901 43.1387 84.9537 42.9269 85.0417C42.3445 85.3064 41.8328 85.9064 41.5681 86.6657C41.1093 87.989 41.4799 89.365 42.4151 89.7537C42.7681 89.8944 43.1563 89.877 43.5269 89.7184C44.1092 89.4537 44.6209 88.8537 44.8856 88.095C45.3444 86.771 44.9739 85.395 44.0386 85.0064C43.8798 84.9364 43.7209 84.901 43.5445 84.901Z\",\n fill: \"black\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.0325 88.6941C42.8736 88.6941 42.7502 88.6054 42.6972 88.4468C42.3266 87.2468 43.0325 86.5054 43.4736 86.2941C43.6501 86.2054 43.8618 86.2761 43.9501 86.4528C44.0383 86.6294 43.9677 86.8408 43.7912 86.9294C43.7207 86.9648 43.0854 87.3348 43.3678 88.2528C43.4207 88.4468 43.3148 88.6408 43.1384 88.6941C43.103 88.6941 43.0678 88.6941 43.0325 88.6941Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.7375 134.381L51.5735 134.769L51.8029 106.006C51.8029 89.4894 35.6743 88.854 35.4626 104.735L35.0391 168.35C36.7684 197.643 67.4375 197.801 68.0022 166.621L67.7375 134.381Z\",\n fill: \"#7AB9A3\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.6778 113.451C68.5838 113.981 58.561 115.375 54.573 118.075C50.6732 120.721 51.5731 125.239 51.5731 129.351V134.768L68.1251 135.121L68.0898 130.656C68.0898 130.656 74.8658 130.091 77.0898 129.88C77.9545 129.791 78.5891 128.98 78.5011 128.045C78.4131 127.109 77.8838 126.457 76.7898 126.474L67.8431 126.545L77.1951 125.945C78.3245 125.997 79.2951 125.239 79.3305 124.268C79.3658 123.298 78.5011 122.309 77.3545 122.398L67.5785 122.592L76.8778 121.851C78.3071 121.78 79.0838 121.075 79.0838 120.086C79.0838 119.098 78.3425 118.163 76.8951 118.304L67.4018 118.745C69.4311 118.11 69.9958 117.863 74.0545 116.804C75.7838 116.345 76.3131 115.533 75.9778 114.439C75.6605 113.363 74.7425 113.204 72.6958 113.451H72.6778Z\",\n fill: \"white\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.0898 114.052C75.1131 114.052 75.2011 114.352 75.2898 114.634C75.4131 115.075 75.2898 115.269 75.2718 115.34C75.1485 115.552 74.7958 115.869 73.8605 116.117C70.7545 116.928 69.6778 117.281 68.4431 117.669C68.0545 117.793 67.6665 117.916 67.1725 118.075C66.8371 118.181 66.6253 118.516 66.6785 118.869C66.7311 119.205 67.0311 119.451 67.3665 119.451C67.7018 119.451 67.3838 119.451 67.4018 119.451L76.8951 119.011C76.8951 119.011 76.9131 119.011 76.9305 119.011C77.0011 119.011 77.0718 119.011 77.1425 119.011C77.5305 119.011 77.8305 119.116 78.0425 119.328C78.2365 119.522 78.3425 119.805 78.3425 120.087C78.3425 120.934 77.3718 121.11 76.8071 121.145C76.8071 121.145 76.8071 121.145 76.7898 121.145L67.4898 121.887C67.1018 121.922 66.8191 122.239 66.8371 122.628C66.8545 122.999 67.1725 123.299 67.5431 123.299L77.3191 123.104C77.3191 123.104 77.3365 123.104 77.3545 123.104C77.3898 123.104 77.4071 123.104 77.4425 123.104C77.7425 123.104 78.0425 123.228 78.2545 123.457C78.4658 123.669 78.5718 123.969 78.5718 124.233C78.5545 124.798 77.9545 125.239 77.2485 125.239C76.5425 125.239 77.1951 125.239 77.1778 125.239C77.1778 125.239 77.1598 125.239 77.1425 125.239C77.1425 125.239 77.1071 125.239 77.0898 125.239L67.7371 125.839C67.3491 125.857 67.0665 126.193 67.0838 126.563C67.0838 126.951 67.4018 127.251 67.7898 127.251L76.7545 127.181H76.7898C77.2305 127.181 77.6718 127.287 77.7425 128.098C77.7951 128.645 77.4425 129.121 76.9658 129.175C74.7778 129.386 68.0545 129.951 67.9838 129.951C67.6138 129.986 67.3311 130.286 67.3311 130.657L67.3665 134.398L52.2437 134.08V129.351C52.2437 128.698 52.2261 128.01 52.1907 127.375C52.0672 123.933 51.9613 120.687 54.9259 118.675C57.5905 116.857 63.5725 115.34 72.7311 114.158C73.2778 114.087 73.7191 114.052 74.0545 114.052H74.0898ZM74.0898 113.346C73.7011 113.346 73.2251 113.381 72.6778 113.452C68.5838 113.981 58.561 115.375 54.573 118.075C50.6732 120.722 51.5731 125.239 51.5731 129.351V134.769L68.1251 135.121L68.0898 130.657C68.0898 130.657 74.8658 130.092 77.0898 129.881C77.9545 129.792 78.5891 128.981 78.5011 128.045C78.4305 127.127 77.9011 126.475 76.8425 126.475C76.8425 126.475 76.8071 126.475 76.7898 126.475L67.8431 126.545L77.1951 125.945C77.2305 125.945 77.2658 125.945 77.3011 125.945C78.3951 125.945 79.2951 125.204 79.3305 124.269C79.3658 123.334 78.5718 122.399 77.4951 122.399C77.4425 122.399 77.4071 122.399 77.3545 122.399L67.5785 122.593L76.8778 121.851C78.3071 121.781 79.0838 121.075 79.0838 120.087C79.0838 119.169 78.4305 118.287 77.1778 118.287C77.0898 118.287 77.0011 118.287 76.8951 118.287L67.4018 118.728C69.4311 118.093 69.9958 117.846 74.0545 116.787C75.7838 116.328 76.3131 115.517 75.9778 114.423C75.7485 113.628 75.1838 113.328 74.1071 113.328L74.0898 113.346Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.4199 142.587C56.0534 142.587 56.5669 142.073 56.5669 141.44C56.5669 140.806 56.0534 140.293 55.4199 140.293C54.7865 140.293 54.2729 140.806 54.2729 141.44C54.2729 142.073 54.7865 142.587 55.4199 142.587Z\",\n fill: \"white\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.644 190.513C44.0562 190.513 35.586 183.631 34.686 168.367C34.686 168.367 34.686 168.367 34.686 168.35L35.1096 104.735C34.9331 99.6532 36.6448 95.6472 39.8034 93.7592C42.0268 92.4179 44.709 92.4005 46.9678 93.7239C50.3206 95.6652 52.1734 100.024 52.0675 105.671L52.4028 167.45C52.4028 167.644 52.244 167.803 52.0498 167.803C51.8558 167.803 51.697 167.644 51.697 167.45L51.3616 105.653C51.4676 100.271 49.7382 96.1412 46.6148 94.3239C44.5856 93.1419 42.1856 93.1592 40.174 94.3592C37.2447 96.1065 35.6566 99.8825 35.8154 104.718L35.3919 168.332C36.2742 183.296 44.5679 189.949 51.891 189.807C55.9497 189.719 59.7436 187.655 62.5493 183.967C65.7433 179.785 67.5081 173.767 67.6488 166.603L67.4728 134.999C67.4728 134.805 67.6314 134.645 67.8254 134.645C68.0194 134.645 68.1788 134.805 68.1788 134.999L68.3548 166.603C68.2134 173.943 66.4138 180.085 63.114 184.39C60.1671 188.237 56.179 190.407 51.9087 190.496C51.8204 190.496 51.7322 190.496 51.644 190.496V190.513Z\",\n fill: \"black\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.1254 132.51H51.5381V137.962H68.1254V132.51Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.4194 133.215V137.256H52.244V133.215H67.4194ZM68.1254 132.51H51.5381V137.962H68.1254V132.51Z\",\n fill: \"black\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.4199 136.71C56.0534 136.71 56.5669 136.197 56.5669 135.563C56.5669 134.93 56.0534 134.416 55.4199 134.416C54.7865 134.416 54.2729 134.93 54.2729 135.563C54.2729 136.197 54.7865 136.71 55.4199 136.71Z\",\n fill: \"white\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.4271 132.387H18.0103V133.093H35.4271V132.387Z\",\n fill: \"black\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.4271 137.256H18.0103V137.962H35.4271V137.256Z\",\n fill: \"black\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.653 64.3946C116.623 64.3946 128.758 52.2595 128.758 37.2901C128.758 22.3207 116.623 10.1855 101.653 10.1855C86.6842 10.1855 74.5488 22.3207 74.5488 37.2901C74.5488 52.2595 86.6842 64.3946 101.653 64.3946Z\",\n fill: \"white\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.101 37.7562C132.101 35.4532 131.205 33.239 129.601 31.5847C127.998 29.9292 125.815 28.9624 123.512 28.8892C125.176 27.2238 126.111 24.9663 126.111 22.6134C126.111 20.2595 125.176 18.002 123.512 16.3377C121.848 14.6723 119.59 13.7376 117.236 13.7376C114.882 13.7376 112.625 14.6723 110.96 16.3377C110.882 14.037 109.914 11.8582 108.259 10.2582C106.604 8.65931 104.393 7.76562 102.092 7.76562C99.7915 7.76562 97.5806 8.65931 95.9252 10.2582C94.2709 11.8582 93.3029 14.037 93.2242 16.3377C91.5599 14.6723 89.3024 13.7376 86.9484 13.7376C84.5945 13.7376 82.3369 14.6723 80.6727 16.3377C79.0084 18.002 78.0737 20.2595 78.0737 22.6134C78.0737 24.9663 79.0084 27.2238 80.6727 28.8892C78.373 28.9668 76.1931 29.9359 74.5943 31.5902C72.9954 33.2445 72.1006 35.4555 72.1006 37.7562C72.1006 40.058 72.9954 42.269 74.5943 43.9233C76.1931 45.5776 78.373 46.5467 80.6727 46.6243C79.0084 48.2886 78.0737 50.5461 78.0737 52.9C78.0737 55.254 79.0084 57.5115 80.6727 59.1758C82.3369 60.8401 84.5945 61.7759 86.9484 61.7759C89.3024 61.7759 91.5599 60.8401 93.2242 59.1758C93.3029 61.4754 94.2709 63.6553 95.9252 65.2542C97.5806 66.8542 99.7915 67.7479 102.092 67.7479C104.393 67.7479 106.604 66.8542 108.259 65.2542C109.914 63.6553 110.882 61.4754 110.96 59.1758C112.625 60.8401 114.882 61.7759 117.236 61.7759C119.59 61.7759 121.848 60.8401 123.512 59.1758C125.176 57.5115 126.111 55.254 126.111 52.9C126.111 50.5461 125.176 48.2886 123.512 46.6243C125.815 46.5511 127.998 45.5843 129.601 43.9288C131.205 42.2745 132.101 40.0603 132.101 37.7562Z\",\n fill: \"#116F42\",\n fillOpacity: 0.92\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.5259 32.599C94.5259 32.599 100.573 32.6345 103.881 26.2312C106.495 21.1618 110.331 23.8518 108.491 28.2038C107.869 29.7106 107.157 31.1787 106.358 32.599C106.358 32.599 111.07 32.538 112.571 32.599C114.073 32.66 115.727 33.0137 115.029 36.1139C114.003 40.6555 113.576 41.9184 113.004 44.2391C112.343 46.9202 111.979 48.2296 106.688 48.3549C101.396 48.4802 94.5259 48.3549 94.5259 48.3549V32.599Z\",\n fill: \"white\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.048 24.4963C107.174 24.4986 107.296 24.5351 107.402 24.5995C107.51 24.6638 107.597 24.7558 107.658 24.8644C107.991 25.3767 108.137 26.4012 107.545 27.7972C106.941 29.2619 106.249 30.69 105.476 32.0727C105.386 32.2279 105.339 32.4042 105.339 32.5838C105.339 32.7624 105.385 32.9387 105.474 33.095C105.564 33.2502 105.692 33.38 105.846 33.4698C106.002 33.5607 106.178 33.6084 106.356 33.6095H106.372C106.395 33.6095 108.833 33.5784 110.727 33.5784C111.557 33.5784 112.161 33.5784 112.52 33.5973C113.019 33.6128 113.713 33.6716 113.965 33.9942C114.098 34.1683 114.285 34.6451 114.008 35.8614C113.324 38.8862 112.909 40.4563 112.54 41.8423C112.356 42.5364 112.182 43.1928 111.992 43.9656C111.677 45.2463 111.48 45.9792 110.914 46.4327C110.248 46.9737 108.89 47.2498 106.647 47.3042C105.109 47.3396 103.255 47.3574 101.17 47.3574C98.841 47.3574 96.7232 47.3341 95.5346 47.3186V33.5385C97.5482 33.2458 102.038 32.0006 104.774 26.7017C105.627 25.0829 106.505 24.4963 107.048 24.4963ZM107.048 23.4707C106.073 23.4707 104.886 24.2735 103.879 26.2249C100.608 32.5595 94.6587 32.5927 94.5278 32.5927V48.3364C94.5278 48.3364 97.5859 48.3897 101.187 48.3897C102.981 48.3897 104.927 48.3897 106.687 48.3364C111.967 48.21 112.343 46.9017 113.004 44.2195C113.576 41.8988 114 40.6337 115.027 36.0943C115.727 32.9952 114.08 32.6282 112.571 32.5805C112.151 32.5672 111.482 32.5617 110.735 32.5617C108.806 32.5617 106.356 32.5927 106.356 32.5927C107.157 31.1724 107.869 29.7043 108.491 28.1975C109.623 25.5209 108.606 23.4707 107.048 23.4707Z\",\n fill: \"white\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.5358 33.002H89.0132V48.0072H92.5358V33.002Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssessmentScheduledGraphics);\nexport default __webpack_public_path__ + \"static/media/assessment-scheduled-graphics.220d802b772661dfd458d99f66cbd058.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport moment from \"moment\";\nimport scheduleSuccessImage from \"assets/images/assessment-scheduled-graphics.svg\";\n\nexport const ScheduleSuccessfullModal = ({\n isOpen,\n onCancel,\n onConfirm,\n data,\n ...rest\n}) => {\n return (\n \n \n
    \n \"\"\n

    \n Your Assessment Scheduled Successfully!\n

    \n

    \n {moment(data?.scheduledDate, \"DD-MMM-YYYY\").format(\"MMMM DD YYYY\")}\n

    \n

    \n {`${data?.startAtStr} - ${data?.endAtStr}`}\n

    \n
    \n \n
    \n
    \n
    \n \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgAssessmentScheduleFailedGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 200,\n height: 200,\n viewBox: \"0 0 200 200\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.429 119.063L157.645 118.163L167.526 109.146L168.691 95.1523L155.562 102.123C155.562 102.123 106.948 102.334 96.7476 102.511L114.429 119.063Z\",\n fill: \"#2760AD\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.88 96.3877L166.838 108.81L157.345 117.475L114.694 118.375L98.4949 103.199C111.43 103.022 155.086 102.828 155.545 102.828C155.651 102.828 155.774 102.793 155.88 102.74L167.862 96.3703L167.88 96.3877ZM168.691 95.1523L155.562 102.123C155.562 102.123 106.948 102.334 96.7476 102.511L114.429 119.063L157.645 118.163L167.526 109.146L168.691 95.1523Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.811 133.921L172.679 133.992L182.402 124.71L182.544 110.699L170.438 117.687C170.438 117.687 121.823 117.899 111.624 118.075L125.794 133.904L125.811 133.921Z\",\n fill: \"#2760AD\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.837 111.934L181.696 124.41L172.397 133.286L126.128 133.216L113.194 118.764C125.863 118.587 169.979 118.393 170.438 118.393C170.561 118.393 170.685 118.358 170.791 118.305L181.837 111.934ZM182.561 110.7L170.455 117.687C170.455 117.687 121.84 117.899 111.641 118.076L125.811 133.904L172.679 133.975L182.402 124.693L182.543 110.682L182.561 110.7Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.738 134.028L182.614 133.957L182.666 131.116L176.472 131.151C178.378 128.822 182.666 124.569 182.666 124.569L182.614 110.682L176.543 114.282L170.738 134.028Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.702 132.969C174.423 132.969 175.008 132.385 175.008 131.663C175.008 130.942 174.423 130.357 173.702 130.357C172.981 130.357 172.396 130.942 172.396 131.663C172.396 132.385 172.981 132.969 173.702 132.969Z\",\n fill: \"#2760AD\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.461 126.775L179.755 127.516L179.896 112.234L180.602 111.811L180.461 126.775Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.762 118.304L168.638 118.234L168.726 115.622L162.533 115.658C164.438 113.328 168.726 109.075 168.726 109.075L168.674 95.1875L162.603 98.7875L156.762 118.286V118.304Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.762 117.492C160.483 117.492 161.068 116.908 161.068 116.186C161.068 115.466 160.483 114.881 159.762 114.881C159.041 114.881 158.456 115.466 158.456 116.186C158.456 116.908 159.041 117.492 159.762 117.492Z\",\n fill: \"#2760AD\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.521 111.299L165.815 112.04L165.974 96.5996L166.68 96.2109L166.521 111.299Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.6796 78.9353C51.6796 75.9333 49.2462 73.5 46.2446 73.5C43.2429 73.5 40.8096 75.9333 40.8096 78.9353C40.8096 81.9367 43.2429 84.37 46.2446 84.37C49.2462 84.37 51.6796 81.9367 51.6796 78.9353Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.7906 176.501L71.9726 108.105L47.8147 91.1641C47.8147 91.1641 44.5502 89.0641 42.8032 90.2288C12.1694 110.522 1.08764 177.119 58.8082 176.501H58.7906Z\",\n fill: \"#7AB9A3\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.9968 176.854C47.4091 176.854 38.639 174.577 31.9158 170.06C25.722 165.913 21.4163 160.002 19.1223 152.52C17.5342 147.367 16.9695 141.65 17.446 135.526C17.8871 129.685 19.2458 123.756 21.4692 117.898C25.9867 106.04 33.698 95.8397 42.6094 89.9283C44.5328 88.6577 47.8679 90.7757 48.0091 90.8637L72.1843 107.804C72.2903 107.892 72.361 108.016 72.3256 108.157L59.1438 176.554C59.1086 176.712 58.9674 176.836 58.8086 176.836C58.5439 176.836 58.2615 176.836 57.9968 176.836V176.854ZM44.1093 90.2283C43.7034 90.2283 43.3152 90.317 42.9976 90.511C24.328 102.863 13.4932 131.75 19.7929 152.308C24.5574 167.819 38.3037 176.271 58.5086 176.148L71.5843 108.263L47.6209 91.4463C46.9856 91.0403 45.3975 90.2283 44.1093 90.2283Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.59 84.6699H117.941V158.413H72.59C70.084 158.413 68.0547 156.385 68.0547 153.879V89.2052C68.0547 86.6992 70.084 84.6699 72.59 84.6699Z\",\n fill: \"#8CABD8\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.447 84.6016L117.499 158.362L141.533 143.504C141.551 143.504 141.569 143.486 141.586 143.469C144.215 141.81 146.315 138.298 146.315 135.599L146.263 71.7196C146.263 68.9842 144.11 68.1022 141.481 69.7429L117.429 84.6016H117.447Z\",\n fill: \"#8CABD8\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.376 88.3939L118.064 153.773L139.081 140.891C139.081 140.891 139.116 140.873 139.133 140.856C141.427 139.427 143.245 136.338 143.227 133.939L142.627 77.3293C142.61 74.9119 140.704 74.0999 138.393 75.5119L117.376 88.3939Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.0944 111.281H78.6244C77.6791 111.281 76.9131 112.048 76.9131 112.993V130.092C76.9131 131.037 77.6791 131.804 78.6244 131.804H87.0944C88.0398 131.804 88.8064 131.037 88.8064 130.092V112.993C88.8064 112.048 88.0398 111.281 87.0944 111.281Z\",\n fill: \"white\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.277 94.7109H96.2362C95.6022 94.7109 95.0889 95.2249 95.0889 95.8583V146.044C95.0889 146.678 95.6022 147.191 96.2362 147.191H106.277C106.91 147.191 107.424 146.678 107.424 146.044V95.8583C107.424 95.2249 106.91 94.7109 106.277 94.7109Z\",\n fill: \"white\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.91 129.74C136.681 129.881 136.505 129.811 136.487 129.581L136.434 126.863C136.434 126.634 136.61 126.334 136.839 126.193L139.504 124.517C139.733 124.375 139.91 124.446 139.928 124.675L139.981 127.393C139.981 127.623 139.804 127.923 139.575 128.063L136.91 129.74ZM139.487 123.987L136.822 125.663C136.31 125.981 135.905 126.669 135.922 127.181L135.975 129.899C135.975 130.411 136.416 130.587 136.928 130.269L139.593 128.593C140.104 128.275 140.51 127.587 140.493 127.075L140.439 124.358C140.439 123.846 139.998 123.669 139.487 123.987Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.275 133.374C136.204 133.41 136.151 133.48 136.098 133.568C135.993 133.727 136.01 133.904 136.098 133.939L139.751 135.404C139.804 135.421 139.875 135.404 139.945 135.368C140.016 135.333 140.069 135.262 140.121 135.174C140.227 135.015 140.227 134.839 140.121 134.804L136.469 133.339C136.416 133.321 136.345 133.339 136.275 133.374Z\",\n fill: \"black\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.822 131.134C139.752 131.169 139.681 131.24 139.646 131.328L136.152 137.257C136.046 137.416 136.064 137.593 136.152 137.628C136.204 137.645 136.275 137.628 136.328 137.593C136.381 137.557 136.47 137.487 136.504 137.399L139.998 131.469C140.104 131.311 140.087 131.134 139.998 131.099C139.946 131.081 139.875 131.099 139.822 131.134Z\",\n fill: \"black\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.872 111.299C76.19 110.205 75.678 109.375 73.9487 108.934C69.89 107.876 69.3434 107.611 67.296 106.993L76.79 107.434C78.2194 107.576 78.978 106.622 78.978 105.652C78.978 104.664 78.2014 103.958 76.772 103.888L67.4727 103.146L77.2487 103.34C78.3954 103.428 79.278 102.458 79.2247 101.47C79.1894 100.499 78.2194 99.7402 77.09 99.7935L67.7374 99.1935L76.684 99.2642C77.778 99.2815 78.3074 98.6462 78.3954 97.6935C78.484 96.7582 77.8487 95.9462 76.984 95.8582C75.396 95.7169 62.9905 94.5522 56.0908 93.9169C53.6027 93.6875 51.4322 95.6289 51.4146 98.1349C51.4146 99.3169 51.397 100.394 51.4146 100.923C51.4675 103.534 52.0146 105.987 54.485 107.664C58.473 110.381 68.496 111.758 72.59 112.287C74.6367 112.552 75.5547 112.393 75.872 111.299Z\",\n fill: \"white\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.685 94.5886C55.7908 94.5886 55.9144 94.5886 56.0202 94.5886C62.9199 95.2239 75.3254 96.3886 76.9134 96.5299C77.39 96.5826 77.7427 97.0592 77.69 97.6059C77.6194 98.4179 77.16 98.5239 76.7367 98.5239H76.684L67.7374 98.4532C67.3494 98.4532 67.0494 98.7532 67.0314 99.1412C67.0314 99.5299 67.314 99.8472 67.684 99.8652L77.0367 100.465C77.0367 100.465 77.072 100.465 77.09 100.465C77.1074 100.465 77.1074 100.465 77.1254 100.465C77.1427 100.465 77.178 100.465 77.1954 100.465C77.9014 100.465 78.5014 100.924 78.5194 101.471C78.5194 101.735 78.4134 102.035 78.2014 102.247C77.99 102.477 77.69 102.6 77.39 102.6C77.09 102.6 77.3367 102.6 77.3014 102.6C77.3014 102.6 77.284 102.6 77.266 102.6L67.49 102.406C67.1194 102.406 66.802 102.706 66.7847 103.077C66.7667 103.465 67.0494 103.783 67.4374 103.818L76.7367 104.559C76.7367 104.559 76.7367 104.559 76.7547 104.559C77.3194 104.594 78.2894 104.771 78.2894 105.618C78.2894 105.917 78.184 106.183 77.99 106.377C77.778 106.588 77.46 106.694 77.09 106.694C76.7194 106.694 76.9487 106.694 76.878 106.694C76.878 106.694 76.86 106.694 76.8427 106.694L67.3494 106.253C67.3494 106.253 67.3314 106.253 67.314 106.253C66.9787 106.253 66.6787 106.5 66.6256 106.835C66.5726 107.188 66.7667 107.523 67.1194 107.629C67.596 107.771 68.002 107.912 68.39 108.035C69.6254 108.423 70.702 108.776 73.8074 109.588C74.7607 109.835 75.096 110.153 75.2194 110.365C75.2547 110.435 75.378 110.629 75.2367 111.07C75.1487 111.353 75.0607 111.653 74.0367 111.653C73.0134 111.653 73.2607 111.617 72.7134 111.547C63.5552 110.365 57.5731 108.847 54.9085 107.029C52.5616 105.441 52.191 103.112 52.1381 100.853C52.1381 100.395 52.1381 99.4766 52.1381 98.1006C52.1557 96.1592 53.7615 94.5712 55.7026 94.5712L55.685 94.5886ZM55.685 93.8826C53.3733 93.8826 51.4322 95.7532 51.4146 98.1179C51.4146 99.3006 51.397 100.377 51.4146 100.906C51.4675 103.518 52.0146 105.971 54.485 107.647C58.473 110.365 68.496 111.741 72.59 112.27C73.1367 112.341 73.6134 112.376 74.0014 112.376C75.078 112.376 75.6427 112.076 75.872 111.282C76.19 110.188 75.678 109.359 73.9487 108.917C69.89 107.859 69.3434 107.594 67.296 106.977L76.79 107.417C76.878 107.417 76.984 107.417 77.072 107.417C78.3247 107.417 78.978 106.535 78.978 105.618C78.978 104.629 78.2014 103.923 76.772 103.853L67.4727 103.112L77.2487 103.306C77.3014 103.306 77.3367 103.306 77.39 103.306C78.466 103.306 79.26 102.371 79.2247 101.435C79.1894 100.483 78.2894 99.7592 77.1954 99.7592C77.16 99.7592 77.1254 99.7592 77.09 99.7592L67.7374 99.1592L76.684 99.2299C76.684 99.2299 76.7194 99.2299 76.7367 99.2299C77.7954 99.2299 78.3074 98.5946 78.3954 97.6592C78.484 96.7239 77.8487 95.9119 76.984 95.8239C75.396 95.6826 62.9905 94.5179 56.0908 93.8826C55.9496 93.8826 55.8261 93.8652 55.685 93.8652V93.8826Z\",\n fill: \"black\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.2074 95.1966C62.0017 93.8213 61.8109 92.224 60.7812 91.6293C59.7515 91.0353 58.2729 91.6686 57.4786 93.044C56.6844 94.42 56.8752 96.0173 57.9048 96.6113C58.9346 97.206 60.4132 96.5726 61.2074 95.1966Z\",\n fill: \"white\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.9024 92.1174C60.0436 92.1174 60.1847 92.1528 60.3082 92.2061C60.6259 92.3474 60.7847 92.6294 60.8729 92.8234C61.067 93.3354 60.9964 94.0234 60.6964 94.6588C60.273 95.5234 59.4789 96.1234 58.773 96.1234C58.0672 96.1234 58.4907 96.0881 58.3672 96.0354C58.0495 95.8941 57.8907 95.6114 57.8025 95.4174C57.6084 94.9061 57.679 94.2174 57.979 93.5821C58.4024 92.7174 59.1965 92.1174 59.9024 92.1174ZM59.9024 91.4121C58.9318 91.4121 57.8907 92.1354 57.3437 93.2821C56.6555 94.7114 56.9908 96.2294 58.0848 96.7054C58.2966 96.7941 58.526 96.8468 58.773 96.8468C59.7436 96.8468 60.7847 96.1234 61.3317 94.9761C62.0199 93.5468 61.6846 92.0294 60.5906 91.5528C60.3788 91.4648 60.1494 91.4121 59.9024 91.4121Z\",\n fill: \"black\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.8026 99.4237C56.9483 99.4237 61.1198 95.2524 61.1198 90.1064C61.1198 84.9604 56.9483 80.7891 51.8026 80.7891C46.6568 80.7891 42.4854 84.9604 42.4854 90.1064C42.4854 95.2524 46.6568 99.4237 51.8026 99.4237Z\",\n fill: \"white\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.7851 81.4951C54.9437 81.4951 57.8377 83.2071 59.3553 85.9771C61.6316 90.1417 60.0964 95.3824 55.9319 97.6764C54.6614 98.3651 53.2321 98.7351 51.8027 98.7351C48.6441 98.7351 45.7501 97.0237 44.2325 94.2531C41.9561 90.0891 43.4913 84.8477 47.6559 82.5537C48.9264 81.8657 50.3557 81.4951 51.7851 81.4951ZM51.7851 80.7891C50.2675 80.7891 48.7323 81.1597 47.3206 81.9364C42.8031 84.4064 41.1444 90.0711 43.6149 94.5884C45.3089 97.6764 48.5029 99.4411 51.8027 99.4411C55.1025 99.4411 54.8555 99.0704 56.2672 98.2944C60.7846 95.8237 62.4433 90.1591 59.9729 85.6417C58.2789 82.5537 55.0849 80.7891 51.7851 80.7891Z\",\n fill: \"black\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.7798 84.3714C47.1797 81.4427 51.2383 80.4541 53.6911 81.0367C57.8909 82.0427 60.132 86.2954 60.3614 87.6187L44.7798 84.3714Z\",\n fill: \"black\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.3555 95.5939C56.3379 95.5939 56.3026 95.5939 56.285 95.5939L53.4968 95.0292C53.3028 94.9939 53.1792 94.7999 53.2145 94.6059C53.2498 94.4112 53.4439 94.2879 53.638 94.3232L55.5791 94.7292C55.2262 93.9706 54.9438 92.6646 55.5791 90.6532C55.632 90.4586 55.8438 90.3706 56.0202 90.4232C56.2144 90.4766 56.3026 90.6879 56.2496 90.8646C55.3144 93.7586 56.5144 94.9412 56.5673 94.9939C56.6908 95.0999 56.7084 95.2759 56.6378 95.4172C56.5849 95.5412 56.4614 95.6112 56.3202 95.6112L56.3555 95.5939Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.6959 91.8517C59.8604 91.2197 59.7645 90.6477 59.4816 90.5743C59.1987 90.5003 58.8359 90.953 58.6713 91.585C58.5067 92.2163 58.6026 92.7883 58.8856 92.8623C59.1685 92.9357 59.5313 92.4837 59.6959 91.8517Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.813 90.3209C53.9776 89.6889 53.8817 89.1169 53.5988 89.0429C53.3158 88.9696 52.9531 89.4223 52.7885 90.0536C52.6239 90.6856 52.7198 91.2576 53.0028 91.3316C53.2857 91.4049 53.6485 90.9523 53.813 90.3209Z\",\n fill: \"black\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.2868 87.9056C45.7086 86.3736 45.1213 84.8763 43.9751 84.5609C42.8288 84.2449 41.5575 85.2303 41.1357 86.7623C40.7139 88.2936 41.3011 89.7909 42.4474 90.1069C43.5937 90.4223 44.8649 89.4369 45.2868 87.9056Z\",\n fill: \"white\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.8916 90.5477C42.6269 90.5477 42.3622 90.4944 42.1328 90.389C40.8623 89.8597 40.2976 88.077 40.8799 86.4184C41.2152 85.4657 41.8505 84.7417 42.6269 84.389C43.1916 84.1417 43.7739 84.1244 44.3033 84.3364C45.5738 84.8657 46.1385 86.6477 45.5561 88.3064C45.2209 89.2597 44.5856 89.983 43.8092 90.3357C43.5092 90.477 43.1916 90.5297 42.8916 90.5297V90.5477ZM43.5445 84.901C43.3327 84.901 43.1387 84.9537 42.9269 85.0417C42.3445 85.3064 41.8328 85.9064 41.5681 86.6657C41.1093 87.989 41.4799 89.365 42.4151 89.7537C42.7681 89.8944 43.1563 89.877 43.5269 89.7184C44.1092 89.4537 44.6209 88.8537 44.8856 88.095C45.3444 86.771 44.9739 85.395 44.0386 85.0064C43.8798 84.9364 43.7209 84.901 43.5445 84.901Z\",\n fill: \"black\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.0325 88.6941C42.8736 88.6941 42.7502 88.6054 42.6972 88.4468C42.3266 87.2468 43.0325 86.5054 43.4736 86.2941C43.6501 86.2054 43.8618 86.2761 43.9501 86.4528C44.0383 86.6294 43.9677 86.8408 43.7912 86.9294C43.7207 86.9648 43.0854 87.3348 43.3678 88.2528C43.4207 88.4468 43.3148 88.6408 43.1384 88.6941C43.103 88.6941 43.0678 88.6941 43.0325 88.6941Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.7375 134.381L51.5735 134.769L51.8029 106.006C51.8029 89.4894 35.6743 88.854 35.4626 104.735L35.0391 168.35C36.7684 197.643 67.4375 197.801 68.0022 166.621L67.7375 134.381Z\",\n fill: \"#7AB9A3\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.6778 113.451C68.5838 113.981 58.561 115.375 54.573 118.075C50.6732 120.721 51.5731 125.239 51.5731 129.351V134.768L68.1251 135.121L68.0898 130.656C68.0898 130.656 74.8658 130.091 77.0898 129.88C77.9545 129.791 78.5891 128.98 78.5011 128.045C78.4131 127.109 77.8838 126.457 76.7898 126.474L67.8431 126.545L77.1951 125.945C78.3245 125.997 79.2951 125.239 79.3305 124.268C79.3658 123.298 78.5011 122.309 77.3545 122.398L67.5785 122.592L76.8778 121.851C78.3071 121.78 79.0838 121.075 79.0838 120.086C79.0838 119.098 78.3425 118.163 76.8951 118.304L67.4018 118.745C69.4311 118.11 69.9958 117.863 74.0545 116.804C75.7838 116.345 76.3131 115.533 75.9778 114.439C75.6605 113.363 74.7425 113.204 72.6958 113.451H72.6778Z\",\n fill: \"white\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.0898 114.052C75.1131 114.052 75.2011 114.352 75.2898 114.634C75.4131 115.075 75.2898 115.269 75.2718 115.34C75.1485 115.552 74.7958 115.869 73.8605 116.117C70.7545 116.928 69.6778 117.281 68.4431 117.669C68.0545 117.793 67.6665 117.916 67.1725 118.075C66.8371 118.181 66.6253 118.516 66.6785 118.869C66.7311 119.205 67.0311 119.451 67.3665 119.451C67.7018 119.451 67.3838 119.451 67.4018 119.451L76.8951 119.011C76.8951 119.011 76.9131 119.011 76.9305 119.011C77.0011 119.011 77.0718 119.011 77.1425 119.011C77.5305 119.011 77.8305 119.116 78.0425 119.328C78.2365 119.522 78.3425 119.805 78.3425 120.087C78.3425 120.934 77.3718 121.11 76.8071 121.145C76.8071 121.145 76.8071 121.145 76.7898 121.145L67.4898 121.887C67.1018 121.922 66.8191 122.239 66.8371 122.628C66.8545 122.999 67.1725 123.299 67.5431 123.299L77.3191 123.104C77.3191 123.104 77.3365 123.104 77.3545 123.104C77.3898 123.104 77.4071 123.104 77.4425 123.104C77.7425 123.104 78.0425 123.228 78.2545 123.457C78.4658 123.669 78.5718 123.969 78.5718 124.233C78.5545 124.798 77.9545 125.239 77.2485 125.239C76.5425 125.239 77.1951 125.239 77.1778 125.239C77.1778 125.239 77.1598 125.239 77.1425 125.239C77.1425 125.239 77.1071 125.239 77.0898 125.239L67.7371 125.839C67.3491 125.857 67.0665 126.193 67.0838 126.563C67.0838 126.951 67.4018 127.251 67.7898 127.251L76.7545 127.181H76.7898C77.2305 127.181 77.6718 127.287 77.7425 128.098C77.7951 128.645 77.4425 129.121 76.9658 129.175C74.7778 129.386 68.0545 129.951 67.9838 129.951C67.6138 129.986 67.3311 130.286 67.3311 130.657L67.3665 134.398L52.2437 134.08V129.351C52.2437 128.698 52.2261 128.01 52.1907 127.375C52.0672 123.933 51.9613 120.687 54.9259 118.675C57.5905 116.857 63.5725 115.34 72.7311 114.158C73.2778 114.087 73.7191 114.052 74.0545 114.052H74.0898ZM74.0898 113.346C73.7011 113.346 73.2251 113.381 72.6778 113.452C68.5838 113.981 58.561 115.375 54.573 118.075C50.6732 120.722 51.5731 125.239 51.5731 129.351V134.769L68.1251 135.121L68.0898 130.657C68.0898 130.657 74.8658 130.092 77.0898 129.881C77.9545 129.792 78.5891 128.981 78.5011 128.045C78.4305 127.127 77.9011 126.475 76.8425 126.475C76.8425 126.475 76.8071 126.475 76.7898 126.475L67.8431 126.545L77.1951 125.945C77.2305 125.945 77.2658 125.945 77.3011 125.945C78.3951 125.945 79.2951 125.204 79.3305 124.269C79.3658 123.334 78.5718 122.399 77.4951 122.399C77.4425 122.399 77.4071 122.399 77.3545 122.399L67.5785 122.593L76.8778 121.851C78.3071 121.781 79.0838 121.075 79.0838 120.087C79.0838 119.169 78.4305 118.287 77.1778 118.287C77.0898 118.287 77.0011 118.287 76.8951 118.287L67.4018 118.728C69.4311 118.093 69.9958 117.846 74.0545 116.787C75.7838 116.328 76.3131 115.517 75.9778 114.423C75.7485 113.628 75.1838 113.328 74.1071 113.328L74.0898 113.346Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.4199 142.587C56.0534 142.587 56.5669 142.073 56.5669 141.44C56.5669 140.806 56.0534 140.293 55.4199 140.293C54.7865 140.293 54.2729 140.806 54.2729 141.44C54.2729 142.073 54.7865 142.587 55.4199 142.587Z\",\n fill: \"white\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.644 190.513C44.0562 190.513 35.586 183.631 34.686 168.367C34.686 168.367 34.686 168.367 34.686 168.35L35.1096 104.735C34.9331 99.6532 36.6448 95.6472 39.8034 93.7592C42.0268 92.4179 44.709 92.4005 46.9678 93.7239C50.3206 95.6652 52.1734 100.024 52.0675 105.671L52.4028 167.45C52.4028 167.644 52.244 167.803 52.0498 167.803C51.8558 167.803 51.697 167.644 51.697 167.45L51.3616 105.653C51.4676 100.271 49.7382 96.1412 46.6148 94.3239C44.5856 93.1419 42.1856 93.1592 40.174 94.3592C37.2447 96.1065 35.6566 99.8825 35.8154 104.718L35.3919 168.332C36.2742 183.296 44.5679 189.949 51.891 189.807C55.9497 189.719 59.7436 187.655 62.5493 183.967C65.7433 179.785 67.5081 173.767 67.6488 166.603L67.4728 134.999C67.4728 134.805 67.6314 134.645 67.8254 134.645C68.0194 134.645 68.1788 134.805 68.1788 134.999L68.3548 166.603C68.2134 173.943 66.4138 180.085 63.114 184.39C60.1671 188.237 56.179 190.407 51.9087 190.496C51.8204 190.496 51.7322 190.496 51.644 190.496V190.513Z\",\n fill: \"black\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.1254 132.51H51.5381V137.962H68.1254V132.51Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.4194 133.215V137.256H52.244V133.215H67.4194ZM68.1254 132.51H51.5381V137.962H68.1254V132.51Z\",\n fill: \"black\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.4199 136.71C56.0534 136.71 56.5669 136.197 56.5669 135.563C56.5669 134.93 56.0534 134.416 55.4199 134.416C54.7865 134.416 54.2729 134.93 54.2729 135.563C54.2729 136.197 54.7865 136.71 55.4199 136.71Z\",\n fill: \"white\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.4271 132.387H18.0103V133.093H35.4271V132.387Z\",\n fill: \"black\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.4271 137.256H18.0103V137.962H35.4271V137.256Z\",\n fill: \"black\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.1006 37.7575C72.1006 40.0604 72.9965 42.2747 74.5998 43.929C76.2031 45.5844 78.3863 46.5513 80.6893 46.6245C79.025 48.2899 78.0903 50.5474 78.0903 52.9002C78.0903 55.2542 79.025 57.5117 80.6893 59.176C82.3536 60.8414 84.6111 61.7761 86.965 61.7761C89.319 61.7761 91.5765 60.8414 93.2408 59.176C93.3195 61.4767 94.2875 63.6555 95.9418 65.2555C97.5972 66.8544 99.8082 67.748 102.109 67.748C104.41 67.748 106.621 66.8544 108.276 65.2555C109.93 63.6555 110.898 61.4767 110.977 59.176C112.641 60.8414 114.899 61.7761 117.253 61.7761C119.607 61.7761 121.864 60.8414 123.529 59.176C125.193 57.5117 126.128 55.2542 126.128 52.9002C126.128 50.5474 125.193 48.2899 123.529 46.6245C125.828 46.5469 128.008 45.5778 129.607 43.9235C131.206 42.2691 132.101 40.0582 132.101 37.7575C132.101 35.4556 131.206 33.2447 129.607 31.5904C128.008 29.9361 125.828 28.967 123.529 28.8894C125.193 27.2251 126.128 24.9676 126.128 22.6136C126.128 20.2597 125.193 18.0022 123.529 16.3379C121.864 14.6736 119.607 13.7378 117.253 13.7378C114.899 13.7378 112.641 14.6736 110.977 16.3379C110.898 14.0382 109.93 11.8583 108.276 10.2595C106.621 8.65948 104.41 7.76579 102.109 7.76579C99.8082 7.76579 97.5972 8.65948 95.9418 10.2595C94.2875 11.8583 93.3195 14.0382 93.2408 16.3379C91.5765 14.6736 89.319 13.7378 86.965 13.7378C84.6111 13.7378 82.3536 14.6736 80.6893 16.3379C79.025 18.0022 78.0903 20.2597 78.0903 22.6136C78.0903 24.9676 79.025 27.2251 80.6893 28.8894C78.3863 28.9625 76.2031 29.9294 74.5998 31.5848C72.9965 33.2392 72.1006 35.4534 72.1006 37.7575Z\",\n fill: \"#FF8795\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.675 42.9147C109.675 42.9147 103.628 42.8792 100.32 49.2824C97.7059 54.3518 93.8706 51.6619 95.7101 47.3099C96.3321 45.8031 97.044 44.335 97.8434 42.9147C97.8434 42.9147 93.131 42.9756 91.6297 42.9147C90.1284 42.8537 88.4741 42.5 89.1726 39.3998C90.1983 34.8582 90.6251 33.5953 91.1973 31.2746C91.8581 28.5935 92.2218 27.284 97.5129 27.1587C102.805 27.0334 109.675 27.1587 109.675 27.1587V42.9147Z\",\n fill: \"white\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.1529 51.0173C97.0276 51.0151 96.9056 50.9785 96.7992 50.9142C96.6916 50.8499 96.604 50.7579 96.543 50.6492C96.2104 50.137 96.064 49.1124 96.6561 47.7165C97.2604 46.2518 97.9523 44.8236 98.7251 43.441C98.815 43.2857 98.8626 43.1094 98.8626 42.9298C98.8626 42.7513 98.8161 42.575 98.7274 42.4187C98.6376 42.2634 98.5089 42.1337 98.3548 42.0439C98.1996 41.953 98.0233 41.9053 97.8447 41.9042H97.8292C97.8059 41.9042 95.3677 41.9352 93.4739 41.9352C92.6445 41.9352 92.0402 41.9352 91.681 41.9164C91.182 41.9009 90.4879 41.8421 90.2362 41.5194C90.1032 41.3454 89.9158 40.8686 90.193 39.6522C90.8771 36.6275 91.2918 35.0574 91.661 33.6714C91.8451 32.9773 92.0192 32.3209 92.2088 31.5481C92.5237 30.2674 92.721 29.5345 93.2876 29.081C93.9529 28.5399 95.3112 28.2638 97.5543 28.2095C99.0921 28.174 100.946 28.1563 103.032 28.1563C105.36 28.1563 107.478 28.1796 108.667 28.1951V41.9751C106.653 42.2679 102.163 43.513 99.427 48.812C98.5743 50.4308 97.6962 51.0173 97.1529 51.0173ZM97.1529 52.043C98.1286 52.043 99.315 51.2402 100.322 49.2887C103.593 42.9542 109.543 42.9209 109.673 42.9209V27.1772C109.673 27.1772 106.615 27.124 103.014 27.124C101.22 27.124 99.274 27.124 97.5143 27.1772C92.2343 27.3036 91.8584 28.612 91.1976 31.2942C90.6254 33.6149 90.2007 34.88 89.174 39.4194C88.4744 42.5185 90.1209 42.8855 91.63 42.9331C92.0502 42.9464 92.7188 42.952 93.4661 42.952C95.3954 42.952 97.8447 42.9209 97.8447 42.9209C97.0442 44.3413 96.3324 45.8093 95.7103 47.3162C94.5782 49.9928 95.595 52.043 97.1529 52.043Z\",\n fill: \"white\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.665 42.5117H115.188V27.5064H111.665V42.5117Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssessmentScheduleFailedGraphics);\nexport default __webpack_public_path__ + \"static/media/assessment-schedule-failed-graphics.727e62e9afb7202ec59f8e685e500ea2.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport moment from \"moment\";\nimport slotFailedImage from \"assets/images/assessment-schedule-failed-graphics.svg\";\n\nexport const ScheduleUnsuccessfullModal = ({\n isOpen,\n onCancel,\n onConfirm,\n data,\n ...rest\n}) => {\n return (\n \n \n
    \n \"\"\n

    {data?.message}!

    \n

    \n {moment(data?.scheduledDate, \"DD-MMM-YYYY\").format(\"MMMM DD YYYY\")}\n

    \n

    \n {`${data?.startAtStr} - ${data?.endAtStr}`}\n

    \n
    \n \n
    \n
    \n
    \n \n );\n};\n","import moment from \"moment\";\n\nexport const ScheduledDateView = ({ scheduleDate, startTime, endTime }) => {\n const day = moment(scheduleDate)?.format(\"DD\");\n const yearMonth = moment(scheduleDate)?.format(\"MMM-YYYY\");\n const startAt = moment(startTime)?.format(\"hh:mm A\");\n const endAt = moment(endTime)?.format(\"hh:mm A\");\n\n return (\n
    \n Assessment Scheduled\n
    \n
    \n {day}\n {yearMonth}\n
    \n
    \n {startAt}\n to\n {endAt}\n
    \n
    \n
    \n );\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgQuestionIconThickBlack(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 15,\n viewBox: \"0 0 14 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 0.5C3.1423 0.5 0 3.6423 0 7.5C0 11.3577 3.1423 14.5 7 14.5C10.8577 14.5 14 11.3577 14 7.5C14 3.6423 10.8577 0.5 7 0.5ZM7 1.9C10.1011 1.9 12.6 4.39891 12.6 7.5C12.6 10.6011 10.1011 13.1 7 13.1C3.89891 13.1 1.4 10.6011 1.4 7.5C1.4 4.39891 3.89891 1.9 7 1.9ZM7 3.3C5.453 3.3 4.2 4.553 4.2 6.1H5.6C5.6 5.33 6.23 4.7 7 4.7C7.77 4.7 8.4 5.33 8.4 6.1C8.4 7.5 6.3 7.7569 6.3 9.6H7.7C7.7 8.4443 9.8 7.85 9.8 6.1C9.8 4.553 8.547 3.3 7 3.3ZM6.3 10.3V11.7H7.7V10.3H6.3Z\",\n fill: \"#131314\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuestionIconThickBlack);\nexport default __webpack_public_path__ + \"static/media/question-icon-thick-black.facd668b5829649240b72e69f9ea5774.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgClockIconBlack(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 15,\n viewBox: \"0 0 14 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 0.5C3.1423 0.5 0 3.6423 0 7.5C0 11.3577 3.1423 14.5 7 14.5C10.8577 14.5 14 11.3577 14 7.5C14 3.6423 10.8577 0.5 7 0.5ZM7 1.9C10.1011 1.9 12.6 4.39891 12.6 7.5C12.6 10.6011 10.1011 13.1 7 13.1C3.89891 13.1 1.4 10.6011 1.4 7.5C1.4 4.39891 3.89891 1.9 7 1.9ZM6.3 3.3V7.78984L9.30508 10.7949L10.2949 9.80508L7.7 7.21016V3.3H6.3Z\",\n fill: \"#131314\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClockIconBlack);\nexport default __webpack_public_path__ + \"static/media/clock-icon-black.65cbe051b182a09ff12bb2882d04da4e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgBoardWithChecksIconBlack(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 19,\n viewBox: \"0 0 16 19\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.2222 2.27778H10.5031C10.136 1.244 9.15911 0.5 8 0.5C6.84089 0.5 5.864 1.244 5.49689 2.27778H1.77778C0.795556 2.27778 0 3.07333 0 4.05556V16.5C0 17.4822 0.795556 18.2778 1.77778 18.2778H14.2222C15.2044 18.2778 16 17.4822 16 16.5V4.05556C16 3.07333 15.2044 2.27778 14.2222 2.27778ZM7.11111 13.8333H3.55556V12.0556H7.11111V13.8333ZM7.11111 9.38889H3.55556V7.61111H7.11111V9.38889ZM8 4.05556C7.50933 4.05556 7.11111 3.65733 7.11111 3.16667C7.11111 2.676 7.50933 2.27778 8 2.27778C8.49067 2.27778 8.88889 2.676 8.88889 3.16667C8.88889 3.65733 8.49067 4.05556 8 4.05556ZM11.0347 13.8333H8.88889V12.0556H10.2987L12.0764 10.2778L13.3333 11.5347L11.0347 13.8333ZM11.0347 9.38889H8.88889V7.61111H10.2987L12.0764 5.83333L13.3333 7.09022L11.0347 9.38889ZM14.2222 16.5H1.77778V4.05556H14.2222V16.5Z\",\n fill: \"#131314\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBoardWithChecksIconBlack);\nexport default __webpack_public_path__ + \"static/media/board-with-checks-icon-black.c59769cb0732411718272022e61c9913.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Modal, ModalHeader, ModalBody } from \"reactstrap\";\nimport parse from \"html-react-parser\";\nimport questionIcon from \"assets/images/icons/question-icon-thick-black.svg\";\nimport clockIcon from \"assets/images/icons/clock-icon-black.svg\";\nimport boardIcon from \"assets/images/icons/board-with-checks-icon-black.svg\";\n\nexport const InstructionsModal = ({\n isOpen,\n onCancel,\n onSubmit,\n data,\n actionFrom,\n ...rest\n}) => {\n const { name, noOfQuestions, maxTime, maxAttempt, instructions } = data;\n\n const isFromAssessmentList = actionFrom === \"assessmentList\";\n\n return (\n \n Instructions\n \n
    \n {name}\n \n Read the below instructions carefully before you start the exam:\n \n
    \n
    \n
    \n \"\"\n
    \n
    {`Total Questions: ${noOfQuestions}`}
    \n
    \n
    \n
    \n \"\"\n
    \n
    {`Total Time : ${maxTime} Min`}
    \n
    \n
    \n
    \n \"\"\n
    \n
    {`Max Attempts: ${maxAttempt}`}
    \n
    \n
    \n
    \n {!!instructions && parse(instructions)}\n
    \n {isFromAssessmentList && (\n
    \n \n
    \n )}\n
    \n
    \n \n );\n};\n","var _rect, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68, _path69, _path70, _path71, _path72, _path73, _path74;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgAssessmentTimeoutGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 200,\n height: 200,\n viewBox: \"0 0 200 200\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 200,\n height: 200,\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.8876 186.505C38.2545 186.505 36.0194 185.1 35.4336 183.069C35.1407 182.057 34.894 179.439 38.8865 176.997C47.0833 171.983 50.3707 166.65 51.6856 163.052C53.0993 159.182 52.5946 156.444 52.5898 156.417C52.5538 156.193 52.606 155.965 52.7352 155.778C52.8645 155.592 53.0609 155.463 53.283 155.419C53.5052 155.375 53.7359 155.419 53.9266 155.541C54.1174 155.663 54.2533 155.854 54.3059 156.075C54.333 156.201 54.914 159.227 53.3762 163.525C51.9833 167.415 48.497 173.171 39.8002 178.489C37.7116 179.763 36.7342 181.259 37.1147 182.582C37.484 183.855 39.103 184.775 40.9592 184.75C46.2316 184.685 53.6946 184.65 53.7726 184.65C54.0048 184.65 54.2275 184.742 54.3917 184.906C54.5559 185.071 54.6482 185.293 54.6482 185.525C54.6482 185.757 54.5559 185.98 54.3917 186.145C54.2275 186.309 54.0048 186.401 53.7726 186.401C53.6978 186.401 46.2396 186.436 40.9735 186.501L40.8876 186.505Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.0205 57.8086L62.6865 65.8515L74.8245 102.575L99.1585 94.5323L87.0205 57.8086Z\",\n fill: \"#B0CAEE\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.6159 58.6062L98.3566 94.1193L75.2319 101.761L63.4914 66.2507L86.6159 58.6062ZM87.0199 57.8008L62.6875 65.8448L74.8259 102.567L99.1599 94.5232L87.0199 57.8008Z\",\n fill: \"#2760AD\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.5862 69.6035C79.0642 69.6035 79.2836 69.7628 79.3076 69.8328C79.3316 69.9028 79.2902 70.0255 79.1262 70.2115C78.8476 70.4975 78.5016 70.7081 78.1202 70.8248C77.8549 70.9141 77.5769 70.9615 77.2969 70.9648C76.8196 70.9648 76.5982 70.8055 76.5742 70.7368C76.5502 70.6688 76.5916 70.5428 76.7556 70.3581C77.0342 70.0721 77.3802 69.8608 77.7616 69.7435C78.0276 69.6548 78.3062 69.6075 78.5862 69.6035ZM78.5862 68.9668C78.2389 68.9701 77.8936 69.0281 77.5642 69.1401C76.4756 69.5001 75.7622 70.3041 75.9722 70.9361C76.1142 71.3628 76.6382 71.6015 77.3002 71.6015C77.6476 71.5988 77.9929 71.5408 78.3222 71.4295C79.4109 71.0695 80.1242 70.2661 79.9142 69.6321C79.7722 69.2055 79.2489 68.9668 78.5862 68.9668Z\",\n fill: \"#1F1F1F\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.2594 78.2736C75.1834 78.273 75.1101 78.2463 75.0527 78.197C74.9954 78.1476 74.9574 78.0796 74.9454 78.005C74.9334 77.9303 74.9487 77.8536 74.9881 77.789C75.0274 77.7243 75.0887 77.6763 75.1607 77.6523L84.5641 74.5436C84.6034 74.5303 84.6454 74.525 84.6874 74.5283C84.7294 74.531 84.7701 74.5423 84.8074 74.561C84.8447 74.5796 84.8781 74.6056 84.9054 74.6376C84.9327 74.669 84.9534 74.7056 84.9667 74.7456C84.9801 74.7856 84.9854 74.827 84.9821 74.869C84.9787 74.911 84.9681 74.9516 84.9487 74.989C84.9301 75.0263 84.9041 75.0596 84.8727 75.087C84.8407 75.1143 84.8041 75.135 84.7647 75.1483L75.3594 78.2543C75.3274 78.2663 75.2934 78.2723 75.2594 78.2736Z\",\n fill: \"#1F1F1F\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.9483 80.355C75.8723 80.355 75.799 80.3283 75.741 80.279C75.6836 80.2303 75.645 80.1623 75.633 80.0877C75.621 80.0123 75.6356 79.9357 75.675 79.871C75.7143 79.8063 75.7756 79.7577 75.8476 79.7343L85.253 76.625C85.2923 76.6123 85.3343 76.607 85.3763 76.6103C85.4176 76.613 85.4583 76.6243 85.4956 76.643C85.533 76.6623 85.5663 76.6883 85.5936 76.7197C85.621 76.7517 85.6416 76.7883 85.655 76.8283C85.6676 76.8677 85.673 76.9097 85.6697 76.9517C85.667 76.993 85.6557 77.0337 85.6363 77.071C85.6177 77.1083 85.5916 77.1417 85.5603 77.169C85.5283 77.1963 85.4916 77.217 85.4516 77.2303L76.0483 80.339C76.0163 80.3497 75.9823 80.355 75.9483 80.355Z\",\n fill: \"#1F1F1F\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.4596 186.568C81.3756 186.568 81.2943 186.535 81.2349 186.475C81.1749 186.416 81.1416 186.334 81.1416 186.25V107.496C81.1416 107.411 81.1749 107.33 81.2349 107.27C81.2943 107.211 81.3756 107.178 81.4596 107.178C81.5443 107.178 81.6256 107.211 81.6849 107.27C81.7449 107.33 81.7783 107.411 81.7783 107.496V186.25C81.7783 186.334 81.7449 186.416 81.6849 186.475C81.6256 186.535 81.5443 186.568 81.4596 186.568Z\",\n fill: \"black\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.2506 186.568H74.6666C74.5826 186.568 74.5013 186.535 74.442 186.475C74.382 186.416 74.3486 186.334 74.3486 186.25C74.3486 186.166 74.382 186.084 74.442 186.025C74.5013 185.965 74.5826 185.932 74.6666 185.932H88.2506C88.3353 185.932 88.416 185.965 88.476 186.025C88.5353 186.084 88.5693 186.166 88.5693 186.25C88.5693 186.334 88.5353 186.416 88.476 186.475C88.416 186.535 88.3353 186.568 88.2506 186.568Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.164 107.89H123.824L129.578 63.6016L150.164 65.4116V107.89Z\",\n fill: \"#82C6AE\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.13 64.2888L149.528 65.9953V107.253H124.549L130.13 64.2888ZM129.578 63.6074L123.824 107.89H150.164V65.4111L129.578 63.6074Z\",\n fill: \"black\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.723 123.159L132.721 172.285L116.668 185.91L117.146 176.199C117.146 176.199 91.6304 135.226 85.853 126.041C82.4003 120.551 82.7857 116.595 87.227 113.794C94.3283 109.311 127.2 103.088 127.2 103.088L130.066 121.86L102.723 123.159Z\",\n fill: \"#2760AD\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.675 103.831L129.327 121.251L102.692 122.524C102.582 122.529 102.475 122.563 102.382 122.623C102.288 122.682 102.212 122.764 102.16 122.862C102.109 122.959 102.084 123.069 102.087 123.179C102.09 123.29 102.122 123.397 102.18 123.492L131.893 172.154L117.376 184.474L117.786 176.239C117.792 176.109 117.758 175.981 117.69 175.871C117.435 175.46 92.1043 134.785 86.393 125.703C84.723 123.049 84.005 120.851 84.213 118.98C84.411 117.153 85.5077 115.637 87.5657 114.333C93.9403 110.309 122.031 104.734 126.675 103.831ZM127.2 103.088C127.2 103.088 94.3283 109.311 87.227 113.794C82.7857 116.595 82.4003 120.551 85.853 126.041C91.6304 135.226 117.149 176.205 117.149 176.205L116.671 185.916L132.724 172.291L102.723 123.159L130.066 121.854L127.2 103.088Z\",\n fill: \"black\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.824 107.496L124.365 109.755C119.311 109.812 114.129 108.016 105.599 110.005C100.487 111.199 97.9726 113.291 98.0859 119.775C98.2733 130.622 98.9339 178.594 98.9339 178.594L93.4199 186.593L114.247 183.6L114.007 125.14H136.275C139.958 125.14 143.491 123.676 146.096 121.072C148.701 118.467 150.164 114.934 150.164 111.25V107.205L123.824 107.496Z\",\n fill: \"#2760AD\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M149.527 107.848V111.25C149.523 114.764 148.126 118.132 145.641 120.617C143.157 123.102 139.788 124.499 136.275 124.503H114.007C113.838 124.503 113.676 124.57 113.557 124.69C113.437 124.809 113.37 124.971 113.37 125.14L113.607 183.046L94.7712 185.752L99.4579 178.952C99.5333 178.843 99.5726 178.713 99.5712 178.581C99.5712 178.103 98.9086 130.486 98.7226 119.76C98.6699 116.754 99.1999 114.704 100.369 113.315C101.416 112.076 103.075 111.246 105.745 110.623C108.329 110.011 110.975 109.701 113.631 109.7C115.777 109.7 117.667 109.89 119.493 110.075C121.097 110.234 122.614 110.394 124.127 110.394H124.371C124.467 110.393 124.561 110.37 124.647 110.328C124.733 110.286 124.808 110.224 124.867 110.149C124.926 110.074 124.967 109.986 124.987 109.892C125.008 109.799 125.007 109.702 124.985 109.609L124.628 108.127L149.527 107.848ZM150.164 107.212L123.824 107.503L124.365 109.762H124.127C120.962 109.762 117.725 109.071 113.631 109.071C110.927 109.07 108.231 109.386 105.599 110.01C100.487 111.204 97.9726 113.296 98.0859 119.78C98.2733 130.627 98.9339 178.598 98.9339 178.598L93.4199 186.598L114.247 183.605L114.007 125.144H136.275C139.958 125.144 143.491 123.681 146.096 121.076C148.701 118.472 150.164 114.938 150.164 111.255V107.205V107.212Z\",\n fill: \"black\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.026 178.666H107.389L107.814 128.52V127.746C107.814 118.859 107.814 116.748 113.191 116.047C118.379 115.372 129.082 113.893 135.001 113.071C136.356 112.877 137.597 112.203 138.495 111.171C139.394 110.139 139.891 108.818 139.896 107.449H140.533C140.527 108.971 139.975 110.441 138.975 111.589C137.975 112.737 136.595 113.487 135.089 113.702C129.17 114.524 118.465 116.004 113.279 116.679C108.451 117.307 108.451 118.698 108.455 127.746V128.52L108.026 178.666Z\",\n fill: \"white\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.188 107.557L149.741 110.488V107.205L123.188 107.557Z\",\n fill: \"black\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130 108H49V112H130V108Z\",\n fill: \"#1F1F1F\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.722 142.086L115.617 144.88L113.722 170.417V142.086Z\",\n fill: \"black\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.489 49.0286C130.078 53.4351 139.43 63.4149 139.43 63.4149C140.496 63.98 135.066 68.7081 133.892 70.5241C131.545 74.1495 128.914 81.7221 123.134 95.3301L123.824 95.5828C118.512 98.8068 113.241 102.063 107.01 104.325C106.936 104.349 106.862 104.377 106.789 104.404C105.142 102.53 104.526 99.7875 105.457 96.1388C106.042 93.8895 107.075 91.7815 108.494 89.9408L128.326 63.9657C128.55 63.6579 128.706 63.3057 128.782 62.9328C128.859 62.5599 128.855 62.175 128.77 61.8038C128.252 59.5242 127.816 52.4719 127.816 52.4719C129.033 49.7099 130.362 47.2583 131.176 45.8081C132.335 43.7513 134.33 45.6665 132.489 49.0286Z\",\n fill: \"white\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.263 45.5957C132.312 45.5957 132.378 45.6546 132.435 45.7549C132.652 46.1195 132.788 47.1574 131.93 48.7238C130.808 50.7774 131.68 53.9773 134.526 58.2309C135.846 60.1774 137.304 62.0271 138.887 63.766C138.806 63.9363 138.59 64.2945 138.004 64.9854C137.418 65.6763 136.665 66.4691 135.934 67.2415C134.842 68.3842 133.824 69.4569 133.357 70.1768C131.782 72.6108 130.074 76.8008 127.49 83.1428C126.101 86.5562 124.526 90.4228 122.548 95.0822C122.514 95.1615 122.496 95.2468 122.496 95.3328C122.496 95.4195 122.514 95.5048 122.548 95.5842C122.55 95.5915 122.554 95.5995 122.559 95.6062C117.722 98.5435 112.714 101.55 106.994 103.654C105.602 101.836 105.291 99.3628 106.073 96.2968C106.634 94.1302 107.63 92.0995 108.999 90.3288L128.832 64.3519L128.842 64.3391C129.119 63.9577 129.312 63.5215 129.406 63.0597C129.501 62.5979 129.496 62.1212 129.392 61.6614C128.933 59.6429 128.532 53.6286 128.465 52.5875C129.366 50.561 130.466 48.3864 131.736 46.121C131.977 45.7056 132.182 45.5957 132.263 45.5957ZM132.263 44.959C131.905 44.959 131.509 45.2217 131.181 45.8075C130.367 47.2577 129.038 49.7093 127.82 52.4712C127.82 52.4712 128.252 59.5235 128.776 61.8032C128.86 62.1743 128.864 62.5593 128.787 62.9322C128.71 63.305 128.555 63.6572 128.331 63.965L108.494 89.9402C107.076 91.7815 106.043 93.8888 105.457 96.1382C104.526 99.7915 105.138 102.53 106.789 104.403C106.862 104.376 106.936 104.349 107.01 104.325C113.241 102.063 118.512 98.8062 123.824 95.5822L123.134 95.3288C128.914 81.7215 131.545 74.1568 133.892 70.5235C135.066 68.7075 140.497 63.9793 139.43 63.4142C139.43 63.4142 130.078 53.4344 132.489 49.0279C133.806 46.6225 133.16 44.959 132.263 44.959Z\",\n fill: \"black\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.095 61.7996C143.739 61.7996 147.504 58.0349 147.504 53.391C147.504 48.747 143.739 44.9824 139.095 44.9824C134.451 44.9824 130.687 48.747 130.687 53.391C130.687 58.0349 134.451 61.7996 139.095 61.7996Z\",\n fill: \"white\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.091 45.6192C140.727 45.6189 142.321 46.1348 143.647 47.0935C144.973 48.0522 145.963 49.4048 146.475 50.9586C146.988 52.5125 146.997 54.1885 146.502 55.7479C146.007 57.3074 145.032 58.6708 143.717 59.6441C142.753 60.3584 141.638 60.8395 140.457 61.0494C139.277 61.2594 138.063 61.1924 136.913 60.854C135.524 60.4475 134.275 59.6613 133.309 58.5839C132.343 57.5064 131.696 56.1806 131.443 54.7556C131.189 53.3306 131.338 51.8632 131.873 50.5184C132.409 49.1737 133.309 48.0051 134.473 47.1442C135.811 46.1585 137.428 45.6244 139.091 45.6192ZM139.091 44.9824C136.961 44.9808 134.911 45.7858 133.352 47.2356C131.793 48.6852 130.841 50.6719 130.688 52.7954C130.535 54.9188 131.192 57.0214 132.527 58.6798C133.862 60.3381 135.776 61.4289 137.883 61.7326C139.991 62.0362 142.135 61.5302 143.883 60.3164C145.633 59.1025 146.857 57.271 147.309 55.1907C147.762 53.1104 147.41 50.9358 146.323 49.1049C145.237 47.2739 143.497 45.9226 141.455 45.3231C140.687 45.0977 139.891 44.983 139.091 44.9824Z\",\n fill: \"black\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.214 58.5638C135.161 58.5638 135.108 58.5505 135.062 58.5249C135.015 58.4994 134.975 58.4625 134.946 58.4177C134.918 58.3728 134.9 58.3215 134.896 58.2683C134.892 58.2151 134.902 58.1618 134.924 58.1133C134.934 58.091 135.943 55.7796 134.681 52.5878C134.65 52.5094 134.652 52.4221 134.686 52.3451C134.72 52.268 134.782 52.2075 134.86 52.1766C134.939 52.1457 135.026 52.147 135.103 52.1802C135.18 52.2134 135.242 52.2758 135.273 52.3537C136.228 54.7607 135.984 56.687 135.736 57.6692L137.86 56.7395C137.937 56.7055 138.025 56.7037 138.104 56.7344C138.183 56.7652 138.246 56.826 138.28 56.9034C138.314 56.981 138.316 57.0688 138.285 57.1476C138.254 57.2264 138.194 57.2898 138.116 57.3237L135.342 58.5368C135.301 58.5542 135.258 58.5634 135.214 58.5638Z\",\n fill: \"black\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.454 45.3199C142.854 46.1016 144.479 46.8195 146.536 50.0384C146.536 50.0384 143.716 49.3666 142.043 47.4499C138.298 49.0546 131.317 52.0108 131.346 51.7131C131.91 45.6781 138.372 44.6974 141.454 45.3199Z\",\n fill: \"black\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.608 52.6672C138.845 52.559 138.839 52.0396 138.596 51.507C138.352 50.9745 137.963 50.6304 137.726 50.7386C137.49 50.8468 137.496 51.3662 137.739 51.8988C137.982 52.4314 138.371 52.7754 138.608 52.6672Z\",\n fill: \"black\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.61 54.9504C133.847 54.8422 133.841 54.3228 133.598 53.7902C133.355 53.2577 132.965 52.9136 132.729 53.0218C132.492 53.13 132.497 53.6494 132.741 54.182C132.984 54.7146 133.373 55.0586 133.61 54.9504Z\",\n fill: \"black\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M147.025 53.9918C148.081 53.789 148.72 52.4865 148.451 51.0825C148.181 49.6786 147.106 48.7048 146.049 48.9076C144.992 49.1103 144.354 50.4128 144.623 51.8168C144.893 53.2208 145.967 54.1945 147.025 53.9918Z\",\n fill: \"white\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M146.329 49.5274C147.047 49.5274 147.731 50.3711 147.856 51.4074C147.93 52.0363 147.786 52.6412 147.467 53.0233C147.387 53.1264 147.287 53.212 147.173 53.275C147.059 53.338 146.933 53.3769 146.803 53.3894H146.744C146.028 53.3894 145.344 52.5457 145.219 51.5094C145.144 50.8805 145.289 50.2756 145.606 49.8936C145.686 49.79 145.786 49.7039 145.9 49.6406C146.015 49.5774 146.142 49.5383 146.272 49.5258L146.329 49.5274ZM146.329 48.8906H146.23C145.152 48.9622 144.417 50.1642 144.587 51.5842C144.746 52.958 145.702 54.0262 146.744 54.0262H146.844C147.921 53.9546 148.658 52.7526 148.488 51.331C148.328 49.9588 147.373 48.8906 146.329 48.8906Z\",\n fill: \"black\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M146.725 52.6892C146.666 52.6893 146.608 52.6729 146.558 52.6421C146.508 52.6112 146.467 52.5669 146.44 52.5143C146.414 52.4616 146.402 52.4026 146.408 52.3438C146.412 52.285 146.434 52.2288 146.469 52.1813C146.514 52.1193 146.876 51.5717 146.282 50.9476C146.228 50.8857 146.2 50.8053 146.204 50.7233C146.208 50.6412 146.244 50.5638 146.304 50.5073C146.363 50.4507 146.442 50.4195 146.524 50.4199C146.606 50.4204 146.685 50.4526 146.744 50.5099C147.53 51.3345 147.242 52.2132 146.98 52.5618C146.95 52.6014 146.912 52.6335 146.868 52.6556C146.823 52.6777 146.774 52.6892 146.725 52.6892Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.874 46.7168C144.13 46.7168 146.77 44.0769 146.77 40.8204C146.77 37.5638 144.13 34.9238 140.874 34.9238C137.617 34.9238 134.978 37.5638 134.978 40.8204C134.978 44.0769 137.617 46.7168 140.874 46.7168Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.826 57.7363C144.876 57.2619 143.838 56.9859 142.778 56.925C141.717 56.8641 140.655 57.0196 139.656 57.3821C138.658 57.7445 137.743 58.3063 136.968 59.0333C136.194 59.7604 135.574 60.6374 135.15 61.6111L121.051 93.9052H89.7303L89.7203 93.8539L85.3537 93.9239C85.3537 93.9239 80.419 88.0052 79.1023 86.4785C78.593 85.8865 77.6697 85.8419 77.0157 86.3912C76.361 86.9405 76.1717 87.6645 76.7577 88.4605L81.4757 95.0159L76.157 88.4412C75.6017 87.5772 74.5477 87.2652 73.8043 87.7439C73.6143 87.8752 73.4543 88.0445 73.333 88.2412C73.2123 88.4372 73.133 88.6565 73.101 88.8852C73.069 89.1139 73.085 89.3465 73.1477 89.5685C73.2103 89.7905 73.319 89.9972 73.4657 90.1752L78.719 97.2652L73.319 90.8185C72.523 89.8059 71.5963 89.6085 70.8723 90.1159C70.1477 90.6239 69.8437 91.6699 70.697 92.6632L75.971 99.4259C74.4443 98.2559 73.9703 97.9772 71.0697 95.5492C69.8323 94.5132 68.9537 94.5545 68.317 95.3645C67.6803 96.1752 68.0483 96.9245 69.309 98.2925C71.837 101.031 77.3357 107.063 81.5143 108.28C82.979 108.709 90.797 108.725 91.6883 108.727H122.266C131.462 109.031 134.132 101.539 137.531 94.7505C140.294 89.2325 146.036 75.9879 149.528 67.8385C150.318 66.0007 150.374 63.93 149.686 62.0515C148.998 60.1729 147.617 58.629 145.826 57.7363Z\",\n fill: \"white\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M142.336 57.547C143.449 57.5455 144.547 57.8056 145.542 58.3063C147.186 59.127 148.454 60.5452 149.087 62.2706C149.72 63.996 149.669 65.898 148.945 67.5872C145.669 75.2285 139.756 88.8872 136.964 94.4652C136.646 95.1018 136.328 95.7658 136.009 96.4025C133.086 102.417 130.326 108.098 122.796 108.098C122.627 108.098 122.454 108.098 122.28 108.098H91.6263C86.3297 108.081 82.5237 107.921 81.6923 107.676C77.7697 106.534 72.4797 100.798 69.9377 98.0425L69.7783 97.8692C68.3683 96.3392 68.597 96.0478 68.823 95.7658C69.0763 95.4478 69.2863 95.4078 69.4217 95.4078C69.643 95.4078 70.0397 95.5192 70.6683 96.0445C72.889 97.9038 73.693 98.5118 74.6357 99.2158C74.927 99.4352 75.229 99.6612 75.5903 99.9398C75.7137 100.035 75.867 100.082 76.0223 100.072C76.1777 100.062 76.3237 99.9952 76.433 99.8852C76.5423 99.7745 76.6077 99.6278 76.6163 99.4725C76.625 99.3172 76.577 99.1645 76.4803 99.0418L71.1937 92.2618L71.173 92.2385C71.051 92.1152 70.957 91.9678 70.8957 91.8058C70.8343 91.6432 70.8077 91.4705 70.8177 91.2972C70.8363 91.1645 70.883 91.0365 70.9543 90.9232C71.0257 90.8092 71.1203 90.7118 71.2317 90.6365C71.3637 90.5365 71.5237 90.4812 71.689 90.4778C72.0437 90.4778 72.4437 90.7372 72.8143 91.2065L72.8257 91.2212L78.227 97.6745C78.3323 97.8072 78.4863 97.8925 78.6543 97.9118C78.823 97.9305 78.9923 97.8818 79.125 97.7765C79.257 97.6712 79.3423 97.5172 79.3617 97.3485C79.381 97.1805 79.3323 97.0112 79.2263 96.8785L73.973 89.7885L73.951 89.7598C73.8583 89.6485 73.7903 89.5185 73.7517 89.3785C73.7137 89.2385 73.7063 89.0925 73.7297 88.9492C73.7477 88.8138 73.7937 88.6832 73.865 88.5665C73.9363 88.4498 74.031 88.3492 74.1437 88.2712C74.273 88.1892 74.4237 88.1472 74.5763 88.1485C74.7883 88.1598 74.9943 88.2232 75.1757 88.3325C75.3577 88.4425 75.509 88.5952 75.6177 88.7772C75.6303 88.7965 75.643 88.8158 75.6577 88.8332L80.9763 95.4092C81.0357 95.4832 81.111 95.5432 81.197 95.5838C81.2823 95.6252 81.3763 95.6465 81.471 95.6465C81.5863 95.6452 81.6997 95.6132 81.7977 95.5525C81.8963 95.4925 81.9763 95.4065 82.0297 95.3038C82.083 95.2018 82.107 95.0865 82.1003 94.9718C82.0937 94.8565 82.0557 94.7452 81.9903 94.6498L77.265 88.0898C76.9243 87.6245 76.971 87.2632 77.4243 86.8812C77.5963 86.7318 77.8157 86.6485 78.0437 86.6458C78.1517 86.6432 78.259 86.6645 78.3583 86.7078C78.457 86.7518 78.5457 86.8165 78.617 86.8972C79.9097 88.4018 84.8123 94.2778 84.8617 94.3365C84.9217 94.4078 84.9963 94.4652 85.081 94.5045C85.1657 94.5438 85.2577 94.5638 85.351 94.5638H85.3603L89.4883 94.4972C89.5637 94.5285 89.645 94.5445 89.727 94.5452H121.051C121.175 94.5445 121.296 94.5085 121.4 94.4405C121.503 94.3725 121.584 94.2765 121.634 94.1632L135.734 61.8658C136.294 60.5816 137.218 59.489 138.39 58.7218C139.563 57.9546 140.934 57.5464 142.336 57.547ZM142.336 56.9102C140.81 56.909 139.318 57.3533 138.041 58.1884C136.764 59.0234 135.76 60.213 135.15 61.6112L121.051 93.9052H89.7303L89.7203 93.8538L85.3537 93.9238C85.3537 93.9238 80.419 88.0052 79.1023 86.4785C78.9717 86.3272 78.8097 86.2058 78.627 86.1232C78.445 86.0412 78.247 85.9992 78.047 86.0012C77.6683 86.0038 77.303 86.1398 77.0157 86.3865C76.3677 86.9358 76.1717 87.6598 76.7577 88.4558L81.4757 95.0112L76.157 88.4412C75.9917 88.1692 75.761 87.9425 75.4857 87.7812C75.211 87.6205 74.8997 87.5305 74.581 87.5198C74.3063 87.5172 74.0363 87.5952 73.8043 87.7445C73.6143 87.8752 73.4543 88.0445 73.333 88.2412C73.2123 88.4372 73.133 88.6565 73.101 88.8852C73.069 89.1138 73.085 89.3465 73.1477 89.5685C73.2103 89.7905 73.319 89.9972 73.4657 90.1752L78.719 97.2658L73.319 90.8185C72.7997 90.1605 72.2283 89.8472 71.6937 89.8472C71.3983 89.8485 71.111 89.9425 70.8723 90.1165C70.1477 90.6238 69.8437 91.6698 70.697 92.6632L75.971 99.4258C74.4443 98.2558 73.9703 97.9772 71.0697 95.5492C70.433 95.0112 69.8817 94.7632 69.4157 94.7632C68.9857 94.7632 68.6197 94.9745 68.317 95.3645C67.6803 96.1605 68.0483 96.9252 69.309 98.2925C71.837 101.03 77.3357 107.062 81.5143 108.28C82.979 108.708 90.797 108.725 91.6883 108.727H122.266C122.448 108.727 122.626 108.727 122.802 108.727C131.569 108.727 134.199 101.404 137.531 94.7425C140.294 89.2245 146.036 75.9798 149.528 67.8305C150.038 66.6397 150.244 65.3407 150.129 64.0502C150.014 62.7597 149.58 61.5179 148.868 60.436C148.155 59.354 147.185 58.4656 146.044 57.8503C144.904 57.235 143.63 56.912 142.334 56.9102H142.336Z\",\n fill: \"black\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.826 57.7363C144.876 57.2619 143.838 56.9859 142.778 56.925C141.717 56.8641 140.655 57.0196 139.656 57.3821C138.658 57.7445 137.743 58.3063 136.968 59.0333C136.194 59.7604 135.574 60.6374 135.15 61.6111L133.274 65.9093C133.314 65.9268 133.355 65.9427 133.394 65.9619C133.394 65.9619 147.386 71.8345 147.8 71.8519C148.416 70.4192 148.999 69.0659 149.529 67.8279C150.316 65.9906 150.37 63.9225 149.682 62.0465C148.994 60.1705 147.614 58.6286 145.826 57.7363Z\",\n fill: \"#7AB9A3\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M142.336 57.5481C143.449 57.5467 144.547 57.8069 145.542 58.3075C147.186 59.1282 148.454 60.5464 149.087 62.2719C149.72 63.9973 149.669 65.8993 148.945 67.5884C148.482 68.6691 147.979 69.8411 147.448 71.0717C145.564 70.3537 138.894 67.5837 134.116 65.5795L135.732 61.875C136.292 60.5893 137.215 59.4951 138.388 58.7265C139.561 57.9579 140.933 57.5483 142.336 57.5481ZM142.336 56.9114C140.81 56.9103 139.318 57.3545 138.041 58.1896C136.764 59.0247 135.76 60.2143 135.15 61.6123L133.274 65.9105C133.314 65.9281 133.355 65.944 133.394 65.9631C133.394 65.9631 147.386 71.8357 147.8 71.8531C148.416 70.4204 148.999 69.0671 149.529 67.8291C150.039 66.6377 150.246 65.3388 150.13 64.0483C150.015 62.7578 149.582 61.516 148.869 60.434C148.156 59.352 147.186 58.4637 146.046 57.8483C144.906 57.2331 143.631 56.9101 142.336 56.9082V56.9114Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.474 67.7441L132.23 68.3328L146.398 74.1868L146.641 73.5981L132.474 67.7441Z\",\n fill: \"black\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144.791 70.5499C144.738 70.5499 144.685 70.5366 144.638 70.5112C144.591 70.4852 144.551 70.4486 144.522 70.4032C144.493 70.3579 144.476 70.3066 144.472 70.2532C144.469 70.1999 144.479 70.1466 144.501 70.0979L146.225 66.3917C146.264 66.321 146.328 66.2676 146.405 66.2424C146.482 66.2173 146.565 66.2222 146.638 66.2562C146.712 66.2902 146.769 66.3506 146.8 66.4255C146.83 66.5003 146.83 66.5838 146.802 66.6592L145.079 70.3652C145.054 70.4199 145.013 70.4666 144.962 70.4992C144.911 70.5319 144.852 70.5499 144.791 70.5499Z\",\n fill: \"black\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.431 179.193C110.431 179.193 99.1159 175.839 98.8926 175.559L98.9339 178.593L93.4199 186.593L114.247 183.6L114.223 176.976C113.033 176.899 111.257 177.7 110.431 179.193Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.908 184.104L111.544 184.02C111.3 182.19 112.51 180.372 114.25 179.666V178.984C112.078 179.732 110.61 181.87 110.908 184.104Z\",\n fill: \"white\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.6488 182.625C99.5922 182.625 99.5362 182.609 99.4875 182.581C99.4382 182.552 99.3975 182.511 99.3702 182.461C99.3428 182.411 99.3288 182.355 99.3302 182.298C99.3315 182.241 99.3482 182.186 99.3788 182.137L100.97 179.581C100.992 179.543 101.02 179.511 101.054 179.484C101.088 179.458 101.127 179.439 101.168 179.428C101.21 179.417 101.254 179.415 101.296 179.421C101.338 179.428 101.379 179.443 101.416 179.465C101.452 179.488 101.484 179.518 101.509 179.553C101.534 179.588 101.551 179.628 101.56 179.67C101.569 179.712 101.569 179.755 101.561 179.797C101.553 179.839 101.536 179.879 101.512 179.915L100.397 181.7L102.7 180.878C102.739 180.862 102.782 180.853 102.825 180.854C102.868 180.854 102.911 180.863 102.95 180.881C102.99 180.899 103.025 180.923 103.055 180.955C103.084 180.987 103.107 181.024 103.121 181.065C103.136 181.105 103.142 181.149 103.139 181.191C103.137 181.235 103.125 181.277 103.106 181.315C103.087 181.354 103.06 181.388 103.027 181.416C102.994 181.443 102.955 181.465 102.914 181.477L99.7542 182.605C99.7208 182.618 99.6848 182.624 99.6488 182.625Z\",\n fill: \"#DCDCDC\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.2 170.585C127.2 170.585 115.818 173.705 115.48 173.586L117.117 176.133L116.652 185.844L132.766 172.313L129.25 166.697C128.197 167.251 127.108 168.872 127.2 170.585Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.385 168.377C128.848 170.194 128.766 172.771 130.19 174.503L130.682 174.098C129.506 172.666 129.532 170.561 130.71 169.004L130.385 168.377Z\",\n fill: \"white\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.675 179.228C119.64 179.227 119.605 179.221 119.571 179.21C119.508 179.189 119.454 179.148 119.416 179.094C119.377 179.04 119.357 178.975 119.357 178.909V175.901C119.357 175.816 119.391 175.735 119.451 175.675C119.51 175.616 119.591 175.582 119.675 175.582C119.76 175.582 119.841 175.616 119.901 175.675C119.961 175.735 119.994 175.816 119.994 175.901V178.001L121.516 176.09C121.569 176.025 121.645 175.984 121.729 175.975C121.811 175.966 121.895 175.991 121.961 176.043C122.026 176.095 122.068 176.171 122.078 176.253C122.089 176.337 122.065 176.42 122.014 176.487L119.924 179.113C119.893 179.149 119.855 179.179 119.813 179.199C119.77 179.218 119.723 179.228 119.675 179.228Z\",\n fill: \"#DCDCDC\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.76 128.569H116.818C116.733 128.569 116.652 128.535 116.592 128.476C116.533 128.416 116.499 128.335 116.499 128.251C116.499 128.166 116.533 128.085 116.592 128.025C116.652 127.966 116.733 127.933 116.818 127.933H152.522L166.887 78.6081C166.91 78.5275 166.966 78.4588 167.04 78.4181C167.114 78.3775 167.201 78.3681 167.282 78.3915C167.363 78.4155 167.431 78.4701 167.472 78.5441C167.512 78.6181 167.522 78.7055 167.498 78.7868L153.066 128.34C153.046 128.406 153.006 128.464 152.951 128.505C152.896 128.547 152.829 128.569 152.76 128.569Z\",\n fill: \"black\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134.977 186.568C134.892 186.568 134.811 186.535 134.752 186.475C134.692 186.416 134.658 186.334 134.658 186.25V128.25C134.658 128.165 134.692 128.084 134.752 128.024C134.811 127.965 134.892 127.932 134.977 127.932C135.061 127.932 135.142 127.965 135.202 128.024C135.262 128.084 135.295 128.165 135.295 128.25V186.25C135.295 186.334 135.262 186.416 135.202 186.475C135.142 186.535 135.061 186.568 134.977 186.568Z\",\n fill: \"black\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.77 186.568H128.184C128.1 186.568 128.019 186.535 127.96 186.475C127.9 186.416 127.866 186.334 127.866 186.25C127.866 186.166 127.9 186.084 127.96 186.025C128.019 185.965 128.1 185.932 128.184 185.932H141.77C141.854 185.932 141.936 185.965 141.995 186.025C142.055 186.084 142.088 186.166 142.088 186.25C142.088 186.334 142.055 186.416 141.995 186.475C141.936 186.535 141.854 186.568 141.77 186.568Z\",\n fill: \"black\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.8583 45.8417C73.9216 45.8417 80.4576 39.3052 80.4576 31.2422C80.4576 23.179 73.9216 16.6426 65.8583 16.6426C57.7952 16.6426 51.2588 23.179 51.2588 31.2422C51.2588 39.3052 57.7952 45.8417 65.8583 45.8417Z\",\n fill: \"white\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.8584 16.6465C69.7303 16.6465 73.4437 18.1847 76.1817 20.9226C78.9197 23.6606 80.4577 27.374 80.4577 31.2461C80.4577 35.1181 78.9197 38.8316 76.1817 41.5696C73.4437 44.3075 69.7303 45.8456 65.8584 45.8456C61.9863 45.8456 58.2729 44.3075 55.5349 41.5696C52.797 38.8316 51.2589 35.1181 51.2589 31.2461C51.2589 27.374 52.797 23.6606 55.5349 20.9226C58.2729 18.1847 61.9863 16.6465 65.8584 16.6465ZM65.8584 16.0098C62.8452 16.0098 59.8997 16.9032 57.3942 18.5771C54.8888 20.251 52.9359 22.6302 51.7825 25.4139C50.6291 28.1976 50.327 31.2608 50.9143 34.2162C51.5017 37.1716 52.9523 39.8864 55.0825 42.0176C57.2127 44.1486 59.927 45.6003 62.8821 46.1889C65.8372 46.7775 68.9004 46.4767 71.685 45.3244C74.469 44.1722 76.849 42.2204 78.5237 39.7156C80.199 37.2108 81.0937 34.2656 81.095 31.2524C81.091 27.2121 79.485 23.3382 76.6284 20.4806C73.7717 17.6231 69.899 16.0152 65.8584 16.0098Z\",\n fill: \"black\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.0151 31.4867C65.9705 31.4864 65.9265 31.4768 65.8859 31.4584C65.8453 31.44 65.8091 31.4133 65.7795 31.38L60.7044 25.665C60.6766 25.6337 60.6552 25.5972 60.6415 25.5576C60.6279 25.5179 60.6221 25.476 60.6246 25.4342C60.6271 25.3924 60.6379 25.3514 60.6562 25.3137C60.6745 25.276 60.7001 25.2423 60.7315 25.2145C60.7628 25.1867 60.7993 25.1654 60.8389 25.1517C60.8785 25.138 60.9205 25.1322 60.9623 25.1348C61.0041 25.1372 61.0451 25.148 61.0827 25.1663C61.1205 25.1846 61.1541 25.2102 61.1819 25.2416L66.023 30.6924L72.4483 23.6512C72.505 23.5879 72.585 23.5498 72.6697 23.5454C72.755 23.5408 72.8383 23.5704 72.9017 23.6274C72.965 23.6844 73.003 23.7642 73.0077 23.8493C73.0123 23.9344 72.9823 24.0178 72.9257 24.0811L66.257 31.3784C66.2269 31.4128 66.1896 31.4403 66.1479 31.459C66.1061 31.4776 66.0608 31.4871 66.0151 31.4867Z\",\n fill: \"#2760AD\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.1837 13.586C66.1837 13.4101 66.0411 13.2676 65.8653 13.2676C65.6894 13.2676 65.5469 13.4101 65.5469 13.586V18.7724C65.5469 18.9483 65.6894 19.0908 65.8653 19.0908C66.0411 19.0908 66.1837 18.9483 66.1837 18.7724V13.586Z\",\n fill: \"black\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.169 43.7148C66.169 43.539 66.0265 43.3965 65.8506 43.3965C65.6748 43.3965 65.5322 43.539 65.5322 43.7148V48.8998C65.5322 49.0756 65.6748 49.2182 65.8506 49.2182C66.0265 49.2182 66.169 49.0756 66.169 48.8998V43.7148Z\",\n fill: \"black\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.5164 31.5684H78.3284C78.2438 31.5684 78.1624 31.5348 78.1031 31.4752C78.0431 31.4154 78.0098 31.3344 78.0098 31.25C78.0098 31.1656 78.0431 31.0846 78.1031 31.0249C78.1624 30.9652 78.2438 30.9316 78.3284 30.9316H83.5131C83.5978 30.9316 83.6784 30.9652 83.7384 31.0249C83.7978 31.0846 83.8311 31.1656 83.8311 31.25C83.8311 31.3344 83.7978 31.4154 83.7384 31.4752C83.6784 31.5348 83.5978 31.5684 83.5131 31.5684H83.5164Z\",\n fill: \"black\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.3841 31.5567H48.1993C48.1148 31.5567 48.0338 31.5231 47.9741 31.4635C47.9144 31.4037 47.8809 31.3227 47.8809 31.2383C47.8809 31.1539 47.9144 31.0729 47.9741 31.0132C48.0338 30.9535 48.1148 30.9199 48.1993 30.9199H53.3857C53.4702 30.9199 53.5512 30.9535 53.6109 31.0132C53.6706 31.0729 53.7041 31.1539 53.7041 31.2383C53.7041 31.3227 53.6706 31.4037 53.6109 31.4635C53.5512 31.5231 53.4702 31.5567 53.3857 31.5567H53.3841Z\",\n fill: \"black\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.7897 43.4311C72.7337 43.4313 72.6784 43.4167 72.6297 43.3888C72.581 43.3608 72.541 43.3205 72.513 43.2719L71.3984 41.3329C71.3757 41.2967 71.3597 41.2562 71.353 41.2138C71.3457 41.1714 71.3477 41.1281 71.3577 41.0864C71.3684 41.0446 71.3864 41.0054 71.4124 40.9711C71.4384 40.9368 71.4704 40.908 71.5077 40.8865C71.545 40.865 71.5864 40.8513 71.629 40.8461C71.671 40.8409 71.7144 40.8444 71.7557 40.8564C71.797 40.8683 71.8357 40.8885 71.8684 40.9157C71.9017 40.9428 71.929 40.9765 71.949 41.0146L73.0637 42.9535C73.0844 42.9898 73.0977 43.0298 73.103 43.0712C73.1084 43.1127 73.1057 43.1548 73.0944 43.1952C73.0837 43.2356 73.065 43.2734 73.0397 43.3065C73.0137 43.3396 72.9824 43.3673 72.9457 43.3881C72.8984 43.4163 72.845 43.4312 72.7897 43.4311Z\",\n fill: \"#2760AD\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.0339 21.3379C59.9781 21.3378 59.9233 21.3231 59.8749 21.2951C59.8266 21.2672 59.7864 21.227 59.7585 21.1787L58.6441 19.2397C58.6019 19.1664 58.5905 19.0794 58.6125 18.9978C58.6344 18.9161 58.6879 18.8466 58.7611 18.8043C58.8344 18.7621 58.9215 18.7507 59.0031 18.7726C59.0847 18.7946 59.1543 18.8481 59.1965 18.9213L60.3109 20.8603C60.3531 20.9334 60.3645 21.0202 60.3427 21.1016C60.3209 21.1831 60.2677 21.2526 60.1947 21.2949C60.1459 21.3232 60.0904 21.338 60.0339 21.3379Z\",\n fill: \"#2760AD\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8667 38.3516C77.8107 38.3515 77.7561 38.3367 77.7074 38.3086L75.7701 37.1943C75.7321 37.1743 75.6987 37.1469 75.6714 37.1137C75.6441 37.0805 75.6241 37.0421 75.6121 37.0008C75.6001 36.9596 75.5967 36.9163 75.6021 36.8737C75.6067 36.8311 75.6207 36.7899 75.6421 36.7528C75.6634 36.7156 75.6927 36.6831 75.7267 36.6574C75.7614 36.6317 75.8001 36.6131 75.8421 36.6029C75.8841 36.5927 75.9274 36.591 75.9694 36.5979C76.0121 36.6049 76.0521 36.6204 76.0887 36.6434L78.0261 37.7578C78.0867 37.7929 78.1341 37.847 78.1607 37.9117C78.1874 37.9763 78.1921 38.048 78.1741 38.1156C78.1554 38.1832 78.1161 38.243 78.0601 38.2856C78.0047 38.3283 77.9367 38.3515 77.8667 38.3516Z\",\n fill: \"#2760AD\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.7737 25.598C55.7178 25.5979 55.6629 25.5831 55.6145 25.555L53.6772 24.4407C53.6409 24.4198 53.6091 24.3919 53.5836 24.3587C53.5581 24.3255 53.5393 24.2876 53.5285 24.2472C53.5176 24.2068 53.5149 24.1646 53.5203 24.1231C53.5257 24.0816 53.5393 24.0416 53.5602 24.0053C53.5811 23.969 53.6089 23.9372 53.6421 23.9117C53.6753 23.8862 53.7132 23.8674 53.7536 23.8566C53.7941 23.8458 53.8362 23.843 53.8777 23.8484C53.9193 23.8538 53.9593 23.8674 53.9955 23.8883L55.9329 25.0026C55.9943 25.0374 56.0423 25.0915 56.0696 25.1565C56.0969 25.2216 56.1017 25.2938 56.0835 25.3618C56.0653 25.43 56.0251 25.4901 55.969 25.5328C55.9129 25.5756 55.8443 25.5985 55.7737 25.598Z\",\n fill: \"#2760AD\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.6694 21.3379C71.6134 21.3378 71.5587 21.323 71.5101 21.2949C71.4374 21.2526 71.3841 21.1831 71.3621 21.1016C71.3407 21.0202 71.3521 20.9334 71.3941 20.8603L72.5081 18.9213C72.5507 18.8481 72.6201 18.7946 72.7021 18.7726C72.7834 18.7507 72.8707 18.7621 72.9441 18.8043C73.0167 18.8466 73.0707 18.9161 73.0927 18.9978C73.1141 19.0794 73.1027 19.1664 73.0607 19.2397L71.9467 21.1787C71.9181 21.2272 71.8781 21.2676 71.8294 21.2955C71.7807 21.3235 71.7254 21.3381 71.6694 21.3379Z\",\n fill: \"#2760AD\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.9071 43.4311C58.8511 43.4318 58.7959 43.4169 58.7479 43.3881C58.7116 43.3673 58.6798 43.3396 58.6543 43.3065C58.6287 43.2734 58.6099 43.2356 58.599 43.1952C58.5881 43.1548 58.5851 43.1127 58.5905 43.0712C58.5959 43.0298 58.6093 42.9898 58.6301 42.9535L59.7445 41.0146C59.7643 40.9765 59.7917 40.9428 59.825 40.9157C59.8582 40.8885 59.8966 40.8683 59.9379 40.8564C59.9791 40.8444 60.0223 40.8409 60.0649 40.8461C60.1076 40.8513 60.1487 40.865 60.1859 40.8865C60.2231 40.908 60.2555 40.9368 60.2813 40.9711C60.3071 41.0054 60.3256 41.0446 60.3358 41.0864C60.346 41.1281 60.3477 41.1714 60.3407 41.2138C60.3337 41.2562 60.3183 41.2967 60.2953 41.3329L59.1809 43.2719C59.1531 43.3201 59.1132 43.36 59.0652 43.388C59.0171 43.4159 58.9627 43.4308 58.9071 43.4311Z\",\n fill: \"#2760AD\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.9291 25.598C75.8584 25.5985 75.7898 25.5756 75.7338 25.5328C75.6778 25.4901 75.6378 25.43 75.6191 25.3618C75.6011 25.2938 75.6058 25.2216 75.6331 25.1565C75.6605 25.0915 75.7085 25.0374 75.7698 25.0026L77.7071 23.8883C77.7438 23.8674 77.7838 23.8538 77.8251 23.8484C77.8665 23.843 77.9084 23.8458 77.9491 23.8566C77.9898 23.8674 78.0278 23.8862 78.0605 23.9117C78.0938 23.9372 78.1218 23.969 78.1425 24.0053C78.1638 24.0416 78.1771 24.0816 78.1825 24.1231C78.1878 24.1646 78.1851 24.2068 78.1745 24.2472C78.1631 24.2876 78.1445 24.3255 78.1191 24.3587C78.0938 24.3919 78.0618 24.4198 78.0258 24.4407L76.0884 25.555C76.0398 25.5831 75.9851 25.5979 75.9291 25.598Z\",\n fill: \"#2760AD\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.8364 38.3516C53.7664 38.3515 53.6984 38.3283 53.643 38.2856C53.5874 38.243 53.5476 38.1832 53.5294 38.1156C53.5113 38.048 53.5159 37.9763 53.5427 37.9117C53.5693 37.847 53.6167 37.7929 53.6772 37.7578L55.6146 36.6434C55.6508 36.6204 55.6913 36.6049 55.7337 36.5979C55.7761 36.591 55.8194 36.5927 55.8612 36.6029C55.9028 36.6131 55.942 36.6317 55.9764 36.6574C56.0107 36.6831 56.0396 36.7156 56.061 36.7528C56.0826 36.7899 56.0963 36.8311 56.1014 36.8737C56.1066 36.9163 56.1031 36.9596 56.0911 37.0008C56.0792 37.0421 56.059 37.0805 56.0318 37.1137C56.0046 37.1469 55.971 37.1743 55.933 37.1943L53.9956 38.3086C53.9472 38.3367 53.8923 38.3515 53.8364 38.3516Z\",\n fill: \"#2760AD\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.9864 31.9923C66.4093 31.9923 66.7523 31.6495 66.7523 31.2266C66.7523 30.8037 66.4093 30.4609 65.9864 30.4609C65.5635 30.4609 65.2207 30.8037 65.2207 31.2266C65.2207 31.6495 65.5635 31.9923 65.9864 31.9923Z\",\n fill: \"#2760AD\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.0563 158.893C58.1658 158.893 57.2953 158.629 56.5547 158.135C55.8141 157.64 55.2369 156.937 54.8959 156.115C54.5549 155.292 54.4655 154.387 54.6391 153.513C54.8126 152.64 55.2412 151.837 55.8707 151.208C56.5003 150.578 57.3025 150.149 58.1758 149.975C59.0492 149.801 59.9545 149.891 60.7772 150.231C61.5999 150.572 62.3031 151.149 62.7979 151.889C63.2926 152.629 63.5567 153.5 63.5567 154.391C63.5559 155.584 63.0815 156.728 62.2377 157.573C61.3939 158.417 60.2497 158.891 59.0563 158.893ZM59.0563 151.641C58.5121 151.641 57.98 151.802 57.5274 152.104C57.0748 152.406 56.7219 152.836 56.5135 153.339C56.3051 153.841 56.2505 154.395 56.3566 154.929C56.4627 155.462 56.7247 155.953 57.1095 156.337C57.4944 156.722 57.9847 156.984 58.5184 157.09C59.0522 157.196 59.6054 157.141 60.1081 156.933C60.6109 156.725 61.0405 156.372 61.3426 155.919C61.6447 155.467 61.8059 154.935 61.8055 154.391C61.8043 153.662 61.5142 152.963 60.9989 152.448C60.4836 151.933 59.7851 151.643 59.0563 151.641Z\",\n fill: \"black\"\n })), _path63 || (_path63 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.4058 90.2051H32.6865V90.8417H46.4058V90.2051Z\",\n fill: \"white\"\n })), _path64 || (_path64 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.0934 105.918H33.9961V106.555H45.0934V105.918Z\",\n fill: \"white\"\n })), _path65 || (_path65 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.178 97.0028C120.134 97.0028 120.09 96.9935 120.049 96.9761C119.972 96.9415 119.913 96.8775 119.883 96.7988C119.853 96.7201 119.856 96.6328 119.89 96.5555L121.493 92.9355C121.51 92.8975 121.534 92.8628 121.565 92.8341C121.595 92.8055 121.63 92.7828 121.67 92.7675C121.709 92.7521 121.75 92.7455 121.792 92.7461C121.834 92.7475 121.875 92.7561 121.914 92.7735C121.952 92.7901 121.986 92.8148 122.015 92.8448C122.044 92.8755 122.066 92.9108 122.082 92.9501C122.097 92.9888 122.104 93.0308 122.103 93.0721C122.102 93.1141 122.093 93.1555 122.076 93.1935L120.473 96.8135C120.448 96.8708 120.406 96.9188 120.354 96.9528C120.302 96.9861 120.24 97.0035 120.178 97.0028Z\",\n fill: \"black\"\n })), _path66 || (_path66 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.771 94.3036L122.294 91.9062L121.234 94.3036H106.771Z\",\n fill: \"black\"\n })), _path67 || (_path67 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.5204 186.391H49.3088C46.3478 186.391 44.003 184.274 44.1924 181.775L47.346 154.697H70.4818L73.6364 181.775C73.8244 184.277 71.4831 186.391 68.5204 186.391Z\",\n fill: \"white\"\n })), _path68 || (_path68 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.5208 186.708H49.3091C47.6361 186.708 46.0807 186.072 45.0412 184.944C44.6351 184.522 44.3216 184.019 44.1207 183.468C43.9198 182.918 43.8359 182.331 43.8743 181.746L47.0295 154.655C47.0389 154.577 47.0765 154.506 47.1353 154.454C47.194 154.402 47.2697 154.374 47.3479 154.375H70.4821C70.5601 154.374 70.6355 154.402 70.6941 154.454C70.7535 154.506 70.7908 154.577 70.8001 154.655L73.9521 181.729C73.9928 182.316 73.9101 182.905 73.7095 183.458C73.5088 184.011 73.1948 184.516 72.7868 184.94C71.7475 186.065 70.1921 186.708 68.5208 186.708ZM47.6297 155.012L44.5079 181.807C44.4781 182.303 44.5517 182.8 44.7241 183.265C44.8965 183.731 45.1639 184.156 45.5092 184.513C46.4278 185.505 47.8127 186.073 49.3091 186.073H68.5208C70.0155 186.073 71.4001 185.505 72.3208 184.513C72.6668 184.155 72.9348 183.728 73.1068 183.26C73.2788 182.792 73.3508 182.293 73.3188 181.796L70.1981 155.013L47.6297 155.012Z\",\n fill: \"black\"\n })), _path69 || (_path69 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.877 169.241C65.2447 169.241 70.4071 162.728 70.4071 154.693H47.3467C47.3467 162.728 52.5093 169.241 58.877 169.241Z\",\n fill: \"white\"\n })), _path70 || (_path70 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.8761 169.558C52.3491 169.558 47.0273 162.89 47.0273 154.693C47.0273 154.609 47.0609 154.528 47.1206 154.468C47.1803 154.408 47.2613 154.375 47.3457 154.375H70.4062C70.4909 154.375 70.5715 154.408 70.6315 154.468C70.6915 154.528 70.7249 154.609 70.7249 154.693C70.7249 162.89 65.4093 169.558 58.8761 169.558ZM47.6673 155.012C47.801 162.71 52.7774 168.922 58.8761 168.922C64.9747 168.922 69.9509 162.713 70.0849 155.012H47.6673Z\",\n fill: \"black\"\n })), _path71 || (_path71 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.6445 174.76H57.2507V178.562C57.2507 179.571 56.8501 180.538 56.1369 181.252C55.4236 181.965 54.4563 182.366 53.4477 182.366C52.9482 182.366 52.4537 182.267 51.9923 182.076C51.5308 181.885 51.1116 181.605 50.7584 181.252C50.4053 180.898 50.1251 180.48 49.934 180.018C49.7429 179.556 49.6445 179.062 49.6445 178.562V174.76Z\",\n fill: \"#82C6AE\"\n })), _path72 || (_path72 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.8604 174.76H68.4589V178.562C68.4589 179.57 68.0589 180.536 67.3476 181.249C66.636 181.962 65.6708 182.364 64.6635 182.366C64.164 182.366 63.6695 182.267 63.2081 182.076C62.7467 181.885 62.3274 181.605 61.9743 181.252C61.6212 180.898 61.341 180.48 61.1499 180.018C60.9588 179.556 60.8604 179.062 60.8604 178.562V174.76Z\",\n fill: \"#82C6AE\"\n })), _path73 || (_path73 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.0569 172.376C59.6434 172.376 60.1187 171.33 60.1187 170.04C60.1187 168.75 59.6434 167.705 59.0569 167.705C58.4705 167.705 57.9951 168.75 57.9951 170.04C57.9951 171.33 58.4705 172.376 59.0569 172.376Z\",\n fill: \"black\"\n })), _path74 || (_path74 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.687 126.129C113.602 126.129 113.521 126.096 113.461 126.037C113.402 125.977 113.368 125.896 113.368 125.811V122.627C113.368 122.543 113.402 122.462 113.461 122.402C113.521 122.343 113.602 122.309 113.687 122.309C113.771 122.309 113.852 122.343 113.912 122.402C113.971 122.462 114.005 122.543 114.005 122.627V125.811C114.005 125.896 113.971 125.977 113.912 126.037C113.852 126.096 113.771 126.129 113.687 126.129Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssessmentTimeoutGraphics);\nexport default __webpack_public_path__ + \"static/media/assessment-timeout-graphics.f1ceb94802de8f82e7d82455d89ca3b1.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport timeoutIcon from \"assets/images/assessment-timeout-graphics.svg\";\n\nexport const TimeoutModal = ({ timeTaken, isOpen, onSubmit, ...rest }) => {\n return (\n \n \n
    \n \"\"\n

    {`Time Taken : ${timeTaken}m`}

    \n

    Your Section being timeout.

    \n
    \n \n
    \n
    \n
    \n
    \n );\n};\n","import React from \"react\";\nimport { Modal, ModalHeader, ModalBody } from \"reactstrap\";\nimport parse from \"html-react-parser\";\n\nexport const HelpModal = ({ isOpen, onCancel, data, ...rest }) => {\n return (\n \n Help\n \n
    \n
    \n
    \n
    {!!data && parse(data)}
    \n
    \n
    \n
    \n
    \n \n );\n};\n","import React from \"react\";\nimport { useQuestionareContext } from \"master\";\n\nexport const AssessmentTimer = () => {\n const { hours, minutes, seconds } = useQuestionareContext();\n\n const formatTimeDigit = (value) => {\n if (value) {\n return value < 10 ? \"0\" + value : value;\n } else {\n return \"00\";\n }\n };\n\n return (\n \n {formatTimeDigit(hours)}:\n {formatTimeDigit(minutes)}:\n {formatTimeDigit(seconds)}\n \n );\n};\n","import React, { useCallback, useMemo } from \"react\";\nimport parse from \"html-react-parser\";\nimport { MediaPreviewModal } from \"shared\";\n\nexport const QuestionItem = ({\n question,\n onAnswer,\n mediaPreviewState,\n totalQuestions,\n isClearingAnswer,\n isAnswering,\n answerPayload,\n}) => {\n const {\n description,\n choices,\n attachments,\n answer,\n sectionId,\n questionNumber,\n questionId,\n } = question;\n\n const isAnsweringCurrentQuestion =\n answerPayload?.sectionId === sectionId &&\n answerPayload?.questionId === questionId;\n\n const { toggleModal, onSetUrl, modalState } = mediaPreviewState;\n\n const onMediaClick = useCallback(\n (url, mediaType) => {\n if (url) {\n onSetUrl({ url, mediaType });\n }\n },\n [attachments]\n );\n\n const formattedChoices = useMemo(() => {\n return (\n choices?.length > 0 &&\n [...choices]?.sort((b, a) => {\n if (a?.code < b?.code) return 1;\n if (a?.code > b?.code) return -1;\n return 0;\n })\n );\n }, [choices]);\n\n const renderMediaByType = useCallback(\n (url, type) => {\n switch (type) {\n case 0:\n return url ? (\n <>\n
    \n \n \n \n \n
    \n \"media\"\n \n ) : (\n No media found\n );\n case 1:\n return url ? (\n <>\n
    \n \n
    \n \n \n ) : (\n No media found\n );\n default:\n return null;\n }\n },\n [attachments]\n );\n\n return (\n <>\n
    {`${questionNumber} of ${totalQuestions}`}
    \n
    \n
    {description && parse(description)}
    \n
    \n {attachments &&\n attachments?.length > 0 &&\n attachments?.map((attachment) => {\n const {\n questionAttachmentName,\n questionAttachmentsUrls,\n contentType,\n } = attachment;\n return (\n \n onMediaClick(questionAttachmentsUrls, contentType)\n }\n className=\"question-attachment\"\n >\n {renderMediaByType(questionAttachmentsUrls, contentType)}\n
    \n );\n })}\n
    \n\n
      \n {formattedChoices &&\n formattedChoices?.map((q, idx) => {\n return (\n \n \n onAnswer({\n questionId: q?.questionId,\n choiceId: q?.choiceId,\n sectionId,\n })\n }\n />\n \n
      \n \n );\n })}\n
    \n \n\n toggleModal()}\n />\n \n );\n};\n","export const QuestionStatusBadge = ({\n question,\n index,\n markedQuestions,\n currentQuestionIndex,\n onSelect,\n}) => {\n const { questionId, sectionId, answer, choices, questionNumber } = question;\n\n const isCurrentQuestion =\n currentQuestionIndex && currentQuestionIndex?.questionIndex === index;\n\n const isMarked =\n markedQuestions &&\n markedQuestions?.some(\n (c) => c.questionId === questionId && c.sectionId === sectionId\n );\n\n const isAnswered =\n answer != null && choices?.some((c) => c.choiceId === answer.choiceId);\n\n return (\n \n {questionNumber}\n {(isMarked || isAnswered) && (\n \n )}\n \n );\n};\n","import React from \"react\";\n\nexport const QuestionLegend = ({ type }) => {\n switch (type) {\n case \"completed\":\n return (\n
    \n \n Completed\n
    \n );\n case \"marked\":\n return (\n
    \n \n Marked\n
    \n );\n case \"current\":\n return (\n
    \n \n Current\n
    \n );\n case \"toAttend\":\n return (\n
    \n \n Yet to attend\n
    \n );\n default:\n return null;\n }\n};\n","import React, { useCallback } from \"react\";\nimport { Modal, ModalHeader, ModalBody } from \"reactstrap\";\nimport { QuestionModalItem } from \"..\";\nimport { useQuestionareContext } from \"master\";\n\nexport const QuestionsModal = () => {\n const questionnaireContext = useQuestionareContext();\n const {\n questionnaire,\n currentQuestionIndex,\n isModalOpen,\n setIsModalOpen,\n onChangeSection,\n setCurrentQuestionIndex,\n getFilteredQuestions,\n markedQuestions,\n getCurrentSectionIndex,\n getCurrentQuestionIndex,\n } = questionnaireContext;\n\n const currentSectionQuestions = getFilteredQuestions(\n currentQuestionIndex.sectionIndex\n );\n\n const onCancel = useCallback(() => {\n setIsModalOpen((draft) => {\n draft = {\n type: \"\",\n isOpen: false,\n };\n return draft;\n });\n }, [isModalOpen]);\n\n const navigateQuestionHandle = useCallback(\n (questionNumber, sectionId) => {\n const sectionIndex = getCurrentSectionIndex(sectionId);\n const questionIndex = getCurrentQuestionIndex(questionNumber);\n setCurrentQuestionIndex((draft) => {\n draft = {\n sectionIndex,\n questionIndex,\n };\n return draft;\n });\n setIsModalOpen((draft) => {\n draft = {\n type: \"\",\n isOpen: false,\n };\n return draft;\n });\n },\n [currentQuestionIndex, isModalOpen]\n );\n\n return (\n \n All Questions\n \n
    \n
    \n
    \n
    \n {questionnaire &&\n questionnaire?.sections?.map((section, index) => (\n onChangeSection(section?.sectionId)}\n className={`question-header-btn ${\n currentQuestionIndex?.sectionIndex === index\n ? \"active\"\n : \"\"\n }`}\n >\n {section?.name}\n \n ))}\n
    \n
    \n
    \n
      \n {currentSectionQuestions &&\n currentSectionQuestions?.map((question, index) => {\n return (\n \n );\n })}\n
    \n
    \n
    \n
    \n
    \n \n );\n};\n","import React, { useMemo } from \"react\";\nimport parse from \"html-react-parser\";\nimport { useImmer } from \"use-immer\";\nimport { QuestionStatusBadge } from \"..\";\n\nexport const QuestionModalItem = ({\n question,\n index,\n navigateQuestionHandle,\n markedQuestions,\n}) => {\n const { description, choices, answer, sectionId } = question;\n const [showMore, isShowMore] = useImmer(false);\n\n const formattedChoices = useMemo(() => {\n return (\n choices?.length > 0 &&\n [...choices]?.sort((b, a) => {\n if (a?.code < b?.code) return 1;\n if (a?.code > b?.code) return -1;\n return 0;\n })\n );\n }, [choices]);\n\n return (\n
  • \n \n showMore\n ? navigateQuestionHandle(question?.questionNumber, sectionId)\n : isShowMore(!showMore)\n }\n >\n
    \n \n
    \n\n
    \n
    \n
    {!!description && parse(description)}
    \n {showMore && (\n
      \n {formattedChoices &&\n formattedChoices?.map((q, idx) => {\n return (\n \n \n \n {`${q?.code}). ${q?.description}`}\n \n
      \n \n );\n })}\n
    \n )}\n
    \n
    \n \n\n
    \n isShowMore(!showMore)}\n className={`question-toggle-btn ${\n showMore ? \"toggle__open\" : \"toggle__close\"\n }`}\n >\n
    \n
  • \n );\n};\n","var _rect, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68, _path69, _path70, _path71, _path72, _path73, _path74;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgAssessmentSubmitConfirmGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 200,\n height: 200,\n viewBox: \"0 0 200 200\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 200,\n height: 200,\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M146.881 134.808L183.452 135.228L182.396 113.861L175.891 119.868L138.895 119.735C131.926 119.865 128.468 120.467 128.352 130.31L128.468 146.889C128.468 151.458 126.2 154.567 122.683 154.567H79.0723V175.331H126.786L129.536 168.38L129.712 174.009C134.664 173.717 139.306 171.497 142.644 167.827C145.981 164.156 147.75 159.325 147.572 154.367L146.881 134.808Z\",\n fill: \"#2760AD\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M182.99 112.143L175.892 119.863L172.671 119.85C173.437 125.067 174.106 129.917 174.903 135.127L184.384 135.161L182.99 112.143Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.982 137.398C128.754 138.658 128.74 140.176 128.968 142.007L149.42 155.425L149.374 146.53L180.462 146.884L176.842 131.816L139.514 131.432C133.967 131.539 129.867 132.51 128.982 137.398Z\",\n fill: \"#2760AD\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.698 123.102L176.646 131.586L173.426 131.575C174.193 136.79 174.861 141.641 175.658 146.85L185.138 146.885L184.956 143.89L183.378 143.806L184.706 139.772L183.698 123.102Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M149.817 147.183H149.806L146.686 147.068C146.649 147.067 146.613 147.058 146.58 147.043C146.546 147.027 146.516 147.005 146.491 146.979C146.466 146.952 146.446 146.92 146.434 146.885C146.421 146.851 146.415 146.815 146.416 146.777C146.418 146.741 146.426 146.705 146.442 146.671C146.457 146.638 146.479 146.607 146.506 146.583C146.533 146.557 146.564 146.538 146.599 146.525C146.634 146.513 146.67 146.507 146.707 146.508L149.827 146.623C149.901 146.624 149.972 146.655 150.024 146.708C150.075 146.762 150.104 146.833 150.102 146.908C150.101 146.982 150.07 147.053 150.016 147.105C149.963 147.156 149.892 147.184 149.817 147.183Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.704 131.538L139.506 131.154C134.922 131.24 130.154 131.898 128.327 135.724V137.453C128.81 135.27 130.106 133.76 132.284 132.849C134.496 131.922 137.311 131.755 139.508 131.714L176.836 132.1H176.976L183.724 123.518L183.645 122.703L176.704 131.538Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.385 123.099C174.317 123.1 174.252 123.076 174.2 123.032C174.148 122.988 174.114 122.927 174.105 122.859L173.839 121.085C173.828 121.011 173.847 120.935 173.892 120.875C173.937 120.815 174.004 120.775 174.078 120.765C174.152 120.754 174.228 120.773 174.288 120.818C174.348 120.863 174.388 120.93 174.399 121.004L174.662 122.777C174.668 122.813 174.666 122.851 174.657 122.887C174.648 122.923 174.632 122.956 174.61 122.986C174.588 123.015 174.56 123.041 174.529 123.059C174.497 123.079 174.462 123.091 174.426 123.096L174.385 123.099Z\",\n fill: \"#00C2FF\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.25 123.099C176.182 123.1 176.116 123.076 176.065 123.032C176.014 122.988 175.98 122.927 175.97 122.859L175.707 121.085C175.696 121.011 175.715 120.935 175.76 120.875C175.805 120.815 175.872 120.775 175.946 120.765C176.02 120.754 176.096 120.773 176.156 120.818C176.216 120.863 176.256 120.93 176.267 121.004L176.53 122.777C176.536 122.813 176.534 122.851 176.525 122.886C176.516 122.922 176.5 122.956 176.479 122.985C176.457 123.015 176.43 123.04 176.398 123.059C176.366 123.078 176.332 123.091 176.295 123.096L176.25 123.099Z\",\n fill: \"#00C2FF\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M175.185 135.437C175.118 135.437 175.052 135.413 175 135.369C174.949 135.325 174.915 135.265 174.905 135.197L174.642 133.423C174.636 133.386 174.638 133.349 174.648 133.313C174.657 133.277 174.673 133.243 174.695 133.213C174.718 133.183 174.745 133.158 174.777 133.139C174.809 133.12 174.844 133.108 174.881 133.103C174.918 133.097 174.956 133.099 174.992 133.108C175.028 133.117 175.062 133.133 175.091 133.156C175.121 133.178 175.146 133.206 175.165 133.238C175.184 133.27 175.196 133.305 175.202 133.342L175.465 135.115C175.476 135.188 175.458 135.263 175.413 135.322C175.369 135.382 175.303 135.421 175.23 135.433L175.185 135.437Z\",\n fill: \"#00C2FF\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.059 135.437C176.991 135.437 176.926 135.413 176.874 135.369C176.822 135.325 176.788 135.265 176.779 135.197L176.516 133.423C176.505 133.349 176.524 133.273 176.569 133.213C176.614 133.153 176.681 133.113 176.755 133.103C176.829 133.091 176.905 133.111 176.965 133.156C177.025 133.201 177.065 133.267 177.076 133.342L177.339 135.115C177.344 135.151 177.342 135.188 177.334 135.224C177.324 135.259 177.308 135.293 177.286 135.323C177.264 135.352 177.237 135.377 177.205 135.396C177.174 135.415 177.139 135.427 177.102 135.433L177.059 135.437Z\",\n fill: \"#00C2FF\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.402 132.457L170.848 132.541L173.132 147.614L173.686 147.53L171.402 132.457Z\",\n fill: \"white\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.563 119.58L170.01 119.666L171.892 131.823L172.446 131.737L170.563 119.58Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.4307 39.581L71.6171 25.8926L91.4917 49.394L77.4971 61.2286C76.9157 61.7203 76.1631 61.9608 75.4044 61.8974C74.6451 61.834 73.9431 61.4717 73.4511 60.8904L55.4307 39.581Z\",\n fill: \"#171717\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.4376 114.122C57.9968 114.122 54.9384 110.715 54.0436 108.685C53.174 106.709 53.6039 104.422 55.1639 102.716C55.5536 102.289 56.0026 101.919 56.497 101.618C55.7365 100.292 55.1232 98.8856 54.6682 97.4256C53.968 95.1669 53.4905 92.0023 55.1499 89.7503C56.7435 87.5896 59.9587 86.7356 64.7073 87.2129C70.3536 87.7729 78.2349 90.2423 88.1309 94.5329C95.9269 97.9116 102.762 99.4343 108.447 99.0463C114.025 98.6696 117.26 96.5336 118.99 94.8069C120.409 93.3943 121.273 91.7869 121.626 90.3876C121.553 90.3596 121.483 90.3343 121.416 90.3123C119.269 89.5963 118.635 88.4623 118.755 87.6376C118.86 86.9249 119.512 86.4303 120.374 86.4049C121.158 86.3856 121.774 86.7989 122.105 87.5716C122.378 88.2076 122.445 89.0716 122.272 90.0476C124.876 91.2056 128.733 94.3296 130.748 97.5463C130.768 97.5776 130.783 97.6123 130.79 97.6496C130.797 97.6863 130.796 97.7243 130.788 97.7603C130.781 97.7969 130.766 97.8316 130.744 97.8623C130.722 97.8929 130.695 97.9189 130.664 97.9389C130.632 97.9589 130.596 97.9723 130.559 97.9783C130.522 97.9843 130.484 97.9823 130.448 97.9736C130.412 97.9649 130.378 97.9483 130.348 97.9263C130.317 97.9036 130.292 97.8756 130.273 97.8429C128.256 94.6223 124.48 91.6996 122.151 90.6103C121.77 92.0696 120.882 93.7149 119.388 95.2036C117.589 96.9976 114.238 99.2169 108.486 99.6063C107.901 99.6456 107.302 99.6649 106.692 99.6649C101.296 99.6649 94.9882 98.1149 87.9096 95.0436C65.3822 85.2789 57.9072 86.9543 55.6022 90.0809C53.2972 93.2083 55.3768 98.5083 57.0026 101.346C58.2223 100.756 59.6243 100.668 60.9081 101.1C63.0786 101.836 63.3321 103.008 63.3419 103.481C63.3546 104.198 62.8714 104.849 62.1096 105.139C61.0524 105.542 59.3341 105.288 57.6845 103.365C57.3552 102.967 57.0557 102.546 56.7883 102.104C56.3399 102.374 55.9324 102.706 55.5784 103.09C54.1696 104.631 53.7776 106.684 54.5562 108.454C55.3964 110.36 58.3147 113.556 68.4376 113.556C68.5122 113.556 68.5836 113.586 68.6356 113.638C68.6882 113.691 68.7176 113.762 68.7176 113.836C68.7176 113.911 68.6882 113.982 68.6356 114.035C68.5836 114.087 68.5122 114.117 68.4376 114.117V114.122ZM57.2896 101.83C57.5336 102.238 57.807 102.629 58.1074 102.998C59.568 104.7 61.0286 104.948 61.9094 104.612C62.4555 104.405 62.7888 103.974 62.7804 103.492C62.7664 102.76 61.999 102.065 60.7261 101.636C59.5982 101.256 58.3673 101.325 57.2896 101.83ZM120.432 86.9623H120.39C119.808 86.9789 119.373 87.2816 119.308 87.7169C119.224 88.2883 119.772 89.1709 121.591 89.7769L121.74 89.8289C121.87 89.0263 121.816 88.3183 121.591 87.7903C121.427 87.4136 121.094 86.9649 120.432 86.9649V86.9623Z\",\n fill: \"#1F1F1F\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.314 116.144C143.737 114.154 144.059 108.319 141.031 103.112C138.004 97.9046 132.774 95.2966 129.351 97.2873C125.927 99.2773 125.607 105.113 128.634 110.319C131.661 115.527 136.891 118.135 140.314 116.144Z\",\n fill: \"#171717\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.788 106.06L127.662 105.485L139.237 98.7422L139.519 99.2269L127.788 106.06Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.605 97.1289L129.124 97.4089L132.199 102.697L132.68 102.417L129.605 97.1289Z\",\n fill: \"white\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.914 98.649C137.673 99.537 140.406 102.793 140.397 102.804C140.009 102.31 137.938 98.5817 137.35 98.3917C136.56 97.855 135.389 98.2203 135.27 99.2163C134.85 100.275 139.288 105.95 139.692 106.9L137.57 104.01C136.828 103.279 135.031 99.7343 133.759 99.859C132.499 99.7837 131.957 101.31 132.766 102.312L136.979 108.771C136.109 107.58 133.514 104.067 132.604 102.825C131.96 102.044 131.111 102.041 130.474 102.648C130.266 102.845 130.13 103.105 130.085 103.387C130.04 103.67 130.09 103.959 130.226 104.21C131.121 105.787 134.147 111.06 134.147 111.06C129.512 110.304 127.186 110.233 130.432 112.916C130.432 112.916 134.598 115.735 135.854 116.837C137.554 119.154 139.306 122.298 140.18 125.778C144.227 124.098 148.246 122.91 152.216 121.07C152.167 120.95 142.279 97.6103 139.914 98.649Z\",\n fill: \"white\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.517 146.627L156.013 119.757L151.513 119.635L157.517 146.627Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.081 126.673C140.021 126.673 139.962 126.655 139.913 126.619C139.864 126.584 139.828 126.533 139.81 126.475C139.609 125.839 139.426 125.239 139.25 124.667C138.138 121.039 137.404 118.646 135.661 117.044C133.766 115.307 130.315 113.172 130.281 113.151L130.265 113.141C128.865 112.148 128.352 111.419 128.631 110.845C129.105 109.865 131.833 110.205 133.567 110.618C132.753 109.201 130.685 105.593 129.977 104.345L129.968 104.331C129.949 104.295 129.926 104.252 129.908 104.209L129.894 104.175C129.779 103.882 129.753 103.562 129.821 103.255C129.888 102.947 130.045 102.667 130.272 102.449C130.38 102.341 130.501 102.247 130.633 102.169C130.746 102.104 130.865 102.05 130.987 102.009C131.219 101.926 131.469 101.903 131.711 101.943C131.954 101.983 132.183 102.083 132.377 102.235C131.908 101.416 132.035 100.415 132.716 99.8914C132.807 99.8208 132.907 99.7614 133.013 99.7134C133.25 99.6061 133.51 99.5581 133.77 99.5734C134.272 99.6061 134.742 99.8274 135.088 100.192C134.969 99.8641 134.935 99.5108 134.987 99.1661C135.023 98.9314 135.109 98.7074 135.239 98.5088C135.339 98.3594 135.466 98.2288 135.613 98.1241C135.826 97.9808 136.071 97.8914 136.326 97.8621C136.581 97.8328 136.839 97.8648 137.079 97.9561C137.221 98.0041 137.357 98.0668 137.485 98.1434H137.495C137.771 98.3148 138.009 98.5401 138.195 98.8061L138.204 98.8188L138.806 99.7694C138.789 99.2328 138.999 98.8028 139.419 98.5468C139.549 98.4668 139.691 98.4061 139.839 98.3674C139.885 98.3541 139.932 98.3441 139.979 98.3368C140.583 98.2474 141.159 98.5808 141.741 99.3548C143.571 101.793 149.251 113.121 152.335 120.933C152.362 120.999 152.363 121.074 152.337 121.141C152.311 121.207 152.259 121.262 152.195 121.293L140.191 126.632C140.157 126.653 140.121 126.667 140.081 126.673ZM130.589 112.681C130.818 112.821 134.139 114.886 136.05 116.632C137.905 118.332 138.657 120.789 139.797 124.505C139.943 124.984 140.097 125.485 140.259 126.009L151.731 120.905C148.642 113.143 143.109 102.108 141.313 99.7121C140.863 99.1141 140.461 98.8508 140.077 98.9081C140.049 98.9114 140.021 98.9174 139.993 98.9248C139.899 98.9514 139.81 98.9914 139.727 99.0428C139.285 99.3114 139.345 99.8574 139.474 100.268C139.577 100.577 139.718 100.871 139.894 101.146L142.255 105.207L142.242 105.187L142.256 105.211C142.277 105.243 142.291 105.279 142.297 105.317C142.303 105.355 142.301 105.394 142.291 105.431C142.278 105.484 142.249 105.532 142.209 105.569C142.168 105.605 142.117 105.629 142.063 105.638C142.009 105.647 141.954 105.639 141.904 105.617C141.854 105.594 141.812 105.557 141.783 105.511L137.753 99.1408C137.609 98.9381 137.427 98.7668 137.215 98.6368H137.205C137.113 98.5808 137.015 98.5334 136.914 98.4961C136.757 98.4341 136.589 98.4101 136.421 98.4268C136.253 98.4434 136.093 98.5008 135.952 98.5928C135.861 98.6574 135.783 98.7381 135.721 98.8314C135.635 98.9628 135.579 99.1114 135.555 99.2668C135.506 99.6414 135.587 100.022 135.785 100.345C135.812 100.389 135.84 100.435 135.871 100.478C135.875 100.484 135.879 100.491 135.883 100.497L139.569 106.731C139.589 106.761 139.602 106.796 139.609 106.833C139.615 106.869 139.614 106.906 139.605 106.941C139.597 106.977 139.583 107.011 139.561 107.041C139.54 107.071 139.513 107.097 139.482 107.117C139.451 107.137 139.417 107.15 139.38 107.156C139.344 107.163 139.307 107.161 139.271 107.153C139.235 107.145 139.201 107.131 139.171 107.109C139.141 107.088 139.115 107.061 139.096 107.03L134.817 100.729C134.691 100.559 134.531 100.419 134.346 100.317C134.161 100.214 133.957 100.152 133.747 100.135C133.577 100.123 133.406 100.153 133.251 100.223C133.184 100.253 133.121 100.291 133.063 100.335C132.557 100.723 132.525 101.531 132.99 102.139C132.997 102.147 133.002 102.155 133.007 102.164L136.928 108.629C136.967 108.691 136.981 108.767 136.965 108.839C136.949 108.911 136.905 108.974 136.843 109.014C136.781 109.054 136.706 109.068 136.633 109.053C136.561 109.038 136.498 108.995 136.457 108.933L132.388 102.997C131.86 102.402 131.444 102.452 131.178 102.543C131.089 102.573 131.004 102.611 130.923 102.658C130.833 102.711 130.751 102.774 130.677 102.847C130.529 102.986 130.426 103.166 130.38 103.363C130.334 103.561 130.348 103.768 130.419 103.958L130.429 103.983C130.441 104.009 130.454 104.036 130.469 104.064C131.359 105.628 134.365 110.867 134.391 110.926C134.418 110.974 134.431 111.029 134.426 111.085C134.422 111.141 134.401 111.193 134.367 111.237C134.333 111.281 134.286 111.313 134.233 111.331C134.18 111.348 134.123 111.349 134.07 111.333C131.731 110.651 129.365 110.633 129.141 111.095C129.119 111.133 128.985 111.538 130.589 112.681Z\",\n fill: \"black\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.4378 143.385V113.838H116.47V143.385C116.47 143.773 116.394 144.157 116.245 144.516C116.097 144.875 115.879 145.2 115.605 145.475C115.331 145.749 115.005 145.967 114.646 146.115C114.288 146.263 113.903 146.34 113.515 146.34H71.3912C71.0032 146.34 70.6192 146.263 70.2605 146.115C69.9025 145.967 69.5765 145.749 69.3019 145.475C69.0279 145.2 68.8099 144.875 68.6619 144.516C68.5132 144.157 68.4365 143.773 68.4365 143.385H68.4378Z\",\n fill: \"#1F1F1F\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.7651 154.562V163.066L79.4131 162.963L85.7651 154.562Z\",\n fill: \"black\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.4385 113.842L71.6411 104.599C71.9871 103.636 72.6218 103.184 73.3985 103.184H118.603C119.599 103.184 120.014 103.72 119.673 104.599L116.47 113.842H68.4385Z\",\n fill: \"#B0CAEE\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.606 105.002L115.174 112.02H70.9958L73.3565 105.205C73.3811 105.134 73.4131 105.066 73.4518 105.002H117.606ZM118.603 103.182H73.3985C72.6158 103.182 71.9871 103.634 71.6411 104.597L68.4385 113.84H116.47L119.673 104.597C120.014 103.718 119.599 103.182 118.603 103.182Z\",\n fill: \"#1F1F1F\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.7646 133.93V139.45C85.7646 140.064 86.2633 140.563 86.878 140.563H98.0153C98.63 140.563 99.128 140.064 99.128 139.45V133.93C99.128 133.315 98.63 132.816 98.0153 132.816H86.878C86.2633 132.816 85.7646 133.315 85.7646 133.93Z\",\n fill: \"white\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.7422 121.438V127.986C75.7422 128.398 76.0755 128.731 76.4869 128.731H109.181C109.592 128.731 109.926 128.398 109.926 127.986V121.438C109.926 121.027 109.592 120.693 109.181 120.693H76.4869C76.0755 120.693 75.7422 121.027 75.7422 121.438Z\",\n fill: \"white\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.14 120.463C148.171 122.304 143.66 124.094 139.614 125.784C151.316 163.242 125.859 162.496 115.404 162.591C108.873 162.652 71.0129 162.437 71.0129 162.437L70.7329 149.176H45.7759C20.8651 148.907 20.6144 176.584 44.3671 176.572C44.3671 176.572 116.396 176.378 116.523 176.38C148.27 176.911 167.496 161.55 152.14 120.463Z\",\n fill: \"#82C6AE\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.826 121.225C155.628 131.603 156.977 138.801 156.967 145.84C156.958 152.552 155.367 158.24 152.24 162.748C149.186 167.151 144.622 170.495 138.676 172.69C133.024 174.776 126.105 175.833 118.11 175.833C117.591 175.833 117.06 175.833 116.539 175.819H116.516C115.591 175.819 45.078 176.008 44.368 176.011H44.3526C40.5717 176.011 37.2557 175.302 34.5054 173.91C32.0688 172.672 30.1307 170.892 28.904 168.76C26.8623 165.224 26.8763 160.976 28.9418 157.399C31.7537 152.53 37.764 149.738 45.4197 149.738H70.1851L70.4538 162.45C70.4564 162.596 70.5171 162.736 70.6218 162.838C70.7264 162.941 70.8671 162.999 71.0138 162.999C71.3064 162.999 100.312 163.162 111.73 163.162C113.411 163.162 114.65 163.162 115.413 163.153H116.192C122.824 163.106 133.924 163.028 139.655 155.179C144.122 149.058 144.34 139.282 140.304 126.114C141.134 125.769 141.972 125.424 142.852 125.062C145.857 123.816 148.962 122.534 151.826 121.225ZM152.14 120.463C148.172 122.304 143.661 124.094 139.614 125.784C151.317 163.242 125.86 162.496 115.405 162.591C114.605 162.598 113.336 162.601 111.726 162.601C100.176 162.601 71.0138 162.437 71.0138 162.437L70.7338 149.176H45.4155C20.8674 149.176 20.733 176.574 44.3526 176.574H44.368C44.368 176.574 115.582 176.382 116.516 176.382H116.524C117.054 176.39 117.585 176.396 118.11 176.396C148.908 176.396 167.24 160.868 152.139 120.469L152.14 120.463Z\",\n fill: \"black\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.1571 143.638C86.2877 143.381 85.6351 143.797 85.2751 145.178C84.4351 148.399 84.2304 148.837 83.7344 150.455L84.0764 142.91C84.1857 141.769 83.4364 141.172 82.6577 141.176C81.8791 141.18 81.3177 141.792 81.2577 142.925L80.6624 150.299L80.8204 142.541C80.8357 142.339 80.8084 142.136 80.7404 141.945C80.6731 141.753 80.5664 141.579 80.4271 141.431C80.2884 141.283 80.1204 141.165 79.9337 141.086C79.7471 141.007 79.5457 140.967 79.3431 140.969C78.5657 141.004 77.9697 141.764 78.0097 142.666L77.5397 150.088L77.5897 142.983C77.6064 142.116 77.0944 141.691 76.3504 141.627C75.6071 141.563 74.9617 142.068 74.8971 142.747C74.7331 144.51 74.4771 149.162 74.4771 149.162H70.1357V163.057L75.3171 162.984C78.5871 162.984 82.1637 163.699 84.2671 160.603C86.4204 157.439 87.5211 149.481 87.9411 146.23C88.1371 144.621 88.0124 143.891 87.1571 143.638Z\",\n fill: \"white\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.3991 141.527C79.5177 141.531 79.6351 141.559 79.7424 141.609C79.8504 141.659 79.9471 141.73 80.0264 141.818C80.1111 141.909 80.1757 142.016 80.2171 142.133C80.2577 142.25 80.2744 142.374 80.2644 142.497C80.2644 142.509 80.2644 142.519 80.2644 142.529L80.1064 150.287C80.1031 150.433 80.1571 150.575 80.2564 150.681C80.3557 150.788 80.4931 150.851 80.6384 150.859H80.6664C80.8077 150.859 80.9437 150.807 81.0477 150.711C81.1511 150.615 81.2151 150.484 81.2264 150.343L81.8204 142.971C81.8211 142.965 81.8211 142.959 81.8204 142.954C81.8444 142.5 81.9844 141.74 82.6604 141.735C82.7784 141.733 82.8957 141.756 83.0037 141.801C83.1124 141.847 83.2104 141.915 83.2911 142.002C83.3871 142.121 83.4564 142.258 83.4957 142.406C83.5344 142.554 83.5411 142.708 83.5164 142.859C83.5164 142.867 83.5164 142.877 83.5164 142.885L83.1691 150.421C83.1631 150.557 83.2064 150.69 83.2911 150.796C83.3764 150.902 83.4971 150.974 83.6311 150.997C83.6637 151.003 83.6964 151.006 83.7291 151.006C83.8484 151.005 83.9644 150.967 84.0604 150.896C84.1564 150.825 84.2271 150.725 84.2624 150.611C84.3817 150.227 84.4824 149.911 84.5804 149.605C84.8957 148.625 85.1657 147.777 85.8144 145.312C86.1251 144.125 86.5564 144.125 86.6977 144.125C86.7984 144.127 86.8984 144.143 86.9944 144.173C87.2971 144.262 87.6111 144.354 87.3757 146.171C86.4371 153.431 85.2331 158.185 83.7937 160.3C82.5497 162.121 80.7577 162.503 78.4497 162.503C77.9344 162.503 77.3997 162.485 76.8831 162.467C76.3657 162.448 75.8311 162.43 75.3091 162.43H75.3004L70.6791 162.495V149.729H74.4604C74.6031 149.729 74.7411 149.675 74.8451 149.576C74.9497 149.478 75.0117 149.344 75.0204 149.201C75.0204 149.155 75.2824 144.538 75.4404 142.805C75.4684 142.625 75.5624 142.461 75.7044 142.346C75.8471 142.231 76.0264 142.173 76.2091 142.184H76.2891C76.8084 142.229 77.0257 142.464 77.0157 142.977L76.9651 150.082C76.9651 150.227 77.0217 150.367 77.1224 150.471C77.2231 150.575 77.3611 150.637 77.5057 150.642H77.5271C77.6697 150.642 77.8071 150.588 77.9111 150.491C78.0151 150.393 78.0784 150.259 78.0871 150.117L78.5577 142.695C78.5591 142.675 78.5591 142.655 78.5577 142.635C78.5397 142.347 78.6257 142.061 78.7997 141.831C78.8644 141.741 78.9484 141.667 79.0451 141.613C79.1424 141.56 79.2497 141.529 79.3597 141.521L79.3991 141.527ZM79.3991 140.967H79.3431C78.5657 141.002 77.9697 141.762 78.0097 142.664L77.5397 150.086L77.5897 142.981C77.6064 142.114 77.0944 141.689 76.3504 141.625C76.3071 141.625 76.2651 141.625 76.2231 141.625C75.9011 141.615 75.5864 141.725 75.3417 141.933C75.0964 142.143 74.9377 142.435 74.8971 142.755C74.7331 144.518 74.4771 149.17 74.4771 149.17H70.1357V163.065L75.3171 162.991C76.3517 162.991 77.4177 163.065 78.4597 163.065C80.7004 163.065 82.8297 162.728 84.2671 160.617C86.4204 157.452 87.5211 149.495 87.9411 146.243C88.1497 144.621 88.0224 143.891 87.1644 143.637C87.0164 143.591 86.8624 143.567 86.7077 143.566C86.0651 143.566 85.5764 144.049 85.2817 145.171C84.4417 148.391 84.2371 148.83 83.7417 150.447L84.0764 142.909C84.1857 141.772 83.4417 141.175 82.6664 141.175H82.6577C81.8804 141.175 81.3177 141.791 81.2577 142.925L80.6624 150.299L80.8204 142.541C80.8351 142.343 80.8091 142.144 80.7444 141.957C80.6797 141.769 80.5777 141.597 80.4444 141.45C80.3117 141.303 80.1497 141.184 79.9697 141.101C79.7897 141.018 79.5944 140.973 79.3964 140.967H79.3991Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.1138 163.165L45.0808 162.902C45.0066 162.902 44.9353 162.872 44.8828 162.82C44.8303 162.767 44.8008 162.696 44.8008 162.622C44.8008 162.547 44.8303 162.476 44.8828 162.424C44.9353 162.371 45.0066 162.342 45.0808 162.342L94.1158 162.604C94.1898 162.604 94.2611 162.634 94.3138 162.686C94.3658 162.739 94.3958 162.81 94.3958 162.885C94.3958 162.959 94.3658 163.03 94.3138 163.083C94.2611 163.135 94.1898 163.165 94.1158 163.165H94.1138Z\",\n fill: \"black\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.042 162.422C119.293 162.609 117.304 162.562 115.404 162.586C109.102 162.643 72.639 162.632 70.125 162.618V176.495C90.513 176.44 116.711 176.697 122 176.178L122.042 162.422Z\",\n fill: \"#82C6AE\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.481 163.024L121.441 175.669C117.977 175.921 108.588 175.949 99.7446 175.949C96.2099 175.949 92.5452 175.949 88.6645 175.937C84.7845 175.924 80.7446 175.924 76.8499 175.924C74.5886 175.924 72.5652 175.924 70.6885 175.924V163.171C72.8339 163.171 79.5346 163.181 86.6946 163.181C92.3152 163.181 111.001 163.181 115.411 163.138C115.799 163.138 116.189 163.138 116.589 163.138C117.985 163.136 119.554 163.13 121.481 163.024ZM122.041 162.428C119.292 162.614 117.303 162.568 115.403 162.592C111.762 162.625 98.0932 162.635 86.6959 162.635C78.3332 162.635 71.1925 162.635 70.1299 162.624V176.5C72.3145 176.5 74.5686 176.491 76.8512 176.491C84.5152 176.491 92.5605 176.516 99.7459 176.516C110.411 176.516 119.18 176.46 122.001 176.183L122.043 162.428H122.041Z\",\n fill: \"black\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.937 159.953C104.904 159.921 105.67 159.34 105.647 158.656C105.624 157.972 104.822 157.443 103.854 157.476C102.888 157.508 102.122 158.089 102.145 158.773C102.168 159.457 102.97 159.985 103.937 159.953Z\",\n fill: \"white\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.943 158.029H103.986C104.393 158.039 104.772 158.18 104.967 158.399C105.007 158.439 105.039 158.486 105.06 158.539C105.081 158.591 105.092 158.648 105.091 158.705C105.066 159.029 104.555 159.39 103.86 159.39H103.821C103.413 159.381 103.037 159.24 102.841 159.02C102.8 158.981 102.767 158.933 102.746 158.881C102.725 158.828 102.715 158.771 102.716 158.715C102.737 158.39 103.249 158.029 103.943 158.029ZM103.943 157.469C103.002 157.469 102.205 157.999 102.155 158.67C102.104 159.341 102.842 159.93 103.807 159.949H103.863C104.804 159.949 105.601 159.418 105.653 158.745C105.705 158.073 104.963 157.485 103.999 157.469H103.943Z\",\n fill: \"black\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0705 158.567C90.0838 157.882 89.3111 157.312 88.3445 157.293C87.3778 157.275 86.5838 157.815 86.5705 158.5C86.5571 159.185 87.3305 159.755 88.2965 159.774C89.2631 159.793 90.0578 159.253 90.0705 158.567Z\",\n fill: \"white\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.293 157.844C88.9704 157.844 89.493 158.203 89.507 158.527C89.5064 158.586 89.4937 158.644 89.4697 158.697C89.4457 158.751 89.4104 158.799 89.367 158.838C89.1584 159.059 88.773 159.199 88.3617 159.205H88.3377C87.6597 159.205 87.139 158.843 87.1237 158.521C87.1244 158.463 87.137 158.405 87.161 158.351C87.185 158.297 87.2204 158.249 87.2637 158.209C87.4724 157.989 87.857 157.849 88.269 157.844H88.293ZM88.293 157.283H88.2617C87.2944 157.296 86.535 157.861 86.5664 158.544C86.597 159.227 87.387 159.763 88.339 159.763H88.371C89.3377 159.751 90.0964 159.185 90.0657 158.503C90.035 157.821 89.245 157.285 88.293 157.285V157.283Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.0393 167.321C100.11 167.321 103.411 164.021 103.411 159.949C103.411 155.878 100.11 152.578 96.0393 152.578C91.968 152.578 88.668 155.878 88.668 159.949C88.668 164.021 91.968 167.321 96.0393 167.321Z\",\n fill: \"white\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.038 153.136C96.7513 153.138 97.46 153.25 98.138 153.471C99.6807 153.972 100.994 155.007 101.841 156.39C102.689 157.772 103.016 159.412 102.763 161.014C102.509 162.616 101.693 164.074 100.461 165.128C99.228 166.182 97.6593 166.762 96.038 166.763C95.3247 166.762 94.6153 166.648 93.9373 166.428C92.3947 165.927 91.0813 164.892 90.234 163.51C89.386 162.127 89.0593 160.488 89.3127 158.886C89.566 157.284 90.382 155.824 91.6147 154.77C92.848 153.717 94.416 153.137 96.038 153.136ZM96.038 152.576C94.1807 152.574 92.3913 153.272 91.0267 154.531C89.662 155.79 88.822 157.518 88.6747 159.368C88.5273 161.219 89.0827 163.058 90.2313 164.517C91.3793 165.976 93.0353 166.949 94.8693 167.241C96.7027 167.533 98.5793 167.123 100.124 166.093C101.669 165.062 102.768 163.488 103.203 161.682C103.638 159.878 103.376 157.974 102.47 156.354C101.564 154.733 100.08 153.514 98.3147 152.939C97.5793 152.699 96.8113 152.577 96.038 152.576Z\",\n fill: \"black\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.1886 166.945C102.915 166.287 103.401 159.523 103.401 159.523C100.509 155.007 91.2972 154.839 88.9166 159.523C88.9152 159.523 88.7219 167.932 97.1886 166.945Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.3032 162.881H71.7432V175.932H72.3032V162.881Z\",\n fill: \"black\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.475 162.881H119.915V175.932H120.475V162.881Z\",\n fill: \"black\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.473 85.9707L158.428 89.072L158.958 89.2514L160.004 86.15L159.473 85.9707Z\",\n fill: \"white\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.229 89.5957L169.184 92.6964L169.714 92.8757L170.76 89.7744L170.229 89.5957Z\",\n fill: \"white\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.983 93.2207L179.938 96.322L180.468 96.5007L181.513 93.3994L180.983 93.2207Z\",\n fill: \"white\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.643 87.9238L160.968 89.9278L161.498 90.1065L162.174 88.1032L161.643 87.9238Z\",\n fill: \"white\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.481 88.8809L163.806 90.8842L164.336 91.0635L165.012 89.0595L164.481 88.8809Z\",\n fill: \"white\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.32 89.8359L166.645 91.8393L167.175 92.0186L167.851 90.0146L167.32 89.8359Z\",\n fill: \"white\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M172.397 91.5488L171.722 93.5528L172.252 93.7315L172.928 91.7282L172.397 91.5488Z\",\n fill: \"white\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M175.235 92.5059L174.56 94.5099L175.09 94.6885L175.766 92.6845L175.235 92.5059Z\",\n fill: \"white\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M178.073 93.4629L177.397 95.4669L177.928 95.6456L178.603 93.6422L178.073 93.4629Z\",\n fill: \"white\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.2204 109.963L12.7543 117.827C12.1537 118.46 12.1797 119.46 12.8124 120.061L27.4189 133.926C28.0516 134.527 29.0514 134.501 29.652 133.868L37.1181 126.003C37.7187 125.371 37.6927 124.371 37.06 123.77L22.4535 109.904C21.8208 109.304 20.821 109.33 20.2204 109.963Z\",\n fill: \"black\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3641 111.113L13.9103 117.911C13.3911 118.458 13.4136 119.322 13.9605 119.841L26.5866 131.827C27.1335 132.347 27.9977 132.324 28.5168 131.777L34.9706 124.979C35.4897 124.432 35.4673 123.567 34.9204 123.049L22.2943 111.063C21.7475 110.543 20.8833 110.566 20.3641 111.113Z\",\n fill: \"white\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.5567 129.807C32.9132 129.807 33.2022 129.518 33.2022 129.162C33.2022 128.805 32.9132 128.516 32.5567 128.516C32.2001 128.516 31.9111 128.805 31.9111 129.162C31.9111 129.518 32.2001 129.807 32.5567 129.807Z\",\n fill: \"white\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.8256 66.68C38.3146 56.7561 40.3392 48.4283 39.3477 48.0797C38.3561 47.7311 34.7239 55.4937 31.2349 65.4179C27.7459 75.342 25.7212 83.67 26.7128 84.0187C27.7043 84.3673 31.3365 76.6047 34.8256 66.68Z\",\n fill: \"black\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.2413 85.6251C26.2098 85.6257 26.1786 85.6204 26.1489 85.6097C26.1141 85.5977 26.0821 85.5791 26.0546 85.5544C26.0271 85.5297 26.0047 85.5004 25.9887 85.4671C25.9727 85.4337 25.9634 85.3977 25.9614 85.3611C25.9593 85.3244 25.9645 85.2877 25.9766 85.2531L27.2594 81.6037C27.2841 81.5331 27.3356 81.4757 27.4028 81.4437C27.4698 81.4117 27.547 81.4071 27.6172 81.4317C27.6874 81.4571 27.7448 81.5084 27.777 81.5757C27.8092 81.6424 27.8134 81.7197 27.7887 81.7897L26.5116 85.4451C26.4909 85.4991 26.4538 85.5457 26.4054 85.5784C26.3569 85.6104 26.2996 85.6271 26.2413 85.6251Z\",\n fill: \"black\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.8586 66.3479C29.827 66.3478 29.7957 66.342 29.7662 66.3311C29.7314 66.319 29.6993 66.3001 29.6718 66.2756C29.6444 66.2511 29.622 66.2214 29.606 66.1882C29.59 66.1551 29.5806 66.1191 29.5786 66.0823C29.5765 66.0456 29.5817 66.0088 29.5939 65.974L33.1788 55.7808C33.5401 54.7502 34.8718 54.2754 36.1462 54.7236C36.1809 54.7357 36.2129 54.7546 36.2404 54.7791C36.2678 54.8036 36.2902 54.8333 36.3062 54.8664C36.3222 54.8996 36.3315 54.9356 36.3336 54.9724C36.3357 55.0091 36.3305 55.0459 36.3184 55.0807C36.3062 55.1154 36.2874 55.1474 36.2628 55.1749C36.2384 55.2024 36.2086 55.2248 36.1755 55.2408C36.1424 55.2568 36.1064 55.266 36.0696 55.2681C36.0328 55.2702 35.996 55.265 35.9613 55.2529C34.981 54.907 33.9672 55.2277 33.7067 55.9671L30.1232 66.1602C30.104 66.2151 30.0682 66.2626 30.0208 66.2963C29.9734 66.3299 29.9167 66.348 29.8586 66.3479Z\",\n fill: \"black\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.623 67.1633L34.2124 68.4253L34.8246 66.684L31.2352 65.4219L30.623 67.1633Z\",\n fill: \"white\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.5786 66.1341L34.1119 67.0246L33.871 67.7093L31.3391 66.8206L31.5786 66.1341ZM31.2369 65.4199L30.625 67.1619L34.2141 68.4226L34.826 66.6799L31.2369 65.4199Z\",\n fill: \"black\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.908 63.957L19.0068 64.2599L22.5492 98.191L25.4503 97.8877L21.908 63.957Z\",\n fill: \"#2760AD\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.037 60.0938L19.0049 64.2612L21.9064 63.9587L20.037 60.0938Z\",\n fill: \"white\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.0368 60.0938L19.5215 62.1775L20.9723 62.0262L20.0368 60.0938Z\",\n fill: \"#1F1F1F\"\n })), _path63 || (_path63 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.9031 92.7773L22.0059 93.116L22.0709 93.672L24.9681 93.3333L24.9031 92.7773Z\",\n fill: \"white\"\n })), _path64 || (_path64 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.7302 91.1074L21.833 91.4461L21.8981 92.0028L24.7953 91.6634L24.7302 91.1074Z\",\n fill: \"white\"\n })), _path65 || (_path65 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.639 23.752L53.7539 37.1853L73.6284 60.6867L89.513 47.2534L69.639 23.752Z\",\n fill: \"white\"\n })), _path66 || (_path66 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.6278 60.9628C73.5872 60.9629 73.5465 60.954 73.5098 60.9368C73.4725 60.9196 73.4398 60.8946 73.4138 60.8634L53.5383 37.3627C53.5145 37.3347 53.4964 37.3022 53.4851 37.2672C53.4739 37.2322 53.4696 37.1953 53.4726 37.1586C53.4756 37.1219 53.4858 37.0862 53.5026 37.0535C53.5194 37.0207 53.5425 36.9916 53.5705 36.9678L69.4545 23.5329C69.4831 23.5091 69.5151 23.4911 69.5505 23.48C69.5858 23.4688 69.6225 23.4647 69.6591 23.4678C69.6958 23.4709 69.7318 23.4813 69.7645 23.4982C69.7971 23.5151 69.8258 23.5383 69.8498 23.5665L89.7265 47.0671C89.7498 47.0953 89.7678 47.1279 89.7785 47.1629C89.7898 47.1981 89.7938 47.2349 89.7905 47.2716C89.7845 47.3455 89.7491 47.4141 89.6925 47.4621L73.8085 60.8956C73.7578 60.9387 73.6938 60.9625 73.6278 60.9628ZM54.1461 37.2143L73.6611 60.2879L89.1171 47.2156L69.6031 24.142L54.1461 37.2143Z\",\n fill: \"black\"\n })), _path67 || (_path67 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.8281 39.8564C62.7873 39.8565 62.7471 39.8476 62.7101 39.8304C62.6731 39.8132 62.6402 39.7882 62.6139 39.757C62.5901 39.7289 62.5722 39.6964 62.5611 39.6613C62.5499 39.6262 62.5457 39.5893 62.5489 39.5526C62.552 39.516 62.5623 39.4802 62.5792 39.4476C62.5961 39.4148 62.6193 39.3858 62.6475 39.3621L70.4111 32.8449C70.4684 32.801 70.5404 32.7809 70.6117 32.7888C70.6837 32.7966 70.7497 32.8318 70.7957 32.887C70.8424 32.9422 70.8657 33.0132 70.8611 33.0852C70.8564 33.1572 70.8244 33.2246 70.7711 33.2734L63.0088 39.7934C62.9579 39.835 62.8939 39.8573 62.8281 39.8564Z\",\n fill: \"#171717\"\n })), _path68 || (_path68 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.4793 41.9618C64.4215 41.9622 64.365 41.9447 64.3175 41.9117C64.27 41.8788 64.234 41.8319 64.2142 41.7776C64.1944 41.7233 64.1919 41.6642 64.207 41.6084C64.2221 41.5526 64.2541 41.5029 64.2986 41.466L72.0605 34.9488C72.0885 34.9232 72.1212 34.9036 72.1572 34.891C72.1925 34.8784 72.2305 34.8732 72.2685 34.8756C72.3058 34.878 72.3432 34.8881 72.3765 34.9052C72.4105 34.9222 72.4405 34.946 72.4645 34.975C72.4892 35.0039 72.5072 35.0375 72.5185 35.0737C72.5292 35.1099 72.5325 35.148 72.5285 35.1856C72.5245 35.2232 72.5132 35.2595 72.4945 35.2925C72.4759 35.3254 72.4505 35.3543 72.4205 35.3773L64.6585 41.8932C64.6087 41.9364 64.5452 41.9607 64.4793 41.9618Z\",\n fill: \"#171717\"\n })), _path69 || (_path69 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.3749 42.8975C67.3336 42.8976 67.2929 42.8886 67.2556 42.8711C67.2189 42.8537 67.1856 42.8283 67.1596 42.7967C67.1356 42.7685 67.1176 42.7359 67.1069 42.7007C67.0956 42.6656 67.0916 42.6286 67.0949 42.592C67.0982 42.5553 67.1089 42.5196 67.1256 42.487C67.1429 42.4543 67.1662 42.4254 67.1942 42.4018L72.5616 37.8954C72.6189 37.8477 72.6922 37.8246 72.7662 37.8312C72.8409 37.8377 72.9089 37.8735 72.9569 37.9305C73.0042 37.9875 73.0276 38.0611 73.0209 38.1352C73.0142 38.2093 72.9789 38.2777 72.9216 38.3254L67.5516 42.8317C67.5022 42.8733 67.4396 42.8966 67.3749 42.8975Z\",\n fill: \"#171717\"\n })), _path70 || (_path70 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.698 42.2551L113.832 40.0801L88.3896 61.8949L90.2543 64.07L115.698 42.2551Z\",\n fill: \"white\"\n })), _path71 || (_path71 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.772 40.8699L114.909 42.1946L90.316 63.2797L89.18 61.9549L113.772 40.8699ZM113.833 40.0801L88.3906 61.8947L90.256 64.0695L115.699 42.2562L113.833 40.0801Z\",\n fill: \"black\"\n })), _path72 || (_path72 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.776 38.5859L113.833 40.0801L115.698 42.2549L117.776 38.5859Z\",\n fill: \"#D8D8D8\"\n })), _path73 || (_path73 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.777 38.5859L115.806 39.3337L116.738 40.4204L117.777 38.5859Z\",\n fill: \"black\"\n })), _path74 || (_path74 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.43 41.2852L112.005 41.6512L113.878 43.82L114.302 43.454L112.43 41.2852Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAssessmentSubmitConfirmGraphics);\nexport default __webpack_public_path__ + \"static/media/assessment-submit-confirm-graphics.954bdc4aef3fb0b4c034f9a79305f2f0.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport confirmIcon from \"assets/images/assessment-submit-confirm-graphics.svg\";\n\nexport const AnswerSubmitConfirmModal = ({\n isOpen,\n onCancel,\n size,\n children,\n onSubmit,\n isSubmittingAnswers,\n ...rest\n}) => {\n return (\n \n \n
    \n \"\"\n

    Are you sure to submit the test?

    \n
    \n
    \n \n Close\n \n \n Proceed\n \n
    \n
    \n
    \n
    \n \n );\n};\n","import React from \"react\";\nimport parse from \"html-react-parser\";\n\nexport const ReviewItem = ({\n question,\n index,\n markedQuestions,\n onQuestionClick,\n isTimeout,\n}) => {\n const { description, questionId, sectionId, answer, choices } = question;\n\n const isMarked =\n markedQuestions &&\n markedQuestions?.some(\n (c) => c?.questionId === questionId && c?.sectionId === sectionId\n );\n\n const isAnswered =\n answer != null && choices?.some((c) => c?.choiceId === answer?.choiceId);\n\n const onQuestionClickHandle = () => {\n if (!isTimeout) {\n onQuestionClick(sectionId, questionId);\n }\n };\n\n const itemMarked = isMarked || (isAnswered && isMarked);\n const itemAnswered = isAnswered && !isMarked;\n const itemNotAnswered = !isAnswered && !isMarked;\n\n return (\n
  • \n
    \n
    \n {index + 1}\n
    \n
    {!!description && parse(description)}
    \n
    \n
    \n \n {itemAnswered && Answered}\n {itemMarked && Marked for review}\n {itemNotAnswered && Not Answered}\n {!isTimeout && (\n \n \n \n )}\n \n
    \n
  • \n );\n};\n","var _rect, _rect2, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCloseIconRoundFilledGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 31,\n height: 31,\n rx: 15.5,\n fill: \"black\",\n fillOpacity: 0.36\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 31,\n height: 31,\n rx: 15.5,\n stroke: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.9393 16.0001L21.1393 11.8068C21.2648 11.6813 21.3354 11.511 21.3354 11.3335C21.3354 11.1559 21.2648 10.9857 21.1393 10.8601C21.0138 10.7346 20.8435 10.6641 20.666 10.6641C20.4884 10.6641 20.3182 10.7346 20.1926 10.8601L15.9993 15.0601L11.806 10.8601C11.6804 10.7346 11.5102 10.6641 11.3326 10.6641C11.1551 10.6641 10.9848 10.7346 10.8593 10.8601C10.7338 10.9857 10.6632 11.1559 10.6632 11.3335C10.6632 11.511 10.7338 11.6813 10.8593 11.8068L15.0593 16.0001L10.8593 20.1935C10.7968 20.2554 10.7472 20.3292 10.7134 20.4104C10.6795 20.4916 10.6621 20.5788 10.6621 20.6668C10.6621 20.7548 10.6795 20.8419 10.7134 20.9232C10.7472 21.0044 10.7968 21.0781 10.8593 21.1401C10.9213 21.2026 10.995 21.2522 11.0763 21.2861C11.1575 21.3199 11.2446 21.3373 11.3326 21.3373C11.4206 21.3373 11.5078 21.3199 11.589 21.2861C11.6703 21.2522 11.744 21.2026 11.806 21.1401L15.9993 16.9401L20.1926 21.1401C20.2546 21.2026 20.3284 21.2522 20.4096 21.2861C20.4908 21.3199 20.578 21.3373 20.666 21.3373C20.754 21.3373 20.8411 21.3199 20.9224 21.2861C21.0036 21.2522 21.0773 21.2026 21.1393 21.1401C21.2018 21.0781 21.2514 21.0044 21.2852 20.9232C21.3191 20.8419 21.3365 20.7548 21.3365 20.6668C21.3365 20.5788 21.3191 20.4916 21.2852 20.4104C21.2514 20.3292 21.2018 20.2554 21.1393 20.1935L16.9393 16.0001Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseIconRoundFilledGrey);\nexport default __webpack_public_path__ + \"static/media/close-icon-round-filled-grey.7cddc45bd28743604d17dfb6f5af7adc.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgQuestionIconThickBlack2(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 0C3.5912 0 0 3.5912 0 8C0 12.4088 3.5912 16 8 16C12.4088 16 16 12.4088 16 8C16 3.5912 12.4088 0 8 0ZM8 1.6C11.5441 1.6 14.4 4.4559 14.4 8C14.4 11.5441 11.5441 14.4 8 14.4C4.4559 14.4 1.6 11.5441 1.6 8C1.6 4.4559 4.4559 1.6 8 1.6ZM8 3.2C6.232 3.2 4.8 4.632 4.8 6.4H6.4C6.4 5.52 7.12 4.8 8 4.8C8.88 4.8 9.6 5.52 9.6 6.4C9.6 8 7.2 8.2936 7.2 10.4H8.8C8.8 9.0792 11.2 8.4 11.2 6.4C11.2 4.632 9.768 3.2 8 3.2ZM7.2 11.2V12.8H8.8V11.2H7.2Z\",\n fill: \"#131314\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuestionIconThickBlack2);\nexport default __webpack_public_path__ + \"static/media/question-icon-thick-black-2.73be86dbdb813709413f33138aca9c97.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgBookDarkBlackThickIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 14,\n viewBox: \"0 0 16 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0V11.2C0 12.0745 0.72555 12.8 1.6 12.8H6.87031C6.95293 13.0337 7.10589 13.2361 7.30818 13.3793C7.51046 13.5226 7.75213 13.5997 8 13.6C8.24787 13.5997 8.48954 13.5226 8.69182 13.3793C8.89411 13.2361 9.04707 13.0337 9.12969 12.8H14.4C15.2745 12.8 16 12.0745 16 11.2V0H10.4C9.43125 0 8.58844 0.460997 8 1.14844C7.41156 0.460997 6.56875 0 5.6 0H0ZM1.6 1.6H5.6C6.49333 1.6 7.2 2.30667 7.2 3.2H8.8C8.8 2.30667 9.50667 1.6 10.4 1.6H14.4V11.2H1.6V1.6ZM10.4 4V5.6H12V4H10.4ZM10.4 6.4V9.6H12V6.4H10.4Z\",\n fill: \"#131314\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBookDarkBlackThickIcon);\nexport default __webpack_public_path__ + \"static/media/book-dark-black-thick-icon.8d8a4b1308cbc813ea978e6eea59acb5.svg\";\nexport { ForwardRef as ReactComponent };","import closeIcon from \"assets/images/icons/close-icon-round-filled-grey.svg\";\nimport questionIcon from \"assets/images/icons/question-icon-thick-black-2.svg\";\nimport bookIcon from \"assets/images/icons/book-dark-black-thick-icon.svg\";\nimport { QuestionLegend, QuestionStatusBadge } from \"..\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport const QuestionIndexMobileModal = ({\n questionnaire,\n currentQuestionIndex,\n onChangeSection,\n markedQuestions,\n onChangeSidebarButton,\n setIsOpenNavModal,\n onToggleInstruction,\n onToggleHelp,\n}) => {\n const navigate = useNavigate();\n\n const closeModal = () => {\n setIsOpenNavModal(false);\n };\n\n const goToAllQuestions = () => {\n navigate(\"/program/assessment/allQuestions\");\n };\n\n return (\n
    \n
    \n
    \n \n
    \n

    {questionnaire?.name}

    \n
    \n {\n onToggleHelp();\n closeModal();\n }}\n className=\"header-info-item\"\n >\n \"\"\n \n {\n onToggleInstruction(null, \"header\");\n closeModal();\n }}\n >\n \"\"\n \n
    \n
    \n
    \n
    \n
    \n {questionnaire &&\n questionnaire?.sections?.map((section, index) => (\n onChangeSection(section?.sectionId)}\n className={`question-header-btn ${\n currentQuestionIndex?.sectionIndex === index\n ? \"active\"\n : \"\"\n }`}\n >\n {section?.name}\n \n ))}\n
    \n
    \n
    \n
    \n

    {`Questions (${questionnaire?.questions?.length ?? 0})`}

    \n \n
    \n
    \n
    \n {questionnaire &&\n questionnaire?.questions?.map((question, index) => {\n return (\n {\n onChangeSidebarButton(question.sectionId, index);\n closeModal();\n }}\n />\n );\n })}\n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n","var _circle, _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCheckGreenFilledBordered(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 75,\n height: 75,\n viewBox: \"0 0 75 75\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 37.5,\n cy: 37.5,\n r: 37.5,\n fill: \"#299B69\",\n fillOpacity: 0.15\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37 64.75C21.6985 64.75 9.25 52.3015 9.25 37C9.25 21.6985 21.6985 9.25 37 9.25C52.3015 9.25 64.75 21.6985 64.75 37C64.75 52.3015 52.3015 64.75 37 64.75Z\",\n fill: \"#20BE79\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37 10C51.8875 10 64 22.1125 64 37C64 51.8875 51.8875 64 37 64C22.1125 64 10 51.8875 10 37C10 22.1125 22.1125 10 37 10ZM37 8.5C21.2605 8.5 8.5 21.2605 8.5 37C8.5 52.7395 21.2605 65.5 37 65.5C52.7395 65.5 65.5 52.7395 65.5 37C65.5 21.2605 52.7395 8.5 37 8.5Z\",\n fill: \"#20BE79\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.3605 49.504L21 39.1435L24.183 35.962L31.3605 43.1395L49.5 25L52.683 28.1815L31.3605 49.504Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckGreenFilledBordered);\nexport default __webpack_public_path__ + \"static/media/check-green-filled-bordered.546c5ce7a2181de931c3427cd6495500.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCloseRedFilledBordered(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 82,\n height: 75,\n viewBox: \"0 0 82 75\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 37.9062,\n cy: 37.5,\n r: 37.5,\n fill: \"#F44336\",\n fillOpacity: 0.26\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.4062 37C68.4062 53.5675 54.9738 67 38.4062 67C21.8387 67 8.40625 53.5675 8.40625 37C8.40625 20.4325 21.8387 7 38.4062 7C54.9738 7 68.4062 20.4325 68.4062 37Z\",\n fill: \"#F44336\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.0813 26L48.6163 29.535L30.9413 47.21L27.4062 43.675L45.0813 26Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.6163 43.675L45.0813 47.21L27.4062 29.535L30.9413 26L48.6163 43.675Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseRedFilledBordered);\nexport default __webpack_public_path__ + \"static/media/close-red-filled-bordered.45e7022d9dde15ed7ca18c9280479e41.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCalendarIconAssessment(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 24,\n viewBox: \"0 0 25 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.75 3C4.96403 3 3.5 4.46403 3.5 6.25V17.75C3.5 19.536 4.96403 21 6.75 21H18.25C20.036 21 21.5 19.536 21.5 17.75V6.25C21.5 4.46403 20.036 3 18.25 3H6.75ZM6.75 4.5H18.25C19.225 4.5 20 5.27497 20 6.25V7H5V6.25C5 5.27497 5.77497 4.5 6.75 4.5ZM5 8.5H20V17.75C20 18.725 19.225 19.5 18.25 19.5H6.75C5.77497 19.5 5 18.725 5 17.75V8.5ZM8.25 10.5C7.91848 10.5 7.60054 10.6317 7.36612 10.8661C7.1317 11.1005 7 11.4185 7 11.75C7 12.0815 7.1317 12.3995 7.36612 12.6339C7.60054 12.8683 7.91848 13 8.25 13C8.58152 13 8.89946 12.8683 9.13388 12.6339C9.3683 12.3995 9.5 12.0815 9.5 11.75C9.5 11.4185 9.3683 11.1005 9.13388 10.8661C8.89946 10.6317 8.58152 10.5 8.25 10.5ZM12.5 10.5C12.1685 10.5 11.8505 10.6317 11.6161 10.8661C11.3817 11.1005 11.25 11.4185 11.25 11.75C11.25 12.0815 11.3817 12.3995 11.6161 12.6339C11.8505 12.8683 12.1685 13 12.5 13C12.8315 13 13.1495 12.8683 13.3839 12.6339C13.6183 12.3995 13.75 12.0815 13.75 11.75C13.75 11.4185 13.6183 11.1005 13.3839 10.8661C13.1495 10.6317 12.8315 10.5 12.5 10.5ZM16.75 10.5C16.4185 10.5 16.1005 10.6317 15.8661 10.8661C15.6317 11.1005 15.5 11.4185 15.5 11.75C15.5 12.0815 15.6317 12.3995 15.8661 12.6339C16.1005 12.8683 16.4185 13 16.75 13C17.0815 13 17.3995 12.8683 17.6339 12.6339C17.8683 12.3995 18 12.0815 18 11.75C18 11.4185 17.8683 11.1005 17.6339 10.8661C17.3995 10.6317 17.0815 10.5 16.75 10.5ZM8.25 15C7.91848 15 7.60054 15.1317 7.36612 15.3661C7.1317 15.6005 7 15.9185 7 16.25C7 16.5815 7.1317 16.8995 7.36612 17.1339C7.60054 17.3683 7.91848 17.5 8.25 17.5C8.58152 17.5 8.89946 17.3683 9.13388 17.1339C9.3683 16.8995 9.5 16.5815 9.5 16.25C9.5 15.9185 9.3683 15.6005 9.13388 15.3661C8.89946 15.1317 8.58152 15 8.25 15ZM12.5 15C12.1685 15 11.8505 15.1317 11.6161 15.3661C11.3817 15.6005 11.25 15.9185 11.25 16.25C11.25 16.5815 11.3817 16.8995 11.6161 17.1339C11.8505 17.3683 12.1685 17.5 12.5 17.5C12.8315 17.5 13.1495 17.3683 13.3839 17.1339C13.6183 16.8995 13.75 16.5815 13.75 16.25C13.75 15.9185 13.6183 15.6005 13.3839 15.3661C13.1495 15.1317 12.8315 15 12.5 15Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendarIconAssessment);\nexport default __webpack_public_path__ + \"static/media/calendar-icon-assessment.467df621c8e3fe2dacc1411187b51c8d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgTimerIconAssessment(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48603 2 2 6.48604 2 12C2 17.514 6.48603 22 12 22C17.514 22 22 17.514 22 12C22 6.48604 17.514 2 12 2ZM12 3.5C16.7033 3.5 20.5 7.2967 20.5 12C20.5 16.7033 16.7033 20.5 12 20.5C7.29669 20.5 3.5 16.7033 3.5 12C3.5 7.2967 7.29669 3.5 12 3.5ZM11.7383 5.98926C11.5395 5.99236 11.3502 6.07422 11.2117 6.21686C11.0733 6.3595 10.9971 6.55125 11 6.75V12.75C11 12.9489 11.079 13.1397 11.2197 13.2803C11.3603 13.421 11.5511 13.5 11.75 13.5H15.75C15.8494 13.5014 15.9481 13.483 16.0403 13.446C16.1325 13.4089 16.2164 13.3539 16.2872 13.2841C16.358 13.2143 16.4142 13.1312 16.4526 13.0395C16.4909 12.9478 16.5107 12.8494 16.5107 12.75C16.5107 12.6506 16.4909 12.5522 16.4526 12.4605C16.4142 12.3688 16.358 12.2857 16.2872 12.2159C16.2164 12.1461 16.1325 12.0911 16.0403 12.054C15.9481 12.017 15.8494 11.9986 15.75 12H12.5V6.75C12.5014 6.64962 12.4827 6.54997 12.4449 6.45695C12.4071 6.36394 12.3511 6.27946 12.28 6.20852C12.209 6.13757 12.1245 6.08161 12.0314 6.04395C11.9383 6.00629 11.8387 5.98769 11.7383 5.98926Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTimerIconAssessment);\nexport default __webpack_public_path__ + \"static/media/timer-icon-assessment.bd99ade79b6e2124d2abd1bc22cccd21.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport moment from \"moment\";\nimport greenCheck from \"assets/images/icons/check-green-filled-bordered.svg\";\nimport redClose from \"assets/images/icons/close-red-filled-bordered.svg\";\nimport calendarIcon from \"assets/images/icons/calendar-icon-assessment.svg\";\nimport timerIcon from \"assets/images/icons/timer-icon-assessment.svg\";\nimport { ConfettiEffect } from \".\";\n\nexport const ResultCard = ({ assessmentResult, goToDashboard }) => {\n const {\n assessmentName,\n maximumScore,\n obtainedScore,\n startedAt,\n endedAt,\n timeTaken,\n assessmentSchedule,\n message,\n resultStatus,\n } = assessmentResult;\n\n const isPassedAssessment = resultStatus === 4;\n const isAvailableScore =\n obtainedScore >= 0 &&\n typeof obtainedScore === \"number\" &&\n maximumScore >= 0 &&\n typeof maximumScore === \"number\";\n\n return (\n <>\n
    \n \n {isPassedAssessment && }\n
    \n
    \n
    \n
    \n {isPassedAssessment ? (\n \"\"\n ) : (\n \"\"\n )}\n

    \n {isPassedAssessment\n ? \"Congratulations. You've Passed\"\n : \"You’ve Failed.\"}\n

    \n

    {assessmentName}

    \n
    \n
    \n \"\"\n \n {moment(assessmentSchedule).format(\"DD MMMM YYYY\")}\n \n
    \n
    \n \"\"\n {`${startedAt} to ${endedAt}`}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {message &&

    {message}

    }\n
    \n {isAvailableScore && (\n
    \n
    Your Score
    \n
    {`${obtainedScore}/${maximumScore}`}
    \n
    \n )}\n {timeTaken && (\n
    \n
    Time Taken
    \n
    {timeTaken}
    \n
    \n )}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n};\n","var _rect, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgResultMdIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 201,\n height: 200,\n viewBox: \"0 0 201 200\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5420_35697)\"\n }, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 200,\n height: 200,\n transform: \"translate(0.5)\",\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M200.5 0H0.5V200H200.5V0Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.2976 88.3605C24.7976 90.8605 28.1886 92.2656 31.7246 92.2656C34.3811 92.2656 36.9551 91.4725 39.1316 90.018L29.6411 99.5085C27.1411 102.009 25.7361 105.4 25.7361 108.936C25.7361 112.472 27.1406 115.863 29.6411 118.363C32.1411 120.863 35.5321 122.268 39.0681 122.268C41.7241 122.268 44.2986 121.475 46.4751 120.021L41.4941 125.002C38.9941 127.502 37.5891 130.893 37.5891 134.429C37.5891 137.965 38.9936 141.356 41.4941 143.856C43.9941 146.356 47.3851 147.761 50.9211 147.761C53.5771 147.761 56.1516 146.968 58.3281 145.514L57.1111 146.731C54.6111 149.231 53.2061 152.622 53.2061 156.158C53.2061 159.694 54.6106 163.085 57.1111 165.585C59.6111 168.085 63.0021 169.49 66.5381 169.49C70.0741 169.49 73.4651 168.085 75.9651 165.585L88.5986 152.951C87.1441 155.128 86.3516 157.702 86.3516 160.358C86.3516 163.894 87.7561 167.285 90.2566 169.785C92.7566 172.285 96.1476 173.69 99.6836 173.69C103.22 173.69 106.611 172.286 109.111 169.785L128.306 150.59C126.852 152.766 126.059 155.341 126.059 157.997C126.059 161.533 127.464 164.924 129.964 167.424C132.464 169.924 135.855 171.329 139.391 171.329C142.927 171.329 146.318 169.924 148.818 167.424L178.702 137.54C181.202 135.04 182.607 131.649 182.607 128.113C182.607 124.577 181.202 121.186 178.702 118.686C176.202 116.186 172.811 114.781 169.275 114.781C166.619 114.781 164.044 115.574 161.868 117.028L168.123 110.773C170.623 108.273 172.028 104.882 172.028 101.346C172.028 97.8095 170.624 94.4185 168.123 91.9185C165.623 89.4185 162.232 88.0136 158.696 88.0136C156.04 88.0136 153.466 88.8065 151.289 90.2605L163.923 77.6271C166.423 75.1271 167.828 71.736 167.828 68.2C167.828 64.664 166.423 61.273 163.923 58.773C161.423 56.273 158.032 54.868 154.496 54.868C151.84 54.868 149.265 55.661 147.089 57.115L155.134 49.0695C157.634 46.5695 159.039 43.1785 159.039 39.6425C159.039 36.1065 157.635 32.7155 155.134 30.2155C152.634 27.7155 149.243 26.3105 145.707 26.3105C142.171 26.3105 138.78 27.715 136.28 30.2155L118.359 48.1365C119.814 45.96 120.606 43.3855 120.606 40.7295C120.606 37.1935 119.202 33.8025 116.701 31.3025C114.201 28.8025 110.81 27.3975 107.274 27.3975C103.738 27.3975 100.347 28.802 97.8471 31.3025L72.6926 56.457C74.1471 54.2805 74.9401 51.706 74.9401 49.0495C74.9401 45.5135 73.5356 42.1225 71.0351 39.6225C68.5351 37.1225 65.1441 35.7175 61.6081 35.7175C58.0721 35.7175 54.6811 37.122 52.1811 39.6225L22.2976 69.506C19.7976 72.006 18.3926 75.397 18.3926 78.933C18.3926 82.469 19.7971 85.86 22.2976 88.36V88.3605Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M182.213 145.186L181.291 146.108C180.93 146.469 180.93 147.054 181.291 147.414C181.651 147.775 182.236 147.775 182.596 147.414L183.519 146.492L184.441 147.414C184.802 147.775 185.386 147.775 185.747 147.414C186.107 147.054 186.107 146.469 185.747 146.108L184.824 145.186L185.747 144.264C186.107 143.903 186.107 143.318 185.747 142.958C185.566 142.777 185.33 142.688 185.094 142.688C184.857 142.688 184.621 142.777 184.441 142.958L183.518 143.881L182.596 142.958C182.415 142.777 182.179 142.688 181.943 142.688C181.706 142.688 181.47 142.777 181.29 142.958C180.929 143.318 180.929 143.903 181.29 144.264L182.212 145.186H182.213Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.4009 165.061L49.4784 165.983C49.1179 166.344 49.1179 166.929 49.4784 167.289C49.8389 167.65 50.4234 167.65 50.7839 167.289L51.7064 166.367L52.6289 167.289C52.9894 167.65 53.5739 167.65 53.9344 167.289C54.2949 166.929 54.2949 166.344 53.9344 165.983L53.0119 165.061L53.9344 164.139C54.2949 163.778 54.2949 163.193 53.9344 162.833C53.7539 162.652 53.5179 162.562 53.2814 162.562C53.0449 162.562 52.8089 162.652 52.6284 162.833L51.7059 163.756L50.7834 162.833C50.6029 162.652 50.3669 162.562 50.1304 162.562C49.8939 162.562 49.6579 162.652 49.4774 162.833C49.1169 163.193 49.1169 163.778 49.4774 164.139L50.3999 165.061H50.4009Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.7974 83.2934L25.8749 84.2159C25.5144 84.5764 25.5144 85.1609 25.8749 85.5214C26.2354 85.8819 26.8199 85.8819 27.1804 85.5214L28.1029 84.5989L29.0254 85.5214C29.3859 85.8819 29.9704 85.8819 30.3309 85.5214C30.6914 85.1609 30.6914 84.5764 30.3309 84.2159L29.4084 83.2934L30.3309 82.3709C30.6914 82.0104 30.6914 81.4259 30.3309 81.0654C30.1504 80.8849 29.9144 80.7949 29.6779 80.7949C29.4414 80.7949 29.2054 80.8849 29.0249 81.0654L28.1024 81.9879L27.1799 81.0654C26.9994 80.8849 26.7634 80.7949 26.5269 80.7949C26.2904 80.7949 26.0544 80.8849 25.8739 81.0654C25.5134 81.4259 25.5134 82.0104 25.8739 82.3709L26.7964 83.2934H26.7974Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.827 35.8852L136.904 36.8077C136.544 37.1682 136.544 37.7527 136.904 38.1132C137.265 38.4737 137.849 38.4737 138.21 38.1132L139.132 37.1907L140.055 38.1132C140.415 38.4737 141 38.4737 141.36 38.1132C141.721 37.7527 141.721 37.1682 141.36 36.8077L140.438 35.8852L141.36 34.9627C141.721 34.6022 141.721 34.0177 141.36 33.6572C141.18 33.4767 140.944 33.3867 140.707 33.3867C140.471 33.3867 140.235 33.4767 140.054 33.6572L139.132 34.5797L138.209 33.6572C138.029 33.4767 137.793 33.3867 137.556 33.3867C137.32 33.3867 137.084 33.4767 136.903 33.6572C136.543 34.0177 136.543 34.6022 136.903 34.9627L137.826 35.8852H137.827Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.937 166.346C122.424 166.346 123.634 167.556 123.634 169.043C123.634 170.53 122.424 171.74 120.937 171.74C119.45 171.74 118.24 170.53 118.24 169.043C118.24 167.556 119.45 166.346 120.937 166.346ZM120.937 169.893C121.406 169.893 121.788 169.512 121.788 169.043C121.788 168.574 121.406 168.192 120.937 168.192C120.468 168.192 120.087 168.574 120.087 169.043C120.087 169.512 120.468 169.893 120.937 169.893Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.767 80.4082C173.254 80.4082 174.464 81.6182 174.464 83.1052C174.464 84.5922 173.254 85.8022 171.767 85.8022C170.28 85.8022 169.07 84.5922 169.07 83.1052C169.07 81.6182 170.28 80.4082 171.767 80.4082ZM171.767 83.9557C172.236 83.9557 172.618 83.5742 172.618 83.1052C172.618 82.6362 172.236 82.2547 171.767 82.2547C171.298 82.2547 170.917 82.6362 170.917 83.1052C170.917 83.5742 171.298 83.9557 171.767 83.9557Z\",\n fill: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.865 37.123C60.352 37.123 61.562 38.333 61.562 39.82C61.562 41.307 60.352 42.517 58.865 42.517C57.378 42.517 56.168 41.307 56.168 39.82C56.168 38.333 57.378 37.123 58.865 37.123ZM58.865 40.6705C59.334 40.6705 59.7155 40.289 59.7155 39.82C59.7155 39.351 59.334 38.9695 58.865 38.9695C58.396 38.9695 58.0145 39.351 58.0145 39.82C58.0145 40.289 58.396 40.6705 58.865 40.6705Z\",\n fill: \"white\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.445 121.332C28.932 121.332 30.142 122.542 30.142 124.029C30.142 125.516 28.932 126.726 27.445 126.726C25.958 126.726 24.748 125.516 24.748 124.029C24.748 122.542 25.958 121.332 27.445 121.332ZM27.445 124.88C27.914 124.88 28.2955 124.498 28.2955 124.029C28.2955 123.56 27.914 123.179 27.445 123.179C26.976 123.179 26.5945 123.56 26.5945 124.029C26.5945 124.498 26.976 124.88 27.445 124.88Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.2976 88.3605C24.7976 90.8605 28.1886 92.2656 31.7246 92.2656C34.3811 92.2656 36.9551 91.4725 39.1316 90.018L29.6411 99.5085C27.1411 102.009 25.7361 105.4 25.7361 108.936C25.7361 112.472 27.1406 115.863 29.6411 118.363C32.1411 120.863 35.5321 122.268 39.0681 122.268C41.7241 122.268 44.2986 121.475 46.4751 120.021L41.4941 125.002C38.9941 127.502 37.5891 130.893 37.5891 134.429C37.5891 137.965 38.9936 141.356 41.4941 143.856C43.9941 146.356 47.3851 147.761 50.9211 147.761C53.5771 147.761 56.1516 146.968 58.3281 145.514L57.1111 146.731C54.6111 149.231 53.2061 152.622 53.2061 156.158C53.2061 159.694 54.6106 163.085 57.1111 165.585C59.6111 168.085 63.0021 169.49 66.5381 169.49C70.0741 169.49 73.4651 168.085 75.9651 165.585L88.5986 152.951C87.1441 155.128 86.3516 157.702 86.3516 160.358C86.3516 163.894 87.7561 167.285 90.2566 169.785C92.7566 172.285 96.1476 173.69 99.6836 173.69C103.22 173.69 106.611 172.286 109.111 169.785L128.306 150.59C126.852 152.766 126.059 155.341 126.059 157.997C126.059 161.533 127.464 164.924 129.964 167.424C132.464 169.924 135.855 171.329 139.391 171.329C142.927 171.329 146.318 169.924 148.818 167.424L178.702 137.54C181.202 135.04 182.607 131.649 182.607 128.113C182.607 124.577 181.202 121.186 178.702 118.686C176.202 116.186 172.811 114.781 169.275 114.781C166.619 114.781 164.044 115.574 161.868 117.028L168.123 110.773C170.623 108.273 172.028 104.882 172.028 101.346C172.028 97.8095 170.624 94.4185 168.123 91.9185C165.623 89.4185 162.232 88.0136 158.696 88.0136C156.04 88.0136 153.466 88.8065 151.289 90.2605L163.923 77.6271C166.423 75.1271 167.828 71.736 167.828 68.2C167.828 64.664 166.423 61.273 163.923 58.773C161.423 56.273 158.032 54.868 154.496 54.868C151.84 54.868 149.265 55.661 147.089 57.115L155.134 49.0695C157.634 46.5695 159.039 43.1785 159.039 39.6425C159.039 36.1065 157.635 32.7155 155.134 30.2155C152.634 27.7155 149.243 26.3105 145.707 26.3105C142.171 26.3105 138.78 27.715 136.28 30.2155L118.359 48.1365C119.814 45.96 120.606 43.3855 120.606 40.7295C120.606 37.1935 119.202 33.8025 116.701 31.3025C114.201 28.8025 110.81 27.3975 107.274 27.3975C103.738 27.3975 100.347 28.802 97.8471 31.3025L72.6926 56.457C74.1471 54.2805 74.9401 51.706 74.9401 49.0495C74.9401 45.5135 73.5356 42.1225 71.0351 39.6225C68.5351 37.1225 65.1441 35.7175 61.6081 35.7175C58.0721 35.7175 54.6811 37.122 52.1811 39.6225L22.2976 69.506C19.7976 72.006 18.3926 75.397 18.3926 78.933C18.3926 82.469 19.7971 85.86 22.2976 88.36V88.3605Z\",\n fill: \"#E5EDF7\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.982 144.321L136.033 143.541C134.696 143.006 133.668 142.592 132.875 142.273C131.257 141.623 130.487 141.313 130.295 141.262H130.245C130.058 141.262 129.89 141.365 129.805 141.532L126.119 148.785L125.38 146.822C125.316 146.651 123.943 143.004 122.455 139.051C122.16 138.268 121.216 135.76 121.216 135.76C121.216 135.76 120.522 133.915 120.436 133.688C120.233 134.227 115.56 146.64 115.493 146.821L114.754 148.787L111.067 141.531C110.982 141.365 110.814 141.262 110.627 141.262H110.578C110.381 141.315 109.601 141.629 107.963 142.287C107.174 142.604 106.157 143.013 104.839 143.541L102.891 144.32L103.629 142.356C103.709 142.144 104.312 140.544 105.119 138.4C105.238 138.082 105.362 137.753 105.49 137.414C105.739 136.752 106.001 136.055 106.269 135.344C106.269 135.344 109.969 125.513 110.068 125.251L110.256 124.752L110.593 123.855L110.678 123.63L110.933 122.951C110.953 122.967 110.973 122.982 110.994 122.997L111.228 123.654L111.396 124.123L111.529 124.495L112.014 125.851L112.981 128.557C113.431 129.815 114.566 130.628 115.873 130.628C116.488 130.628 117.083 130.443 117.594 130.094C117.645 130.059 119.915 128.509 119.915 128.509L120.437 128.153L121.493 128.875C122.319 129.439 123.206 130.045 123.277 130.094C123.79 130.443 124.383 130.628 124.993 130.628C126.284 130.628 127.442 129.813 127.876 128.6L128.854 125.862L129.341 124.5L129.476 124.122L129.642 123.658L129.876 123.004C129.897 122.988 129.919 122.971 129.94 122.955L130.195 123.633L130.279 123.856L130.617 124.754L135.382 137.414L137.982 144.321Z\",\n fill: \"#00438B\",\n fillOpacity: 0.76\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.082 135.435C121.464 133.795 120.886 132.258 120.436 131.063C119.986 132.258 119.408 133.795 118.79 135.435C118.774 135.478 118.758 135.522 118.741 135.565H122.131C122.114 135.522 122.098 135.478 122.082 135.435ZM138.108 142.032L136.619 138.075L136.371 137.415L136.023 136.49L135.674 135.565L135.38 134.784L131.67 124.927L131.509 124.501L131.386 124.172L131.167 123.59L131.042 123.258L130.696 122.341C130.451 122.554 130.199 122.759 129.94 122.956C129.919 122.973 129.897 122.989 129.876 123.005C129.46 123.32 129.027 123.614 128.578 123.887L128.196 124.956L128.103 125.216L127.659 126.458L127.005 128.29C126.698 129.149 125.908 129.705 124.993 129.705C124.569 129.705 124.157 129.576 123.799 129.332C123.727 129.282 122.841 128.677 122.015 128.113L121.772 127.947L121.757 127.936C121.662 127.872 121.57 127.808 121.481 127.748L120.491 127.071L120.438 127.035L120.385 127.071L119.394 127.746C119.306 127.806 119.214 127.869 119.12 127.934C119.114 127.938 119.108 127.942 119.101 127.946C119.021 128.001 118.94 128.056 118.858 128.112L118.211 128.554C117.626 128.954 117.131 129.291 117.07 129.333C116.713 129.576 116.3 129.705 115.873 129.705C115.148 129.705 114.236 129.322 113.852 128.247L113.208 126.447L112.766 125.21L112.676 124.956L112.29 123.876C111.844 123.606 111.412 123.313 110.994 122.998C110.973 122.984 110.953 122.968 110.933 122.953C110.674 122.757 110.422 122.552 110.175 122.34L109.829 123.259L109.705 123.589L109.486 124.172L109.361 124.503L109.202 124.927C109.102 125.194 108.17 127.67 107.044 130.66L105.492 134.784L105.398 135.034C105.331 135.212 105.264 135.389 105.198 135.565C105.08 135.878 104.963 136.187 104.849 136.49C104.731 136.806 104.615 137.115 104.502 137.415C104.417 137.64 104.334 137.861 104.253 138.076C103.446 140.22 102.843 141.82 102.764 142.032L101.285 145.961L105.183 144.401C106.5 143.874 107.502 143.471 108.306 143.148C109.305 142.746 110.007 142.464 110.421 142.303L112.977 147.335L114.88 151.08L116.358 147.148C116.434 146.946 117.501 144.112 118.763 140.76L119.283 139.379C119.528 138.727 119.776 138.068 120.022 137.415C120.029 137.395 120.037 137.375 120.045 137.354L120.436 136.315L120.706 137.031C120.754 137.159 120.802 137.287 120.85 137.415C121.096 138.068 121.344 138.728 121.589 139.379C123.077 143.332 124.45 146.979 124.514 147.149L125.994 151.077L127.895 147.335L130.452 142.303C130.86 142.461 131.55 142.739 132.531 143.134C133.343 143.46 134.352 143.866 135.69 144.401L139.587 145.961L138.108 142.032ZM130.311 140.338H130.245C129.725 140.338 129.229 140.625 128.981 141.114L126.245 146.497C126.181 146.327 124.808 142.68 123.321 138.727C123.157 138.292 122.992 137.853 122.827 137.415C122.593 136.793 122.359 136.173 122.131 135.565C122.114 135.522 122.098 135.478 122.082 135.435C121.464 133.795 120.886 132.258 120.436 131.063C119.986 132.258 119.408 133.795 118.79 135.435C118.774 135.478 118.758 135.522 118.741 135.565C118.513 136.173 118.279 136.793 118.045 137.415C117.88 137.853 117.715 138.292 117.551 138.727C116.076 142.647 114.713 146.267 114.627 146.497L111.891 141.114C111.643 140.625 111.147 140.338 110.627 140.338C110.602 140.338 110.58 140.338 110.558 140.338C110.267 140.338 110.163 140.415 104.495 142.684C104.575 142.472 105.177 140.871 105.985 138.727C106.142 138.308 106.307 137.869 106.479 137.415C106.703 136.819 106.937 136.197 107.175 135.565C107.191 135.522 107.207 135.479 107.224 135.435C108.914 130.944 110.789 125.963 110.934 125.578L112.11 128.87C112.728 130.598 114.28 131.555 115.873 131.555C116.645 131.555 117.427 131.33 118.116 130.859C118.194 130.806 119.076 130.204 119.9 129.64C120.085 129.515 120.267 129.39 120.436 129.275C120.605 129.39 120.787 129.514 120.971 129.64C121.798 130.205 122.684 130.81 122.756 130.859C123.45 131.333 124.228 131.555 124.993 131.555C126.601 131.555 128.152 130.576 128.747 128.913L129.938 125.578L133.649 135.435L133.698 135.565L134.394 137.415L134.888 138.727L136.377 142.684C130.697 140.411 130.609 140.338 130.311 140.338ZM122.082 135.435C121.464 133.795 120.886 132.258 120.436 131.063C119.986 132.258 119.408 133.795 118.79 135.435C118.774 135.478 118.758 135.522 118.741 135.565H122.131C122.114 135.522 122.098 135.478 122.082 135.435Z\",\n fill: \"#333333\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.777 103.935C134.451 100.8 132.254 98.1901 129.424 96.3891C126.728 94.6741 123.605 93.7676 120.392 93.7676C115.97 93.7676 111.803 95.4986 108.659 98.6426C107.072 100.231 105.842 102.083 105.003 104.147C104.194 106.142 103.782 108.25 103.781 110.411C103.779 114.861 105.511 119.045 108.659 122.193C109.035 122.568 109.425 122.924 109.829 123.258C109.975 123.379 110.122 123.497 110.272 123.613C110.378 123.695 110.485 123.776 110.593 123.855C110.828 124.028 111.067 124.194 111.309 124.353C111.382 124.402 111.455 124.449 111.529 124.495C111.931 124.752 112.344 124.989 112.766 125.209C115.092 126.418 117.689 127.062 120.385 127.07C120.401 127.07 120.418 127.07 120.434 127.07H120.491C123.197 127.062 125.756 126.438 128.103 125.215C128.24 125.144 128.376 125.07 128.511 124.995C128.792 124.838 129.069 124.673 129.34 124.5C129.415 124.453 129.489 124.405 129.563 124.356C129.806 124.196 130.044 124.029 130.278 123.856C130.385 123.777 130.491 123.698 130.596 123.615H130.597C130.747 123.499 130.895 123.38 131.041 123.257C132.295 122.214 133.402 120.984 134.31 119.613C135.79 117.38 136.723 114.808 137.009 112.174C137.313 109.359 136.899 106.588 135.777 103.935ZM130.696 122.34C130.451 122.553 130.198 122.758 129.939 122.955C129.918 122.972 129.897 122.988 129.875 123.004C129.459 123.319 129.026 123.613 128.578 123.886C126.237 125.309 123.469 126.145 120.434 126.145C117.4 126.145 114.706 125.342 112.289 123.875C111.844 123.605 111.411 123.312 110.993 122.997C110.973 122.983 110.952 122.967 110.932 122.952C110.674 122.756 110.421 122.551 110.175 122.339C109.879 122.084 109.591 121.817 109.313 121.539C103.162 115.389 103.179 105.431 109.313 99.2966C112.441 96.1691 116.437 94.6926 120.392 94.6926C126.396 94.6926 132.304 98.0971 134.925 104.296C137.741 110.953 135.591 118.097 130.696 122.34Z\",\n fill: \"#EFEFEF\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.85 107.941C137.789 107.516 137.712 107.093 137.619 106.673C137.386 105.62 137.054 104.583 136.628 103.576C136.598 103.504 136.567 103.432 136.535 103.361C135.507 101.014 134.012 98.9538 132.141 97.2878C131.45 96.6728 130.708 96.1117 129.919 95.6097C129.718 95.4822 129.515 95.3588 129.31 95.2393C128.065 94.5168 126.733 93.9478 125.34 93.5453C124.299 93.2443 123.235 93.0393 122.161 92.9323C121.573 92.8733 120.982 92.8438 120.391 92.8438C119.799 92.8438 119.257 92.8707 118.697 92.9247C116.16 93.1677 113.736 93.9567 111.561 95.2342C110.567 95.8182 109.625 96.5042 108.748 97.2872C108.495 97.5132 108.247 97.7473 108.004 97.9898C106.443 99.5508 105.209 101.355 104.333 103.357C104.268 103.504 104.206 103.651 104.145 103.8C103.766 104.734 103.47 105.692 103.258 106.667C102.991 107.891 102.856 109.143 102.855 110.412C102.855 111.686 102.989 112.943 103.256 114.17C103.468 115.142 103.763 116.097 104.14 117.027C104.202 117.18 104.266 117.332 104.332 117.482C105.209 119.483 106.443 121.286 108.004 122.848C108.246 123.09 108.494 123.325 108.748 123.551C108.988 123.765 109.234 123.972 109.484 124.172C109.638 124.295 109.794 124.416 109.952 124.533C110.03 124.591 110.108 124.649 110.187 124.705C110.209 124.721 110.232 124.737 110.254 124.753C110.49 124.921 110.731 125.083 110.975 125.239C111.313 125.456 111.659 125.661 112.012 125.853C112.402 126.066 112.8 126.264 113.207 126.447C113.361 126.517 113.516 126.584 113.673 126.649C115.408 127.372 117.228 127.807 119.1 127.946C119.542 127.98 119.986 127.996 120.433 127.996C120.88 127.996 121.327 127.98 121.77 127.947C122.846 127.867 123.906 127.691 124.936 127.421C125.869 127.177 126.78 126.854 127.658 126.458C128.063 126.276 128.462 126.077 128.853 125.863C128.889 125.844 128.925 125.824 128.96 125.804C129.278 125.628 129.59 125.441 129.896 125.244C130.14 125.087 130.379 124.924 130.615 124.755C130.638 124.74 130.66 124.724 130.682 124.707C130.764 124.648 130.846 124.588 130.927 124.527C131.081 124.412 131.234 124.293 131.384 124.172C131.634 123.973 131.878 123.766 132.116 123.551C133.241 122.545 134.241 121.392 135.08 120.126C135.64 119.281 136.126 118.39 136.532 117.466C137 116.403 137.364 115.297 137.614 114.169C137.754 113.543 137.858 112.91 137.927 112.274C138.083 110.833 138.057 109.375 137.85 107.941ZM130.695 122.341C130.45 122.554 130.197 122.759 129.938 122.956C129.917 122.973 129.896 122.989 129.874 123.005C129.458 123.32 129.025 123.614 128.577 123.887C126.236 125.31 123.468 126.146 120.433 126.146C117.399 126.146 114.705 125.343 112.288 123.876C111.843 123.606 111.41 123.313 110.992 122.998C110.972 122.984 110.951 122.968 110.931 122.953C110.673 122.757 110.42 122.552 110.174 122.34C109.878 122.085 109.59 121.818 109.312 121.54C103.161 115.39 103.178 105.432 109.312 99.2977C112.44 96.1702 116.436 94.6938 120.391 94.6938C126.395 94.6938 132.303 98.0982 134.924 104.297C137.74 110.954 135.59 118.098 130.695 122.341Z\",\n fill: \"#333333\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.697 122.34C130.452 122.553 130.199 122.758 129.94 122.956C129.919 122.972 129.898 122.989 129.876 123.005C129.46 123.319 129.027 123.614 128.579 123.887C126.238 125.31 123.47 126.146 120.435 126.146C117.401 126.146 114.707 125.342 112.29 123.875C111.845 123.606 111.412 123.313 110.994 122.998C110.974 122.983 110.953 122.968 110.933 122.952C110.675 122.756 110.422 122.552 110.176 122.339C109.88 122.084 109.592 121.817 109.314 121.539C103.163 115.389 103.18 105.432 109.314 99.2974C112.442 96.1699 116.438 94.6934 120.393 94.6934C126.397 94.6934 132.305 98.0979 134.926 104.296C137.742 110.953 135.592 118.097 130.697 122.34Z\",\n fill: \"#EFEFEF\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.117 136.489L130.619 124.54L131.892 124.482C131.908 124.482 131.949 124.48 136.571 124.345L136.645 124.343C137.331 124.323 137.955 123.994 138.357 123.44C138.76 122.886 138.88 122.191 138.687 121.533L137.358 116.998C137.146 116.272 137.395 115.505 137.994 115.043L141.734 112.155C142.277 111.736 142.588 111.103 142.588 110.418C142.588 109.733 142.277 109.1 141.734 108.681L137.994 105.794C137.395 105.332 137.146 104.564 137.359 103.839L138.688 99.3039C138.881 98.6459 138.76 97.9504 138.357 97.3964C137.955 96.8424 137.331 96.5134 136.645 96.4934L131.922 96.3559C131.166 96.3339 130.513 95.8594 130.259 95.1479L128.668 90.6979C128.357 89.8259 127.524 89.2404 126.597 89.2404C126.158 89.2404 125.732 89.3734 125.364 89.6244L121.462 92.2894C121.157 92.4979 120.802 92.6079 120.434 92.6079C120.067 92.6079 119.712 92.4979 119.406 92.2894L115.504 89.6244C115.136 89.3729 114.71 89.2404 114.272 89.2404C113.344 89.2404 112.512 89.8264 112.2 90.6979C112.2 90.6979 110.652 95.0299 110.609 95.1479C110.355 95.8594 109.702 96.3339 108.947 96.3559L104.223 96.4934C103.538 96.5134 102.914 96.8429 102.511 97.3969C102.109 97.9509 101.988 98.6459 102.181 99.3039C102.181 99.3039 103.495 103.788 103.51 103.838C103.723 104.564 103.474 105.332 102.875 105.794L99.1348 108.681C98.5923 109.1 98.2808 109.733 98.2808 110.419C98.2808 111.104 98.5918 111.737 99.1348 112.156L102.875 115.043C103.474 115.505 103.723 116.272 103.511 116.998L102.182 121.533C102.014 122.107 102.082 122.707 102.373 123.224C102.665 123.741 103.155 124.122 103.719 124.271L103.733 124.275C103.98 124.341 103.99 124.343 106.387 124.409C107.049 124.428 107.885 124.451 108.948 124.482C108.963 124.482 108.978 124.483 108.993 124.484L110.247 124.548L105.752 136.49H51.1083C48.0083 136.49 45.4863 133.968 45.4863 130.868V70.3759C45.4863 67.2759 48.0083 64.7539 51.1083 64.7539H143.602C146.702 64.7539 149.224 67.2759 149.224 70.3759V130.868C149.224 133.968 146.702 136.49 143.602 136.49H135.117V136.489Z\",\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n mixBlendMode: \"multiply\"\n }\n }, _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.4211 128.649H57.4336C56.2936 128.649 55.3691 127.724 55.3691 126.584C55.3691 125.444 56.2936 124.52 57.4336 124.52H92.4211C93.5611 124.52 94.4856 125.444 94.4856 126.584C94.4856 127.724 93.5611 128.649 92.4211 128.649Z\",\n fill: \"#EFEFEF\"\n }))), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n mixBlendMode: \"multiply\"\n }\n }, _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.4211 117.348H57.4336C56.2936 117.348 55.3691 116.423 55.3691 115.283C55.3691 114.143 56.2936 113.219 57.4336 113.219H92.4211C93.5611 113.219 94.4856 114.143 94.4856 115.283C94.4856 116.423 93.5611 117.348 92.4211 117.348Z\",\n fill: \"#EFEFEF\"\n }))), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n mixBlendMode: \"multiply\"\n }\n }, _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.4211 106.047H57.4336C56.2936 106.047 55.3691 105.122 55.3691 103.982C55.3691 102.842 56.2936 101.918 57.4336 101.918H92.4211C93.5611 101.918 94.4856 102.842 94.4856 103.982C94.4856 105.122 93.5611 106.047 92.4211 106.047Z\",\n fill: \"#EFEFEF\"\n }))), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n mixBlendMode: \"multiply\"\n }\n }, _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.4211 94.7442H57.4336C56.2936 94.7442 55.3691 93.8197 55.3691 92.6797C55.3691 91.5397 56.2936 90.6152 57.4336 90.6152H92.4211C93.5611 90.6152 94.4856 91.5397 94.4856 92.6797C94.4856 93.8197 93.5611 94.7442 92.4211 94.7442Z\",\n fill: \"#EFEFEF\"\n }))), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n mixBlendMode: \"multiply\"\n }\n }, _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.41 79.702H70.1889C68.4074 79.702 66.9629 78.2575 66.9629 76.476C66.9629 74.6945 68.4074 73.25 70.1889 73.25H127.41C129.191 73.25 130.636 74.6945 130.636 76.476C130.636 78.2575 129.191 79.702 127.41 79.702Z\",\n fill: \"#EFEFEF\"\n }))), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M143.603 65.6786C146.193 65.6786 148.3 67.7856 148.3 70.3756V130.868C148.3 133.458 146.193 135.565 143.603 135.565H135.759L131.935 125.407C131.989 125.405 136.617 125.27 136.674 125.269C138.717 125.209 140.152 123.236 139.577 121.273L138.248 116.738C138.143 116.381 138.266 116.003 138.561 115.776L142.302 112.888C143.073 112.293 143.515 111.393 143.515 110.419C143.515 109.445 143.073 108.545 142.302 107.949L138.561 105.062C138.266 104.834 138.143 104.456 138.248 104.099L139.577 99.5641C140.152 97.6031 138.719 95.6281 136.674 95.5686L131.951 95.4311C131.579 95.4201 131.257 95.1866 131.131 94.8361L129.541 90.3861C129.074 89.0796 127.858 88.3146 126.598 88.3146C125.998 88.3146 125.388 88.4881 124.844 88.8596L120.942 91.5251C120.788 91.6301 120.611 91.6826 120.435 91.6826C120.259 91.6826 120.083 91.6301 119.93 91.5251C119.795 91.4331 116.162 88.9516 116.027 88.8596C115.483 88.4881 114.873 88.3146 114.273 88.3146C113.012 88.3146 111.797 89.0811 111.33 90.3861C111.296 90.4826 109.799 94.6706 109.74 94.8361C109.614 95.1866 109.293 95.4201 108.92 95.4311L104.197 95.5686C102.154 95.6281 100.719 97.6011 101.294 99.5641C101.315 99.6346 102.602 104.029 102.623 104.099C102.727 104.456 102.605 104.834 102.31 105.062L98.57 107.949C96.952 109.198 96.9515 111.639 98.57 112.888L102.31 115.775C102.605 116.003 102.728 116.381 102.623 116.738L101.294 121.273C100.786 123.006 101.844 124.732 103.482 125.165C103.954 125.29 103.779 125.256 108.92 125.406C108.925 125.406 108.93 125.407 108.935 125.407C108.845 125.646 106.872 130.891 105.112 135.565H51.1095C48.5195 135.565 46.4125 133.458 46.4125 130.868V70.3751C46.4125 67.7851 48.5195 65.6781 51.1095 65.6781H143.603V65.6786ZM143.603 63.8286H51.1095C47.4995 63.8286 44.5625 66.7656 44.5625 70.3756V130.868C44.5625 134.478 47.4995 137.415 51.1095 137.415H106.393L106.844 136.217L110.667 126.059L111.567 123.669L109.039 123.56C109.021 123.559 108.998 123.558 108.974 123.557C107.91 123.526 107.079 123.503 106.411 123.484C104.992 123.445 104.206 123.423 104.043 123.399C104.029 123.396 103.996 123.387 103.97 123.38L103.956 123.376C103.632 123.291 103.349 123.069 103.18 122.769C103.061 122.558 102.945 122.218 103.07 121.792L104.399 117.257C104.719 116.163 104.344 115.006 103.442 114.31L99.701 111.422C99.271 111.09 99.207 110.65 99.207 110.417C99.207 110.184 99.271 109.744 99.701 109.412L103.442 106.525C104.344 105.828 104.719 104.671 104.399 103.578C104.378 103.507 103.09 99.1131 103.07 99.0426C102.917 98.5216 103.124 98.1276 103.26 97.9396C103.397 97.7511 103.708 97.4326 104.251 97.4171L108.975 97.2796C110.114 97.2466 111.098 96.5316 111.481 95.4581C111.54 95.2926 113.037 91.1046 113.072 91.0081C113.294 90.3851 113.858 90.1641 114.273 90.1641C114.528 90.1641 114.767 90.2391 114.983 90.3871C115.118 90.4791 118.751 92.9606 118.886 93.0526C119.345 93.3666 119.881 93.5326 120.435 93.5326C120.989 93.5326 121.525 93.3666 121.985 93.0526L125.887 90.3876C126.104 90.2396 126.342 90.1646 126.598 90.1646C127.012 90.1646 127.576 90.3856 127.798 91.0086L129.389 95.4586C129.773 96.5321 130.756 97.2471 131.896 97.2801L136.619 97.4176C137.162 97.4336 137.473 97.7516 137.61 97.9396C137.747 98.1281 137.954 98.5221 137.801 99.0436L136.472 103.579C136.151 104.673 136.528 105.829 137.43 106.526L141.17 109.413C141.488 109.659 141.664 110.016 141.664 110.418C141.664 110.821 141.488 111.177 141.17 111.423L137.43 114.311C136.527 115.007 136.151 116.164 136.472 117.258L137.801 121.793C137.954 122.314 137.747 122.708 137.61 122.896C137.473 123.085 137.163 123.403 136.62 123.419L136.375 123.426C131.914 123.555 131.88 123.557 131.852 123.558L129.306 123.673L130.204 126.058L134.027 136.216L134.478 137.415H143.603C147.213 137.415 150.15 134.478 150.15 130.868V70.3751C150.15 66.7651 147.213 63.8281 143.603 63.8281L143.603 63.8286Z\",\n fill: \"#333333\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n mixBlendMode: \"multiply\"\n }\n }, _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144.896 65.123H52.4025C48.7925 65.123 45.8555 68.0601 45.8555 71.6701V132.163C45.8555 135.773 48.7925 138.71 52.4025 138.71H105.794C105.709 138.935 105.626 139.155 105.545 139.37C104.738 141.514 104.135 143.114 104.056 143.327L102.577 147.255L106.475 145.696C107.792 145.168 108.794 144.766 109.598 144.442C110.597 144.041 111.299 143.758 111.713 143.598L114.269 148.63L116.172 152.374L117.65 148.442C117.726 148.24 118.793 145.406 120.055 142.054L120.575 140.673C120.827 140.002 121.083 139.322 121.337 138.649L121.728 137.609L121.998 138.326C122.291 139.104 122.588 139.895 122.881 140.674C124.369 144.626 125.742 148.273 125.806 148.444L127.286 152.371L129.187 148.629L131.744 143.598C132.152 143.756 132.842 144.033 133.823 144.428C134.635 144.754 135.644 145.16 136.982 145.696L140.879 147.255L139.4 143.326L137.911 139.37L137.663 138.71H144.895C148.505 138.71 151.442 135.773 151.442 132.163V71.6701C151.442 68.0601 148.505 65.123 144.895 65.123H144.896ZM110.606 100.592C113.734 97.464 117.73 95.9875 121.685 95.9875C127.689 95.9875 133.597 99.3921 136.218 105.591C139.034 112.248 136.884 119.392 131.989 123.635C131.744 123.848 131.491 124.053 131.232 124.25C131.211 124.267 131.19 124.283 131.168 124.299C130.752 124.614 130.319 124.908 129.871 125.181C127.53 126.604 124.762 127.44 121.727 127.44C118.693 127.44 115.999 126.637 113.582 125.17C113.137 124.9 112.704 124.607 112.286 124.292C112.266 124.278 112.245 124.262 112.225 124.247C111.967 124.051 111.714 123.846 111.468 123.634C111.172 123.379 110.884 123.112 110.606 122.834C104.455 116.684 104.472 106.726 110.606 100.592ZM114.967 127.943C116.702 128.666 118.522 129.101 120.394 129.24C120.314 129.295 120.232 129.35 120.151 129.406L119.504 129.848C118.918 130.248 118.424 130.585 118.363 130.627C118.006 130.87 117.592 130.999 117.166 130.999C116.44 130.999 115.528 130.616 115.144 129.541L114.501 127.741C114.655 127.811 114.81 127.878 114.967 127.943ZM126.23 128.715C127.163 128.471 128.074 128.148 128.952 127.752L128.297 129.584C127.99 130.443 127.2 130.999 126.285 130.999C125.862 130.999 125.449 130.87 125.092 130.626C125.02 130.576 124.133 129.971 123.308 129.407L123.064 129.241C124.14 129.161 125.2 128.985 126.23 128.715ZM136.374 121.42C136.934 120.575 137.42 119.684 137.826 118.76C137.826 118.76 137.826 118.76 137.826 118.759L139.094 123.088C139.247 123.609 139.04 124.003 138.904 124.191C138.767 124.38 138.456 124.698 137.913 124.714L137.668 124.721C134.876 124.802 133.818 124.833 133.411 124.845C134.535 123.839 135.535 122.685 136.375 121.419L136.374 121.42ZM138.908 115.463C139.048 114.837 139.152 114.204 139.221 113.568C139.377 112.127 139.351 110.669 139.144 109.235C139.083 108.81 139.006 108.387 138.913 107.967L142.464 110.708C142.782 110.954 142.958 111.31 142.958 111.713C142.958 112.115 142.782 112.472 142.464 112.718L138.908 115.462V115.463ZM139.094 100.338L137.829 104.655C136.801 102.308 135.306 100.248 133.435 98.5815L137.913 98.712C138.456 98.728 138.766 99.0461 138.903 99.2341C139.04 99.4226 139.247 99.8165 139.094 100.338ZM126.634 94.8391C125.593 94.5381 124.529 94.3331 123.455 94.2261L127.18 91.682C127.397 91.534 127.636 91.4591 127.891 91.4591C128.306 91.4591 128.869 91.6801 129.092 92.3031L130.604 96.5331C129.359 95.8106 128.027 95.2416 126.634 94.8391ZM112.855 96.5281C113.177 95.6281 114.335 92.3881 114.365 92.3031C114.588 91.6801 115.151 91.4591 115.566 91.4591C115.821 91.4591 116.06 91.534 116.277 91.682C116.395 91.763 119.222 93.6935 119.991 94.2185C117.454 94.4615 115.03 95.2506 112.855 96.5281ZM110.042 98.581C109.789 98.807 109.541 99.0411 109.298 99.2836C107.737 100.845 106.503 102.649 105.627 104.651C105.362 103.749 104.381 100.4 104.363 100.338C104.21 99.817 104.417 99.423 104.553 99.235C104.69 99.0465 105.001 98.728 105.544 98.7125L110.042 98.5815L110.042 98.581ZM104.552 107.961C104.285 109.185 104.15 110.437 104.149 111.706C104.149 112.98 104.283 114.236 104.55 115.464L100.993 112.718C100.563 112.386 100.499 111.946 100.499 111.713C100.499 111.48 100.563 111.04 100.993 110.708L104.552 107.961V107.961ZM104.363 123.088L105.626 118.777C106.503 120.778 107.737 122.581 109.298 124.143C109.54 124.385 109.788 124.619 110.042 124.845C109.085 124.818 108.324 124.797 107.704 124.779C106.285 124.74 105.498 124.718 105.335 124.694C105.321 124.691 105.289 124.682 105.263 124.675L105.248 124.671C104.924 124.586 104.641 124.364 104.472 124.064C104.353 123.853 104.238 123.513 104.363 123.087V123.088ZM131.603 141.633H131.537C131.018 141.633 130.522 141.92 130.273 142.408L127.538 147.791C127.474 147.621 126.101 143.974 124.613 140.022C124.2 138.925 123.779 137.805 123.374 136.73C122.757 135.09 122.178 133.553 121.728 132.358C121.279 133.553 120.7 135.09 120.083 136.73C119.678 137.805 119.257 138.925 118.844 140.022C117.368 143.941 116.006 147.562 115.919 147.791L113.184 142.408C112.935 141.92 112.439 141.633 111.92 141.633C111.894 141.633 111.872 141.632 111.851 141.632C111.56 141.632 111.455 141.71 105.788 143.978C105.867 143.766 106.47 142.166 107.277 140.022C107.656 139.015 108.08 137.889 108.516 136.73C110.207 132.238 112.081 127.258 112.226 126.873L113.402 130.164C114.02 131.893 115.573 132.849 117.166 132.849C117.938 132.849 118.72 132.624 119.409 132.154C119.487 132.1 120.368 131.498 121.193 130.935C121.378 130.809 121.559 130.685 121.729 130.569C121.898 130.685 122.079 130.808 122.264 130.935C123.09 131.499 123.977 132.105 124.049 132.154C124.743 132.628 125.521 132.849 126.285 132.849C127.894 132.849 129.445 131.871 130.039 130.207L131.231 126.873L134.941 136.73L136.18 140.022L137.669 143.978C131.99 141.705 131.901 141.633 131.603 141.633ZM149.593 132.163C149.593 134.753 147.486 136.86 144.896 136.86H137.052L133.228 126.702C133.282 126.7 137.91 126.565 137.967 126.564C140.009 126.504 141.445 124.531 140.87 122.568L139.541 118.033C139.436 117.676 139.559 117.298 139.854 117.071L143.594 114.183C144.365 113.588 144.808 112.688 144.808 111.714C144.808 110.74 144.366 109.84 143.594 109.244L139.854 106.357C139.559 106.129 139.436 105.751 139.541 105.394L140.87 100.859C141.444 98.8981 140.012 96.9231 137.967 96.8636L133.243 96.7261C132.871 96.7151 132.55 96.4815 132.424 96.131L130.834 91.681C130.367 90.3745 129.151 89.6095 127.891 89.6095C127.291 89.6095 126.681 89.783 126.137 90.1545L122.234 92.8201C122.081 92.9251 121.904 92.9776 121.728 92.9776C121.552 92.9776 121.376 92.9251 121.222 92.8201C121.088 92.7281 117.455 90.247 117.32 90.1545C116.776 89.783 116.166 89.6095 115.566 89.6095C114.305 89.6095 113.089 90.376 112.623 91.681C112.588 91.7775 111.091 95.9655 111.032 96.131C110.907 96.4815 110.586 96.7151 110.213 96.7261L105.49 96.8636C103.447 96.9231 102.012 98.8961 102.587 100.859C102.607 100.93 103.895 105.324 103.916 105.394C104.02 105.752 103.898 106.129 103.603 106.357L99.863 109.244C98.245 110.493 98.2445 112.934 99.863 114.183L103.603 117.07C103.898 117.298 104.021 117.676 103.916 118.033L102.587 122.568C102.079 124.301 103.137 126.027 104.775 126.46C105.247 126.585 105.072 126.551 110.213 126.701C110.218 126.701 110.223 126.702 110.228 126.702C110.138 126.941 108.164 132.186 106.405 136.86H52.4025C49.8125 136.86 47.7055 134.753 47.7055 132.163V71.6701C47.7055 69.0801 49.8125 66.973 52.4025 66.973H144.896C147.486 66.973 149.593 69.0801 149.593 71.6701V132.163V132.163Z\",\n fill: \"#DDDDDD\",\n fillOpacity: 0.58\n }))), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.9797 127.205H55.9922C54.8522 127.205 53.9277 126.281 53.9277 125.141C53.9277 124.001 54.8522 123.076 55.9922 123.076H90.9797C92.1197 123.076 93.0442 124.001 93.0442 125.141C93.0442 126.281 92.1197 127.205 90.9797 127.205Z\",\n fill: \"#00438B\",\n fillOpacity: 0.76\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.9797 115.904H55.9922C54.8522 115.904 53.9277 114.98 53.9277 113.84C53.9277 112.7 54.8522 111.775 55.9922 111.775H90.9797C92.1197 111.775 93.0442 112.7 93.0442 113.84C93.0442 114.98 92.1197 115.904 90.9797 115.904Z\",\n fill: \"#B5B5B5\",\n fillOpacity: 0.53\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.9797 104.604H55.9922C54.8522 104.604 53.9277 103.679 53.9277 102.539C53.9277 101.399 54.8522 100.475 55.9922 100.475H90.9797C92.1197 100.475 93.0442 101.399 93.0442 102.539C93.0442 103.679 92.1197 104.604 90.9797 104.604Z\",\n fill: \"#B5B5B5\",\n fillOpacity: 0.53\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.9797 93.3028H55.9922C54.8522 93.3028 53.9277 92.3783 53.9277 91.2383C53.9277 90.0983 54.8522 89.1738 55.9922 89.1738H90.9797C92.1197 89.1738 93.0442 90.0983 93.0442 91.2383C93.0442 92.3783 92.1197 93.3028 90.9797 93.3028Z\",\n fill: \"#B5B5B5\",\n fillOpacity: 0.53\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.967 78.2606H68.7455C66.964 78.2606 65.5195 76.8161 65.5195 75.0346C65.5195 73.2531 66.964 71.8086 68.7455 71.8086H125.967C127.748 71.8086 129.193 73.2531 129.193 75.0346C129.193 76.8161 127.748 78.2606 125.967 78.2606Z\",\n fill: \"#00438B\",\n fillOpacity: 0.76\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.175 135.564C106.937 136.196 106.703 136.818 106.479 137.414Z\",\n fill: \"#333333\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.0176 131.031C45.5286 131.031 45.9426 131.445 45.9426 131.956C45.9426 132.467 45.5286 132.881 45.0176 132.881\",\n fill: \"#333333\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.9883 131.031C37.4993 131.031 37.9133 131.445 37.9133 131.956Z\",\n fill: \"#333333\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M149.718 132.881C149.207 132.881 148.793 132.467 148.793 131.956C148.793 131.445 149.207 131.031 149.718 131.031\",\n fill: \"#333333\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5420_35697\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 200,\n height: 200,\n fill: \"white\",\n transform: \"translate(0.5)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgResultMdIcon);\nexport default __webpack_public_path__ + \"static/media/result-md-icon.4dc091f090da3606fcc3cb516b455d42.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport ResultIcon from \"assets/images/icons/result-md-icon.svg\";\n\nexport const PublishSoonCard = ({ message, goToDashboard }) => {\n return (\n
    \n
    \n
    \n
    \n
    \n \"icon\"\n

    {message}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n","// canvas-confetti v1.9.3 built on 2024-04-30T22:19:17.794Z\nvar module = {};\n\n// source content\n/* globals Map */\n\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n var canUsePaths = typeof Path2D === 'function' && typeof DOMMatrix === 'function';\n var canDrawBitmap = (function () {\n // this mostly supports ssr\n if (!global.OffscreenCanvas) {\n return false;\n }\n\n var canvas = new OffscreenCanvas(1, 1);\n var ctx = canvas.getContext('2d');\n ctx.fillRect(0, 0, 1, 1);\n var bitmap = canvas.transferToImageBitmap();\n\n try {\n ctx.createPattern(bitmap, 'no-repeat');\n } catch (e) {\n return false;\n }\n\n return true;\n })();\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var bitmapMapper = (function (skipTransform, map) {\n // see https://github.com/catdad/canvas-confetti/issues/209\n // creating canvases is actually pretty expensive, so we should create a\n // 1:1 map for bitmap:canvas, so that we can animate the confetti in\n // a performant manner, but also not store them forever so that we don't\n // have a memory leak\n return {\n transform: function(bitmap) {\n if (skipTransform) {\n return bitmap;\n }\n\n if (map.has(bitmap)) {\n return map.get(bitmap);\n }\n\n var canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bitmap, 0, 0);\n\n map.set(bitmap, canvas);\n\n return canvas;\n },\n clear: function () {\n map.clear();\n }\n };\n })(canDrawBitmap, new Map());\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI && CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05),\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 2,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar,\n flat: opts.flat\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.velocity *= fetti.decay;\n\n if (fetti.flat) {\n fetti.wobble = 0;\n fetti.wobbleX = fetti.x + (10 * fetti.scalar);\n fetti.wobbleY = fetti.y + (10 * fetti.scalar);\n\n fetti.tiltSin = 0;\n fetti.tiltCos = 0;\n fetti.random = 1;\n } else {\n fetti.wobble += fetti.wobbleSpeed;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 2;\n }\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n\n context.beginPath();\n\n if (canUsePaths && fetti.shape.type === 'path' && typeof fetti.shape.path === 'string' && Array.isArray(fetti.shape.matrix)) {\n context.fill(transformPath2D(\n fetti.shape.path,\n fetti.shape.matrix,\n fetti.x,\n fetti.y,\n Math.abs(x2 - x1) * 0.1,\n Math.abs(y2 - y1) * 0.1,\n Math.PI / 10 * fetti.wobble\n ));\n } else if (fetti.shape.type === 'bitmap') {\n var rotation = Math.PI / 10 * fetti.wobble;\n var scaleX = Math.abs(x2 - x1) * 0.1;\n var scaleY = Math.abs(y2 - y1) * 0.1;\n var width = fetti.shape.bitmap.width * fetti.scalar;\n var height = fetti.shape.bitmap.height * fetti.scalar;\n\n var matrix = new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n fetti.x,\n fetti.y\n ]);\n\n // apply the transform matrix from the confetti shape\n matrix.multiplySelf(new DOMMatrix(fetti.shape.matrix));\n\n var pattern = context.createPattern(bitmapMapper.transform(fetti.shape.bitmap), 'no-repeat');\n pattern.setTransform(matrix);\n\n context.globalAlpha = (1 - progress);\n context.fillStyle = pattern;\n context.fillRect(\n fetti.x - (width / 2),\n fetti.y - (height / 2),\n width,\n height\n );\n context.globalAlpha = 1;\n } else if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else if (fetti.shape === 'star') {\n var rot = Math.PI / 2 * 3;\n var innerRadius = 4 * fetti.scalar;\n var outerRadius = 8 * fetti.scalar;\n var x = fetti.x;\n var y = fetti.y;\n var spikes = 5;\n var step = Math.PI / spikes;\n\n while (spikes--) {\n x = fetti.x + Math.cos(rot) * outerRadius;\n y = fetti.y + Math.sin(rot) * outerRadius;\n context.lineTo(x, y);\n rot += step;\n\n x = fetti.x + Math.cos(rot) * innerRadius;\n y = fetti.y + Math.sin(rot) * innerRadius;\n context.lineTo(x, y);\n rot += step;\n }\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var hasResizeEventRegistered = false;\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var flat = !!prop(options, 'flat');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar,\n flat: flat\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n hasResizeEventRegistered = false;\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n if (document.body.contains(canvas)) {\n document.body.removeChild(canvas); \n }\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize && !hasResizeEventRegistered) {\n hasResizeEventRegistered = true;\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n // Make default export lazy to defer worker creation until called.\n var defaultFire;\n function getDefaultFire() {\n if (!defaultFire) {\n defaultFire = confettiCannon(null, { useWorker: true, resize: true });\n }\n return defaultFire;\n }\n\n function transformPath2D(pathString, pathMatrix, x, y, scaleX, scaleY, rotation) {\n var path2d = new Path2D(pathString);\n\n var t1 = new Path2D();\n t1.addPath(path2d, new DOMMatrix(pathMatrix));\n\n var t2 = new Path2D();\n // see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/DOMMatrix\n t2.addPath(t1, new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n x,\n y\n ]));\n\n return t2;\n }\n\n function shapeFromPath(pathData) {\n if (!canUsePaths) {\n throw new Error('path confetti are not supported in this browser');\n }\n\n var path, matrix;\n\n if (typeof pathData === 'string') {\n path = pathData;\n } else {\n path = pathData.path;\n matrix = pathData.matrix;\n }\n\n var path2d = new Path2D(path);\n var tempCanvas = document.createElement('canvas');\n var tempCtx = tempCanvas.getContext('2d');\n\n if (!matrix) {\n // attempt to figure out the width of the path, up to 1000x1000\n var maxSize = 1000;\n var minX = maxSize;\n var minY = maxSize;\n var maxX = 0;\n var maxY = 0;\n var width, height;\n\n // do some line skipping... this is faster than checking\n // every pixel and will be mostly still correct\n for (var x = 0; x < maxSize; x += 2) {\n for (var y = 0; y < maxSize; y += 2) {\n if (tempCtx.isPointInPath(path2d, x, y, 'nonzero')) {\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n }\n }\n\n width = maxX - minX;\n height = maxY - minY;\n\n var maxDesiredSize = 10;\n var scale = Math.min(maxDesiredSize/width, maxDesiredSize/height);\n\n matrix = [\n scale, 0, 0, scale,\n -Math.round((width/2) + minX) * scale,\n -Math.round((height/2) + minY) * scale\n ];\n }\n\n return {\n type: 'path',\n path: path,\n matrix: matrix\n };\n }\n\n function shapeFromText(textData) {\n var text,\n scalar = 1,\n color = '#000000',\n // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/\n fontFamily = '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\", \"EmojiOne Color\", \"Android Emoji\", \"Twemoji Mozilla\", \"system emoji\", sans-serif';\n\n if (typeof textData === 'string') {\n text = textData;\n } else {\n text = textData.text;\n scalar = 'scalar' in textData ? textData.scalar : scalar;\n fontFamily = 'fontFamily' in textData ? textData.fontFamily : fontFamily;\n color = 'color' in textData ? textData.color : color;\n }\n\n // all other confetti are 10 pixels,\n // so this pixel size is the de-facto 100% scale confetti\n var fontSize = 10 * scalar;\n var font = '' + fontSize + 'px ' + fontFamily;\n\n var canvas = new OffscreenCanvas(fontSize, fontSize);\n var ctx = canvas.getContext('2d');\n\n ctx.font = font;\n var size = ctx.measureText(text);\n var width = Math.ceil(size.actualBoundingBoxRight + size.actualBoundingBoxLeft);\n var height = Math.ceil(size.actualBoundingBoxAscent + size.actualBoundingBoxDescent);\n\n var padding = 2;\n var x = size.actualBoundingBoxLeft + padding;\n var y = size.actualBoundingBoxAscent + padding;\n width += padding + padding;\n height += padding + padding;\n\n canvas = new OffscreenCanvas(width, height);\n ctx = canvas.getContext('2d');\n ctx.font = font;\n ctx.fillStyle = color;\n\n ctx.fillText(text, x, y);\n\n var scale = 1 / scalar;\n\n return {\n type: 'bitmap',\n // TODO these probably need to be transfered for workers\n bitmap: canvas.transferToImageBitmap(),\n matrix: [scale, 0, 0, scale, -width * scale / 2, -height * scale / 2]\n };\n }\n\n module.exports = function() {\n return getDefaultFire().apply(this, arguments);\n };\n module.exports.reset = function() {\n getDefaultFire().reset();\n };\n module.exports.create = confettiCannon;\n module.exports.shapeFromPath = shapeFromPath;\n module.exports.shapeFromText = shapeFromText;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","import React, { useEffect, useRef } from \"react\";\nimport confetti from \"canvas-confetti\";\n\nexport const ConfettiEffect = () => {\n const canvasRef = useRef(null);\n\n useEffect(() => {\n const myConfetti = confetti.create(canvasRef.current, { resize: true });\n\n const timeoutId = setTimeout(() => {\n (function frame() {\n myConfetti({\n particleCount: 220,\n spread: 150,\n origin: { y: 0.4 },\n colors: [\"#2760ad\", \"#faa51a\", \"#ffffff\", \"#26db3e\"],\n scalar: 0.8,\n });\n })();\n }, 1000);\n\n // Clean up\n return () => {\n clearTimeout(timeoutId);\n myConfetti.reset();\n };\n }, []);\n\n return (\n \n );\n};\n","import React from \"react\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport tokenIcon from \"assets/images/assessment-session-expired.svg\";\n\nexport const TokenExpiredModal = ({ message, isOpen, onSubmit, ...rest }) => {\n return (\n \n \n
    \n \"\"\n

    Invalid Token

    \n

    {message}

    \n
    \n \n
    \n
    \n
    \n
    \n );\n};\n","import { Axios } from \"utils\";\n\nexport const getAssessmentList = async (studentBatchId) => {\n const res = await Axios.get(\n `/v2/portal/assessments/batches/${studentBatchId}`\n );\n return res.data;\n};\n\nexport const getAssessmentSchedule = async ({\n assessmentId,\n studentBatchId,\n}) => {\n const res = await Axios.get(\n `/v2/portal/assessments/${assessmentId}/batches/${studentBatchId}/schedules`\n );\n return res.data;\n};\n\nexport const getAssessmentSlot = async (scheduleId) => {\n const res = await Axios.get(\n `/v2/portal/assessments/schedules/${scheduleId}/slots`\n );\n return res.data;\n};\n\nexport const createAssessmentSchedule = async ({ slotId }) => {\n const res = await Axios.post(\n `/v2/portal/assessments/${slotId}/create-schedule`\n );\n return res.data;\n};\n\nexport const assessmentResult = async (assessmentMasterId) => {\n const res = await Axios.get(\n `/v2/portal/assessments/${assessmentMasterId}/result`,\n {\n headers: {\n \"Exam-Token\": sessionStorage.getItem(\"assessmentToken\") || \"\",\n },\n }\n );\n return res.data;\n};\n","export const GET_ASSESSMENT_LIST = \"GET_ASSESSMENT_LIST\";\nexport const GET_ASSESSMENT_SCHEDULE = \"GET_ASSESSMENT_SCHEDULE\";\nexport const GET_ASSESSMENT_SLOT = \"GET_ASSESSMENT_SLOT\";\nexport const GET_ASSESSMENT_RESULT = \"GET_ASSESSMENT_RESULT\";\n","import React from \"react\";\nimport { CertificateList } from \".\";\nimport \"./style/certificate.styles.css\";\nimport { Route, Routes } from \"react-router-dom\";\n\nexport const Certificate = ({ isAllCertificate = false }) => {\n return (\n \n }\n path={\"/\"}\n />\n \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68, _path69, _path70, _path71, _path72, _path73, _path74, _path75, _path76, _path77, _path78, _path79, _path80, _path81, _path82, _path83, _path84, _path85, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgErrorNoCertificateFoundGraphics(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 377,\n height: 321,\n viewBox: \"0 0 377 321\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M205.787 2.37963C251.38 4.9345 298.03 11.2968 329.984 35.9639C361.635 60.398 366.719 95.6234 370.661 129.658C375.154 168.446 387.211 211.639 353.766 241.293C318.982 272.135 258.254 284.397 205.787 275.845C159.371 268.279 188.853 222.71 154.505 197.972C118.465 172.016 37.5849 205.666 2.80427 129.658C-7.95162 89.7772 20.1722 46.9419 61.6595 20.9277C100.623 -3.50369 155.261 -0.451682 205.787 2.37963Z\",\n fill: \"url(#paint0_linear_6310_20590)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M308.143 152.605L297.895 149.73L264.267 269.606L274.515 272.481L308.143 152.605Z\",\n fill: \"#5F6368\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M306.998 136.98L297.894 149.73L308.142 152.607L306.998 136.98Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M306.998 136.98L302.445 143.356L307.57 144.793L306.998 136.98Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M287.134 125.21L276.538 124.195L264.67 248.132L275.266 249.146L287.134 125.21Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.464 125.316L286.012 126.134L274.338 248.018L265.793 247.2L277.464 125.316ZM276.537 124.192L264.67 248.125L275.265 249.139L287.135 125.203L276.537 124.188V124.192Z\",\n fill: \"black\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M283.241 110.031L276.537 124.193L287.135 125.208L283.241 110.031Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M283.241 110.031L279.89 117.111L285.188 117.618L283.241 110.031Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.502 210.934H154.444V268.359H173.502V210.934Z\",\n fill: \"#9599A2\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M192.021 268.359H135.931C134.557 268.359 133.443 269.473 133.443 270.847C133.443 272.22 134.557 273.334 135.931 273.334H192.021C193.395 273.334 194.509 272.22 194.509 270.847C194.509 269.473 193.395 268.359 192.021 268.359Z\",\n fill: \"#9599A2\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M251.75 66.6016H76.3636C70.9304 66.6016 66.5259 71.0061 66.5259 76.4393V201.798C66.5259 207.231 70.9304 211.636 76.3636 211.636H251.75C257.183 211.636 261.588 207.231 261.588 201.798V76.4393C261.588 71.0061 257.183 66.6016 251.75 66.6016Z\",\n fill: \"#9599A2\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M249.741 71.7109H78.2257C74.4025 71.7109 71.3032 74.8102 71.3032 78.6333V199.789C71.3032 203.612 74.4025 206.711 78.2257 206.711H249.741C253.564 206.711 256.664 203.612 256.664 199.789V78.6333C256.664 74.8102 253.564 71.7109 249.741 71.7109Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.499 194.143L101.65 194.274V100.016H226.499V194.143Z\",\n fill: \"white\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M225.469 101.046V193.113L102.678 193.244V101.048L225.469 101.046ZM226.499 100.016H101.648V194.272L226.499 194.14V100.016Z\",\n fill: \"black\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M234.804 96.0703L225.564 100.213L225.985 101.153L235.225 97.0103L234.804 96.0703Z\",\n fill: \"black\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M232.533 97.9609H231.503V193.816H232.533V97.9609Z\",\n fill: \"black\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M229.649 99.1094H228.619V193.811H229.649V99.1094Z\",\n fill: \"black\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.6131 194.731L92.583 194.636L101.635 97.9098C101.647 97.7882 101.701 97.6746 101.788 97.5893C101.875 97.5039 101.99 97.4523 102.112 97.4437C104.12 97.2994 151.197 93.9773 164.076 99.4576C177.643 93.9644 232.682 95.9371 235.031 96.0247C235.164 96.03 235.29 96.0866 235.382 96.1826C235.474 96.2786 235.526 96.4066 235.526 96.5397V193.814C235.526 193.951 235.471 194.082 235.375 194.178C235.278 194.275 235.147 194.329 235.01 194.329H117.265V193.299H234.498V97.0368C228.832 96.8462 176.62 95.2572 164.274 100.49C164.21 100.518 164.14 100.533 164.07 100.533C163.999 100.533 163.93 100.518 163.865 100.49C152.147 95.2675 107.53 98.1132 102.624 98.4455L93.6131 194.731Z\",\n fill: \"black\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.401 266.324V273.764H112.429V269.757L104.401 266.324Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.385 257.589L148.168 256.654L148.732 195.04C148.744 193.647 148.634 192.256 148.403 190.883C146.536 179.729 136.752 174.424 125.446 174.169L96.2217 174.082L120.96 197.393L121.385 257.589Z\",\n fill: \"#2760AD\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.8279 175.12L125.436 175.199C131.102 175.328 136.1 176.745 139.891 179.294C144.012 182.073 146.548 186.031 147.391 191.053C147.61 192.367 147.715 193.697 147.705 195.029L147.151 255.657L122.428 256.523L121.99 197.393V196.953L121.668 196.652L98.8279 175.12ZM96.2242 174.089L120.96 197.393L121.385 257.589L148.168 256.654L148.732 195.04C148.744 193.647 148.634 192.256 148.403 190.883C146.536 179.729 136.752 174.424 125.446 174.169L96.2217 174.082L96.2242 174.089Z\",\n fill: \"black\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.393 255.703L121.473 273.763L165.227 273.606L148.277 255.718L121.393 255.703Z\",\n fill: \"black\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.428 256.733L147.834 256.748L162.848 272.591L122.505 272.736L122.428 256.733ZM121.398 255.703L121.478 273.763L165.232 273.606L148.282 255.718L121.385 255.703H121.398Z\",\n fill: \"black\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.417 255.703L104.401 267.469L120.098 273.73L148.738 273.606L131.787 255.718L104.417 255.703Z\",\n fill: \"black\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.444 256.733L131.344 256.748L146.35 272.586L120.293 272.7L105.431 266.776L105.444 256.733ZM104.414 255.703L104.398 267.469L120.098 273.73L148.738 273.606L131.787 255.718L104.417 255.703H104.414Z\",\n fill: \"black\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.916 190.696C130.046 179.545 120.772 174.415 109.467 174.16H107.033V174.103L100.412 173.184L59.4336 173.441L59.4928 184.744C59.4928 200.531 68.3107 206.243 80.9374 206.276L104.96 206.233L104.836 256.261H131.849L132.245 194.86C132.256 193.465 132.146 192.072 131.916 190.696Z\",\n fill: \"#2760AD\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.361 256.775H104.321L104.445 206.75L80.953 206.791C74.1232 206.773 68.8078 205.094 65.1483 201.8C61.0613 198.12 58.9881 192.382 58.9907 184.744L58.916 172.926L100.446 172.668H100.482L107.474 173.647H109.467C122.302 173.956 130.657 180.137 132.423 190.618C132.658 192.021 132.771 193.442 132.761 194.865L132.361 256.775ZM105.354 255.745H131.336L131.73 194.857C131.741 193.494 131.633 192.133 131.408 190.788C129.74 180.832 121.738 174.96 109.454 174.682H106.518V174.559L100.376 173.698L59.9436 173.956L60.0002 184.744C60.0002 198.651 67.0411 205.728 80.9324 205.764L105.47 205.72L105.354 255.745Z\",\n fill: \"black\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.4289 96.965L58.9209 107.722L58.9415 173.957L107.033 174.111L117.939 96.8672L68.4289 96.965Z\",\n fill: \"#82C6AE\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.75 97.8999L106.137 173.079L59.9716 172.927L59.951 108.111L68.8951 97.9849L116.75 97.8999ZM117.937 96.8698L68.4289 96.9547L58.9209 107.712L58.9415 173.957L107.033 174.111L117.939 96.8672L117.937 96.8698Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.411 130.637C118.98 131.266 118.926 147.701 118.303 148.271C117.679 148.84 116.701 133.334 116.132 132.698C115.908 132.389 115.807 132.009 115.846 131.63C115.886 131.251 116.064 130.9 116.347 130.645C116.63 130.39 116.997 130.248 117.377 130.246C117.758 130.245 118.126 130.384 118.411 130.637Z\",\n fill: \"white\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.3 127.652C111.3 127.652 103.026 173.441 105.676 174.795C114.393 179.22 128.887 176.377 128.908 161.337C128.908 155.638 128.887 128.978 128.887 128.978L111.3 127.652Z\",\n fill: \"#82C6AE\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.15 128.749L127.859 129.933C127.859 134.749 127.885 156.315 127.877 161.334C127.877 166.008 126.358 169.804 123.499 172.313C121.04 174.473 117.612 175.661 113.852 175.661C111.252 175.666 108.684 175.088 106.338 173.969C106.209 173.546 105.959 171.878 106.569 165.728C106.969 161.697 107.672 156.351 108.655 149.835C110.067 140.6 111.645 131.587 112.15 128.749ZM111.3 127.652C111.3 127.652 103.026 173.441 105.676 174.795C108.218 176.055 111.018 176.706 113.855 176.696C121.336 176.696 128.892 172.194 128.908 161.337C128.908 155.638 128.887 128.978 128.887 128.978L111.29 127.652H111.3Z\",\n fill: \"black\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.897 104.198V130.175L110.875 129.73L103.901 102.457L128.897 104.198Z\",\n fill: \"#82C6AE\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.253 103.582L127.867 105.159V129.109L111.679 128.71L105.253 103.582ZM103.901 102.457L110.875 129.73L128.902 130.175V104.198L103.906 102.457H103.901Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.623 111.304C118.11 111.304 124.179 105.235 124.179 97.7478C124.179 90.2608 118.11 84.1914 110.623 84.1914C103.136 84.1914 97.0664 90.2608 97.0664 97.7478C97.0664 105.235 103.136 111.304 110.623 111.304Z\",\n fill: \"white\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.615 85.2176C111.746 85.2184 112.873 85.3717 113.963 85.6735C117.018 86.5217 119.637 88.4986 121.291 91.2043C122.944 93.9101 123.508 97.1427 122.868 100.248C122.229 103.354 120.434 106.101 117.846 107.934C115.258 109.766 112.071 110.548 108.929 110.12C105.788 109.692 102.925 108.087 100.922 105.629C98.9185 103.172 97.9231 100.045 98.1373 96.8812C98.3514 93.7176 99.759 90.7534 102.075 88.5881C104.392 86.4228 107.444 85.2181 110.615 85.2176ZM110.615 84.1875C107.175 84.1838 103.862 85.4872 101.346 87.834C98.8304 90.1808 97.3003 93.3956 97.0654 96.8279C96.8305 100.26 97.9083 103.654 100.081 106.321C102.253 108.989 105.358 110.731 108.766 111.197C112.175 111.662 115.633 110.814 118.441 108.826C121.248 106.838 123.196 103.857 123.889 100.487C124.582 97.1177 123.969 93.6104 122.174 90.6756C120.379 87.7407 117.536 85.5974 114.22 84.6794C113.046 84.3542 111.833 84.1888 110.615 84.1875Z\",\n fill: \"black\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.143 101.25C112.006 101.25 111.875 101.195 111.778 101.099C111.682 101.002 111.627 100.871 111.627 100.734C111.627 100.598 111.682 100.467 111.778 100.37C111.875 100.274 112.006 100.219 112.143 100.219L115.681 100.204C114.592 99.2124 113.204 97.3839 112.933 94.376C112.927 94.3083 112.934 94.2401 112.955 94.1753C112.975 94.1105 113.008 94.0503 113.051 93.9982C113.095 93.946 113.148 93.903 113.208 93.8715C113.268 93.84 113.334 93.8206 113.402 93.8145C113.47 93.8085 113.538 93.8158 113.603 93.836C113.667 93.8563 113.728 93.8891 113.78 93.9326C113.832 93.9761 113.875 94.0295 113.906 94.0897C113.938 94.1498 113.957 94.2156 113.963 94.2833C114.36 98.6613 117.37 100.188 117.499 100.25C117.604 100.301 117.689 100.386 117.739 100.491C117.789 100.596 117.803 100.715 117.777 100.829C117.751 100.942 117.687 101.044 117.596 101.117C117.505 101.189 117.392 101.229 117.275 101.229L112.153 101.25H112.143Z\",\n fill: \"black\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256.664 77.0117H71.3032V86.2828H256.664V77.0117Z\",\n fill: \"#E1E3EE\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.049 96.8678C109.47 96.8678 109.812 96.0999 109.812 95.1527C109.812 94.2054 109.47 93.4375 109.049 93.4375C108.628 93.4375 108.287 94.2054 108.287 95.1527C108.287 96.0999 108.628 96.8678 109.049 96.8678Z\",\n fill: \"black\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.9819 139.207L87.4142 173.359L92.8636 173.956L69.9819 139.207Z\",\n fill: \"black\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.939 96.8678C118.36 96.8678 118.702 96.0999 118.702 95.1527C118.702 94.2054 118.36 93.4375 117.939 93.4375C117.518 93.4375 117.177 94.2054 117.177 95.1527C117.177 96.0999 117.518 96.8678 117.939 96.8678Z\",\n fill: \"black\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.523 133.037L83.9944 108.366C75.6014 87.5054 51.4399 96.9697 60.9994 119.532C60.9994 119.532 72.287 147.891 84.4759 165.694C87.7749 170.497 91.2542 173.441 93.9067 174.795C102.624 179.22 117.118 176.377 117.139 161.337C117.139 155.638 117.118 129.012 117.118 129.012H93.5513L93.523 133.037Z\",\n fill: \"#82C6AE\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.0698 97.8035C75.4393 97.8035 80.2886 101.896 83.0468 108.746L92.5625 133.409L94.5172 138.475L94.5533 133.046L94.5739 130.046H116.091C116.091 135.004 116.116 156.345 116.109 161.339C116.109 166.013 114.589 169.809 111.731 172.317C109.269 174.478 105.843 175.665 102.083 175.665C99.4088 175.672 96.7689 175.059 94.3704 173.875C91.4114 172.374 88.1176 169.181 85.3336 165.119C73.3507 147.607 62.076 119.439 61.9627 119.158C60.4716 115.64 59.7608 112.313 59.8509 109.266C59.9282 106.611 60.6235 104.198 61.9112 102.287C62.7851 100.915 63.9906 99.7845 65.4165 99.0008C66.8424 98.2172 68.4427 97.8054 70.0698 97.8035ZM70.0698 96.7734C61.9756 96.7734 55.133 105.687 61.0098 119.534C61.0098 119.534 72.2974 147.893 84.4864 165.696C87.775 170.499 91.2543 173.443 93.9068 174.797C96.4489 176.057 99.2491 176.707 102.086 176.698C109.567 176.698 117.123 172.196 117.139 161.339C117.139 155.64 117.118 129.013 117.118 129.013H93.5515L93.5231 133.036L83.9945 108.365C80.7522 100.304 75.156 96.7759 70.0595 96.7759L70.0698 96.7734Z\",\n fill: \"black\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.118 130.176H93.4507L93.103 102.926L99.4949 104.049C101.645 104.425 101.002 103.423 102.897 104.504C114.808 111.306 117.118 130.176 117.118 130.176Z\",\n fill: \"#82C6AE\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.1486 104.167L99.3172 105.076C99.6741 105.142 100.036 105.177 100.399 105.182C100.729 105.182 101.058 105.142 101.378 105.061C101.433 105.046 101.49 105.035 101.548 105.027C101.548 105.027 101.72 105.027 102.384 105.411C108.259 108.759 111.656 115.313 113.492 120.219C114.563 123.117 115.374 126.105 115.915 129.147H94.4679L94.1486 104.167ZM93.103 102.939L93.4507 130.177H117.118C117.118 130.177 114.8 111.308 102.897 104.507C102.178 104.098 101.826 103.992 101.548 103.992C101.218 103.992 100.994 104.147 100.399 104.147C100.096 104.142 99.7932 104.112 99.4949 104.056L93.103 102.934V102.939Z\",\n fill: \"black\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.0019 156.845C93.8653 156.845 93.7343 156.79 93.6377 156.694C93.5411 156.597 93.4868 156.466 93.4868 156.33V129.011C93.4868 128.874 93.5411 128.743 93.6377 128.647C93.7343 128.55 93.8653 128.496 94.0019 128.496C94.1385 128.496 94.2695 128.55 94.3661 128.647C94.4627 128.743 94.5169 128.874 94.5169 129.011V156.33C94.5169 156.466 94.4627 156.597 94.3661 156.694C94.2695 156.79 94.1385 156.845 94.0019 156.845Z\",\n fill: \"black\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.9171 97.7879H69.9819C69.8453 97.7879 69.7142 97.7336 69.6177 97.637C69.5211 97.5404 69.4668 97.4094 69.4668 97.2728C69.4668 97.1362 69.5211 97.0052 69.6177 96.9086C69.7142 96.812 69.8453 96.7578 69.9819 96.7578H86.9171C87.0537 96.7578 87.1847 96.812 87.2813 96.9086C87.3779 97.0052 87.4322 97.1362 87.4322 97.2728C87.4322 97.4094 87.3779 97.5404 87.2813 97.637C87.1847 97.7336 87.0537 97.7879 86.9171 97.7879Z\",\n fill: \"black\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.229 84.6789C111.524 83.9335 108.654 84.0452 106.016 84.9985C103.377 85.9519 101.099 87.7 99.4951 90.002H121.748C119.943 87.4015 117.281 85.5175 114.229 84.6789Z\",\n fill: \"black\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.4683 113.325C86.1265 110.561 87.6537 93.8115 87.6537 93.8115C87.9318 92.0577 88.5473 90.1237 90.2779 90.4044C90.9939 90.5203 91.5888 91.4526 92.0523 91.9496C92.3274 91.2886 92.8188 90.7407 93.446 90.3955C94.0732 90.0503 94.799 89.9283 95.5046 90.0495C96.2101 90.1707 96.8536 90.5279 97.3297 91.0625C97.8058 91.5972 98.0861 92.2777 98.1249 92.9926C98.6529 92.6011 99.6444 91.8466 100.35 91.8466C102.101 91.8466 102.706 93.9249 102.704 95.7095L103.07 98.5295C103.327 97.9629 104.306 97.0384 104.872 96.9972C106.454 96.8787 107.355 98.6866 107.471 100.288L107.939 106.923C108.455 114.293 107.167 117.159 104.437 117.788C99.0134 119.021 90.1286 118.795 87.4683 113.325Z\",\n fill: \"#82C6AE\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.6923 103.887C97.5557 103.887 97.4247 103.832 97.3281 103.736C97.2315 103.639 97.1772 103.508 97.1772 103.372L97.2906 94.68C97.2822 93.8311 97.5813 93.0077 98.1327 92.3621C98.4065 92.0391 98.7474 91.7797 99.1317 91.6018C99.5159 91.4239 99.9343 91.3319 100.358 91.3321C100.779 91.3304 101.194 91.4309 101.568 91.6251C101.942 91.8194 102.262 92.1015 102.503 92.4472C102.971 93.1283 103.215 93.9386 103.201 94.765L103.42 102.985C103.42 103.12 103.367 103.249 103.274 103.345C103.18 103.441 103.052 103.497 102.918 103.5C102.849 103.502 102.781 103.49 102.717 103.465C102.653 103.44 102.594 103.402 102.545 103.354C102.496 103.306 102.457 103.249 102.43 103.185C102.403 103.122 102.39 103.054 102.39 102.985L102.171 94.7444C102.186 94.1271 102.011 93.52 101.669 93.006C101.525 92.7905 101.329 92.6146 101.1 92.4944C100.87 92.3743 100.614 92.3138 100.355 92.3184C100.079 92.319 99.8071 92.3797 99.5571 92.4962C99.3072 92.6127 99.0856 92.7823 98.9079 92.9932C98.5237 93.4542 98.3148 94.0361 98.3181 94.6362L98.2074 103.379C98.2053 103.515 98.1502 103.644 98.0538 103.739C97.9574 103.833 97.8276 103.887 97.6923 103.887Z\",\n fill: \"black\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.1424 103.441H92.1114C91.9752 103.433 91.8477 103.371 91.757 103.269C91.6662 103.167 91.6196 103.034 91.6273 102.898L92.2376 92.5009C92.2966 91.6707 92.664 90.8926 93.2678 90.3196C93.5709 90.0393 93.9294 89.8257 94.3202 89.6927C94.711 89.5596 95.1254 89.51 95.5366 89.547C97.19 89.6835 98.3695 91.2055 98.233 93.0134L98.2793 96.1038C98.2793 96.2404 98.225 96.3714 98.1285 96.468C98.0319 96.5646 97.9009 96.6189 97.7643 96.6189C97.6276 96.6189 97.4966 96.5646 97.4 96.468C97.3035 96.3714 97.2492 96.2404 97.2492 96.1038L97.2028 93.0005V92.949C97.293 91.8726 96.7084 90.6725 95.4516 90.5669C95.1821 90.5442 94.9108 90.5784 94.6553 90.6671C94.3998 90.7558 94.1657 90.8971 93.9682 91.0819C93.5521 91.475 93.2984 92.0098 93.2575 92.5808L92.6471 102.962C92.6381 103.09 92.5813 103.211 92.4879 103.3C92.3944 103.388 92.2711 103.439 92.1424 103.441Z\",\n fill: \"black\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.2844 119.069C93.7519 119.069 88.7558 117.799 87.0947 113.303C84.5966 106.589 87.1307 93.7791 87.2389 93.2357V93.2099C87.6123 91.7446 88.3643 89.8157 90.5739 89.9264C90.9156 89.9426 91.2498 90.0322 91.5537 90.189C91.8577 90.3459 92.1243 90.5664 92.3354 90.8355C93.0179 91.6751 93.3141 93.0271 93.108 94.3714L92.6419 102.952C92.6383 103.02 92.6215 103.086 92.5923 103.147C92.5632 103.209 92.5223 103.263 92.4719 103.309C92.4216 103.354 92.3628 103.389 92.299 103.412C92.2351 103.434 92.1674 103.444 92.0998 103.44C92.0322 103.437 91.9659 103.42 91.9047 103.391C91.8436 103.362 91.7888 103.321 91.7435 103.27C91.6982 103.22 91.6632 103.161 91.6406 103.097C91.618 103.034 91.6082 102.966 91.6118 102.898L92.0779 94.2916C92.0779 94.2761 92.0779 94.2581 92.0779 94.2401C92.2427 93.1816 92.0238 92.1 91.5216 91.4845C91.4015 91.3279 91.2488 91.1994 91.074 91.1077C90.8992 91.0161 90.7066 90.9637 90.5095 90.954C89.6674 90.9102 88.8073 91.1832 88.2252 93.452C88.1325 93.9233 85.6783 106.586 88.0398 112.945C90.2572 118.912 99.3197 118.474 103.801 117.41C107.95 116.424 107.939 112.373 107.447 106.303L106.675 99.7487C106.61 98.8422 106.348 98.1597 105.933 97.8043C105.788 97.6837 105.62 97.5943 105.44 97.5416C105.259 97.4889 105.069 97.474 104.882 97.4978C103.299 97.6214 103.368 99.7152 103.396 100.132L103.528 102.888C103.534 103.025 103.486 103.158 103.393 103.259C103.301 103.36 103.173 103.42 103.036 103.426C102.899 103.432 102.766 103.384 102.665 103.292C102.564 103.2 102.504 103.071 102.498 102.934L102.369 100.194C102.217 98.0618 103.172 96.5888 104.805 96.4729C105.127 96.4369 105.453 96.4673 105.763 96.5621C106.073 96.6569 106.361 96.814 106.608 97.024C107.241 97.5674 107.62 98.4765 107.702 99.6508L108.475 106.2C108.913 111.593 109.361 117.148 104.043 118.412C102.154 118.847 100.222 119.067 98.2844 119.069Z\",\n fill: \"black\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.559 113.325C140.901 110.561 139.371 93.8115 139.371 93.8115C139.096 92.0577 138.48 90.1237 136.749 90.4044C136.034 90.5203 135.439 91.4526 134.975 91.9496C134.7 91.2886 134.209 90.7407 133.581 90.3955C132.954 90.0503 132.228 89.9283 131.523 90.0495C130.817 90.1707 130.174 90.5279 129.698 91.0625C129.222 91.5972 128.941 92.2777 128.902 92.9926C128.374 92.6011 127.38 91.8466 126.677 91.8466C124.926 91.8466 124.321 93.9249 124.324 95.7095L123.96 98.5166C123.703 97.9501 122.724 97.0255 122.158 96.9843C120.576 96.8659 119.675 98.6737 119.559 100.276L119.09 106.91C118.575 114.28 119.863 117.146 122.593 117.775C128.014 119.021 136.899 118.795 139.559 113.325Z\",\n fill: \"#82C6AE\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.348 103.887C129.211 103.887 129.08 103.832 128.984 103.736C128.887 103.639 128.833 103.508 128.833 103.371L128.72 94.6823C128.724 94.0796 128.515 93.4948 128.13 93.0315C127.952 92.8209 127.73 92.6515 127.48 92.535C127.23 92.4185 126.958 92.3577 126.682 92.3568C126.424 92.3526 126.168 92.4133 125.939 92.5334C125.71 92.6536 125.515 92.8292 125.372 93.0444C125.026 93.5516 124.846 94.1535 124.857 94.7673L124.638 103.008C124.636 103.076 124.621 103.143 124.594 103.204C124.566 103.266 124.527 103.322 124.478 103.369C124.429 103.415 124.371 103.452 124.308 103.476C124.245 103.501 124.177 103.512 124.11 103.511C124.042 103.509 123.975 103.494 123.914 103.466C123.852 103.439 123.796 103.4 123.749 103.351C123.703 103.302 123.666 103.244 123.642 103.181C123.617 103.118 123.606 103.05 123.608 102.983L123.826 94.7415C123.811 93.915 124.055 93.1045 124.524 92.4237C124.765 92.0779 125.086 91.7958 125.459 91.6015C125.833 91.4072 126.248 91.3067 126.67 91.3086C127.093 91.3084 127.511 91.4005 127.896 91.5784C128.28 91.7563 128.621 92.0158 128.895 92.3388C129.444 92.9853 129.743 93.8079 129.737 94.6565L129.85 103.341C129.85 103.477 129.796 103.608 129.699 103.705C129.603 103.801 129.472 103.856 129.335 103.856L129.348 103.887Z\",\n fill: \"black\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134.885 103.441C134.753 103.441 134.626 103.391 134.53 103.3C134.434 103.209 134.377 103.086 134.37 102.954L133.759 92.5601C133.716 91.9936 133.462 91.4638 133.048 91.0741C132.851 90.8893 132.617 90.748 132.361 90.6593C132.106 90.5706 131.835 90.5364 131.565 90.5591C131.302 90.5801 131.046 90.6589 130.816 90.7897C130.587 90.9206 130.389 91.1003 130.236 91.3162C129.907 91.7903 129.757 92.3665 129.814 92.9412V92.9927L129.765 96.096C129.765 96.2326 129.711 96.3636 129.614 96.4602C129.517 96.5568 129.386 96.611 129.25 96.611C129.113 96.611 128.982 96.5568 128.886 96.4602C128.789 96.3636 128.735 96.2326 128.735 96.096L128.781 93.0056C128.71 92.1941 128.929 91.3836 129.399 90.7187C129.639 90.3826 129.949 90.1029 130.308 89.8991C130.667 89.6954 131.066 89.5726 131.478 89.5392C131.889 89.5023 132.303 89.552 132.694 89.6851C133.085 89.8182 133.443 90.0317 133.747 90.3118C134.349 90.8807 134.716 91.6542 134.777 92.4802L135.39 102.89C135.397 103.026 135.351 103.16 135.26 103.261C135.169 103.363 135.042 103.425 134.905 103.433L134.885 103.441Z\",\n fill: \"black\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.743 119.069C126.799 119.068 124.861 118.848 122.966 118.412C117.648 117.148 118.097 111.593 118.532 106.221L119.304 99.628C119.387 98.4769 119.765 97.5677 120.399 97.0243C120.646 96.8138 120.933 96.6564 121.243 96.5616C121.553 96.4668 121.88 96.4367 122.202 96.4733C123.834 96.5969 124.79 98.0621 124.638 100.207L124.509 102.935C124.506 103.002 124.49 103.069 124.461 103.13C124.432 103.191 124.392 103.247 124.342 103.292C124.292 103.338 124.233 103.373 124.17 103.396C124.106 103.419 124.039 103.43 123.971 103.427C123.903 103.424 123.837 103.407 123.775 103.379C123.714 103.35 123.659 103.309 123.613 103.259C123.568 103.209 123.532 103.151 123.509 103.087C123.486 103.024 123.476 102.956 123.479 102.888L123.608 100.146C123.639 99.7156 123.708 97.6217 122.124 97.4981C121.938 97.4743 121.748 97.4893 121.567 97.542C121.386 97.5947 121.218 97.684 121.074 97.8046C120.659 98.16 120.396 98.8348 120.335 99.7259L119.562 106.321C119.073 112.373 119.062 116.424 123.211 117.41C127.692 118.474 136.755 118.912 138.972 112.945C141.334 106.592 138.877 93.9211 138.784 93.4524C138.205 91.1836 137.347 90.9131 136.502 90.9543C136.305 90.964 136.113 91.0164 135.938 91.108C135.763 91.1997 135.61 91.3282 135.49 91.4848C134.975 92.1003 134.769 93.182 134.934 94.2405C134.934 94.2585 134.934 94.2765 134.934 94.292L135.4 102.899C135.404 102.966 135.394 103.034 135.371 103.098C135.349 103.162 135.314 103.22 135.268 103.271C135.223 103.321 135.168 103.362 135.107 103.391C135.046 103.42 134.98 103.437 134.912 103.441C134.844 103.444 134.777 103.434 134.713 103.412C134.649 103.389 134.59 103.354 134.54 103.309C134.49 103.264 134.449 103.209 134.42 103.148C134.39 103.087 134.374 103.02 134.37 102.953L133.906 94.3795C133.706 93.0352 134.002 91.6806 134.679 90.8436C134.89 90.5745 135.157 90.354 135.461 90.1972C135.765 90.0403 136.099 89.9507 136.441 89.9345C138.653 89.8212 139.402 91.7527 139.776 93.2181V93.2438C139.884 93.7872 142.415 106.597 139.92 113.311C138.261 117.797 133.275 119.069 128.743 119.069Z\",\n fill: \"black\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.975 132.379V144.558C122.838 144.558 125.99 141.467 125.99 137.681V132.379H118.975Z\",\n fill: \"black\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.9922 132.379V144.558C103.868 144.558 107.01 141.467 107.01 137.681V132.379H99.9922Z\",\n fill: \"black\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.7248 187.986H59.6553L59.6733 186.956C59.7351 186.956 65.4729 187 69.3101 183.22C71.6279 180.935 72.8074 177.714 72.8074 173.645H73.8375C73.8375 178.002 72.5499 181.474 70.0261 183.961C66.0627 187.865 60.4511 187.986 59.7248 187.986Z\",\n fill: \"black\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.261 132.582H94.0097C93.8731 132.582 93.7421 132.527 93.6455 132.431C93.5489 132.334 93.4946 132.203 93.4946 132.066C93.4946 131.93 93.5489 131.799 93.6455 131.702C93.7421 131.606 93.8731 131.551 94.0097 131.551H128.261C128.398 131.551 128.529 131.606 128.626 131.702C128.722 131.799 128.776 131.93 128.776 132.066C128.776 132.203 128.722 132.334 128.626 132.431C128.529 132.527 128.398 132.582 128.261 132.582Z\",\n fill: \"black\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.502 136.813C104.155 136.813 104.684 136.284 104.684 135.631C104.684 134.978 104.155 134.449 103.502 134.449C102.85 134.449 102.32 134.978 102.32 135.631C102.32 136.284 102.85 136.813 103.502 136.813Z\",\n fill: \"white\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.482 136.813C123.135 136.813 123.664 136.284 123.664 135.631C123.664 134.978 123.135 134.449 122.482 134.449C121.829 134.449 121.3 134.978 121.3 135.631C121.3 136.284 121.829 136.813 122.482 136.813Z\",\n fill: \"white\"\n })), _path63 || (_path63 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.201 259.428C108.576 259.427 107.964 259.24 107.444 258.892C106.925 258.543 106.52 258.049 106.281 257.47C106.042 256.892 105.98 256.256 106.103 255.642C106.226 255.028 106.528 254.465 106.97 254.023C107.413 253.581 107.977 253.28 108.591 253.158C109.205 253.036 109.841 253.099 110.419 253.339C110.997 253.579 111.491 253.984 111.839 254.505C112.186 255.025 112.372 255.637 112.372 256.263C112.371 256.679 112.289 257.091 112.13 257.475C111.97 257.859 111.736 258.208 111.442 258.502C111.148 258.796 110.798 259.029 110.414 259.188C110.029 259.347 109.617 259.428 109.201 259.428ZM109.201 254.128C108.779 254.128 108.366 254.253 108.015 254.488C107.664 254.722 107.391 255.056 107.229 255.446C107.067 255.836 107.025 256.265 107.107 256.679C107.19 257.093 107.393 257.474 107.692 257.772C107.99 258.071 108.371 258.274 108.785 258.357C109.199 258.439 109.628 258.397 110.018 258.235C110.408 258.074 110.742 257.8 110.976 257.449C111.211 257.098 111.336 256.685 111.336 256.263C111.336 255.982 111.281 255.705 111.174 255.446C111.067 255.187 110.909 254.951 110.711 254.753C110.513 254.555 110.277 254.398 110.018 254.29C109.759 254.183 109.482 254.128 109.201 254.128Z\",\n fill: \"black\"\n })), _path64 || (_path64 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.213 263.666C131.159 263.666 131.105 263.657 131.053 263.64L121.767 260.637C121.699 260.619 121.636 260.588 121.581 260.545C121.526 260.502 121.48 260.448 121.446 260.386C121.413 260.325 121.392 260.257 121.386 260.187C121.379 260.118 121.387 260.047 121.408 259.981C121.43 259.914 121.465 259.853 121.511 259.8C121.557 259.747 121.613 259.705 121.677 259.675C121.74 259.644 121.808 259.627 121.878 259.625C121.948 259.622 122.018 259.634 122.083 259.659L131.37 262.662C131.486 262.7 131.585 262.778 131.649 262.882C131.712 262.986 131.737 263.11 131.718 263.23C131.699 263.351 131.638 263.461 131.545 263.541C131.453 263.621 131.335 263.665 131.213 263.666Z\",\n fill: \"white\"\n })), _path65 || (_path65 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.939 263.709C121.817 263.707 121.701 263.663 121.609 263.584C121.517 263.505 121.456 263.396 121.436 263.276C121.417 263.156 121.44 263.034 121.503 262.929C121.565 262.825 121.662 262.746 121.776 262.707L131.048 259.616C131.177 259.573 131.319 259.584 131.441 259.645C131.563 259.706 131.656 259.814 131.699 259.944C131.742 260.073 131.732 260.215 131.671 260.337C131.609 260.459 131.502 260.552 131.372 260.595L122.101 263.685C122.048 263.702 121.994 263.71 121.939 263.709Z\",\n fill: \"white\"\n })), _path66 || (_path66 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M149.559 263.669C149.505 263.669 149.451 263.66 149.399 263.643L140.113 260.64C139.99 260.593 139.89 260.5 139.833 260.381C139.776 260.263 139.767 260.126 139.808 260.001C139.848 259.876 139.935 259.771 140.051 259.707C140.167 259.644 140.302 259.628 140.43 259.662L149.714 262.664C149.83 262.703 149.928 262.781 149.992 262.885C150.056 262.989 150.081 263.113 150.062 263.233C150.043 263.354 149.982 263.464 149.889 263.544C149.797 263.624 149.679 263.668 149.556 263.669H149.559Z\",\n fill: \"white\"\n })), _path67 || (_path67 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.285 263.709C140.164 263.707 140.047 263.663 139.955 263.584C139.863 263.505 139.802 263.396 139.783 263.276C139.764 263.156 139.787 263.034 139.849 262.929C139.912 262.825 140.008 262.746 140.123 262.707L149.394 259.616C149.524 259.573 149.666 259.584 149.788 259.645C149.91 259.706 150.003 259.814 150.046 259.944C150.089 260.073 150.078 260.215 150.017 260.337C149.956 260.459 149.848 260.552 149.719 260.595L140.448 263.685C140.395 263.702 140.34 263.71 140.285 263.709Z\",\n fill: \"white\"\n })), _path68 || (_path68 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.96 206.626C104.823 206.626 104.692 206.571 104.596 206.475C104.499 206.378 104.445 206.247 104.445 206.111V200.558C104.445 200.422 104.499 200.291 104.596 200.194C104.692 200.097 104.823 200.043 104.96 200.043C105.097 200.043 105.228 200.097 105.324 200.194C105.421 200.291 105.475 200.422 105.475 200.558V206.111C105.475 206.247 105.421 206.378 105.324 206.475C105.228 206.571 105.097 206.626 104.96 206.626Z\",\n fill: \"black\"\n })), _path69 || (_path69 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M288.829 273.731H248.997L246.422 217.34H291.405L288.829 273.731Z\",\n fill: \"white\"\n })), _path70 || (_path70 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M290.326 218.37L287.846 272.709H249.989L247.509 218.37H290.326ZM291.405 217.34H246.422L248.997 273.739H288.829L291.405 217.34Z\",\n fill: \"#5F6368\"\n })), _path71 || (_path71 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M275.832 131.551L275.738 132.576L286.336 133.556L286.431 132.53L275.832 131.551Z\",\n fill: \"white\"\n })), _path72 || (_path72 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.367 261.379H248.456V262.409H289.367V261.379Z\",\n fill: \"#1F1F1F\"\n })), _path73 || (_path73 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M288.348 265.039H249.584V266.069H288.348V265.039Z\",\n fill: \"#1F1F1F\"\n })), _path74 || (_path74 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.589 100.016H163.559V193.813H164.589V100.016Z\",\n fill: \"black\"\n })), _path75 || (_path75 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.143 126.569H183.579C183.442 126.569 183.311 126.515 183.215 126.418C183.118 126.322 183.064 126.191 183.064 126.054C183.064 125.918 183.118 125.787 183.215 125.69C183.311 125.593 183.442 125.539 183.579 125.539H207.143C207.28 125.539 207.411 125.593 207.507 125.69C207.604 125.787 207.658 125.918 207.658 126.054C207.658 126.191 207.604 126.322 207.507 126.418C207.411 126.515 207.28 126.569 207.143 126.569Z\",\n fill: \"black\"\n })), _path76 || (_path76 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.206 137.288H174.527C174.39 137.288 174.259 137.234 174.163 137.138C174.066 137.041 174.012 136.91 174.012 136.773C174.012 136.637 174.066 136.506 174.163 136.409C174.259 136.313 174.39 136.258 174.527 136.258H216.206C216.342 136.258 216.473 136.313 216.57 136.409C216.666 136.506 216.721 136.637 216.721 136.773C216.721 136.91 216.666 137.041 216.57 137.138C216.473 137.234 216.342 137.288 216.206 137.288Z\",\n fill: \"black\"\n })), _path77 || (_path77 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.206 142.022H174.527C174.39 142.022 174.259 141.968 174.163 141.871C174.066 141.775 174.012 141.644 174.012 141.507C174.012 141.37 174.066 141.239 174.163 141.143C174.259 141.046 174.39 140.992 174.527 140.992H216.206C216.342 140.992 216.473 141.046 216.57 141.143C216.666 141.239 216.721 141.37 216.721 141.507C216.721 141.644 216.666 141.775 216.57 141.871C216.473 141.968 216.342 142.022 216.206 142.022Z\",\n fill: \"black\"\n })), _path78 || (_path78 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.206 146.76H174.527C174.39 146.76 174.259 146.706 174.163 146.609C174.066 146.513 174.012 146.382 174.012 146.245C174.012 146.108 174.066 145.977 174.163 145.881C174.259 145.784 174.39 145.73 174.527 145.73H216.206C216.342 145.73 216.473 145.784 216.57 145.881C216.666 145.977 216.721 146.108 216.721 146.245C216.721 146.382 216.666 146.513 216.57 146.609C216.473 146.706 216.342 146.76 216.206 146.76Z\",\n fill: \"black\"\n })), _path79 || (_path79 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.206 151.495H174.527C174.39 151.495 174.259 151.441 174.163 151.344C174.066 151.248 174.012 151.117 174.012 150.98C174.012 150.843 174.066 150.712 174.163 150.616C174.259 150.519 174.39 150.465 174.527 150.465H216.206C216.342 150.465 216.473 150.519 216.57 150.616C216.666 150.712 216.721 150.843 216.721 150.98C216.721 151.117 216.666 151.248 216.57 151.344C216.473 151.441 216.342 151.495 216.206 151.495Z\",\n fill: \"black\"\n })), _path80 || (_path80 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.206 156.229H174.527C174.39 156.229 174.259 156.175 174.163 156.078C174.066 155.982 174.012 155.851 174.012 155.714C174.012 155.577 174.066 155.446 174.163 155.35C174.259 155.253 174.39 155.199 174.527 155.199H216.206C216.342 155.199 216.473 155.253 216.57 155.35C216.666 155.446 216.721 155.577 216.721 155.714C216.721 155.851 216.666 155.982 216.57 156.078C216.473 156.175 216.342 156.229 216.206 156.229Z\",\n fill: \"black\"\n })), _path81 || (_path81 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.206 160.968H174.527C174.39 160.968 174.259 160.914 174.163 160.818C174.066 160.721 174.012 160.59 174.012 160.453C174.012 160.317 174.066 160.186 174.163 160.089C174.259 159.993 174.39 159.938 174.527 159.938H216.206C216.342 159.938 216.473 159.993 216.57 160.089C216.666 160.186 216.721 160.317 216.721 160.453C216.721 160.59 216.666 160.721 216.57 160.818C216.473 160.914 216.342 160.968 216.206 160.968Z\",\n fill: \"black\"\n })), _path82 || (_path82 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M238.899 85.0334H233.154C233.017 85.0334 232.886 84.9792 232.789 84.8826C232.693 84.786 232.638 84.655 232.638 84.5184V78.7729C232.638 78.6363 232.693 78.5052 232.789 78.4087C232.886 78.3121 233.017 78.2578 233.154 78.2578H238.899C239.036 78.2578 239.167 78.3121 239.263 78.4087C239.36 78.5052 239.414 78.6363 239.414 78.7729V84.5184C239.414 84.655 239.36 84.786 239.263 84.8826C239.167 84.9792 239.036 85.0334 238.899 85.0334ZM233.669 84.0033H238.384V79.2879H233.669V84.0033Z\",\n fill: \"black\"\n })), _path83 || (_path83 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M250.483 85.0333C250.347 85.0327 250.216 84.9781 250.12 84.8813L244.374 79.1384C244.323 79.0915 244.281 79.0345 244.252 78.971C244.223 78.9075 244.207 78.8388 244.206 78.7691C244.204 78.6993 244.217 78.63 244.243 78.5652C244.269 78.5005 244.308 78.4417 244.357 78.3925C244.407 78.3432 244.466 78.3045 244.53 78.2787C244.595 78.253 244.665 78.2406 244.734 78.2424C244.804 78.2443 244.873 78.2603 244.936 78.2894C245 78.3186 245.056 78.3604 245.103 78.4122L250.849 84.1551C250.897 84.2029 250.935 84.2597 250.96 84.3223C250.986 84.3848 251 84.4518 251 84.5195C251 84.5872 250.986 84.6542 250.96 84.7167C250.935 84.7793 250.897 84.8361 250.849 84.8839C250.801 84.9316 250.743 84.9694 250.681 84.995C250.618 85.0207 250.551 85.0337 250.483 85.0333Z\",\n fill: \"black\"\n })), _path84 || (_path84 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M244.743 85.0324C244.64 85.033 244.54 85.0031 244.455 84.9466C244.37 84.89 244.303 84.8093 244.264 84.7149C244.225 84.6204 244.215 84.5164 244.235 84.416C244.255 84.3157 244.304 84.2237 244.377 84.1517L250.123 78.4087C250.17 78.3609 250.227 78.3229 250.29 78.297C250.352 78.2711 250.419 78.2578 250.487 78.2578C250.555 78.2578 250.622 78.2711 250.684 78.297C250.747 78.3229 250.804 78.3609 250.851 78.4087C250.899 78.4566 250.937 78.5134 250.963 78.5759C250.989 78.6384 251.002 78.7054 251.002 78.7731C251.002 78.8408 250.989 78.9078 250.963 78.9703C250.937 79.0329 250.899 79.0897 250.851 79.1375L245.106 84.8805C245.01 84.9772 244.879 85.0318 244.743 85.0324Z\",\n fill: \"black\"\n })), _path85 || (_path85 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.245 213.789L134.885 255.71L131.849 256.261L132.245 213.789Z\",\n fill: \"black\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_6310_20590\",\n x1: 297.5,\n y1: -20,\n x2: 243.255,\n y2: 192.36,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEF8EE\",\n stopOpacity: 0.5\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.655,\n stopColor: \"#F6E0DA\",\n stopOpacity: 0.57\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.88,\n stopColor: \"#F5DED8\",\n stopOpacity: 0.48\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgErrorNoCertificateFoundGraphics);\nexport default __webpack_public_path__ + \"static/media/error-no-certificate-found-graphics.08df40e9e2810878d199f673f23853b8.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgShockingSale(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 120,\n height: 120,\n viewBox: \"0 0 120 120\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 120,\n height: 120,\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2431 18.0188L46.8159 20.3496L43.8243 8.30151L54.8867 20.4363L59.9471 9.24639L62.4963 18.8538L74.6807 7.67188L70.0671 21.3006L85.2219 17.7115L79.7543 29.0688L94.3015 35.7176L79.8763 39.2882L88.9267 45.4852L78.4595 44.2792L84.9931 54.666L69.1495 47.228L74.0363 58.5172L61.7675 48.2932L57.5755 63.1096L53.7471 48.3908L45.0891 59.43L50.8515 45.5128L30.2019 45.912L42.0435 38.3246L29.8689 34.8329L44.1779 32.6057L36.2431 18.0188Z\",\n fill: \"#DCDCDC\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.5388 16.4985L46.816 19.5244L44.872 7.4782L54.8868 19.6059L58.8516 9.39896L62.4964 18.1173L74.0364 6.36328L70.0672 20.4206L85.7372 13.531L79.7544 27.731L96.9184 33.3782L79.8764 37.3481L88.9268 43.1805L78.4596 42.0453L81.4536 51.2921L69.1496 44.8213L72.6928 57.3793L61.7676 45.8237L57.5756 59.7677L53.7472 45.9149L45.0892 56.3045L48.4612 43.9101L27.8118 44.2857L42.0436 36.4413L29.8689 33.155L44.178 31.0589L37.5388 16.4985Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.3189 7.59917L69.7265 20.3238L69.5253 21.0464L70.2133 20.7444L85.0685 14.2134L79.4277 27.5925L79.2789 27.9467L79.6437 28.0671L95.6077 33.3194L79.7977 37.0033L78.9841 37.1928L79.6869 37.6453L87.4801 42.6666L78.5013 41.6922L77.9577 41.633L78.1257 42.1538L80.8525 50.5726L69.3181 44.5066L68.5885 44.1222L68.8125 44.9194L71.9649 56.0926L62.0245 45.5818L61.6049 45.139L61.4277 45.7254L57.5897 58.4898L54.0889 45.8198L53.9121 45.1682L53.4789 45.6882L45.8633 54.8286L48.8033 44.0026L48.9273 43.5466L48.4553 43.5554L29.2385 43.9046L42.2145 36.7509L42.9833 36.3276L42.1357 36.0991L31.61 33.2583L44.2293 31.4128L44.6961 31.3446L44.5001 30.9151L38.196 17.0844L46.7053 19.8615L47.2577 20.0386L47.1693 19.4657L45.4293 8.70966L54.6133 19.8314L54.9985 20.2972L55.2173 19.734L58.8633 10.3471L62.1697 18.2542L62.3761 18.7466L62.7497 18.3658L73.3189 7.59917ZM74.0365 6.35938L62.4965 18.117L58.8509 9.39862L54.8869 19.6056L44.8713 7.47786L46.8197 19.5215L37.5389 16.4981L44.1805 31.0585L29.869 33.1547L42.0437 36.441L27.8154 44.2854L48.4649 43.9098L45.0925 56.3078L53.7509 45.9182L57.5789 59.771L61.7677 45.8234L72.6929 57.379L69.1509 44.821L81.4537 51.2918L78.4597 42.045L88.9269 43.1802L79.8765 37.346L96.9185 33.3761L79.7545 27.7306L85.7373 13.5307L70.0629 20.4203L74.0365 6.36294V6.35938Z\",\n fill: \"#171717\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.7947 113.295L67.3767 108.867C67.3767 108.867 73.1851 98.0712 77.0107 90.4928C79.6939 85.1748 70.2175 71.0584 67.6335 62.4648L59.5943 66.6268C60.2675 74.6552 61.8555 76.8048 67.4239 90.0944C67.4239 90.0944 61.2931 98.8612 57.2107 113.452L72.7947 113.295Z\",\n fill: \"#2760AD\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.9668 113.453L61.0008 108.74L68.9708 90.4961L54.4856 113.453H66.9668Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.9505 113.455L59.3413 108.871C59.3413 108.871 65.1445 98.0671 68.9753 90.4967C71.3681 85.7563 62.9953 73.7419 59.5937 62.4688L51.5545 66.6308C52.2277 74.6592 53.8157 76.8088 59.3841 90.0983C59.3841 90.0983 53.2533 98.8651 49.1709 113.456L64.9505 113.455Z\",\n fill: \"#2760AD\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.8059 44.8115C64.1331 40.9231 62.6699 36.7256 62.3619 35.7842C61.7571 33.9414 63.6643 34.1353 64.1331 35.4982C64.3003 35.9879 64.6431 35.647 64.6431 35.647L65.8059 29.3878C65.9599 28.7316 66.4807 28.474 66.8995 28.5687L66.9639 28.5838C67.3831 28.6794 67.6663 29.178 67.6167 29.5951L67.2627 34.014L68.6795 28.837C68.8715 28.2924 69.3727 27.9736 69.8235 28.1029L69.8875 28.1171C70.3931 28.2543 70.5727 28.806 70.4887 29.2754L69.5143 34.2283L71.6063 29.9723C71.9603 29.2382 72.4163 28.9495 72.9283 29.1798C73.3835 29.3852 73.5563 29.8147 73.2827 30.5887L71.6099 34.8092L73.9067 32.0215C74.3347 31.4902 74.6535 31.3334 75.0583 31.484L75.1191 31.507C75.4883 31.7186 75.6835 32.1322 75.4335 32.5909L72.8299 37.0187C72.2023 38.4994 71.8275 39.508 71.7283 41.3739C71.7283 41.3739 71.7495 42.1247 71.7507 42.1495C71.7507 42.1495 65.8295 44.8595 65.8059 44.8115Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.6228 28.429C69.6588 28.4288 69.6948 28.4336 69.73 28.4432L69.7484 28.4485L69.8044 28.4609C70.1336 28.5547 70.1876 28.9586 70.1432 29.21L69.1712 34.1603C69.1544 34.2446 69.1692 34.3319 69.212 34.4062C69.2552 34.4804 69.3236 34.5366 69.4048 34.5642C69.4412 34.5767 69.4796 34.583 69.518 34.5828C69.5844 34.5828 69.6492 34.5643 69.7052 34.5294C69.7616 34.4945 69.8068 34.4446 69.836 34.3853L71.9288 30.1275C72.05 29.8769 72.298 29.4571 72.5956 29.4571C72.6616 29.4586 72.7264 29.4743 72.786 29.5032C72.9284 29.5669 73.2232 29.6998 72.9552 30.4649L71.2848 34.6793C71.2544 34.7577 71.2528 34.8444 71.2804 34.924C71.308 35.0035 71.3632 35.0705 71.4356 35.1132C71.508 35.1558 71.5936 35.1712 71.6764 35.1566C71.7592 35.142 71.8344 35.0984 71.888 35.0335L74.1904 32.2431C74.526 31.8304 74.6944 31.7826 74.7908 31.7826C74.8424 31.784 74.8928 31.7948 74.9404 31.8145L74.9724 31.826C75.0944 31.903 75.3052 32.0917 75.1328 32.4149L72.5272 36.84C72.5192 36.8529 72.5124 36.8665 72.5068 36.8808C71.8692 38.3738 71.4752 39.4206 71.3752 41.3565C71.3744 41.3657 71.3744 41.3753 71.3752 41.3849C71.3752 41.3849 71.3832 41.6965 71.3904 41.9249C69.4908 42.7937 66.874 43.9829 66 44.3565C64.372 40.5309 62.9888 36.5531 62.702 35.6738C62.5248 35.1344 62.6304 34.9272 62.6676 34.8768C62.6908 34.8466 62.7216 34.8231 62.7568 34.8085C62.7924 34.7939 62.8308 34.7887 62.8684 34.7935C63.1884 34.7935 63.6232 35.0999 63.7984 35.6126C63.9532 36.0678 64.2684 36.1174 64.3968 36.1174C64.5836 36.1087 64.7604 36.0307 64.8928 35.8987C64.944 35.8482 64.9788 35.7833 64.992 35.7127L66.1548 29.4616C66.2548 29.0506 66.5268 28.9045 66.7296 28.9045C66.7612 28.9046 66.7924 28.9078 66.8236 28.9143L66.888 28.9293C67.1068 28.9789 67.2988 29.2942 67.268 29.5536C67.268 29.5536 67.268 29.5625 67.268 29.5669L66.9136 33.9868C66.9068 34.0745 66.9328 34.1616 66.9868 34.2312C67.0408 34.3007 67.1184 34.3478 67.2052 34.3631C67.2256 34.3666 67.2464 34.3684 67.2672 34.3684C67.3444 34.3683 67.42 34.3428 67.4816 34.2958C67.5432 34.2487 67.5876 34.1828 67.608 34.1081L69.0196 28.9435C69.1328 28.6398 69.3784 28.429 69.6228 28.429ZM69.6228 28.0748C69.2332 28.0748 68.846 28.3741 68.6832 28.8372L67.2664 34.0142L67.6204 29.5953C67.67 29.1773 67.3868 28.6796 66.9676 28.584L66.9032 28.5689C66.8448 28.5561 66.7856 28.5499 66.726 28.5503C66.3468 28.5503 65.9388 28.816 65.8052 29.388L64.6396 35.6472C64.5732 35.7127 64.4864 35.7536 64.3936 35.7632C64.3004 35.7632 64.1996 35.703 64.1276 35.4975C63.8984 34.8254 63.3192 34.4348 62.8632 34.4348C62.3928 34.4348 62.054 34.8458 62.3604 35.78C62.6668 36.7143 64.1312 40.9161 65.804 44.8073C65.9272 44.8073 71.7436 42.1453 71.7436 42.1453C71.7436 42.1205 71.7216 41.3697 71.7216 41.3697C71.818 39.5038 72.1952 38.4925 72.8256 37.0145L75.4292 32.5867C75.6792 32.128 75.4844 31.7144 75.1148 31.5028L75.054 31.4798C74.9664 31.4455 74.8732 31.4272 74.7792 31.4257C74.494 31.4257 74.2312 31.6152 73.9044 32.0173L71.6072 34.805L73.28 30.5844C73.5528 29.8105 73.38 29.381 72.926 29.1755C72.8204 29.126 72.7056 29.0997 72.5892 29.0985C72.2148 29.0985 71.8808 29.3996 71.6036 29.9681L69.512 34.2241L70.486 29.2712C70.5748 28.8018 70.3904 28.2501 69.8848 28.1137L69.8212 28.0987C69.7544 28.0796 69.6856 28.0701 69.6164 28.0703L69.6228 28.0748Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.3973 47.6185C50.0821 54.8049 51.1713 63.4533 51.5545 66.5757L69.5529 66.6289C69.5529 66.6289 67.9217 51.2305 68.2945 43.2501L61.7981 42.9621C58.7329 42.9621 50.6753 41.2877 50.3973 47.6185Z\",\n fill: \"#82C6AE\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.5527 66.8047L51.5555 66.7519C51.5119 66.7519 51.4699 66.7363 51.4375 66.7079C51.4047 66.6795 51.3835 66.6399 51.3783 66.5967L51.3535 66.3967C50.9583 63.1883 49.9099 54.6631 50.2191 47.6095C50.2847 46.1199 50.7831 44.9527 51.7023 44.1255C53.7631 42.2803 57.4311 42.5247 60.1099 42.7027C60.7679 42.7467 61.3371 42.7839 61.7923 42.7839L68.2967 43.0719C68.3203 43.0727 68.3431 43.0783 68.3643 43.0883C68.3851 43.0983 68.4043 43.1123 68.4199 43.1295C68.4355 43.1467 68.4479 43.1667 68.4555 43.1887C68.4635 43.2103 68.4671 43.2335 68.4659 43.2571C68.0975 51.1331 69.7059 66.4587 69.7235 66.6091C69.7259 66.6339 69.7235 66.6591 69.7159 66.6827C69.7079 66.7063 69.6955 66.7283 69.6787 66.7467C69.6619 66.7651 69.6415 66.7799 69.6187 66.7899C69.5959 66.7999 69.5711 66.8051 69.5463 66.8047H69.5527ZM51.7111 66.3983L69.3559 66.4499C69.1707 64.6423 67.7931 50.8771 68.1083 43.4179L61.7887 43.1383C61.3259 43.1383 60.7519 43.1003 60.0887 43.0559C57.4735 42.8787 53.8895 42.6431 51.9415 44.3895C51.0967 45.1459 50.6371 46.2351 50.5759 47.6255C50.2679 54.6487 51.3135 63.1527 51.7075 66.3543L51.7111 66.3983Z\",\n fill: \"black\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.3477 60.3959L68.8693 59.1367L69.5945 67.5771L67.3477 60.3959Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.6235 53.2194C80.0295 50.7618 74.0183 43.9414 71.6371 41.375H58.0127L66.8011 57.0778C70.4743 59.9578 75.3327 60.6918 77.4475 60.9982C81.1775 61.5374 85.7647 59.6218 81.6235 53.2194Z\",\n fill: \"#82C6AE\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.6297 61.2593C78.2253 61.2585 77.8213 61.2289 77.4209 61.1709C75.5153 60.9005 70.4517 60.1649 66.6917 57.2165C66.6729 57.2025 66.6577 57.1849 66.6465 57.1645L57.8581 41.4609C57.8425 41.4337 57.8345 41.4033 57.8345 41.3721C57.8345 41.3409 57.8425 41.3105 57.8581 41.2833C57.8737 41.2565 57.8965 41.2341 57.9233 41.2185C57.9505 41.2033 57.9809 41.1949 58.0121 41.1953H71.6373C71.6617 41.1953 71.6857 41.2001 71.7081 41.2101C71.7301 41.2197 71.7501 41.2341 71.7665 41.2517C73.9557 43.6109 80.1449 50.6053 81.7737 53.1185C83.9309 56.4541 83.5941 58.3849 82.9329 59.4173C82.0541 60.7901 80.2593 61.2593 78.6297 61.2593ZM66.9405 56.9597C70.6233 59.8317 75.5985 60.5509 77.4785 60.8225C79.2257 61.0749 81.6265 60.8101 82.6397 59.2285C83.5085 57.8737 83.1081 55.8281 81.4813 53.3141C79.8785 50.8345 73.7937 43.9565 71.5629 41.5501H58.3141L66.9405 56.9597Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.0365 57.5571C74.0129 57.5571 73.9893 57.5527 73.9677 57.5435C73.9461 57.5343 73.9261 57.5207 73.9097 57.5039C73.8485 57.4419 67.7833 51.1999 64.6113 41.9023C64.5961 41.8579 64.5993 41.8091 64.6201 41.7667C64.6409 41.7247 64.6777 41.6923 64.7221 41.6775C64.7665 41.6623 64.8153 41.6655 64.8573 41.6859C64.8997 41.7067 64.9317 41.7435 64.9469 41.7879C68.0889 51.0103 74.0973 57.1967 74.1569 57.2559C74.1813 57.2811 74.1977 57.3123 74.2041 57.3467C74.2109 57.3807 74.2073 57.4163 74.1937 57.4483C74.1805 57.4803 74.1577 57.5079 74.1289 57.5271C74.0997 57.5467 74.0657 57.5571 74.0309 57.5571H74.0365Z\",\n fill: \"black\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.6749 38.7568C68.7305 37.9635 68.2917 37.2863 67.6949 37.2442C67.0977 37.2022 66.5681 37.8111 66.5121 38.6044C66.4565 39.3977 66.8953 40.075 67.4925 40.117C68.0893 40.159 68.6189 39.55 68.6749 38.7568Z\",\n fill: \"white\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.6389 37.5964C68.0181 37.5964 68.3261 38.0569 68.3261 38.6227C68.3261 39.2196 67.9825 39.743 67.5761 39.7643H67.5505C67.1717 39.7643 66.8633 39.3037 66.8633 38.7379C66.8633 38.141 67.2069 37.6177 67.6133 37.5964H67.6389ZM67.6389 37.2422H67.5949C66.9953 37.2741 66.5093 37.9435 66.5093 38.7379C66.5093 39.5119 66.9713 40.1183 67.5505 40.1183H67.5949C68.1945 40.0855 68.6805 39.4162 68.6805 38.6227C68.6805 37.8488 68.2181 37.2422 67.6389 37.2422Z\",\n fill: \"black\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.6312 39.2641C67.5984 39.264 67.5664 39.2548 67.5384 39.2375C67.5104 39.2203 67.488 39.1957 67.4736 39.1664C67.4588 39.1371 67.4524 39.1044 67.4552 39.0718C67.458 39.0391 67.47 39.0079 67.4892 38.9816C67.7764 38.5973 67.538 38.3174 67.5096 38.2873C67.4936 38.2704 67.4812 38.2505 67.4728 38.2288C67.4648 38.207 67.4608 38.1838 67.4612 38.1606C67.462 38.1373 67.4672 38.1144 67.4768 38.0931C67.4864 38.0719 67.5 38.0527 67.5168 38.0367C67.5336 38.0207 67.5536 38.0082 67.5752 37.9999C67.5972 37.9916 67.6204 37.9877 67.6436 37.9884C67.6668 37.989 67.6896 37.9942 67.7112 38.0038C67.7324 38.0133 67.7516 38.0269 67.7676 38.0438C67.9348 38.2209 68.1528 38.685 67.7728 39.195C67.756 39.2167 67.7344 39.2342 67.71 39.2462C67.6856 39.2582 67.6584 39.2643 67.6312 39.2641Z\",\n fill: \"black\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.6911 43.2495C65.2747 43.2495 67.3687 41.1555 67.3687 38.5721C67.3687 35.9887 65.2747 33.8945 62.6911 33.8945C60.1079 33.8945 58.0139 35.9887 58.0139 38.5721C58.0139 41.1555 60.1079 43.2495 62.6911 43.2495Z\",\n fill: \"white\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.6867 34.2488C63.7407 34.2477 64.7587 34.6315 65.5499 35.328C66.3407 36.0245 66.8503 36.9858 66.9827 38.0314C67.1151 39.077 66.8611 40.1348 66.2687 41.0064C65.6763 41.8784 64.7859 42.5036 63.7651 42.7652C62.7439 43.0268 61.6627 42.9068 60.7239 42.4276C59.7855 41.9484 59.0539 41.1432 58.6671 40.1628C58.2803 39.1824 58.2643 38.0945 58.6231 37.1034C58.9815 36.1123 59.6891 35.2862 60.6139 34.7801C61.2495 34.4322 61.9623 34.2495 62.6867 34.2488ZM62.6867 33.8945C61.6615 33.8952 60.6651 34.2327 59.8503 34.855C59.0355 35.4773 58.4475 36.3501 58.1771 37.339C57.9067 38.3279 57.9687 39.3783 58.3535 40.3288C58.7383 41.2788 59.4247 42.0764 60.3067 42.5988C61.1891 43.1212 62.2183 43.3392 63.2367 43.2192C64.2547 43.0996 65.2055 42.6488 65.9427 41.936C66.6795 41.2232 67.1619 40.288 67.3155 39.2743C67.4691 38.2607 67.2859 37.2246 66.7931 36.3254C66.3911 35.5879 65.7975 34.9727 65.0747 34.5448C64.3519 34.1169 63.5267 33.8923 62.6867 33.8945Z\",\n fill: \"black\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.2284 39.711C62.1812 39.7117 62.136 39.6937 62.1024 39.661C62.0684 39.6283 62.0492 39.5835 62.0484 39.5365C62.0476 39.4896 62.0656 39.4442 62.0984 39.4105C62.1312 39.3768 62.176 39.3575 62.2228 39.3568L63.22 39.3258C62.9624 38.999 62.67 38.3871 62.7544 37.3315C62.758 37.2845 62.7804 37.241 62.816 37.2104C62.852 37.1799 62.8984 37.1648 62.9456 37.1685C62.9924 37.1723 63.036 37.1946 63.0668 37.2305C63.0972 37.2663 63.1124 37.3129 63.1084 37.3598C62.9864 38.883 63.7096 39.3178 63.74 39.3355C63.7744 39.354 63.802 39.3834 63.818 39.4191C63.834 39.4549 63.8376 39.4949 63.8284 39.533C63.8192 39.5702 63.798 39.6034 63.768 39.6275C63.738 39.6516 63.7012 39.6654 63.6628 39.6667L62.2388 39.7101L62.2284 39.711Z\",\n fill: \"black\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.8544 36.4431C66.834 36.4042 66.8144 36.3643 66.7932 36.3254C66.3848 35.5796 65.7808 34.9592 65.0464 34.531C64.3116 34.1028 63.4744 33.8829 62.624 33.895C61.7736 33.9071 60.9428 34.1508 60.2208 34.5997C59.4988 35.0487 58.9128 35.686 58.5256 36.4431H66.8544Z\",\n fill: \"black\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.6869 34.2487C63.3817 34.2486 64.0665 34.4157 64.6829 34.7361C65.2997 35.0563 65.8301 35.5204 66.2293 36.0889H59.1509C59.5501 35.5215 60.0793 35.0581 60.6949 34.7379C61.3101 34.4177 61.9933 34.2499 62.6869 34.2487ZM62.6869 33.8945C61.8261 33.8951 60.9817 34.1334 60.2473 34.5831C59.5129 35.0328 58.9169 35.6765 58.5249 36.4432H66.8537C66.8333 36.4042 66.8137 36.3643 66.7925 36.3254C66.3893 35.5889 65.7957 34.9746 65.0733 34.5469C64.3509 34.1192 63.5265 33.8938 62.6869 33.8945Z\",\n fill: \"black\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.5757 44.8115C51.9037 40.9231 49.9917 35.415 49.6789 34.4736C49.0749 32.6308 50.9613 32.2721 51.4261 33.6359C51.5929 34.1256 52.4065 35.647 52.4065 35.647L53.5709 29.3878C53.7253 28.7316 54.2469 28.474 54.6649 28.5687L54.7293 28.5838C55.1481 28.6794 55.4317 29.178 55.3821 29.5951L55.0277 34.014L56.4449 28.837C56.6361 28.2924 57.1373 27.9736 57.5881 28.1029L57.6525 28.1171C58.1573 28.2543 58.3373 28.806 58.2529 29.2754L57.2789 34.2283L59.3697 29.9723C59.7241 29.2382 60.1809 28.9495 60.6917 29.1798C61.1481 29.3852 61.3205 29.8147 61.0461 30.5887L59.3733 34.8092L61.6705 32.0215C62.0981 31.4902 62.4169 31.3334 62.8217 31.484L62.8837 31.507C63.2521 31.7186 63.4469 32.1322 63.1973 32.5909L60.5937 37.0187C59.9629 38.4967 59.5865 39.508 59.4901 41.3739C59.4901 41.3739 59.5113 42.1247 59.5113 42.1495C59.5185 42.1495 53.5957 44.8595 53.5757 44.8115Z\",\n fill: \"white\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.3931 28.4285C57.4291 28.4283 57.4651 28.433 57.4999 28.4426L57.5187 28.4479L57.5755 28.4603C57.9039 28.5542 57.9587 28.958 57.9147 29.2095L56.9403 34.1598C56.9239 34.2441 56.9387 34.3316 56.9819 34.4059C57.0251 34.4801 57.0935 34.5362 57.1751 34.5636C57.2111 34.5762 57.2491 34.5825 57.2875 34.5822C57.3539 34.5824 57.4187 34.564 57.4751 34.5291C57.5315 34.4942 57.5771 34.4442 57.6063 34.3847L59.6955 30.1269C59.8167 29.8763 60.0647 29.4566 60.3623 29.4566C60.4287 29.4582 60.4939 29.4739 60.5535 29.5026C60.6951 29.5664 60.9899 29.6992 60.7219 30.4643L59.0515 34.6787C59.0211 34.7572 59.0195 34.8439 59.0471 34.9234C59.0747 35.0029 59.1299 35.07 59.2023 35.1126C59.2747 35.1553 59.3603 35.1707 59.4431 35.1561C59.5259 35.1415 59.6011 35.0978 59.6547 35.033L61.9571 32.2426C62.2919 31.8299 62.4603 31.7821 62.5575 31.7821C62.6091 31.7837 62.6595 31.7945 62.7071 31.8139L62.7391 31.8255C62.8611 31.9025 63.0711 32.0911 62.8983 32.4144L60.2975 36.8377C60.2899 36.8507 60.2831 36.8644 60.2771 36.8785C59.6395 38.3715 59.2455 39.4183 59.1455 41.354V41.3824C59.1455 41.3824 59.1543 41.694 59.1607 41.9228C57.2619 42.7912 54.6443 43.9808 53.7711 44.3544C52.0883 40.386 50.2491 35.0507 50.0235 34.3608C49.8807 33.9269 49.8887 33.5691 50.0463 33.3522C50.0891 33.2924 50.1455 33.2439 50.2111 33.2108C50.2767 33.1778 50.3491 33.1613 50.4227 33.1627C50.6423 33.1627 50.9539 33.3159 51.0983 33.748C51.2755 34.259 52.0723 35.7494 52.1019 35.8123C52.1319 35.8689 52.1771 35.9164 52.2319 35.9494C52.2871 35.9825 52.3499 36 52.4143 36C52.4323 35.9998 52.4503 35.9983 52.4683 35.9956C52.5407 35.9843 52.6079 35.9509 52.6607 35.8998C52.7135 35.8487 52.7491 35.7825 52.7623 35.7104L53.9259 29.4593C54.0251 29.0483 54.2971 28.9022 54.5007 28.9022C54.5323 28.9023 54.5635 28.9056 54.5947 28.912L54.6583 28.927C54.8771 28.9766 55.0691 29.2919 55.0383 29.5513C55.0379 29.5558 55.0379 29.5602 55.0383 29.5646L54.6839 33.9845C54.6779 34.072 54.7043 34.1587 54.7583 34.2278C54.8123 34.2969 54.8899 34.3436 54.9763 34.3587C55.0627 34.3738 55.1519 34.3563 55.2259 34.3096C55.3003 34.2628 55.3547 34.1902 55.3783 34.1058L56.7907 28.9412C56.8987 28.6392 57.1439 28.4285 57.3931 28.4285ZM57.3931 28.0742C57.0031 28.0742 56.6171 28.3735 56.4543 28.8367L55.0375 34.0137L55.3915 29.5947C55.4419 29.1767 55.1579 28.6791 54.7391 28.5834L54.6743 28.5684C54.6179 28.5559 54.5603 28.5497 54.5023 28.5498C54.1235 28.5498 53.7143 28.8155 53.5807 29.3875L52.4159 35.6467C52.4159 35.6467 51.6023 34.1253 51.4359 33.6355C51.2463 33.0803 50.8211 32.8102 50.4243 32.8102C49.8471 32.8102 49.3307 33.3814 49.6887 34.4733C49.9975 35.4146 51.9095 40.9228 53.5851 44.8112C53.7083 44.8112 59.5243 42.1492 59.5243 42.1492C59.5243 42.1244 59.5031 41.3736 59.5031 41.3736C59.5999 39.5077 59.9763 38.4964 60.6067 37.0184L63.2103 32.5906C63.4599 32.1319 63.2651 31.7183 62.8967 31.5067L62.8347 31.4836C62.7475 31.4495 62.6547 31.4311 62.5611 31.4296C62.2751 31.4296 62.0119 31.6191 61.6851 32.0212L59.3883 34.8089L61.0611 30.5883C61.3347 29.8143 61.1619 29.3849 60.7067 29.1794C60.6015 29.1299 60.4867 29.1036 60.3703 29.1024C59.9955 29.1024 59.6619 29.4035 59.3847 29.972L57.2939 34.228L58.2679 29.2751C58.3563 28.8057 58.1723 28.254 57.6675 28.1176L57.6027 28.1026C57.5363 28.0835 57.4675 28.074 57.3983 28.0742H57.3931Z\",\n fill: \"black\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.3896 53.2194C67.7956 50.7618 61.7844 43.9414 59.4032 41.375H52.2708L54.3572 46.8326C59.6768 58.8346 59.082 60.1082 65.1488 60.9894L65.2124 60.999C68.9436 61.5374 73.5308 59.6218 69.3896 53.2194Z\",\n fill: \"#82C6AE\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.8025 57.557C61.7581 57.557 61.7153 57.5402 61.6829 57.5102C61.6661 57.495 59.9737 55.9294 57.9589 53.179C56.0993 50.641 53.5757 46.5418 52.1001 41.4258C52.0937 41.4034 52.0917 41.3798 52.0945 41.3566C52.0969 41.3334 52.1041 41.311 52.1153 41.2906C52.1265 41.2702 52.1417 41.2526 52.1601 41.2378C52.1781 41.2234 52.1993 41.2126 52.2217 41.2062C52.2441 41.1998 52.2673 41.1978 52.2905 41.2002C52.3137 41.203 52.3361 41.2102 52.3565 41.2214C52.3769 41.2326 52.3949 41.2478 52.4093 41.2658C52.4237 41.2842 52.4345 41.305 52.4413 41.3274C55.2341 51.0182 61.8557 57.1886 61.9221 57.2498C61.9481 57.2738 61.9665 57.3054 61.9745 57.3402C61.9825 57.3746 61.9797 57.411 61.9669 57.4442C61.9541 57.4774 61.9313 57.5058 61.9021 57.5262C61.8729 57.5462 61.8381 57.557 61.8025 57.557Z\",\n fill: \"black\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.5445 113.457H54.1901C54.1901 112.433 53.8085 111.55 53.0865 110.903C52.6769 110.545 52.1989 110.275 51.6809 110.108C51.1633 109.942 50.6169 109.883 50.0757 109.935L50.1501 109.609C50.7213 109.548 51.2985 109.608 51.8449 109.786C52.3909 109.963 52.8933 110.254 53.3197 110.639C54.1217 111.355 54.5445 112.33 54.5445 113.457Z\",\n fill: \"black\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.3956 61.2613C65.9916 61.2605 65.5876 61.2309 65.1876 61.1729C63.2812 60.8965 58.2176 60.1641 54.4576 57.2161C54.438 57.2021 54.4212 57.1845 54.4088 57.1641C54.3964 57.1437 54.388 57.1209 54.3844 57.0969C54.3812 57.0733 54.3824 57.0489 54.3888 57.0257C54.3948 57.0025 54.406 56.9809 54.4208 56.9621C54.4356 56.9433 54.454 56.9277 54.4752 56.9161C54.496 56.9045 54.5192 56.8977 54.5432 56.8953C54.5672 56.8929 54.5912 56.8957 54.614 56.9029C54.6368 56.9105 54.658 56.9221 54.676 56.9381C58.362 59.8265 63.3548 60.5501 65.2384 60.8221C66.9864 61.0745 69.3872 60.8097 70.3992 59.2281C71.268 57.8733 70.8676 55.8277 69.2408 53.3133C67.6388 50.8337 61.5536 43.9557 59.3228 41.5497H52.2708C52.224 41.5497 52.1788 41.5309 52.1456 41.4977C52.1124 41.4645 52.094 41.4193 52.094 41.3725C52.094 41.3257 52.1124 41.2805 52.1456 41.2473C52.1788 41.2141 52.224 41.1953 52.2708 41.1953H59.4032C59.4276 41.1953 59.452 41.2005 59.4744 41.2101C59.4968 41.2197 59.5168 41.2341 59.5336 41.2521C61.7216 43.6113 67.9116 50.6053 69.5404 53.1185C71.6976 56.4545 71.362 58.3849 70.6996 59.4177C69.82 60.7921 68.0252 61.2613 66.3956 61.2613Z\",\n fill: \"black\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.9403 42.2233C62.5763 42.2233 62.2903 41.8525 62.2903 41.3777C62.2903 40.9029 62.5763 40.5312 62.9403 40.5312C63.3043 40.5312 63.5911 40.9029 63.5911 41.3777C63.5911 41.8525 63.3051 42.2233 62.9403 42.2233ZM62.9403 40.8852C62.8003 40.8852 62.6443 41.0873 62.6443 41.3777C62.6443 41.6681 62.8003 41.8692 62.9403 41.8692C63.0799 41.8692 63.2367 41.6673 63.2367 41.3777C63.2367 41.0881 63.0799 40.8896 62.9403 40.8896V40.8852Z\",\n fill: \"black\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.7352 38.5081C60.6924 38.5081 60.6512 38.4927 60.6192 38.4648C60.5868 38.4369 60.566 38.3983 60.56 38.3561C60.5536 38.3139 60.5632 38.2709 60.5864 38.2351C60.6092 38.1992 60.6448 38.1729 60.6856 38.161L61.2876 37.9883L60.676 37.7138C60.6548 37.7042 60.6356 37.6906 60.6196 37.6737C60.6036 37.6567 60.5912 37.6369 60.5828 37.6151C60.566 37.5712 60.5676 37.5224 60.5868 37.4795C60.606 37.4367 60.6416 37.4032 60.6856 37.3865C60.7296 37.3699 60.7784 37.3713 60.8212 37.3905L61.8748 37.8625C61.9084 37.8775 61.9368 37.9026 61.9556 37.9344C61.974 37.9661 61.9824 38.0029 61.9792 38.0397C61.9768 38.0759 61.9632 38.1105 61.94 38.1387C61.9172 38.1669 61.886 38.1874 61.8508 38.1973L60.784 38.5046C60.768 38.5079 60.7516 38.5091 60.7352 38.5081Z\",\n fill: \"black\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.9884 38.5081C64.972 38.5082 64.9556 38.5061 64.9396 38.5019L63.8728 38.1946C63.8376 38.1847 63.8068 38.1643 63.7836 38.136C63.7608 38.1078 63.7468 38.0733 63.7444 38.037C63.7416 38.0007 63.7504 37.9645 63.7692 37.9333C63.7876 37.9021 63.8156 37.8774 63.8488 37.8625L64.9024 37.3905C64.9456 37.3713 64.994 37.3699 65.038 37.3865C65.082 37.4032 65.1176 37.4367 65.1368 37.4795C65.156 37.5224 65.1576 37.5712 65.1408 37.6151C65.124 37.659 65.0908 37.6945 65.048 37.7138L64.436 37.9883L65.0372 38.161C65.078 38.1729 65.1132 38.1991 65.1364 38.2349C65.1596 38.2706 65.1688 38.3135 65.1628 38.3556C65.1572 38.3978 65.136 38.4364 65.104 38.4644C65.072 38.4924 65.0312 38.5079 64.9884 38.5081Z\",\n fill: \"black\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.4881 113.634H57.2109C57.1637 113.634 57.1189 113.615 57.0857 113.582C57.0525 113.548 57.0337 113.503 57.0337 113.456C57.0337 113.41 57.0525 113.364 57.0857 113.331C57.1189 113.298 57.1637 113.279 57.2109 113.279H72.4937L67.1521 108.918L67.2213 108.79C67.2797 108.682 73.0773 97.9132 76.8525 90.4196C78.3693 87.4084 76.6321 83.6324 74.0009 77.918C72.6053 74.886 71.0237 71.4536 69.5201 67.2808C69.5121 67.2588 69.5085 67.2356 69.5097 67.212C69.5109 67.1888 69.5165 67.166 69.5265 67.1448C69.5361 67.124 69.5501 67.1048 69.5673 67.0892C69.5845 67.0736 69.6049 67.0616 69.6269 67.0536C69.6485 67.0456 69.6721 67.042 69.6953 67.0432C69.7185 67.0444 69.7413 67.05 69.7625 67.06C69.7837 67.0696 69.8025 67.0836 69.8181 67.1008C69.8337 67.118 69.8461 67.1384 69.8541 67.1604C71.3513 71.3152 72.9305 74.744 74.3233 77.77C76.9969 83.5784 78.7625 87.4148 77.1697 90.5788C73.6157 97.6324 68.2713 107.582 67.6053 108.828L73.4881 113.634Z\",\n fill: \"black\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.9505 113.631H49.1709C49.1433 113.631 49.1165 113.624 49.0921 113.612C49.0677 113.6 49.0465 113.582 49.0301 113.561C49.0137 113.539 49.0025 113.514 48.9973 113.487C48.9921 113.46 48.9933 113.433 49.0009 113.407C52.8389 99.6875 58.5585 91.0019 59.1845 90.0763C58.6081 88.7003 58.0733 87.4331 57.5765 86.2571C53.8281 77.3767 52.2765 73.7015 51.5209 67.5991C51.5153 67.5523 51.5281 67.5047 51.5573 67.4675C51.5865 67.4303 51.6289 67.4059 51.6761 67.3999C51.7229 67.3939 51.7705 67.4071 51.8077 67.4363C51.8449 67.4651 51.8693 67.5079 51.8753 67.5551C52.6253 73.6087 54.1717 77.2711 57.9069 86.1191C58.4141 87.3207 58.9613 88.6179 59.5521 90.0287C59.5637 90.0563 59.5681 90.0863 59.5653 90.1159C59.5621 90.1455 59.5517 90.1743 59.5345 90.1987C59.4733 90.2871 53.4365 99.0171 49.4097 113.276H64.4537L59.2289 109.007C59.1973 108.981 59.1753 108.945 59.1673 108.905C59.1593 108.865 59.1653 108.823 59.1845 108.787C59.2433 108.679 65.0437 97.9119 68.8161 90.4167C70.0389 87.9875 69.1269 85.8711 67.4725 82.0275C66.5869 79.9635 65.4773 77.3943 64.3981 74.0415C64.3905 74.0183 64.3877 73.9935 64.3905 73.9687C64.3929 73.9443 64.4005 73.9203 64.4129 73.8991L65.5077 71.9703C65.5193 71.9499 65.5345 71.9323 65.5533 71.9183C65.5717 71.9039 65.5929 71.8935 65.6153 71.8875C65.6377 71.8811 65.6613 71.8795 65.6845 71.8827C65.7077 71.8855 65.7301 71.8931 65.7501 71.9047C65.7705 71.9163 65.7881 71.9319 65.8025 71.9503C65.8165 71.9691 65.8273 71.9899 65.8333 72.0127C65.8393 72.0351 65.8409 72.0587 65.8377 72.0819C65.8349 72.1047 65.8273 72.1271 65.8157 72.1475L64.7529 74.0071C65.8157 77.3075 66.9121 79.8455 67.7913 81.8887C69.4325 85.6967 70.4233 87.9991 69.1261 90.5767C65.5757 97.6311 60.2297 107.579 59.5621 108.826L65.0621 113.318C65.0901 113.341 65.1105 113.373 65.1201 113.407C65.1297 113.443 65.1281 113.48 65.1157 113.514C65.1037 113.548 65.0809 113.578 65.0513 113.599C65.0217 113.62 64.9861 113.631 64.9497 113.631L64.9505 113.631Z\",\n fill: \"black\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.0747 104.984L50.9651 107.433L51.0415 107.779L62.1507 105.33L62.0747 104.984Z\",\n fill: \"black\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.066 105.469L61.5432 107.127L61.6192 107.473L69.1424 105.815L69.066 105.469Z\",\n fill: \"black\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.4699 68.5178L51.6175 68.5966L51.1975 65.8398H69.7219L70.4699 68.5178Z\",\n fill: \"black\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.8188 68.742H66.084C65.8908 68.7416 65.706 68.6648 65.5696 68.5284C65.4328 68.392 65.3564 68.2068 65.356 68.014V66.428C65.356 66.2348 65.4328 66.0496 65.5692 65.9128C65.7056 65.776 65.8908 65.6992 66.084 65.6992H66.8188C67.012 65.6992 67.1972 65.776 67.3336 65.9128C67.47 66.0496 67.5468 66.2348 67.5468 66.428V68.014C67.5468 68.2068 67.47 68.392 67.3332 68.5284C67.1968 68.6648 67.012 68.7416 66.8188 68.742ZM66.084 66.0532C65.9848 66.0536 65.8896 66.0932 65.8196 66.1632C65.7496 66.2336 65.7104 66.3288 65.7104 66.428V68.014C65.7104 68.1132 65.7496 68.208 65.8196 68.278C65.8896 68.3484 65.9848 68.3876 66.084 68.3876H66.8188C66.868 68.3876 66.9164 68.378 66.962 68.3592C67.0072 68.3404 67.0484 68.3128 67.0832 68.278C67.118 68.2436 67.1456 68.2024 67.164 68.1568C67.1828 68.1116 67.1928 68.0628 67.1928 68.014V66.428C67.1928 66.3288 67.1532 66.2336 67.0832 66.1632C67.0132 66.0932 66.918 66.0536 66.8188 66.0532H66.084Z\",\n fill: \"white\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.0127 73.6923C57.9907 73.6919 57.9687 73.6879 57.9483 73.6799L55.3563 72.6647C55.1655 72.5911 55.0015 72.4615 54.8863 72.2923C54.7707 72.1235 54.7095 71.9235 54.7107 71.7191V70.3491C54.7107 70.3023 54.7291 70.2571 54.7623 70.2239C54.7955 70.1907 54.8407 70.1719 54.8875 70.1719H61.1379C61.1851 70.1719 61.2299 70.1907 61.2631 70.2239C61.2963 70.2571 61.3151 70.3023 61.3151 70.3491V71.7191C61.3159 71.9235 61.2547 72.1235 61.1395 72.2923C61.0243 72.4615 60.8603 72.5911 60.6695 72.6647L58.0775 73.6799C58.0567 73.6879 58.0351 73.6919 58.0127 73.6923ZM55.0639 70.5263V71.7191C55.0627 71.8531 55.1019 71.9839 55.1771 72.0947C55.2523 72.2055 55.3595 72.2907 55.4847 72.3391L58.0127 73.3247L60.5403 72.3355C60.6651 72.2871 60.7723 72.2019 60.8475 72.0911C60.9227 71.9807 60.9623 71.8495 60.9607 71.7155V70.5263H55.0639Z\",\n fill: \"white\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.012 72.5185C58.3352 72.5185 58.5972 72.2561 58.5972 71.9329C58.5972 71.6097 58.3352 71.3477 58.012 71.3477C57.6888 71.3477 57.4268 71.6097 57.4268 71.9329C57.4268 72.2561 57.6888 72.5185 58.012 72.5185Z\",\n fill: \"#DCDCDC\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.1465 111.28C59.4697 111.28 59.7321 111.018 59.7321 110.695C59.7321 110.371 59.4697 110.109 59.1465 110.109C58.8233 110.109 58.5613 110.371 58.5613 110.695C58.5613 111.018 58.8233 111.28 59.1465 111.28Z\",\n fill: \"#171717\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.5959 112.675C60.9195 112.675 61.1815 112.413 61.1815 112.09C61.1815 111.766 60.9195 111.504 60.5959 111.504C60.2727 111.504 60.0107 111.766 60.0107 112.09C60.0107 112.413 60.2727 112.675 60.5959 112.675Z\",\n fill: \"#171717\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.1601 111.166C67.4833 111.166 67.7453 110.904 67.7453 110.581C67.7453 110.258 67.4833 109.996 67.1601 109.996C66.8369 109.996 66.5745 110.258 66.5745 110.581C66.5745 110.904 66.8369 111.166 67.1601 111.166Z\",\n fill: \"black\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.6096 112.561C68.9328 112.561 69.1948 112.299 69.1948 111.976C69.1948 111.653 68.9328 111.391 68.6096 111.391C68.2864 111.391 68.0244 111.653 68.0244 111.976C68.0244 112.299 68.2864 112.561 68.6096 112.561Z\",\n fill: \"black\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.8679 43.427H52.9871C52.9403 43.427 52.8951 43.4086 52.8619 43.3754C52.8287 43.3422 52.8103 43.297 52.8103 43.2502C52.8103 43.203 52.8287 43.1582 52.8619 43.125C52.8951 43.0918 52.9403 43.073 52.9871 43.073H55.5963L54.8787 41.447C54.8615 41.4042 54.8615 41.3566 54.8787 41.3138C54.8959 41.271 54.9295 41.2366 54.9715 41.2182C55.0139 41.1994 55.0615 41.1982 55.1047 41.2142C55.1479 41.2306 55.1831 41.263 55.2031 41.3046L56.0299 43.1782C56.0419 43.2054 56.0471 43.235 56.0447 43.2642C56.0423 43.2938 56.0327 43.3223 56.0167 43.3467C56.0003 43.3715 55.9783 43.3918 55.9523 43.4058C55.9267 43.4198 55.8975 43.4274 55.8679 43.427Z\",\n fill: \"black\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.2943 43.427H65.4135C65.3667 43.427 65.3215 43.4086 65.2883 43.3754C65.2551 43.3422 65.2363 43.297 65.2363 43.2502C65.2363 43.203 65.2551 43.1582 65.2883 43.125C65.3215 43.0918 65.3667 43.073 65.4135 43.073H68.0195L67.3023 41.447C67.2851 41.4042 67.2851 41.3566 67.3023 41.3138C67.3195 41.271 67.3527 41.2366 67.3951 41.2182C67.4375 41.1994 67.4851 41.1982 67.5283 41.2142C67.5715 41.2306 67.6067 41.263 67.6267 41.3046L68.4527 43.1782C68.4647 43.2054 68.4699 43.235 68.4675 43.2642C68.4651 43.2938 68.4555 43.3223 68.4391 43.3467C68.4231 43.3715 68.4011 43.3918 68.3751 43.4059C68.3491 43.4199 68.3203 43.4274 68.2907 43.427H68.2943Z\",\n fill: \"black\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.1001 65.9535C17.0591 65.9535 17.0191 65.9395 16.9873 65.9135C16.9555 65.8875 16.9336 65.8511 16.9256 65.8111C16.9175 65.7707 16.9237 65.7287 16.9431 65.6927C16.9625 65.6563 16.9939 65.6279 17.0319 65.6123L25.5661 62.0391C25.6091 62.0227 25.6569 62.0235 25.6993 62.0415C25.7418 62.0599 25.7754 62.0935 25.7932 62.1363C25.811 62.1787 25.8114 62.2267 25.7945 62.2695C25.7775 62.3123 25.7445 62.3471 25.7025 62.3659L17.1683 65.9391C17.1468 65.9487 17.1236 65.9535 17.1001 65.9535Z\",\n fill: \"white\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.9203 67.9121C17.8796 67.9117 17.8402 67.8973 17.8088 67.8713C17.7774 67.8457 17.7558 67.8097 17.7478 67.7697C17.7398 67.7297 17.7458 67.6881 17.7648 67.6521C17.7838 67.6161 17.8146 67.5877 17.8521 67.5717L26.3862 64.0013C26.4286 63.9873 26.4748 63.9893 26.5156 64.0081C26.5563 64.0265 26.5886 64.0597 26.6058 64.1009C26.6231 64.1421 26.6241 64.1885 26.6087 64.2305C26.5932 64.2725 26.5625 64.3069 26.5226 64.3273L17.9858 67.8977C17.965 67.9065 17.9428 67.9113 17.9203 67.9121Z\",\n fill: \"white\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.7401 69.8716C18.6994 69.8712 18.66 69.8568 18.6286 69.8308C18.5972 69.8052 18.5757 69.7692 18.5677 69.7292C18.5597 69.6892 18.5657 69.648 18.5846 69.6116C18.6036 69.5756 18.6345 69.5472 18.6719 69.5316L23.3654 67.5664C23.387 67.5568 23.4103 67.5512 23.4339 67.5508C23.4576 67.5504 23.4811 67.5544 23.5031 67.5632C23.5252 67.572 23.5452 67.5848 23.5621 67.6016C23.579 67.618 23.5924 67.638 23.6015 67.6596C23.6107 67.6816 23.6153 67.7048 23.6152 67.7288C23.6151 67.7524 23.6103 67.7756 23.6009 67.7976C23.5917 67.8192 23.5781 67.8388 23.5611 67.8552C23.544 67.8716 23.5239 67.8848 23.5017 67.8932L18.8083 69.8584C18.7865 69.8668 18.7635 69.8712 18.7401 69.8716Z\",\n fill: \"white\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.0189 62.026C102.085 62.026 105.382 58.7296 105.382 54.6636C105.382 50.5972 102.085 47.3008 98.0189 47.3008C93.9529 47.3008 90.6565 50.5972 90.6565 54.6636C90.6565 58.7296 93.9529 62.026 98.0189 62.026Z\",\n fill: \"white\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.184 53.8505C97.7692 53.8505 98.244 53.3761 98.244 52.7905C98.244 52.2049 97.7692 51.7305 97.184 51.7305C96.5984 51.7305 96.124 52.2049 96.124 52.7905C96.124 53.3761 96.5984 53.8505 97.184 53.8505Z\",\n fill: \"white\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.7939 57.7919C99.3791 57.7919 99.8539 57.3171 99.8539 56.7319C99.8539 56.1463 99.3791 55.6719 98.7939 55.6719C98.2083 55.6719 97.7339 56.1463 97.7339 56.7319C97.7339 57.3171 98.2083 57.7919 98.7939 57.7919Z\",\n fill: \"white\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.2055 72.9163C91.1715 72.9163 91.1383 72.9063 91.1099 72.8879L86.8235 70.1311C86.7843 70.1059 86.7563 70.0659 86.7463 70.0199C86.7363 69.9739 86.7447 69.9259 86.7703 69.8863C86.7955 69.8467 86.8355 69.8191 86.8815 69.8087C86.9275 69.7987 86.9755 69.8075 87.0151 69.8327L91.3011 72.5923C91.3335 72.6127 91.3583 72.6435 91.3719 72.6795C91.3855 72.7155 91.3871 72.7547 91.3763 72.7915C91.3655 72.8287 91.3431 72.8611 91.3123 72.8839C91.2815 72.9067 91.2439 72.9191 91.2055 72.9191V72.9163Z\",\n fill: \"white\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.3823 72.6039C88.3483 72.6043 88.3151 72.5943 88.2867 72.5755L86.1435 71.1975C86.1039 71.1723 86.0763 71.1323 86.0663 71.0863C86.0559 71.0403 86.0647 70.9923 86.0899 70.9527C86.1155 70.9131 86.1555 70.8855 86.2015 70.8751C86.2471 70.8651 86.2955 70.8739 86.3347 70.8991L88.4779 72.2779C88.5099 72.2987 88.5347 72.3295 88.5479 72.3651C88.5611 72.4011 88.5627 72.4399 88.5519 72.4767C88.5411 72.5135 88.5187 72.5455 88.4883 72.5683C88.4575 72.5915 88.4203 72.6039 88.3823 72.6039Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgShockingSale);\nexport default __webpack_public_path__ + \"static/media/shocking-sale.8a7dbf5dab1e8515c4c817811ee3f16b.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport {\n CertificateItem,\n CertificatePreviewModal,\n useCertificate,\n useCertificateProgramSelectListQuery,\n} from \"..\";\nimport {\n ErrorComponent,\n LoadingSpinner,\n ModalLayout,\n PageLayout,\n} from \"shared\";\nimport ErrorImg from \"assets/images/error-no-certificate-found-graphics.svg\";\nimport { getSelectedProgram } from \"utils\";\nimport shockingImg from \"assets/images/shocking-sale.svg\";\nimport { useSupportTicket } from \"master\";\n\nexport const CertificateList = ({ isAllCertificate }) => {\n const data = getSelectedProgram();\n const certificateProgramName = data?.name;\n const studentBatchId = data?.studentBatchId;\n const {\n selectedProgram,\n setSelectedProgram,\n downloadPdf,\n studentBatchCertificate,\n onCloseModal,\n modalState,\n onOpenModal,\n setClickedTimes,\n } = useCertificate({\n load: true,\n studentBatchId,\n isAllCertificate,\n });\n const { data: program } = useCertificateProgramSelectListQuery({\n load: true,\n });\n\n const hasCertificate = studentBatchCertificate?.data?.length > 0;\n\n const titleEndComponent = (\n <>\n {isAllCertificate && (\n
    \n \n setSelectedProgram((draft) => {\n draft = e.target.value;\n return draft;\n })\n }\n >\n \n {program &&\n program?.map((item) => (\n \n ))}\n \n
    \n )}\n \n );\n const stdDetails = getSelectedProgram();\n const { supportTicketsForCertificate } = useSupportTicket();\n const RaiseTicket = () => {\n supportTicketsForCertificate.mutate({\n message: \"Certificate not generated\",\n studentBatchId: stdDetails?.studentBatchId || 0,\n });\n };\n\n const goToPreviousPage = () => {\n setClickedTimes((draft) => {\n return draft + 1;\n });\n };\n\n return (\n \n
    \n
    \n
    \n {studentBatchCertificate?.isLoading ? (\n
    \n \n
    \n ) : (\n <>\n {hasCertificate ? (\n studentBatchCertificate?.data\n ?.sort((a, b) => b?.isGenerated - a?.isGenerated)\n ?.map((item) => (\n \n ))\n ) : (\n \n )}\n \n )}\n
    \n
    \n
    \n {modalState.isOpen && modalState.actionFrom === \"openModal\" && (\n \n )}\n {modalState.isOpen &&\n modalState.actionFrom === \"NoCertificateAssigned\" && (\n \n )}\n \n );\n};\n","import * as pdfjsModule from 'pdfjs-dist';\nconst pdfjs = ('default' in pdfjsModule ? pdfjsModule['default'] : pdfjsModule);\nexport default pdfjs;\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = [\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var mediaEvents = [\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onError',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n];\nexport var mouseEvents = [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n];\nexport var dragEvents = [\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var pointerEvents = [\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var animationEvents = [\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var changeEvents = ['onChange'];\nexport var allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], clipboardEvents, true), compositionEvents, true), focusEvents, true), formEvents, true), imageEvents, true), keyboardEvents, true), mediaEvents, true), mouseEvents, true), dragEvents, true), selectionEvents, true), touchEvents, true), pointerEvents, true), uiEvents, true), wheelEvents, true), animationEvents, true), transitionEvents, true), changeEvents, true), otherEvents, true);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\nexport default function makeEventProps(props, getArgs) {\n var eventProps = {};\n allEvents.forEach(function (eventName) {\n var eventHandler = props[eventName];\n if (!eventHandler) {\n return;\n }\n if (getArgs) {\n eventProps[eventName] = (function (event) {\n return eventHandler(event, getArgs(eventName));\n });\n }\n else {\n eventProps[eventName] = eventHandler;\n }\n });\n return eventProps;\n}\n","export default function makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise\n .then(function (value) { return !isCancelled && resolve(value); })\n .catch(function (error) { return !isCancelled && reject(error); });\n });\n return {\n promise: wrappedPromise,\n cancel: function () {\n isCancelled = true;\n },\n };\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n invariant(dest, 'Destination is not specified.');\n if (typeof dest === 'string') {\n this.pdfDocument.getDestination(dest).then(resolve);\n }\n else if (Array.isArray(dest)) {\n resolve(dest);\n }\n else {\n dest.then(resolve);\n }\n }).then((explicitDest) => {\n invariant(Array.isArray(explicitDest), `\"${explicitDest}\" is not a valid destination array.`);\n const destRef = explicitDest[0];\n new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n if (destRef instanceof Object) {\n this.pdfDocument\n .getPageIndex(destRef)\n .then((pageIndex) => {\n resolve(pageIndex);\n })\n .catch(() => {\n invariant(false, `\"${destRef}\" is not a valid page reference.`);\n });\n }\n else if (typeof destRef === 'number') {\n resolve(destRef);\n }\n else {\n invariant(false, `\"${destRef}\" is not a valid destination reference.`);\n }\n }).then((pageIndex) => {\n const pageNumber = pageIndex + 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n dest: explicitDest,\n pageIndex,\n pageNumber,\n });\n });\n });\n }\n navigateTo(dest) {\n this.goToDestination(dest);\n }\n goToPage(pageNumber) {\n const pageIndex = pageNumber - 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n pageIndex,\n pageNumber,\n });\n }\n addLinkAttributes(link, url, newWindow) {\n link.href = url;\n link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n }\n getDestinationHash() {\n return '#';\n }\n getAnchorUrl() {\n return '#';\n }\n setHash() {\n // Intentionally empty\n }\n executeNamedAction() {\n // Intentionally empty\n }\n cachePageRef() {\n // Intentionally empty\n }\n isPageVisible() {\n return true;\n }\n isPageCached() {\n return true;\n }\n executeSetOCGState() {\n // Intentionally empty\n }\n}\n","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\nexport default PasswordResponses;\n","import invariant from 'tiny-invariant';\nimport warning from 'warning';\n/**\n * Checks if we're running in a browser environment.\n */\nexport const isBrowser = typeof document !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\nexport const isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\nexport function isDefined(variable) {\n return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\nexport function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n}\n/**\n * Checks whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\nexport function isString(variable) {\n return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\nexport function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n}\n/**\n * Checks whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\nexport function isBlob(variable) {\n invariant(isBrowser, 'isBlob can only be used in a browser environment');\n return variable instanceof Blob;\n}\n/**\n * Checks whether a variable provided is a data URI.\n *\n * @param {*} variable String to check\n */\nexport function isDataURI(variable) {\n return isString(variable) && /^data:/.test(variable);\n}\nexport function dataURItoByteString(dataURI) {\n invariant(isDataURI(dataURI), 'Invalid data URI.');\n const [headersString = '', dataString = ''] = dataURI.split(',');\n const headers = headersString.split(';');\n if (headers.indexOf('base64') !== -1) {\n return atob(dataString);\n }\n return unescape(dataString);\n}\nexport function getDevicePixelRatio() {\n return (isBrowser && window.devicePixelRatio) || 1;\n}\nconst allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n warning(!isLocalFileSystem, `Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function displayWorkerWarning() {\n warning(!isLocalFileSystem, `Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function cancelRunningTask(runningTask) {\n if (runningTask && runningTask.cancel)\n runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get() {\n return this.view[2] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'height', {\n get() {\n return this.view[3] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalWidth', {\n get() {\n return this.view[2];\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalHeight', {\n get() {\n return this.view[3];\n },\n configurable: true,\n });\n return page;\n}\nexport function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n if (!reader.result) {\n return reject(new Error('Error while reading a file.'));\n }\n resolve(reader.result);\n };\n reader.onerror = (event) => {\n if (!event.target) {\n return reject(new Error('Error while reading a file.'));\n }\n const { error } = event.target;\n if (!error) {\n return reject(new Error('Error while reading a file.'));\n }\n switch (error.code) {\n case error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n case error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n case error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n reader.readAsArrayBuffer(file);\n });\n}\n","import { useReducer } from 'react';\nfunction reducer(state, action) {\n switch (action.type) {\n case 'RESOLVE':\n return { value: action.value, error: undefined };\n case 'REJECT':\n return { value: false, error: action.error };\n case 'RESET':\n return { value: undefined, error: undefined };\n default:\n return state;\n }\n}\nexport default function useResolver() {\n return useReducer((reducer), { value: undefined, error: undefined });\n}\n","'use client';\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport { dequal } from 'dequal';\nimport pdfjs from './pdfjs.js';\nimport DocumentContext from './DocumentContext.js';\nimport Message from './Message.js';\nimport LinkService from './LinkService.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, loadFromFile, } from './shared/utils.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst { PDFDataRangeTransport } = pdfjs;\nconst defaultOnPassword = (callback, reason) => {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD: {\n // eslint-disable-next-line no-alert\n const password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n case PasswordResponses.INCORRECT_PASSWORD: {\n // eslint-disable-next-line no-alert\n const password = prompt('Invalid password. Please try again.');\n callback(password);\n break;\n }\n default:\n }\n};\nfunction isParameterObject(file) {\n return (typeof file === 'object' &&\n file !== null &&\n ('data' in file || 'range' in file || 'url' in file));\n}\n/**\n * Loads a document passed using `file` prop.\n */\nconst Document = forwardRef(function Document(_a, ref) {\n var { children, className, error = 'Failed to load PDF file.', externalLinkRel, externalLinkTarget, file, inputRef, imageResourcesPath, loading = 'Loading PDF…', noData = 'No PDF file specified.', onItemClick, onLoadError: onLoadErrorProps, onLoadProgress, onLoadSuccess: onLoadSuccessProps, onPassword = defaultOnPassword, onSourceError: onSourceErrorProps, onSourceSuccess: onSourceSuccessProps, options, renderMode, rotate } = _a, otherProps = __rest(_a, [\"children\", \"className\", \"error\", \"externalLinkRel\", \"externalLinkTarget\", \"file\", \"inputRef\", \"imageResourcesPath\", \"loading\", \"noData\", \"onItemClick\", \"onLoadError\", \"onLoadProgress\", \"onLoadSuccess\", \"onPassword\", \"onSourceError\", \"onSourceSuccess\", \"options\", \"renderMode\", \"rotate\"]);\n const [sourceState, sourceDispatch] = useResolver();\n const { value: source, error: sourceError } = sourceState;\n const [pdfState, pdfDispatch] = useResolver();\n const { value: pdf, error: pdfError } = pdfState;\n const linkService = useRef(new LinkService());\n const pages = useRef([]);\n const prevFile = useRef(undefined);\n const prevOptions = useRef(undefined);\n if (file && file !== prevFile.current && isParameterObject(file)) {\n warning(!dequal(file, prevFile.current), `File prop passed to changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"file\" prop.`);\n prevFile.current = file;\n }\n // Detect non-memoized changes in options prop\n if (options && options !== prevOptions.current) {\n warning(!dequal(options, prevOptions.current), `Options prop passed to changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"options\" prop.`);\n prevOptions.current = options;\n }\n const viewer = useRef({\n // Handling jumping to internal links target\n scrollPageIntoView: (args) => {\n const { dest, pageNumber, pageIndex = pageNumber - 1 } = args;\n // First, check if custom handling of onItemClick was provided\n if (onItemClick) {\n onItemClick({ dest, pageIndex, pageNumber });\n return;\n }\n // If not, try to look for target page within the .\n const page = pages.current[pageIndex];\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n warning(false, `An internal link leading to page ${pageNumber} was clicked, but neither was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to and handle navigating by yourself or ensure that all pages are rendered within .`);\n },\n });\n useImperativeHandle(ref, () => ({\n linkService,\n pages,\n viewer,\n }), []);\n /**\n * Called when a document source is resolved correctly\n */\n function onSourceSuccess() {\n if (onSourceSuccessProps) {\n onSourceSuccessProps();\n }\n }\n /**\n * Called when a document source failed to be resolved correctly\n */\n function onSourceError() {\n if (!sourceError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, sourceError.toString());\n if (onSourceErrorProps) {\n onSourceErrorProps(sourceError);\n }\n }\n function resetSource() {\n sourceDispatch({ type: 'RESET' });\n }\n useEffect(resetSource, [file, sourceDispatch]);\n const findDocumentSource = useCallback(() => __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n return null;\n }\n // File is a string\n if (typeof file === 'string') {\n if (isDataURI(file)) {\n const fileByteString = dataURItoByteString(file);\n return { data: fileByteString };\n }\n displayCORSWarning();\n return { url: file };\n }\n // File is PDFDataRangeTransport\n if (file instanceof PDFDataRangeTransport) {\n return { range: file };\n }\n // File is an ArrayBuffer\n if (isArrayBuffer(file)) {\n return { data: file };\n }\n /**\n * The cases below are browser-only.\n * If you're running on a non-browser environment, these cases will be of no use.\n */\n if (isBrowser) {\n // File is a Blob\n if (isBlob(file)) {\n const data = yield loadFromFile(file);\n return { data };\n }\n }\n // At this point, file must be an object\n invariant(typeof file === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n invariant(isParameterObject(file), 'Invalid parameter object: need either .data, .range or .url');\n // File .url is a string\n if ('url' in file && typeof file.url === 'string') {\n if (isDataURI(file.url)) {\n const { url } = file, otherParams = __rest(file, [\"url\"]);\n const fileByteString = dataURItoByteString(url);\n return Object.assign({ data: fileByteString }, otherParams);\n }\n displayCORSWarning();\n }\n return file;\n }), [file]);\n useEffect(() => {\n const cancellable = makeCancellable(findDocumentSource());\n cancellable.promise\n .then((nextSource) => {\n sourceDispatch({ type: 'RESOLVE', value: nextSource });\n })\n .catch((error) => {\n sourceDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(cancellable);\n };\n }, [findDocumentSource, sourceDispatch]);\n useEffect(() => {\n if (typeof source === 'undefined') {\n return;\n }\n if (source === false) {\n onSourceError();\n return;\n }\n onSourceSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [source]);\n /**\n * Called when a document is read successfully\n */\n function onLoadSuccess() {\n if (!pdf) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onLoadSuccessProps) {\n onLoadSuccessProps(pdf);\n }\n pages.current = new Array(pdf.numPages);\n linkService.current.setDocument(pdf);\n }\n /**\n * Called when a document failed to read successfully\n */\n function onLoadError() {\n if (!pdfError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pdfError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pdfError);\n }\n }\n function resetDocument() {\n pdfDispatch({ type: 'RESET' });\n }\n useEffect(resetDocument, [pdfDispatch, source]);\n function loadDocument() {\n if (!source) {\n return;\n }\n const optionsWithModifiedIsEvalSupported = Object.assign(Object.assign({}, options), { isEvalSupported: false });\n const documentInitParams = Object.assign(Object.assign({}, source), optionsWithModifiedIsEvalSupported);\n const destroyable = pdfjs.getDocument(documentInitParams);\n if (onLoadProgress) {\n destroyable.onProgress = onLoadProgress;\n }\n if (onPassword) {\n destroyable.onPassword = onPassword;\n }\n const loadingTask = destroyable;\n loadingTask.promise\n .then((nextPdf) => {\n pdfDispatch({ type: 'RESOLVE', value: nextPdf });\n })\n .catch((error) => {\n if (loadingTask.destroyed) {\n return;\n }\n pdfDispatch({ type: 'REJECT', error });\n });\n return () => {\n loadingTask.destroy();\n };\n }\n useEffect(loadDocument, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [options, pdfDispatch, source]);\n useEffect(() => {\n if (typeof pdf === 'undefined') {\n return;\n }\n if (pdf === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [pdf]);\n function setupLinkService() {\n linkService.current.setViewer(viewer.current);\n linkService.current.setExternalLinkRel(externalLinkRel);\n linkService.current.setExternalLinkTarget(externalLinkTarget);\n }\n useEffect(setupLinkService, [externalLinkRel, externalLinkTarget]);\n function registerPage(pageIndex, ref) {\n pages.current[pageIndex] = ref;\n }\n function unregisterPage(pageIndex) {\n delete pages.current[pageIndex];\n }\n const childContext = useMemo(() => ({\n imageResourcesPath,\n linkService: linkService.current,\n onItemClick,\n pdf,\n registerPage,\n renderMode,\n rotate,\n unregisterPage,\n }), [imageResourcesPath, onItemClick, pdf, renderMode, rotate]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => pdf), [otherProps, pdf]);\n function renderChildren() {\n return _jsx(DocumentContext.Provider, { value: childContext, children: children });\n }\n function renderContent() {\n if (!file) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === undefined || pdf === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx('react-pdf__Document', className), ref: inputRef, style: {\n ['--scale-factor']: '1',\n } }, eventProps, { children: renderContent() })));\n});\nexport default Document;\n","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```tsx\n *
    \n * ```\n *\n * @param {(React.Ref | undefined)[]} inputRefs Array of refs\n * @returns {React.Ref | React.RefCallback} Merged refs\n */\nexport default function mergeRefs() {\n var inputRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputRefs[_i] = arguments[_i];\n }\n var filteredInputRefs = inputRefs.filter(Boolean);\n if (filteredInputRefs.length <= 1) {\n var firstRef = filteredInputRefs[0];\n return firstRef || null;\n }\n return function mergedRefs(ref) {\n filteredInputRefs.forEach(function (inputRef) {\n if (typeof inputRef === 'function') {\n inputRef(ref);\n }\n else if (inputRef) {\n inputRef.current = ref;\n }\n });\n };\n}\n","'use client';\nimport { createContext } from 'react';\nexport default createContext(null);\n","// From pdfjs-dist/lib/web/struct_tree_layer_builder.js\nexport const PDF_ROLE_TO_HTML_ROLE = {\n // Document level structure types\n Document: null, // There's a \"document\" role, but it doesn't make sense here.\n DocumentFragment: null,\n // Grouping level structure types\n Part: 'group',\n Sect: 'group', // XXX: There's a \"section\" role, but it's abstract.\n Div: 'group',\n Aside: 'note',\n NonStruct: 'none',\n // Block level structure types\n P: null,\n // H,\n H: 'heading',\n Title: null,\n FENote: 'note',\n // Sub-block level structure type\n Sub: 'group',\n // General inline level structure types\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: 'link',\n Annot: 'note',\n Form: 'form',\n // Ruby and Warichu structure types\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n // List standard structure types\n L: 'list',\n LI: 'listitem',\n LBody: null,\n // Table standard structure types\n Table: 'table',\n TR: 'row',\n TH: 'columnheader',\n TD: 'cell',\n THead: 'columnheader',\n TBody: null,\n TFoot: null,\n // Standard structure type Caption\n Caption: null,\n // Standard structure type Figure\n Figure: 'figure',\n // Standard structure type Formula\n Formula: null,\n // standard structure type Artifact\n Artifact: null,\n};\nexport const HEADING_PATTERN = /^H(\\d+)$/;\n","import { HEADING_PATTERN, PDF_ROLE_TO_HTML_ROLE } from './constants.js';\nexport function isPdfRole(role) {\n return role in PDF_ROLE_TO_HTML_ROLE;\n}\nexport function isStructTreeNode(node) {\n return 'children' in node;\n}\nexport function isStructTreeNodeWithOnlyContentChild(node) {\n if (!isStructTreeNode(node)) {\n return false;\n }\n return node.children.length === 1 && 0 in node.children && 'id' in node.children[0];\n}\nexport function getRoleAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n const { role } = node;\n const matches = role.match(HEADING_PATTERN);\n if (matches) {\n attributes.role = 'heading';\n attributes['aria-level'] = Number(matches[1]);\n }\n else if (isPdfRole(role)) {\n const htmlRole = PDF_ROLE_TO_HTML_ROLE[role];\n if (htmlRole) {\n attributes.role = htmlRole;\n }\n }\n }\n return attributes;\n}\nexport function getBaseAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n if (node.alt !== undefined) {\n attributes['aria-label'] = node.alt;\n }\n if (node.lang !== undefined) {\n attributes.lang = node.lang;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n const [child] = node.children;\n if (child) {\n const childAttributes = getBaseAttributes(child);\n return Object.assign(Object.assign({}, attributes), childAttributes);\n }\n }\n }\n else {\n if ('id' in node) {\n attributes['aria-owns'] = node.id;\n }\n }\n return attributes;\n}\nexport function getAttributes(node) {\n if (!node) {\n return null;\n }\n return Object.assign(Object.assign({}, getRoleAttributes(node)), getBaseAttributes(node));\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useMemo } from 'react';\nimport { getAttributes, isStructTreeNode, isStructTreeNodeWithOnlyContentChild, } from './shared/structTreeUtils.js';\nexport default function StructTreeItem({ className, node }) {\n const attributes = useMemo(() => getAttributes(node), [node]);\n const children = useMemo(() => {\n if (!isStructTreeNode(node)) {\n return null;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n return null;\n }\n return node.children.map((child, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n _jsx(StructTreeItem, { node: child }, index));\n });\n }, [node]);\n return (_jsx(\"span\", Object.assign({ className: className }, attributes, { children: children })));\n}\n","import { useContext } from 'react';\nimport PageContext from '../../PageContext.js';\nexport default function usePageContext() {\n return useContext(PageContext);\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport StructTreeItem from './StructTreeItem.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { cancelRunningTask } from './shared/utils.js';\nexport default function StructTree() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, } = pageContext;\n const [structTreeState, structTreeDispatch] = useResolver();\n const { value: structTree, error: structTreeError } = structTreeState;\n const { customTextRenderer, page } = pageContext;\n function onLoadSuccess() {\n if (!structTree) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetStructTreeSuccessProps) {\n onGetStructTreeSuccessProps(structTree);\n }\n }\n function onLoadError() {\n if (!structTreeError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, structTreeError.toString());\n if (onGetStructTreeErrorProps) {\n onGetStructTreeErrorProps(structTreeError);\n }\n }\n function resetAnnotations() {\n structTreeDispatch({ type: 'RESET' });\n }\n useEffect(resetAnnotations, [structTreeDispatch, page]);\n function loadStructTree() {\n if (customTextRenderer) {\n // TODO: Document why this is necessary\n return;\n }\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getStructTree());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextStructTree) => {\n structTreeDispatch({ type: 'RESOLVE', value: nextStructTree });\n })\n .catch((error) => {\n structTreeDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }\n useEffect(loadStructTree, [customTextRenderer, page, structTreeDispatch]);\n useEffect(() => {\n if (structTree === undefined) {\n return;\n }\n if (structTree === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [structTree]);\n if (!structTree) {\n return null;\n }\n return _jsx(StructTreeItem, { className: \"react-pdf__Page__structTree structTree\", node: structTree });\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport StructTree from '../StructTree.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport { cancelRunningTask, getDevicePixelRatio, isCancelException, makePageCallback, } from '../shared/utils.js';\nconst ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport default function PageCanvas(props) {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, pageContext), props);\n const { _className, canvasBackground, devicePixelRatio = getDevicePixelRatio(), onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, page, renderForms, renderTextLayer, rotate, scale, } = mergedProps;\n const { canvasRef } = props;\n invariant(page, 'Attempted to render page canvas, but no page was specified.');\n const canvasElement = useRef(null);\n /**\n * Called when a page is rendered successfully.\n */\n function onRenderSuccess() {\n if (!page) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onRenderSuccessProps) {\n onRenderSuccessProps(makePageCallback(page, scale));\n }\n }\n /**\n * Called when a page fails to render.\n */\n function onRenderError(error) {\n if (isCancelException(error)) {\n return;\n }\n warning(false, error.toString());\n if (onRenderErrorProps) {\n onRenderErrorProps(error);\n }\n }\n const renderViewport = useMemo(() => page.getViewport({ scale: scale * devicePixelRatio, rotation: rotate }), [devicePixelRatio, page, rotate, scale]);\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function drawPageOnCanvas() {\n if (!page) {\n return;\n }\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n const { current: canvas } = canvasElement;\n if (!canvas) {\n return;\n }\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = `${Math.floor(viewport.width)}px`;\n canvas.style.height = `${Math.floor(viewport.height)}px`;\n canvas.style.visibility = 'hidden';\n const renderContext = {\n annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n canvasContext: canvas.getContext('2d', { alpha: false }),\n viewport: renderViewport,\n };\n if (canvasBackground) {\n renderContext.background = canvasBackground;\n }\n const cancellable = page.render(renderContext);\n const runningTask = cancellable;\n cancellable.promise\n .then(() => {\n canvas.style.visibility = '';\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }\n useEffect(drawPageOnCanvas, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n canvasBackground,\n canvasElement,\n devicePixelRatio,\n page,\n renderForms,\n renderViewport,\n viewport,\n ]);\n const cleanup = useCallback(() => {\n const { current: canvas } = canvasElement;\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n if (canvas) {\n canvas.width = 0;\n canvas.height = 0;\n }\n }, [canvasElement]);\n useEffect(() => cleanup, [cleanup]);\n return (_jsx(\"canvas\", { className: `${_className}__canvas`, dir: \"ltr\", ref: mergeRefs(canvasRef, canvasElement), style: {\n display: 'block',\n userSelect: 'none',\n }, children: renderTextLayer ? _jsx(StructTree, {}) : null }));\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useMemo } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask, isCancelException, makePageCallback } from '../shared/utils.js';\nexport default function PageSVG() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { _className, onRenderSuccess: onRenderSuccessProps, onRenderError: onRenderErrorProps, page, rotate, scale, } = pageContext;\n invariant(page, 'Attempted to render page SVG, but no page was specified.');\n const [svgState, svgDispatch] = useResolver();\n const { value: svg, error: svgError } = svgState;\n /**\n * Called when a page is rendered successfully\n */\n function onRenderSuccess() {\n if (!page) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onRenderSuccessProps) {\n onRenderSuccessProps(makePageCallback(page, scale));\n }\n }\n /**\n * Called when a page fails to render\n */\n function onRenderError() {\n if (!svgError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (isCancelException(svgError)) {\n return;\n }\n warning(false, svgError.toString());\n if (onRenderErrorProps) {\n onRenderErrorProps(svgError);\n }\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function resetSVG() {\n svgDispatch({ type: 'RESET' });\n }\n useEffect(resetSVG, [page, svgDispatch, viewport]);\n function renderSVG() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getOperatorList());\n cancellable.promise\n .then((operatorList) => {\n const svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n svgGfx\n .getSVG(operatorList, viewport)\n .then((nextSvg) => {\n // See https://github.com/mozilla/pdf.js/issues/16745\n if (!(nextSvg instanceof SVGElement)) {\n throw new Error('getSVG returned unexpected result.');\n }\n svgDispatch({ type: 'RESOLVE', value: nextSvg });\n })\n .catch((error) => {\n svgDispatch({ type: 'REJECT', error });\n });\n })\n .catch((error) => {\n svgDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(cancellable);\n }\n useEffect(renderSVG, [page, svgDispatch, viewport]);\n useEffect(() => {\n if (svg === undefined) {\n return;\n }\n if (svg === false) {\n onRenderError();\n return;\n }\n onRenderSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [svg]);\n function drawPageOnContainer(element) {\n if (!element || !svg) {\n return;\n }\n // Append SVG element to the main container, if this hasn't been done already\n if (!element.firstElementChild) {\n element.appendChild(svg);\n }\n const { width, height } = viewport;\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n }\n const { width, height } = viewport;\n return (_jsx(\"div\", { className: `${_className}__svg`, \n // Note: This cannot be shortened, as we need this function to be called with each render.\n ref: (ref) => drawPageOnContainer(ref), style: {\n display: 'block',\n backgroundColor: 'white',\n overflow: 'hidden',\n width,\n height,\n userSelect: 'none',\n } }));\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nfunction isTextItem(item) {\n return 'str' in item;\n}\nexport default function TextLayer() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { customTextRenderer, onGetTextError, onGetTextSuccess, onRenderTextLayerError, onRenderTextLayerSuccess, page, pageIndex, pageNumber, rotate, scale, } = pageContext;\n invariant(page, 'Attempted to load page text content, but no page was specified.');\n const [textContentState, textContentDispatch] = useResolver();\n const { value: textContent, error: textContentError } = textContentState;\n const layerElement = useRef(null);\n const endElement = useRef(undefined);\n warning(parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-text-layer'), 10) === 1, 'TextLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-text-layer');\n /**\n * Called when a page text content is read successfully\n */\n function onLoadSuccess() {\n if (!textContent) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetTextSuccess) {\n onGetTextSuccess(textContent);\n }\n }\n /**\n * Called when a page text content failed to read successfully\n */\n function onLoadError() {\n if (!textContentError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, textContentError.toString());\n if (onGetTextError) {\n onGetTextError(textContentError);\n }\n }\n function resetTextContent() {\n textContentDispatch({ type: 'RESET' });\n }\n useEffect(resetTextContent, [page, textContentDispatch]);\n function loadTextContent() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getTextContent());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextTextContent) => {\n textContentDispatch({ type: 'RESOLVE', value: nextTextContent });\n })\n .catch((error) => {\n textContentDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }\n useEffect(loadTextContent, [page, textContentDispatch]);\n useEffect(() => {\n if (textContent === undefined) {\n return;\n }\n if (textContent === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [textContent]);\n /**\n * Called when a text layer is rendered successfully\n */\n const onRenderSuccess = useCallback(() => {\n if (onRenderTextLayerSuccess) {\n onRenderTextLayerSuccess();\n }\n }, [onRenderTextLayerSuccess]);\n /**\n * Called when a text layer failed to render successfully\n */\n const onRenderError = useCallback((error) => {\n warning(false, error.toString());\n if (onRenderTextLayerError) {\n onRenderTextLayerError(error);\n }\n }, [onRenderTextLayerError]);\n function onMouseDown() {\n const end = endElement.current;\n if (!end) {\n return;\n }\n end.classList.add('active');\n }\n function onMouseUp() {\n const end = endElement.current;\n if (!end) {\n return;\n }\n end.classList.remove('active');\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function renderTextLayer() {\n if (!page || !textContent) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n layer.innerHTML = '';\n const textContentSource = page.streamTextContent({ includeMarkedContent: true });\n const parameters = {\n container: layer,\n textContentSource,\n viewport,\n };\n const cancellable = pdfjs.renderTextLayer(parameters);\n const runningTask = cancellable;\n cancellable.promise\n .then(() => {\n const end = document.createElement('div');\n end.className = 'endOfContent';\n layer.append(end);\n endElement.current = end;\n const layerChildren = layer.querySelectorAll('[role=\"presentation\"]');\n if (customTextRenderer) {\n let index = 0;\n textContent.items.forEach((item, itemIndex) => {\n if (!isTextItem(item)) {\n return;\n }\n const child = layerChildren[index];\n if (!child) {\n return;\n }\n const content = customTextRenderer(Object.assign({ pageIndex,\n pageNumber,\n itemIndex }, item));\n child.innerHTML = content;\n index += item.str && item.hasEOL ? 2 : 1;\n });\n }\n // Intentional immediate callback\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }\n useLayoutEffect(renderTextLayer, [\n customTextRenderer,\n onRenderError,\n onRenderSuccess,\n page,\n pageIndex,\n pageNumber,\n textContent,\n viewport,\n ]);\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _jsx(\"div\", { className: clsx('react-pdf__Page__textContent', 'textLayer'), onMouseUp: onMouseUp, onMouseDown: onMouseDown, ref: layerElement }));\n}\n","import { useContext } from 'react';\nimport DocumentContext from '../../DocumentContext.js';\nexport default function useDocumentContext() {\n return useContext(DocumentContext);\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport useDocumentContext from '../shared/hooks/useDocumentContext.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nexport default function AnnotationLayer() {\n const documentContext = useDocumentContext();\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, documentContext), pageContext);\n const { imageResourcesPath, linkService, onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, page, pdf, renderForms, rotate, scale = 1, } = mergedProps;\n invariant(pdf, 'Attempted to load page annotations, but no document was specified. Wrap in a or pass explicit `pdf` prop.');\n invariant(page, 'Attempted to load page annotations, but no page was specified.');\n invariant(linkService, 'Attempted to load page annotations, but no linkService was specified.');\n const [annotationsState, annotationsDispatch] = useResolver();\n const { value: annotations, error: annotationsError } = annotationsState;\n const layerElement = useRef(null);\n warning(parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-annotation-layer'), 10) === 1, 'AnnotationLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-annotations');\n function onLoadSuccess() {\n if (!annotations) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetAnnotationsSuccessProps) {\n onGetAnnotationsSuccessProps(annotations);\n }\n }\n function onLoadError() {\n if (!annotationsError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, annotationsError.toString());\n if (onGetAnnotationsErrorProps) {\n onGetAnnotationsErrorProps(annotationsError);\n }\n }\n function resetAnnotations() {\n annotationsDispatch({ type: 'RESET' });\n }\n useEffect(resetAnnotations, [annotationsDispatch, page]);\n function loadAnnotations() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getAnnotations());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextAnnotations) => {\n annotationsDispatch({ type: 'RESOLVE', value: nextAnnotations });\n })\n .catch((error) => {\n annotationsDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(runningTask);\n };\n }\n useEffect(loadAnnotations, [annotationsDispatch, page, renderForms]);\n useEffect(() => {\n if (annotations === undefined) {\n return;\n }\n if (annotations === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [annotations]);\n function onRenderSuccess() {\n if (onRenderAnnotationLayerSuccessProps) {\n onRenderAnnotationLayerSuccessProps();\n }\n }\n function onRenderError(error) {\n warning(false, `${error}`);\n if (onRenderAnnotationLayerErrorProps) {\n onRenderAnnotationLayerErrorProps(error);\n }\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function renderAnnotationLayer() {\n if (!pdf || !page || !linkService || !annotations) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n const clonedViewport = viewport.clone({ dontFlip: true });\n const annotationLayerParameters = {\n accessibilityManager: null, // TODO: Implement this\n annotationCanvasMap: null, // TODO: Implement this\n div: layer,\n l10n: null, // TODO: Implement this\n page,\n viewport: clonedViewport,\n };\n const renderParameters = {\n annotations,\n annotationStorage: pdf.annotationStorage,\n div: layer,\n // See https://github.com/mozilla/pdf.js/issues/17029\n downloadManager: null,\n imageResourcesPath,\n linkService,\n page,\n renderForms,\n viewport: clonedViewport,\n };\n layer.innerHTML = '';\n try {\n new pdfjs.AnnotationLayer(annotationLayerParameters).render(renderParameters);\n // Intentional immediate callback\n onRenderSuccess();\n }\n catch (error) {\n onRenderError(error);\n }\n return () => {\n // TODO: Cancel running task?\n };\n }\n useEffect(renderAnnotationLayer, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [annotations, imageResourcesPath, linkService, page, renderForms, viewport]);\n return (_jsx(\"div\", { className: clsx('react-pdf__Page__annotations', 'annotationLayer'), ref: layerElement }));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport clsx from 'clsx';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport PageContext from './PageContext.js';\nimport Message from './Message.js';\nimport PageCanvas from './Page/PageCanvas.js';\nimport PageSVG from './Page/PageSVG.js';\nimport TextLayer from './Page/TextLayer.js';\nimport AnnotationLayer from './Page/AnnotationLayer.js';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst defaultScale = 1;\n/**\n * Displays a page.\n *\n * Should be placed inside ``. Alternatively, it can have `pdf` prop passed, which can be obtained from ``'s `onLoadSuccess` callback function, however some advanced functions like linking between pages inside a document may not be working correctly.\n */\nexport default function Page(props) {\n const documentContext = useDocumentContext();\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { _className = 'react-pdf__Page', _enableRegisterUnregisterPage = true, canvasBackground, canvasRef, children, className, customRenderer: CustomRenderer, customTextRenderer, devicePixelRatio, error = 'Failed to load the page.', height, inputRef, loading = 'Loading page…', noData = 'No page specified.', onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, onGetTextError: onGetTextErrorProps, onGetTextSuccess: onGetTextSuccessProps, onLoadError: onLoadErrorProps, onLoadSuccess: onLoadSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, onRenderTextLayerError: onRenderTextLayerErrorProps, onRenderTextLayerSuccess: onRenderTextLayerSuccessProps, pageIndex: pageIndexProps, pageNumber: pageNumberProps, pdf, registerPage, renderAnnotationLayer: renderAnnotationLayerProps = true, renderForms = false, renderMode = 'canvas', renderTextLayer: renderTextLayerProps = true, rotate: rotateProps, scale: scaleProps = defaultScale, unregisterPage, width } = mergedProps, otherProps = __rest(mergedProps, [\"_className\", \"_enableRegisterUnregisterPage\", \"canvasBackground\", \"canvasRef\", \"children\", \"className\", \"customRenderer\", \"customTextRenderer\", \"devicePixelRatio\", \"error\", \"height\", \"inputRef\", \"loading\", \"noData\", \"onGetAnnotationsError\", \"onGetAnnotationsSuccess\", \"onGetStructTreeError\", \"onGetStructTreeSuccess\", \"onGetTextError\", \"onGetTextSuccess\", \"onLoadError\", \"onLoadSuccess\", \"onRenderAnnotationLayerError\", \"onRenderAnnotationLayerSuccess\", \"onRenderError\", \"onRenderSuccess\", \"onRenderTextLayerError\", \"onRenderTextLayerSuccess\", \"pageIndex\", \"pageNumber\", \"pdf\", \"registerPage\", \"renderAnnotationLayer\", \"renderForms\", \"renderMode\", \"renderTextLayer\", \"rotate\", \"scale\", \"unregisterPage\", \"width\"]);\n const [pageState, pageDispatch] = useResolver();\n const { value: page, error: pageError } = pageState;\n const pageElement = useRef(null);\n invariant(pdf, 'Attempted to load a page, but no document was specified. Wrap in a or pass explicit `pdf` prop.');\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null;\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n const rotate = rotateProps !== null && rotateProps !== void 0 ? rotateProps : (page ? page.rotate : null);\n const scale = useMemo(() => {\n if (!page) {\n return null;\n }\n // Be default, we'll render page at 100% * scale width.\n let pageScale = 1;\n // Passing scale explicitly null would cause the page not to render\n const scaleWithDefault = scaleProps !== null && scaleProps !== void 0 ? scaleProps : defaultScale;\n // If width/height is defined, calculate the scale of the page so it could be of desired width.\n if (width || height) {\n const viewport = page.getViewport({ scale: 1, rotation: rotate });\n if (width) {\n pageScale = width / viewport.width;\n }\n else if (height) {\n pageScale = height / viewport.height;\n }\n }\n return scaleWithDefault * pageScale;\n }, [height, page, rotate, scaleProps, width]);\n function hook() {\n return () => {\n if (!isProvided(pageIndex)) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (_enableRegisterUnregisterPage && unregisterPage) {\n unregisterPage(pageIndex);\n }\n };\n }\n useEffect(hook, [_enableRegisterUnregisterPage, pdf, pageIndex, unregisterPage]);\n /**\n * Called when a page is loaded successfully\n */\n function onLoadSuccess() {\n if (onLoadSuccessProps) {\n if (!page || !scale) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n onLoadSuccessProps(makePageCallback(page, scale));\n }\n if (_enableRegisterUnregisterPage && registerPage) {\n if (!isProvided(pageIndex) || !pageElement.current) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n registerPage(pageIndex, pageElement.current);\n }\n }\n /**\n * Called when a page failed to load\n */\n function onLoadError() {\n if (!pageError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pageError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pageError);\n }\n }\n function resetPage() {\n pageDispatch({ type: 'RESET' });\n }\n useEffect(resetPage, [pageDispatch, pdf, pageIndex]);\n function loadPage() {\n if (!pdf || !pageNumber) {\n return;\n }\n const cancellable = makeCancellable(pdf.getPage(pageNumber));\n const runningTask = cancellable;\n cancellable.promise\n .then((nextPage) => {\n pageDispatch({ type: 'RESOLVE', value: nextPage });\n })\n .catch((error) => {\n pageDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }\n useEffect(loadPage, [pageDispatch, pdf, pageIndex, pageNumber, registerPage]);\n useEffect(() => {\n if (page === undefined) {\n return;\n }\n if (page === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [page, scale]);\n const childContext = useMemo(() => \n // Technically there cannot be page without pageIndex, pageNumber, rotate and scale, but TypeScript doesn't know that\n page && isProvided(pageIndex) && pageNumber && isProvided(rotate) && isProvided(scale)\n ? {\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsError: onGetAnnotationsErrorProps,\n onGetAnnotationsSuccess: onGetAnnotationsSuccessProps,\n onGetStructTreeError: onGetStructTreeErrorProps,\n onGetStructTreeSuccess: onGetStructTreeSuccessProps,\n onGetTextError: onGetTextErrorProps,\n onGetTextSuccess: onGetTextSuccessProps,\n onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps,\n onRenderError: onRenderErrorProps,\n onRenderSuccess: onRenderSuccessProps,\n onRenderTextLayerError: onRenderTextLayerErrorProps,\n onRenderTextLayerSuccess: onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayer: renderTextLayerProps,\n rotate,\n scale,\n }\n : null, [\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsErrorProps,\n onGetAnnotationsSuccessProps,\n onGetStructTreeErrorProps,\n onGetStructTreeSuccessProps,\n onGetTextErrorProps,\n onGetTextSuccessProps,\n onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccessProps,\n onRenderErrorProps,\n onRenderSuccessProps,\n onRenderTextLayerErrorProps,\n onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayerProps,\n rotate,\n scale,\n ]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => page ? (scale ? makePageCallback(page, scale) : undefined) : page), [otherProps, page, scale]);\n const pageKey = `${pageIndex}@${scale}/${rotate}`;\n const pageKeyNoScale = `${pageIndex}/${rotate}`;\n function renderMainLayer() {\n switch (renderMode) {\n case 'custom': {\n invariant(CustomRenderer, `renderMode was set to \"custom\", but no customRenderer was passed.`);\n return _jsx(CustomRenderer, {}, `${pageKey}_custom`);\n }\n case 'none':\n return null;\n case 'svg':\n return _jsx(PageSVG, {}, `${pageKeyNoScale}_svg`);\n case 'canvas':\n default:\n return _jsx(PageCanvas, { canvasRef: canvasRef }, `${pageKey}_canvas`);\n }\n }\n function renderTextLayer() {\n if (!renderTextLayerProps) {\n return null;\n }\n return _jsx(TextLayer, {}, `${pageKey}_text`);\n }\n function renderAnnotationLayer() {\n if (!renderAnnotationLayerProps) {\n return null;\n }\n /**\n * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.\n * Therefore, as a fallback, we render \"traditional\" AnnotationLayer component.\n */\n return _jsx(AnnotationLayer, {}, `${pageKey}_annotations`);\n }\n function renderChildren() {\n return (_jsxs(PageContext.Provider, { value: childContext, children: [renderMainLayer(), renderTextLayer(), renderAnnotationLayer(), children] }));\n }\n function renderContent() {\n if (!pageNumber) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === null || page === undefined || page === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false || page === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx(_className, className), \"data-page-number\": pageNumber, ref: mergeRefs(inputRef, pageElement), style: {\n ['--scale-factor']: `${scale}`,\n backgroundColor: canvasBackground || 'white',\n position: 'relative',\n minWidth: 'min-content',\n minHeight: 'min-content',\n } }, eventProps, { children: renderContent() })));\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgLeftArrowLong(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.25 17.25L5 12L10.25 6.75L11.475 8.01875L8.36875 11.125H19V12.875H8.36875L11.475 15.9812L10.25 17.25Z\",\n fill: \"#1C1B1F\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeftArrowLong);\nexport default __webpack_public_path__ + \"static/media/left-arrow-long.64a345a9e10c04f2ffa30e531320de0b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgLinkedinIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 17.2222C20 18.7567 18.7567 20 17.2222 20H2.77778C1.24389 20 0 18.7567 0 17.2222V2.77778C0 1.24333 1.24389 0 2.77778 0H17.2222C18.7567 0 20 1.24333 20 2.77778V17.2222Z\",\n fill: \"#324F96\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33398 7.22483H6.11176V16.6693H3.33398V7.22483ZM4.71454 6.11372H4.69898C3.8701 6.11372 3.33398 5.49594 3.33398 4.72427C3.33398 3.93594 3.88676 3.33594 4.73065 3.33594C5.57565 3.33594 6.09621 3.93594 6.11176 4.72427C6.11176 5.49538 5.57565 6.11372 4.71454 6.11372ZM16.6673 16.6693H13.8895V11.6143C13.8895 10.3932 13.209 9.55983 12.1162 9.55983C11.2823 9.55983 10.8312 10.122 10.6123 10.6654C10.5323 10.8598 10.5562 11.3976 10.5562 11.6693V16.6693H7.77843V7.22483H10.5562V8.67816C10.9568 8.05816 11.584 7.22483 13.1884 7.22483C15.1762 7.22483 16.6668 8.47483 16.6668 11.2659L16.6673 16.6693Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkedinIcon);\nexport default __webpack_public_path__ + \"static/media/linkedin-icon.b0b3cea3f9923a40e2f6d00ad0472a2f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgDownloadIconWhite(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.9854 2.98644C11.7204 2.99032 11.4677 3.09927 11.283 3.28934C11.0982 3.47941 10.9965 3.73506 11.0001 4.00011V13.586L9.70712 12.2931C9.61498 12.1971 9.50461 12.1205 9.38248 12.0677C9.26035 12.0149 9.12892 11.987 8.99588 11.9857C8.86284 11.9843 8.73086 12.0095 8.60769 12.0598C8.48451 12.1101 8.3726 12.1845 8.27852 12.2785C8.18444 12.3726 8.11008 12.4845 8.05979 12.6077C8.0095 12.7309 7.9843 12.8629 7.98565 12.9959C7.98701 13.1289 8.01489 13.2604 8.06768 13.3825C8.12046 13.5046 8.19709 13.615 8.29306 13.7071L11.2931 16.7071C11.4806 16.8946 11.7349 16.9999 12.0001 16.9999C12.2653 16.9999 12.5196 16.8946 12.7071 16.7071L15.7071 13.7071C15.8031 13.615 15.8797 13.5046 15.9325 13.3825C15.9853 13.2604 16.0132 13.1289 16.0145 12.9959C16.0159 12.8629 15.9907 12.7309 15.9404 12.6077C15.8901 12.4845 15.8157 12.3726 15.7217 12.2785C15.6276 12.1845 15.5157 12.1101 15.3925 12.0598C15.2693 12.0095 15.1374 11.9843 15.0043 11.9857C14.8713 11.987 14.7398 12.0149 14.6177 12.0677C14.4956 12.1205 14.3852 12.1971 14.2931 12.2931L13.0001 13.586V4.00011C13.0019 3.8664 12.9769 3.73369 12.9266 3.60981C12.8762 3.48594 12.8015 3.37342 12.7069 3.27891C12.6123 3.1844 12.4997 3.10983 12.3758 3.05959C12.2519 3.00935 12.1191 2.98448 11.9854 2.98644ZM3.98545 15.4864C3.7204 15.4903 3.46774 15.5993 3.28298 15.7893C3.09821 15.9794 2.99647 16.2351 3.00009 16.5001V18.0001C3.00009 19.6451 4.35508 21.0001 6.00009 21.0001H18.0001C19.6451 21.0001 21.0001 19.6451 21.0001 18.0001V16.5001C21.002 16.3676 20.9775 16.236 20.9281 16.1131C20.8787 15.9901 20.8053 15.8782 20.7123 15.7838C20.6192 15.6894 20.5083 15.6145 20.3861 15.5634C20.2638 15.5122 20.1326 15.4859 20.0001 15.4859C19.8676 15.4859 19.7364 15.5122 19.6141 15.5634C19.4918 15.6145 19.381 15.6894 19.2879 15.7838C19.1949 15.8782 19.1215 15.9901 19.0721 16.1131C19.0227 16.236 18.9982 16.3676 19.0001 16.5001V18.0001C19.0001 18.5641 18.5641 19.0001 18.0001 19.0001H6.00009C5.43611 19.0001 5.00009 18.5641 5.00009 18.0001V16.5001C5.00192 16.3664 4.97692 16.2337 4.92656 16.1098C4.87621 15.9859 4.80152 15.8734 4.70692 15.7789C4.61233 15.6844 4.49973 15.6098 4.37581 15.5596C4.25189 15.5094 4.11915 15.4845 3.98545 15.4864Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadIconWhite);\nexport default __webpack_public_path__ + \"static/media/download-icon-white.abe4697d9c7708ff49d081ae299ac688.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\nimport moment from \"moment\";\nimport { Document, Page, pdfjs } from \"react-pdf\";\nimport { LoadingSpinner } from \"shared\";\nimport leftArrowIcon from \"assets/images/icons/left-arrow-long.svg\";\nimport linkedin from \"assets/images/icons/linkedin-icon.svg\";\nimport download from \"assets/images/icons/download-icon-white.svg\";\nimport { useProgramCertificate } from \"..\";\n\nexport const CertificatePreviewModal = ({\n downloadPdf,\n modalState,\n onCloseModal,\n}) => {\n const {\n info: {\n studentCertificateId,\n certificateUrl,\n title,\n programName,\n certificateName,\n certificateDate,\n certificateGuid,\n },\n } = modalState;\n\n const getCertificateUrl = useProgramCertificate(\n certificateUrl ? \"\" : studentCertificateId\n );\n const { data: url, isLoading } = !!getCertificateUrl && getCertificateUrl;\n const generatedCertificateUrl = certificateUrl ? certificateUrl : url;\n\n const date = moment(certificateDate, \"DD-MMM-YYYY hh:mm:ss A\");\n const month = date.format(\"MM\");\n const year = date.format(\"YYYY\");\n const organizationId = \"31202632\";\n const certificateVerfyUrl = `https://verify.nergy360.com/certificate/${certificateGuid}`;\n\n useEffect(() => {\n pdfjs.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.js`;\n }, []);\n\n const loadingPDF = () => (\n \n Loading PDF…\n
    \n );\n return (\n
    \n {isLoading ? (\n \n ) : (\n <>\n
    \n
    \n
    \n
    \n
    \n
    \n \n \"\"\n \n

    {programName}

    \n
    \n
    \n \n Share to\n \"\"\n \n \n downloadPdf(generatedCertificateUrl, title)\n }\n >\n Download\n \"\"\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {!isLoading && (\n <>\n {generatedCertificateUrl ? (\n <>\n \n \n \n \n ) : (\n \n Certificate not Found!\n \n )}\n \n )}\n
    \n
    \n
    \n \n )}\n
    \n );\n};\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCertificateBadge(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 49,\n viewBox: \"0 0 48 49\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_2095_34879)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.1699 14.9704C41.7209 14.3634 41.2969 13.7874 41.1259 13.2614C40.9409 12.6944 40.9439 11.9534 40.9459 11.1704C40.9499 9.94643 40.9539 8.55943 40.1679 7.48044C39.3739 6.38844 38.0469 5.96444 36.8749 5.59044C36.1359 5.35444 35.4369 5.13043 34.9649 4.78644C34.5029 4.45044 34.0799 3.86044 33.6329 3.23544C32.9129 2.22844 32.0969 1.08844 30.7949 0.665435C29.5489 0.262435 28.2989 0.671435 27.0879 1.06644C26.3319 1.31544 25.6179 1.54944 25.0009 1.54944C24.3839 1.54944 23.6689 1.31544 22.9129 1.06644C21.7059 0.670435 20.4569 0.259435 19.2049 0.665435C17.9049 1.08844 17.0889 2.22844 16.3689 3.23444C15.9219 3.85844 15.4989 4.44944 15.0359 4.78544C14.5639 5.12944 13.8649 5.35244 13.1249 5.58944C11.9539 5.96344 10.6269 6.38844 9.83293 7.47944C9.04693 8.55944 9.05193 9.94643 9.05493 11.1684C9.05793 11.9524 9.05993 12.6924 8.87493 13.2614C8.70393 13.7874 8.27993 14.3634 7.83093 14.9704C7.09193 15.9734 6.25293 17.1084 6.25293 18.5004C6.25293 19.8924 7.09193 21.0274 7.83093 22.0304C8.27993 22.6374 8.70393 23.2134 8.87493 23.7394C9.05993 24.3064 9.05693 25.0474 9.05493 25.8304C9.05093 27.0544 9.04693 28.4414 9.83293 29.5204C10.6269 30.6124 11.9539 31.0364 13.1259 31.4104C13.8649 31.6464 14.5639 31.8704 15.0359 32.2144C15.4979 32.5504 15.9209 33.1404 16.3679 33.7654C17.0879 34.7724 17.9039 35.9124 19.2059 36.3354C19.5699 36.4534 19.9349 36.5024 20.2989 36.5024C21.1809 36.5024 22.0569 36.2144 22.9119 35.9344C23.6689 35.6854 24.3839 35.4514 25.0009 35.4514C25.6179 35.4514 26.3319 35.6854 27.0879 35.9344C28.2949 36.3304 29.5429 36.7414 30.7959 36.3354C32.0959 35.9124 32.9119 34.7724 33.6329 33.7664C34.0799 33.1414 34.5019 32.5514 34.9649 32.2154C35.4369 31.8714 36.1359 31.6484 36.8759 31.4114C38.0469 31.0374 39.3739 30.6124 40.1679 29.5214C40.9539 28.4414 40.9489 27.0544 40.9459 25.8324C40.9429 25.0484 40.9409 24.3084 41.1259 23.7394C41.2969 23.2134 41.7209 22.6374 42.1699 22.0304C42.9089 21.0274 43.7479 19.8914 43.7479 18.5004C43.7479 17.1094 42.9089 15.9734 42.1699 14.9704Z\",\n fill: \"url(#paint0_linear_2095_34879)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.9999 48.5004C20.6979 48.5004 20.4099 48.3634 20.2189 48.1254L16.5199 43.5004H9.99991C9.65891 43.5004 9.34191 43.3264 9.15691 43.0394C8.97291 42.7524 8.94891 42.3914 9.09191 42.0814L14.0899 31.2514C14.3209 30.7504 14.9149 30.5304 15.4169 30.7624C15.9189 30.9944 16.1379 31.5884 15.9059 32.0894L11.5619 41.5004H16.9999C17.3039 41.5004 17.5909 41.6384 17.7809 41.8754L20.7469 45.5834L25.3339 35.1004C25.5549 34.5934 26.1459 34.3614 26.6499 34.5844C27.1569 34.8064 27.3869 35.3954 27.1659 35.9004L21.9159 47.9004C21.7749 48.2214 21.4779 48.4454 21.1309 48.4914C21.0869 48.4974 21.0429 48.5004 20.9999 48.5004Z\",\n fill: \"#324561\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.0621 48.4994C29.0191 48.4994 28.9751 48.4964 28.9311 48.4904C28.5841 48.4444 28.2861 48.2204 28.1461 47.8994L26.1281 43.2874C25.9061 42.7814 26.1371 42.1914 26.6441 41.9714C27.1491 41.7484 27.7401 41.9814 27.9601 42.4874L29.3141 45.5834L32.2801 41.8754C32.4711 41.6374 32.7581 41.4994 33.0621 41.4994H38.5001L34.2171 32.2204C33.9861 31.7194 34.2041 31.1244 34.7061 30.8934C35.2091 30.6614 35.8021 30.8804 36.0331 31.3824L40.9711 42.0804C41.1141 42.3904 41.0891 42.7514 40.9061 43.0384C40.7201 43.3254 40.4021 43.4994 40.0621 43.4994H33.5421L29.8431 48.1244C29.6511 48.3624 29.3631 48.4994 29.0621 48.4994Z\",\n fill: \"#324561\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_2095_34879\",\n x1: 6.25293,\n y1: 18.5004,\n x2: 43.7479,\n y2: 18.5004,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#EFD102\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#E7BD02\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_2095_34879\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"white\",\n transform: \"translate(0 0.5)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCertificateBadge);\nexport default __webpack_public_path__ + \"static/media/certificate-badge.e66a4c144703aefca6c406c734b90abc.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCalendarIconGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 15,\n viewBox: \"0 0 14 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.64583 2.25C2.60402 2.25 1.75 3.10402 1.75 4.14583V10.8542C1.75 11.896 2.60402 12.75 3.64583 12.75H10.3542C11.396 12.75 12.25 11.896 12.25 10.8542V4.14583C12.25 3.10402 11.396 2.25 10.3542 2.25H3.64583ZM3.64583 3.125H10.3542C10.9229 3.125 11.375 3.57707 11.375 4.14583V4.58333H2.625V4.14583C2.625 3.57707 3.07707 3.125 3.64583 3.125ZM2.625 5.45833H11.375V10.8542C11.375 11.4229 10.9229 11.875 10.3542 11.875H3.64583C3.07707 11.875 2.625 11.4229 2.625 10.8542V5.45833ZM4.52083 6.625C4.32745 6.625 4.14198 6.70182 4.00523 6.83857C3.86849 6.97531 3.79167 7.16078 3.79167 7.35417C3.79167 7.54755 3.86849 7.73302 4.00523 7.86977C4.14198 8.00651 4.32745 8.08333 4.52083 8.08333C4.71422 8.08333 4.89969 8.00651 5.03643 7.86977C5.17318 7.73302 5.25 7.54755 5.25 7.35417C5.25 7.16078 5.17318 6.97531 5.03643 6.83857C4.89969 6.70182 4.71422 6.625 4.52083 6.625ZM7 6.625C6.80661 6.625 6.62115 6.70182 6.4844 6.83857C6.34766 6.97531 6.27083 7.16078 6.27083 7.35417C6.27083 7.54755 6.34766 7.73302 6.4844 7.86977C6.62115 8.00651 6.80661 8.08333 7 8.08333C7.19339 8.08333 7.37885 8.00651 7.5156 7.86977C7.65234 7.73302 7.72917 7.54755 7.72917 7.35417C7.72917 7.16078 7.65234 6.97531 7.5156 6.83857C7.37885 6.70182 7.19339 6.625 7 6.625ZM9.47917 6.625C9.28578 6.625 9.10031 6.70182 8.96357 6.83857C8.82682 6.97531 8.75 7.16078 8.75 7.35417C8.75 7.54755 8.82682 7.73302 8.96357 7.86977C9.10031 8.00651 9.28578 8.08333 9.47917 8.08333C9.67255 8.08333 9.85802 8.00651 9.99477 7.86977C10.1315 7.73302 10.2083 7.54755 10.2083 7.35417C10.2083 7.16078 10.1315 6.97531 9.99477 6.83857C9.85802 6.70182 9.67255 6.625 9.47917 6.625ZM4.52083 9.25C4.32745 9.25 4.14198 9.32682 4.00523 9.46357C3.86849 9.60031 3.79167 9.78578 3.79167 9.97917C3.79167 10.1726 3.86849 10.358 4.00523 10.4948C4.14198 10.6315 4.32745 10.7083 4.52083 10.7083C4.71422 10.7083 4.89969 10.6315 5.03643 10.4948C5.17318 10.358 5.25 10.1726 5.25 9.97917C5.25 9.78578 5.17318 9.60031 5.03643 9.46357C4.89969 9.32682 4.71422 9.25 4.52083 9.25ZM7 9.25C6.80661 9.25 6.62115 9.32682 6.4844 9.46357C6.34766 9.60031 6.27083 9.78578 6.27083 9.97917C6.27083 10.1726 6.34766 10.358 6.4844 10.4948C6.62115 10.6315 6.80661 10.7083 7 10.7083C7.19339 10.7083 7.37885 10.6315 7.5156 10.4948C7.65234 10.358 7.72917 10.1726 7.72917 9.97917C7.72917 9.78578 7.65234 9.60031 7.5156 9.46357C7.37885 9.32682 7.19339 9.25 7 9.25Z\",\n fill: \"#AFB5BA\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendarIconGrey);\nexport default __webpack_public_path__ + \"static/media/calendar-icon-grey.badb5a47177eb79bdeee6a58c52a433b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgTimerIconGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 15,\n viewBox: \"0 0 14 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.27083 1.37504C6.21286 1.37422 6.1553 1.38493 6.1015 1.40655C6.0477 1.42817 5.99874 1.46027 5.95745 1.50097C5.91616 1.54168 5.88338 1.59019 5.861 1.64367C5.83863 1.69716 5.8271 1.75456 5.8271 1.81254C5.8271 1.87052 5.83863 1.92793 5.861 1.98141C5.88338 2.0349 5.91616 2.08341 5.95745 2.12411C5.99874 2.16482 6.0477 2.19692 6.1015 2.21853C6.1553 2.24015 6.21286 2.25086 6.27083 2.25004H6.5625V2.85559C3.87246 3.07917 1.75 5.3367 1.75 8.08338C1.75 10.9777 4.10569 13.3334 7 13.3334C9.89431 13.3334 12.25 10.9777 12.25 8.08338C12.25 6.7934 11.7803 5.61243 11.0053 4.69731L11.5374 4.16468C11.6005 4.10321 11.6436 4.02411 11.661 3.93775C11.6784 3.85138 11.6693 3.76177 11.635 3.68064C11.6007 3.59951 11.5426 3.53063 11.4685 3.48304C11.3943 3.43544 11.3075 3.41133 11.2195 3.41386C11.1059 3.41717 10.998 3.46457 10.9187 3.54602L10.3861 4.07809C9.57568 3.39178 8.55629 2.94858 7.4375 2.85559V2.25004H7.72917C7.78714 2.25086 7.8447 2.24015 7.8985 2.21853C7.9523 2.19692 8.00126 2.16482 8.04255 2.12411C8.08384 2.08341 8.11662 2.0349 8.139 1.98141C8.16137 1.92793 8.1729 1.87052 8.1729 1.81254C8.1729 1.75456 8.16137 1.69716 8.139 1.64367C8.11662 1.59019 8.08384 1.54168 8.04255 1.50097C8.00126 1.46027 7.9523 1.42817 7.8985 1.40655C7.8447 1.38493 7.78714 1.37422 7.72917 1.37504H6.27083ZM6.94816 3.71123C6.98335 3.71552 7.01893 3.71552 7.05412 3.71123C8.23086 3.72555 9.29339 4.19988 10.0705 4.96505C10.0847 4.98156 10.1001 4.99698 10.1166 5.01119C10.8946 5.80045 11.375 6.88402 11.375 8.08338C11.375 10.5048 9.42143 12.4584 7 12.4584C4.57857 12.4584 2.625 10.5048 2.625 8.08338C2.625 5.67945 4.55103 3.73919 6.94816 3.71123ZM8.88729 5.74606C8.77367 5.74937 8.66579 5.79677 8.58651 5.87822L7.22559 7.23914C7.15205 7.2191 7.07621 7.20876 7 7.20838C6.76794 7.20838 6.54538 7.30056 6.38128 7.46466C6.21719 7.62875 6.125 7.85131 6.125 8.08338C6.125 8.31544 6.21719 8.538 6.38128 8.7021C6.54538 8.86619 6.76794 8.95838 7 8.95838C7.13415 8.95831 7.26648 8.92739 7.38678 8.86802C7.50708 8.80865 7.61211 8.72242 7.69377 8.61599C7.77542 8.50955 7.83151 8.38577 7.8577 8.2542C7.88389 8.12264 7.87948 7.98681 7.84481 7.85722L9.20516 6.49687C9.26828 6.4354 9.31137 6.35631 9.32879 6.26994C9.34621 6.18358 9.33715 6.09397 9.30281 6.01283C9.26846 5.9317 9.21042 5.86283 9.13628 5.81523C9.06214 5.76763 8.97536 5.74352 8.88729 5.74606Z\",\n fill: \"#AFB5BA\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTimerIconGrey);\nexport default __webpack_public_path__ + \"static/media/timer-icon-grey.b56dc9056daabef9509a95682b2b3b24.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport certificateBadge from \"assets/images/icons/certificate-badge.svg\";\nimport calendarIConGrey from \"assets/images/icons/calendar-icon-grey.svg\";\nimport timerIconGrey from \"assets/images/icons/timer-icon-grey.svg\";\n\nexport const CertificateItem = ({\n item,\n certificate = false,\n onOpenModal,\n certificateProgramName,\n}) => {\n const formatDate = (value, format) => {\n const newDate = value.split(\" \");\n if (format === \"date\") {\n return newDate[0].replaceAll(\"-\", \" \");\n } else {\n return `${newDate[1].slice(0, 5)} ${newDate[2]}`;\n }\n };\n\n const handleModalState = () => {\n if (certificate || item?.isGenerated) {\n const info = {\n title: item.certificateName,\n programName: item.programName\n ? item.programName\n : certificateProgramName,\n studentCertificateId: item.id,\n certificateUrl: item.url,\n certificateName: item.certificateName,\n certificateDate: item.localCreatedDate,\n certificateGuid: item.certificateGuid,\n };\n onOpenModal({ actionFrom: \"openModal\", info });\n }\n };\n\n return (\n
    \n
    \n
    \n \"\"\n
    \n
    \n {item.programName && (\n {item.programName}\n )}\n

    {item.certificateName}

    \n {item.localCreatedDate ? (\n
    \n
    \n \"\"\n {formatDate(item.localCreatedDate, \"date\")}\n
    \n
    \n \"\"\n {formatDate(item.localCreatedDate, \"time\")}\n
    \n
    \n ) : (\n \n This Certificate will be available only after the completion of\n the course.\n \n )}\n
    \n
    \n
    \n );\n};\n","import { useImmer } from \"use-immer\";\nimport { useStudentBatchCertificateQuery } from \".\";\nimport { trimText } from \"utils\";\nimport { useModal } from \"shared\";\nimport { useEffect } from \"react\";\n\nexport const useCertificate = ({\n load = false,\n studentBatchId,\n isAllCertificate,\n}) => {\n const [selectedProgram, setSelectedProgram] = useImmer(\"\");\n const [clickedTimes, setClickedTimes] = useImmer(0);\n\n const { modalState, onOpenModal, onCloseModal } = useModal();\n const studentBatchCertificate = useStudentBatchCertificateQuery({\n load: load,\n studentBatchId,\n programId: selectedProgram,\n isAllCertificate,\n });\n\n useEffect(() => {\n if (clickedTimes === 3) {\n onOpenModal({\n actionFrom: \"NoCertificateAssigned\",\n info: {\n message:\n \"If you believe you have completed the course and your certificate is missing, please contact support for assistance\",\n },\n });\n }\n }, [clickedTimes]);\n\n const downloadPdf = async (url = \"\", certificateName) => {\n if (url) {\n let c_name = trimText(certificateName, 30, \"\");\n const fileName = c_name.split(\" \").join(\"_\");\n try {\n const response = await fetch(url);\n if (response) {\n const blob = await response.blob();\n const fileUrl = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = fileUrl;\n a.download = `${fileName}.pdf`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(fileUrl);\n }\n } catch (e) {\n console.error(\"Error downloading the file:\", e);\n }\n }\n };\n\n return {\n clickedTimes,\n setClickedTimes,\n downloadPdf,\n studentBatchCertificate,\n selectedProgram,\n setSelectedProgram,\n modalState,\n onOpenModal,\n onCloseModal,\n };\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { GET_PROGRAM_CERTIFICATE_BY_ID, getCertificateById } from \"..\";\n\nexport const useProgramCertificate = (studentCertificateId = \"\") => {\n return useQuery({\n queryKey: [GET_PROGRAM_CERTIFICATE_BY_ID, studentCertificateId],\n queryFn: () => getCertificateById(studentCertificateId),\n enabled: !!studentCertificateId,\n });\n};\n","export const GET_PROGRAM_CERTIFICATE = \"GET_PROGRAM_CERTIFICATE\";\nexport const GET_PROGRAM_CERTIFICATE_BY_ID = \"GET_PROGRAM_CERTIFICATE_BY_ID\";\nexport const GET_STUDENT_BATCH_CERTIFICATE = \"GET_STUDENT_BATCH_CERTIFICATE\";\nexport const GET_PROGRAM_SELECTLIST_FOR_CERTIFICATE =\n \"GET_PROGRAM_SELECTLIST_FOR_CERTIFICATE\";\n","import { Axios } from \"utils\";\n\nexport const getProgramCertificates = async (programId) => {\n let url = \"/v2/portal/Programs/generated-certificates\";\n if (programId) {\n url = url + `?programId=${programId}`;\n }\n const res = await Axios.get(url);\n return res.data;\n};\n\nexport const getCertificateById = async (studentCertificateId) => {\n const res = await Axios.get(\n `/Certificates/CertrtificateViewHtml/${studentCertificateId}`\n );\n return res.data;\n};\n\nexport const getStudentBatchCertificate = async (studentBatchId) => {\n const res = await Axios.get(\n `/v2/portal/Certificates/batches/${studentBatchId}`\n );\n return res.data;\n};\n\nexport const getProgramSelectListForCertificate = async () => {\n const res = await Axios.get(`/v2/portal/Certificates/Programs/select-list`);\n return res.data;\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport {\n GET_PROGRAM_CERTIFICATE,\n GET_STUDENT_BATCH_CERTIFICATE,\n getProgramCertificates,\n getStudentBatchCertificate,\n} from \"..\";\n\nexport const useStudentBatchCertificateQuery = ({\n studentBatchId = \"\",\n programId = \"\",\n load = false,\n isAllCertificate,\n}) => {\n const queryFn = isAllCertificate\n ? () => getProgramCertificates(programId)\n : () => getStudentBatchCertificate(studentBatchId);\n\n const queryKey = isAllCertificate\n ? [GET_PROGRAM_CERTIFICATE, programId]\n : [GET_STUDENT_BATCH_CERTIFICATE, studentBatchId];\n\n return useQuery({\n queryKey,\n queryFn,\n enabled: load,\n });\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport {\n GET_PROGRAM_SELECTLIST_FOR_CERTIFICATE,\n getProgramSelectListForCertificate,\n} from \"../api\";\n\nexport const useCertificateProgramSelectListQuery = ({ load = false }) => {\n return useQuery({\n queryKey: [GET_PROGRAM_SELECTLIST_FOR_CERTIFICATE],\n queryFn: () => getProgramSelectListForCertificate(),\n enabled: load,\n });\n};\n","import { activationCode, GET_MY_PROGRAMS, useProfileQuery } from \"modules\";\nimport { useModal } from \".\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { errorFormatter } from \"utils\";\nimport { useImmer } from \"use-immer\";\n\nexport const useProfileDropDown = ({ load = false }) => {\n const queryClient = useQueryClient();\n const { modalState, onOpenModal, onCloseModal } = useModal();\n const [activationCodes, setActivationCode] = useImmer(\"\");\n const [showError, setShowError] = useImmer(\"\");\n\n const profileQuery = useProfileQuery({ load });\n\n const addActivationCode = useMutation({\n mutationFn: activationCode,\n onError: (e) => {\n if (\n e &&\n e?.response?.data &&\n e?.response?.data?.message === \"Student already enrolled in program!\"\n ) {\n errorFormatter(e);\n } else {\n setShowError((draft) => {\n draft = e?.response?.data?.message;\n return draft;\n });\n }\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries([GET_MY_PROGRAMS]);\n setShowError((draft) => {\n draft = \"\";\n return draft;\n });\n onCloseModal();\n onOpenModal({\n actionFrom: \"activationSuccess\",\n });\n },\n });\n\n return {\n modalState,\n onCloseModal,\n onOpenModal,\n profileQuery,\n addActivationCode,\n activationCodes,\n setActivationCode,\n showError,\n setShowError,\n };\n};\n","import parse from \"html-react-parser\";\nimport { errorMessage } from \"utils\";\n\nexport const errorFormatter = (error) => {\n let errorString = \"\";\n\n if (error.response) {\n if (error.response.data.message && !error.response.data.errors) {\n errorString = error.response.data.message;\n }\n if (error.response.data.errors !== null) {\n for (var err in error.response.data.errors) {\n errorString += error.response.data.errors[err];\n }\n } else if (!error.response.data.message) {\n errorString = \"An error has occured!\";\n }\n } else {\n errorString = \"An error has occured!\";\n }\n errorMessage(parse(`${errorString}`));\n};\n","import { Modal, ModalHeader, Spinner } from \"reactstrap\";\nimport \"../../index.css\";\n\nexport const ModalLayout = (props) => {\n const {\n isOpen,\n title = \"\",\n largeTitle = \"\",\n message = \"\",\n onCancel,\n onConfirm,\n confirmButtonLabel = \"Submit\",\n icon = \"\",\n iconClass = \"\",\n modalFooter = null,\n modalMainFooter = null,\n modalBody = null,\n modalButtonGroup = null,\n modalStyle = { maxWidth: \"400px\" },\n header = \"\",\n HeaderComponent = null,\n isLoading = false,\n customClass = \"\",\n } = props;\n\n return (\n \n {header && {header}}\n {HeaderComponent && HeaderComponent}\n
    \n {icon && (\n \n )}\n {largeTitle &&

    {largeTitle}

    }\n {title &&

    {title}

    }\n {message &&

    {message}

    }\n {modalBody && modalBody}\n
    \n {!modalButtonGroup && (\n \n {isLoading ? (\n Loading...\n ) : (\n confirmButtonLabel\n )}\n \n )}\n {modalButtonGroup && modalButtonGroup}\n
    \n\n {modalFooter && (\n
    {modalFooter}
    \n )}\n
    \n {modalMainFooter && (\n
    {modalMainFooter}
    \n )}\n \n );\n};\n","import React from \"react\";\n\nexport const PasswordToggle = ({ passwordShown, togglePassword }) => {\n return (\n
    \n {passwordShown ? (\n \n \n \n \n ) : (\n \n \n \n \n \n )}\n
    \n );\n};\n","import React, { useEffect, useCallback, useState, forwardRef } from \"react\";\nimport { Input, FormFeedback } from \"reactstrap\";\nimport \"../styles/controlledTextarea.style.css\";\n\nconst ControlledTextarea = forwardRef((props, ref) => {\n const {\n value,\n id,\n limit = 200,\n name,\n label,\n onChange,\n isValidationRequired = false,\n ...rest\n } = props;\n\n const [content, setContent] = useState(value.slice(0, limit));\n\n const setFormattedContent = useCallback(\n (text) => {\n setContent(text.slice(0, limit));\n },\n [limit, setContent]\n );\n\n useEffect(() => {\n onChange({ value: content, name });\n }, [content]);\n\n const validate = isValidationRequired\n ? ref.current.message(name, content, \"required\")\n : false;\n\n return (\n
    \n setFormattedContent(e.target.value)}\n invalid={validate}\n {...rest}\n />\n

    \n {content.length}/{limit}\n

    \n {isValidationRequired && (\n \n {ref.current.message(name, content, \"required\")}\n \n )}\n
    \n );\n});\n\nexport default ControlledTextarea;\n","import React from \"react\";\nimport { Navigate } from \"react-router-dom\";\nimport { useAppScope } from \"master\";\n\nexport const ProtectedRoute = ({ children, redirectTo }) => {\n const {\n AppState: { token, user },\n } = useAppScope();\n\n return token ? children : ;\n};\n","'use client';\nimport { createContext, Component, createElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback !== undefined) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","import React from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { useNavigate } from \"react-router\";\nimport \"../styles/globalErrorHandler.style.css\";\n\nconst ErrorFallback = ({ error, resetErrorBoundary }) => {\n const isProduction = process.env?.REACT_APP_ENVIORNMENT_KEY === \"production\";\n return (\n
    \n
    \n {isProduction ? \"Something went wrong!\" : error.message}\n
    \n Go to Home page\n
    \n );\n};\n\nexport const GlobalErrorHandler = ({ children }) => {\n const navigate = useNavigate();\n return (\n {\n navigate(\"/\", { replace: true });\n }}\n >\n {children}\n \n );\n};\n","import React from \"react\";\nimport { Spinner } from \"reactstrap\";\n\nexport const LoadingSpinner = ({ marinHeight = \"120px\" }) => {\n return (\n \n Loading...\n \n );\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgHomeIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 20,\n viewBox: \"0 0 18 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.97559 0.000362923C8.81566 0.00582418 8.66168 0.0622851 8.53613 0.161496L1.42969 5.76013C0.527739 6.47094 0 7.55712 0 8.70544V18.2504C0 18.9322 0.568203 19.5004 1.25 19.5004H6.25C6.9318 19.5004 7.5 18.9322 7.5 18.2504V13.2504C7.5 13.1028 7.60248 13.0004 7.75 13.0004H10.25C10.3975 13.0004 10.5 13.1028 10.5 13.2504V18.2504C10.5 18.9322 11.0682 19.5004 11.75 19.5004H16.75C17.4318 19.5004 18 18.9322 18 18.2504V8.70544C18 7.55712 17.4723 6.47094 16.5703 5.76013L9.46387 0.161496C9.32518 0.0519334 9.15225 -0.00513271 8.97559 0.000362923ZM9 1.70544L15.6426 6.93884C16.1846 7.36602 16.5 8.01577 16.5 8.70544V18.0004H12V13.2504C12 12.2929 11.2075 11.5004 10.25 11.5004H7.75C6.79252 11.5004 6 12.2929 6 13.2504V18.0004H1.5V8.70544C1.5 8.01577 1.81537 7.36602 2.35742 6.93884L9 1.70544Z\",\n fill: \"#002752\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHomeIcon);\nexport default __webpack_public_path__ + \"static/media/home-icon.39ca3c8dd30625d80f69065dbfaa4402.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport homeIcon from \"assets/images/icons/home-icon.svg\";\nimport { Link } from \"react-router-dom\";\nimport { trimText } from \"utils\";\n\nexport const PageHeader = ({\n breadcrumb,\n titleEndComponent,\n title,\n isBreadCrumbsMarginRequired,\n isBreadCrumbsRequired,\n}) => {\n return (\n
    \n \n {isBreadCrumbsRequired && (\n \n )}\n
    \n {title && (\n
    \n
    \n

    {title}

    \n
    \n {titleEndComponent && (\n
    {titleEndComponent}
    \n )}\n
    \n )}\n \n );\n};\n","import React, { useEffect } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { useQuestionareContext } from \"master\";\nimport { trimText } from \"utils\";\nimport { useImmer } from \"use-immer\";\n\nexport const MainHeader = ({ children }) => {\n const location = useLocation();\n\n const isResult = location.pathname === \"/program/assessment/result\";\n const isQuestionnaire =\n location.pathname === \"/program/assessment/start\" ||\n location.pathname === \"/program/assessment/review\" ||\n location.pathname === \"/program/assessment/allQuestions\";\n\n const [isResultPage, setIsResultPage] = useImmer(isResult);\n const [isQuestionnairePage, setIsQuestionnairePage] =\n useImmer(isQuestionnaire);\n\n const questionnaireContext = useQuestionareContext();\n const { questionnaire } = !!questionnaireContext && questionnaireContext;\n\n const assessmentTitle = questionnaire ? questionnaire?.name : null;\n\n useEffect(() => {\n setIsResultPage(isResult);\n setIsQuestionnairePage(isQuestionnaire);\n }, [location.pathname]);\n\n const brandLogo = process.env.REACT_APP_MAIN_LOGO;\n\n return (\n
    \n
    \n
    \n
    \n
    \n {isQuestionnairePage || isResultPage ? (\n \n \"Nergy\n \n ) : (\n \n \"Nergy\n \n )}\n {assessmentTitle && isQuestionnairePage && (\n

    \n {trimText(assessmentTitle, 40)}\n

    \n )}\n
    \n\n
    \n {children}\n
    \n
    \n
    \n
    \n
    \n );\n};\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport const FooterLink = ({ to = \"\", label = \"\", target = false }) => {\n return (\n
  • \n \n {label}\n \n
  • \n );\n};\n","import React from \"react\";\nimport appInfo from \"../../../package.json\";\nimport { FooterLink } from \"./FooterLink\";\nexport const MainFooter = () => {\n return (\n
    \n
    \n
    \n
    \n {`v${appInfo.version}`}\n \n ©NERGY INDIA PVT LTD\n
    \n
    \n
    \n
    \n );\n};\n","import React from \"react\";\n\nexport const CommonProgressBar = ({\n width,\n label = null,\n hasPassed = false,\n}) => {\n return (\n
    \n
    \n
    \n
    \n {label &&
    {label}
    }\n \n );\n};\n","import React from \"react\";\n\nexport const CommonIcons = ({ type, isActive = false }) => {\n switch (type) {\n case \"cretificate\":\n return (\n
    \n \n \n \n
    \n );\n case \"assessment\":\n return (\n
    \n \n \n \n
    \n );\n case \"asssignment\":\n return (\n
    \n \n \n \n
    \n );\n case \"learning\":\n return (\n
    \n \n \n \n
    \n );\n default:\n break;\n }\n};\n","import React from \"react\";\nimport { Spinner } from \"reactstrap\";\n\nexport const SpinnerComponent = () => {\n return (\n \n Loading...\n \n );\n};\n","import React from \"react\";\nimport ReactPlayer from \"react-player\";\nimport { Modal, ModalHeader, ModalBody } from \"reactstrap\";\n\nexport const VideoPlayerModal = ({ isOpen, onCancel, title, url }) => {\n return (\n \n {title}\n \n \n \n \n );\n};\n","import React from \"react\";\nimport \"../styles/errorPage.style.css\";\n\nexport const ErrorComponent = ({\n title,\n message,\n image,\n btnLabel,\n onClick,\n}) => {\n return (\n
    \n
    \n \"\"\n

    {title}

    \n

    {message}

    \n {onClick && (\n
    \n \n
    \n )}\n
    \n
    \n );\n};\n","import React, { useRef, useState, useEffect, memo } from \"react\";\n\nexport const HeaderLink = memo(\n ({ icon, onClick = null, children, location, closeDropDown = false }) => {\n const menuLabelRef = useRef();\n const menuRef = useRef();\n\n const [isShow, setIsShow] = useState(false);\n\n const toggleMenu = () => {\n setIsShow((prevIsShow) => !prevIsShow);\n };\n\n useEffect(() => {\n function handleClickOutside(event) {\n if (\n menuLabelRef.current &&\n !menuLabelRef.current.contains(event.target) &&\n menuRef.current &&\n !menuRef.current.contains(event.target)\n ) {\n setIsShow(false);\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n useEffect(() => {\n setIsShow(false);\n }, [location, closeDropDown]);\n\n return (\n
    \n \n \"\"\n \n {isShow &&
    {children}
    }\n
    \n );\n }\n);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgNotifictionIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.6386 2.00847C7.59682 2.19884 4.49988 5.67138 4.49988 9.69011V13.3239L3.17469 15.9899C3.17236 15.9948 3.17008 15.9997 3.16785 16.0046C2.63472 17.1383 3.49774 18.4997 4.75086 18.4997H8.99988C8.99988 20.1476 10.352 21.4997 11.9999 21.4997C13.6478 21.4997 14.9999 20.1476 14.9999 18.4997H19.2479C20.5011 18.4997 21.3652 17.1386 20.8319 16.0046C20.8297 15.9997 20.8274 15.9948 20.8251 15.9899L19.4999 13.3239V9.49968C19.4999 5.24658 15.9315 1.80637 11.6386 2.00847ZM11.7089 3.50652C15.1689 3.34363 17.9999 6.08078 17.9999 9.49968V13.4997C17.9998 13.6156 18.0265 13.7299 18.078 13.8337L19.4745 16.6442C19.5643 16.8367 19.4604 16.9997 19.2479 16.9997H4.75086C4.5384 16.9997 4.43534 16.837 4.52527 16.6442V16.6432L5.92176 13.8337C5.97325 13.7299 5.99999 13.6156 5.99988 13.4997V9.69011C5.99988 6.43985 8.48961 3.65815 11.7089 3.50652ZM10.4999 18.4997H13.4999C13.4999 19.3368 12.837 19.9997 11.9999 19.9997C11.1628 19.9997 10.4999 19.3368 10.4999 18.4997Z\",\n fill: \"#171717\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotifictionIcon);\nexport default __webpack_public_path__ + \"static/media/notifiction-icon.cdbc11dfe32a067cf5d3c5c26c2dd954.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgUserIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5 3.75C8.80117 3.75 6.6 5.95117 6.6 8.65C6.6 10.3371 7.46133 11.8355 8.76562 12.7188C6.26914 13.7906 4.5 16.268 4.5 19.15H5.9C5.9 16.0492 8.39922 13.55 11.5 13.55C14.6008 13.55 17.1 16.0492 17.1 19.15H18.5C18.5 16.268 16.7309 13.7906 14.2344 12.7188C15.5387 11.8355 16.4 10.3371 16.4 8.65C16.4 5.95117 14.1988 3.75 11.5 3.75ZM11.5 5.15C13.4414 5.15 15 6.70859 15 8.65C15 10.5914 13.4414 12.15 11.5 12.15C9.55859 12.15 8 10.5914 8 8.65C8 6.70859 9.55859 5.15 11.5 5.15Z\",\n fill: \"#171717\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUserIcon);\nexport default __webpack_public_path__ + \"static/media/user-icon.1f5b1c2b05e9cb06b0ed1e784983fd47.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgBookDarkGreyThickIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 16,\n viewBox: \"0 0 18 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0V12.6C0 13.5838 0.816243 14.4 1.8 14.4H7.7291C7.82205 14.6629 7.99413 14.8906 8.2217 15.0517C8.44926 15.2129 8.72115 15.2996 9 15.3C9.27885 15.2996 9.55074 15.2129 9.7783 15.0517C10.0059 14.8906 10.1779 14.6629 10.2709 14.4H16.2C17.1838 14.4 18 13.5838 18 12.6V0H11.7C10.6102 0 9.662 0.518622 9 1.29199C8.338 0.518622 7.38984 0 6.3 0H0ZM1.8 1.8H6.3C7.305 1.8 8.1 2.595 8.1 3.6H9.9C9.9 2.595 10.695 1.8 11.7 1.8H16.2V12.6H1.8V1.8ZM11.7 4.5V6.3H13.5V4.5H11.7ZM11.7 7.2V10.8H13.5V7.2H11.7Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBookDarkGreyThickIcon);\nexport default __webpack_public_path__ + \"static/media/book-dark-grey-thick-icon.74e8fe272245c3c9da7537aa36619c23.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgQuestionIconThickGrey(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 0C4.0401 0 0 4.0401 0 9C0 13.9599 4.0401 18 9 18C13.9599 18 18 13.9599 18 9C18 4.0401 13.9599 0 9 0ZM9 1.8C12.9871 1.8 16.2 5.01289 16.2 9C16.2 12.9871 12.9871 16.2 9 16.2C5.01289 16.2 1.8 12.9871 1.8 9C1.8 5.01289 5.01289 1.8 9 1.8ZM9 3.6C7.011 3.6 5.4 5.211 5.4 7.2H7.2C7.2 6.21 8.01 5.4 9 5.4C9.99 5.4 10.8 6.21 10.8 7.2C10.8 9 8.1 9.3303 8.1 11.7H9.9C9.9 10.2141 12.6 9.45 12.6 7.2C12.6 5.211 10.989 3.6 9 3.6ZM8.1 12.6V14.4H9.9V12.6H8.1Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuestionIconThickGrey);\nexport default __webpack_public_path__ + \"static/media/question-icon-thick-grey.67093af271277fbac3beaba83b80f2bf.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgWarningRoundFilledBlue(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 60,\n height: 60,\n viewBox: \"0 0 60 60\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.35,\n d: \"M29.625 50.625C41.0159 50.625 50.25 41.3909 50.25 30C50.25 18.6091 41.0159 9.375 29.625 9.375C18.2341 9.375 9 18.6091 9 30C9 41.3909 18.2341 50.625 29.625 50.625Z\",\n fill: \"#324F96\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.25 39.2697C32.25 40.1431 31.728 42.375 29.2341 42.375C26.7403 42.375 26.25 40.1431 26.25 39.2697C26.25 38.4168 26.8058 36.1274 29.2341 36.1274C31.6625 36.1274 32.25 38.4168 32.25 39.2697ZM26.4973 31.0697V20.3008C26.4973 18.8231 27.7294 17.625 29.2489 17.625C30.7685 17.625 32.0006 18.8231 32.0006 20.3008V31.0718C32.0006 32.5494 30.7685 33.7475 29.2489 33.7475C27.7294 33.7455 26.4973 32.5473 26.4973 31.0697Z\",\n fill: \"#324F96\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWarningRoundFilledBlue);\nexport default __webpack_public_path__ + \"static/media/warning-round-filled-blue.d49831f2f4f8a1ba22b9f7127c481b2d.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport {\n ProfileDropDown,\n NotificationDropDown,\n ChangePassword,\n AssessmentTimer,\n ActivationCode,\n getActivityLogSession,\n} from \"modules\";\nimport { HeaderLink, ModalLayout, useProfileDropDown } from \"shared\";\nimport { useQuestionareContext, useAppScope, useAuthenticate } from \"master\";\nimport NotificationIcon from \"assets/images/icons/notifiction-icon.svg\";\nimport UserIcon from \"assets/images/icons/user-icon.svg\";\nimport InstructionIcon from \"assets/images/icons/book-dark-grey-thick-icon.svg\";\nimport HelpIcon from \"assets/images/icons/question-icon-thick-grey.svg\";\nimport warningIcon from \"assets/images/icons/warning-round-filled-blue.svg\";\nimport checkGraphics from \"assets/images/check-graphics.svg\";\nimport {\n clearHistoryAndRedirect,\n clearLocalStorage,\n removeCookie,\n} from \"utils\";\nimport { useCustomActivityLog } from \"modules\";\n\nexport const HeaderRightBlock = () => {\n const location = useLocation();\n const questionnaireContext = useQuestionareContext();\n const { signOutFromAccount } = useAuthenticate();\n const { sendLogToServer } = useCustomActivityLog();\n const { onToggleInstruction, onToggleHelp } = questionnaireContext;\n const isQuestionnairePages =\n location.pathname === \"/program/assessment/start\" ||\n location.pathname === \"/program/assessment/review\" ||\n location.pathname === \"/program/assessment/result\" ||\n location.pathname === \"/program/assessment/expired\" ||\n location.pathname === \"/program/assessment/allQuestions\";\n\n const isAssesmentResult = location.pathname === \"/program/assessment/result\";\n\n const { AppState } = useAppScope();\n const isExternal = !!AppState?.isExternal;\n const {\n user: { firstName, lastName },\n registrationId,\n } = AppState;\n\n const studentName = `${firstName} ${lastName ? lastName : \"\"}`;\n\n const {\n modalState,\n onOpenModal,\n onCloseModal,\n profileQuery,\n addActivationCode,\n activationCodes,\n setActivationCode,\n showError,\n setShowError,\n } = useProfileDropDown({ load: !isQuestionnairePages });\n\n useEffect(() => {\n onCloseModal();\n }, [location.pathname]);\n\n useEffect(() => {\n if (location.pathname === \"/account-delete\") {\n onOpenModal({ actionFrom: \"changePassword\", info: \"\" });\n }\n }, [location.pathname]);\n\n const onSignOut = async () => {\n const storedData = localStorage.getItem(\"student-session\");\n const log = storedData ? JSON.parse(storedData) : [];\n const data = await getActivityLogSession();\n if (data) {\n log.push({\n sessionId: data.sessionId,\n activity: \"logOut\",\n startedAt: data.serverDateTime,\n endedAt: data.serverDateTime,\n });\n sendLogToServer.mutate({ log, isLogOut: true });\n }\n if (isExternal) {\n clearHistoryAndRedirect(\"/login\");\n removeCookie(\"_stu_user_data\");\n sessionStorage.clear();\n clearLocalStorage();\n } else {\n signOutFromAccount.mutate();\n }\n };\n\n return (\n <>\n {isQuestionnairePages ? (\n <>\n {!isAssesmentResult && (\n <>\n \n
    \n onToggleInstruction(null, \"header\")}\n >\n \"\"\n \n onToggleHelp()}\n >\n \"\"\n \n
    \n
    \n

    {studentName}

    \n {!!registrationId && (\n {`Reg No:${registrationId}`}\n )}\n
    \n \n )}\n \n ) : (\n <>\n \n \n \n \n \n \n {modalState.actionFrom === \"changePassword\" && (\n \n )}\n {modalState.actionFrom === \"activationCode\" && (\n \n )}\n {modalState.actionFrom === \"activationSuccess\" && (\n \n )}\n {modalState.actionFrom === \"logoutModal\" && (\n \n \n \n Log out\n \n \n }\n />\n )}\n \n )}\n \n );\n};\n","import React from \"react\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { sendActivityLog } from \"..\";\n\nexport const useCustomActivityLog = () => {\n const sendLogToServer = useMutation({\n mutationFn: sendActivityLog,\n onSuccess: () => {\n localStorage.removeItem(\"student-session\");\n },\n });\n return {\n sendLogToServer,\n };\n};\n","import React from \"react\";\nimport ReactPlayer from \"react-player\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport \"../styles/mediaPreview.styles.css\";\n\nexport const MediaPreviewModal = ({\n isOpen,\n onCancel,\n url = \"\",\n mediaType = null,\n}) => {\n const mediaViewer = (type) => {\n switch (type) {\n case 0:\n return \"media\";\n case 1:\n return (\n \n );\n default:\n return null;\n }\n };\n\n return (\n \n \n \n
    {mediaViewer(mediaType)}
    \n
    \n \n );\n};\n","import React, { useEffect, useRef } from \"react\";\n\nconst extractVideoId = (url) => {\n const regex =\n /(?:https?:\\/\\/)?(?:www\\.)?(?:youtube\\.com\\/(?:[^/\\n\\s]+\\/\\S+\\/|(?:v|e(?:mbed)?)\\/|\\S*?[?&]v=)|youtu\\.be\\/)([a-zA-Z0-9_-]{11})/;\n\n const matches = url.match(regex);\n return matches ? matches[1] : null;\n};\n\nexport const YouTubePlayer = ({ videoUrl }) => {\n const playerRef = useRef(null);\n const videoId = extractVideoId(videoUrl);\n\n useEffect(() => {\n const loadYouTubeAPI = () => {\n const script = document.createElement(\"script\");\n script.src = \"https://www.youtube.com/iframe_api\";\n const firstScriptTag = document.getElementsByTagName(\"script\")[0];\n firstScriptTag.parentNode.insertBefore(script, firstScriptTag);\n };\n\n if (!window.YT) {\n loadYouTubeAPI();\n } else if (window.YT && window.YT.Player) {\n createPlayer();\n }\n\n window.onYouTubeIframeAPIReady = () => {\n createPlayer();\n };\n\n function createPlayer() {\n const player = new window.YT.Player(playerRef.current, {\n height: \"390\",\n width: \"640\",\n videoId: videoId,\n playerVars: {\n rel: 0,\n },\n });\n }\n }, [videoId]);\n\n return (\n
    \n
    \n
    \n );\n};\n","import React from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { FooterLink } from \"shared/components\";\nimport appInfo from \"../../../package.json\";\n\nexport const AuthLayout = ({ leftDivImage, children }) => {\n const brandLogo = process.env.REACT_APP_MAIN_LOGO;\n const location = useLocation();\n\n return (\n <>\n
    \n
    \n
    \n
    \n {\n if (location.pathname === \"/login\") {\n window.location.reload();\n }\n }}\n >\n \"nergy\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    {children}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {`v${appInfo.version}`}\n ©NERGY INDIA PVT LTD\n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n};\n","import React from \"react\";\nimport { PageHeader } from \"..\";\nimport \"../styles/pageLayout.style.css\";\n\nexport const PageLayout = ({\n children,\n breadcrumb = [],\n titleEndComponent = null,\n title = \"\",\n isScrollable = true,\n isBreadCrumbsMarginRequired = true,\n isFullWidthContainer = true,\n isRowRequired = true,\n isBreadCrumbsRequired = true,\n isPageHeaderRequired = true,\n isBreadCrumbsPaddingRequired = true,\n}) => {\n return (\n <>\n \n {isPageHeaderRequired && (\n
    \n
    \n \n
    \n
    \n )}\n \n
    \n
    \n {children}\n
    \n
    \n \n \n \n );\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst stringToByteArray = function (str: string): number[] {\n // TODO(user): Use native implementations if/when available\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (\n (c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00\n ) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes: number[]): string {\n // TODO(user): Use native implementations if/when available\n const out: string[] = [];\n let pos = 0,\n c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u =\n (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(\n ((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)\n );\n }\n }\n return out.join('');\n};\n\ninterface Base64 {\n byteToCharMap_: { [key: number]: string } | null;\n charToByteMap_: { [key: string]: number } | null;\n byteToCharMapWebSafe_: { [key: number]: string } | null;\n charToByteMapWebSafe_: { [key: string]: number } | null;\n ENCODED_VALS_BASE: string;\n readonly ENCODED_VALS: string;\n readonly ENCODED_VALS_WEBSAFE: string;\n HAS_NATIVE_SUPPORT: boolean;\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string;\n encodeString(input: string, webSafe?: boolean): string;\n decodeString(input: string, webSafe: boolean): string;\n decodeStringToByteArray(input: string, webSafe: boolean): number[];\n init_(): void;\n}\n\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\nexport const base64: Base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE:\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_!\n : this.byteToCharMap_!;\n\n const output = [];\n\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(\n byteToCharMap[outByte1],\n byteToCharMap[outByte2],\n byteToCharMap[outByte3],\n byteToCharMap[outByte4]\n );\n }\n\n return output.join('');\n },\n\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input: string, webSafe?: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input: string, webSafe: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input: string, webSafe: boolean): number[] {\n this.init_();\n\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_!\n : this.charToByteMap_!;\n\n const output: number[] = [];\n\n for (let i = 0; i < input.length; ) {\n const byte1 = charToByteMap[input.charAt(i++)];\n\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw new DecodeBase64StringError();\n }\n\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n\n/**\n * An error encountered while decoding base64 string.\n */\nexport class DecodeBase64StringError extends Error {\n readonly name = 'DecodeBase64StringError';\n}\n\n/**\n * URL-safe base64 encoding\n */\nexport const base64Encode = function (str: string): string {\n const utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nexport const base64urlEncodeWithoutPadding = function (str: string): string {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nexport const base64Decode = function (str: string): string | null {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { base64Decode } from './crypt';\nimport { getGlobal } from './global';\n\n/**\n * Keys for experimental properties on the `FirebaseDefaults` object.\n * @public\n */\nexport type ExperimentalKey = 'authTokenSyncURL' | 'authIdTokenMaxAge';\n\n/**\n * An object that can be injected into the environment as __FIREBASE_DEFAULTS__,\n * either as a property of globalThis, a shell environment variable, or a\n * cookie.\n *\n * This object can be used to automatically configure and initialize\n * a Firebase app as well as any emulators.\n *\n * @public\n */\nexport interface FirebaseDefaults {\n config?: Record;\n emulatorHosts?: Record;\n _authTokenSyncURL?: string;\n _authIdTokenMaxAge?: number;\n /**\n * Override Firebase's runtime environment detection and\n * force the SDK to act as if it were in the specified environment.\n */\n forceEnvironment?: 'browser' | 'node';\n [key: string]: unknown;\n}\n\ndeclare global {\n // Need `var` for this to work.\n // eslint-disable-next-line no-var\n var __FIREBASE_DEFAULTS__: FirebaseDefaults | undefined;\n}\n\nconst getDefaultsFromGlobal = (): FirebaseDefaults | undefined =>\n getGlobal().__FIREBASE_DEFAULTS__;\n\n/**\n * Attempt to read defaults from a JSON string provided to\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\n * The dots are in parens because certain compilers (Vite?) cannot\n * handle seeing that variable in comments.\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\n */\nconst getDefaultsFromEnvVariable = (): FirebaseDefaults | undefined => {\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\n return;\n }\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\n if (defaultsJsonString) {\n return JSON.parse(defaultsJsonString);\n }\n};\n\nconst getDefaultsFromCookie = (): FirebaseDefaults | undefined => {\n if (typeof document === 'undefined') {\n return;\n }\n let match;\n try {\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\n } catch (e) {\n // Some environments such as Angular Universal SSR have a\n // `document` object but error on accessing `document.cookie`.\n return;\n }\n const decoded = match && base64Decode(match[1]);\n return decoded && JSON.parse(decoded);\n};\n\n/**\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\n * (1) if such an object exists as a property of `globalThis`\n * (2) if such an object was provided on a shell environment variable\n * (3) if such an object exists in a cookie\n * @public\n */\nexport const getDefaults = (): FirebaseDefaults | undefined => {\n try {\n return (\n getDefaultsFromGlobal() ||\n getDefaultsFromEnvVariable() ||\n getDefaultsFromCookie()\n );\n } catch (e) {\n /**\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\n * to any environment case we have not accounted for. Log to\n * info instead of swallowing so we can find these unknown cases\n * and add paths for them if needed.\n */\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\n return;\n }\n};\n\n/**\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\n * @public\n */\nexport const getDefaultEmulatorHost = (\n productName: string\n): string | undefined => getDefaults()?.emulatorHosts?.[productName];\n\n/**\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\n * @public\n */\nexport const getDefaultEmulatorHostnameAndPort = (\n productName: string\n): [hostname: string, port: number] | undefined => {\n const host = getDefaultEmulatorHost(productName);\n if (!host) {\n return undefined;\n }\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\n }\n // eslint-disable-next-line no-restricted-globals\n const port = parseInt(host.substring(separatorIndex + 1), 10);\n if (host[0] === '[') {\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\n return [host.substring(1, separatorIndex - 1), port];\n } else {\n return [host.substring(0, separatorIndex), port];\n }\n};\n\n/**\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\n * @public\n */\nexport const getDefaultAppConfig = (): Record | undefined =>\n getDefaults()?.config;\n\n/**\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\n * prefixed by \"_\")\n * @public\n */\nexport const getExperimentalSetting = (\n name: T\n): FirebaseDefaults[`_${T}`] =>\n getDefaults()?.[`_${name}`] as FirebaseDefaults[`_${T}`];\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n * @public\n */\nexport function getGlobal(): typeof globalThis {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class Deferred {\n promise: Promise;\n reject: (value?: unknown) => void = () => {};\n resolve: (value?: unknown) => void = () => {};\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as (value?: unknown) => void;\n this.reject = reject as (value?: unknown) => void;\n });\n }\n\n /**\n * Our API internals are not promisified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(\n callback?: (error?: unknown, value?: unknown) => void\n ): (error: unknown, value?: unknown) => void {\n return (error, value?) => {\n if (error) {\n this.reject(error);\n } else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => {});\n\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CONSTANTS } from './constants';\nimport { getDefaults } from './defaults';\n\n/**\n * Type placeholder for `WorkerGlobalScope` from `webworker`\n */\ndeclare class WorkerGlobalScope {}\n\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nexport function getUA(): string {\n if (\n typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string'\n ) {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nexport function isMobileCordova(): boolean {\n return (\n typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())\n );\n}\n\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected or specified.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nexport function isNode(): boolean {\n const forceEnvironment = getDefaults()?.forceEnvironment;\n if (forceEnvironment === 'node') {\n return true;\n } else if (forceEnvironment === 'browser') {\n return false;\n }\n\n try {\n return (\n Object.prototype.toString.call(global.process) === '[object process]'\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Detect Browser Environment.\n * Note: This will return true for certain test frameworks that are incompletely\n * mimicking a browser, and should not lead to assuming all browser APIs are\n * available.\n */\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined' || isWebWorker();\n}\n\n/**\n * Detect Web Worker context.\n */\nexport function isWebWorker(): boolean {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n typeof self !== 'undefined' &&\n self instanceof WorkerGlobalScope\n );\n}\n\n/**\n * Detect Cloudflare Worker context.\n */\nexport function isCloudflareWorker(): boolean {\n return (\n typeof navigator !== 'undefined' &&\n navigator.userAgent === 'Cloudflare-Workers'\n );\n}\n\n/**\n * Detect browser extensions (Chrome and Firefox at least).\n */\ninterface BrowserRuntime {\n id?: unknown;\n}\ndeclare const chrome: { runtime?: BrowserRuntime };\ndeclare const browser: { runtime?: BrowserRuntime };\nexport function isBrowserExtension(): boolean {\n const runtime =\n typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nexport function isReactNative(): boolean {\n return (\n typeof navigator === 'object' && navigator['product'] === 'ReactNative'\n );\n}\n\n/** Detects Electron apps. */\nexport function isElectron(): boolean {\n return getUA().indexOf('Electron/') >= 0;\n}\n\n/** Detects Internet Explorer. */\nexport function isIE(): boolean {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n\n/** Detects Universal Windows Platform apps. */\nexport function isUWP(): boolean {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nexport function isNodeSdk(): boolean {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n\n/** Returns true if we are running in Safari. */\nexport function isSafari(): boolean {\n return (\n !isNode() &&\n !!navigator.userAgent &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n );\n}\n\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nexport function isIndexedDBAvailable(): boolean {\n try {\n return typeof indexedDB === 'object';\n } catch (e) {\n return false;\n }\n}\n\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nexport function validateIndexedDBOpenable(): Promise {\n return new Promise((resolve, reject) => {\n try {\n let preExist: boolean = true;\n const DB_CHECK_NAME =\n 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nexport function areCookiesEnabled(): boolean {\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Standardized Firebase Error.\n *\n * Usage:\n *\n * // TypeScript string literals for type-safe codes\n * type Err =\n * 'unknown' |\n * 'object-not-found'\n * ;\n *\n * // Closure enum for type-safe error codes\n * // at-enum {string}\n * var Err = {\n * UNKNOWN: 'unknown',\n * OBJECT_NOT_FOUND: 'object-not-found',\n * }\n *\n * let errors: Map = {\n * 'generic-error': \"Unknown error\",\n * 'file-not-found': \"Could not find file: {$file}\",\n * };\n *\n * // Type-safe function - must pass a valid error code as param.\n * let error = new ErrorFactory('service', 'Service', errors);\n *\n * ...\n * throw error.create(Err.GENERIC);\n * ...\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\n * ...\n * // Service: Could not file file: foo.txt (service/file-not-found).\n *\n * catch (e) {\n * assert(e.message === \"Could not find file: foo.txt.\");\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\n * console.log(\"Could not read file: \" + e['file']);\n * }\n * }\n */\n\nexport type ErrorMap = {\n readonly [K in ErrorCode]: string;\n};\n\nconst ERROR_NAME = 'FirebaseError';\n\nexport interface StringLike {\n toString(): string;\n}\n\nexport interface ErrorData {\n [key: string]: unknown;\n}\n\n// Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\nexport class FirebaseError extends Error {\n /** The custom name for all FirebaseErrors. */\n readonly name: string = ERROR_NAME;\n\n constructor(\n /** The error code for this error. */\n readonly code: string,\n message: string,\n /** Custom data for this error. */\n public customData?: Record\n ) {\n super(message);\n\n // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, FirebaseError.prototype);\n\n // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\n }\n }\n}\n\nexport class ErrorFactory<\n ErrorCode extends string,\n ErrorParams extends { readonly [K in ErrorCode]?: ErrorData } = {}\n> {\n constructor(\n private readonly service: string,\n private readonly serviceName: string,\n private readonly errors: ErrorMap\n ) {}\n\n create(\n code: K,\n ...data: K extends keyof ErrorParams ? [ErrorParams[K]] : []\n ): FirebaseError {\n const customData = (data[0] as ErrorData) || {};\n const fullCode = `${this.service}/${code}`;\n const template = this.errors[code];\n\n const message = template ? replaceTemplate(template, customData) : 'Error';\n // Service Name: Error message (service/code).\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\n\n const error = new FirebaseError(fullCode, fullMessage, customData);\n\n return error;\n }\n}\n\nfunction replaceTemplate(template: string, data: ErrorData): string {\n return template.replace(PATTERN, (_, key) => {\n const value = data[key];\n return value != null ? String(value) : `<${key}?>`;\n });\n}\n\nconst PATTERN = /\\{\\$([^}]+)}/g;\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function contains(obj: T, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function safeGet(\n obj: T,\n key: K\n): T[K] | undefined {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nexport function isEmpty(obj: object): obj is {} {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function map(\n obj: { [key in K]: V },\n fn: (value: V, key: K, obj: { [key in K]: V }) => U,\n contextObj?: unknown\n): { [key in K]: U } {\n const res: Partial<{ [key in K]: U }> = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res as { [key in K]: U };\n}\n\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nexport function deepEqual(a: object, b: object): boolean {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n\n const aProp = (a as Record)[k];\n const bProp = (b as Record)[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n } else if (aProp !== bProp) {\n return false;\n }\n }\n\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isObject(thing: unknown): thing is object {\n return thing !== null && typeof thing === 'object';\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The amount of milliseconds to exponentially increase.\n */\nconst DEFAULT_INTERVAL_MILLIS = 1000;\n\n/**\n * The factor to backoff by.\n * Should be a number greater than 1.\n */\nconst DEFAULT_BACKOFF_FACTOR = 2;\n\n/**\n * The maximum milliseconds to increase to.\n *\n *

    Visible for testing\n */\nexport const MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\n\n/**\n * The percentage of backoff time to randomize by.\n * See\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\n * for context.\n *\n *

    Visible for testing\n */\nexport const RANDOM_FACTOR = 0.5;\n\n/**\n * Based on the backoff method from\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\n */\nexport function calculateBackoffMillis(\n backoffCount: number,\n intervalMillis: number = DEFAULT_INTERVAL_MILLIS,\n backoffFactor: number = DEFAULT_BACKOFF_FACTOR\n): number {\n // Calculates an exponentially increasing value.\n // Deviation: calculates value from count and a constant interval, so we only need to save value\n // and count to restore state.\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\n\n // A random \"fuzz\" to avoid waves of retries.\n // Deviation: randomFactor is required.\n const randomWait = Math.round(\n // A fraction of the backoff value to add/subtract.\n // Deviation: changes multiplication order to improve readability.\n RANDOM_FACTOR *\n currBaseValue *\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\n // if we add or subtract.\n (Math.random() - 0.5) *\n 2\n );\n\n // Limits backoff to max to avoid effectively permanent backoff.\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Compat {\n _delegate: T;\n}\n\nexport function getModularInstance(\n service: Compat | ExpService\n): ExpService {\n if (service && (service as Compat)._delegate) {\n return (service as Compat)._delegate;\n } else {\n return service as ExpService;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n InstantiationMode,\n InstanceFactory,\n ComponentType,\n Dictionary,\n Name,\n onInstanceCreatedCallback\n} from './types';\n\n/**\n * Component for service name T, e.g. `auth`, `auth-internal`\n */\nexport class Component {\n multipleInstances = false;\n /**\n * Properties to be added to the service namespace\n */\n serviceProps: Dictionary = {};\n\n instantiationMode = InstantiationMode.LAZY;\n\n onInstanceCreated: onInstanceCreatedCallback | null = null;\n\n /**\n *\n * @param name The public service name, e.g. app, auth, firestore, database\n * @param instanceFactory Service factory responsible for creating the public interface\n * @param type whether the service provided by the component is public or private\n */\n constructor(\n readonly name: T,\n readonly instanceFactory: InstanceFactory,\n readonly type: ComponentType\n ) {}\n\n setInstantiationMode(mode: InstantiationMode): this {\n this.instantiationMode = mode;\n return this;\n }\n\n setMultipleInstances(multipleInstances: boolean): this {\n this.multipleInstances = multipleInstances;\n return this;\n }\n\n setServiceProps(props: Dictionary): this {\n this.serviceProps = props;\n return this;\n }\n\n setInstanceCreatedCallback(callback: onInstanceCreatedCallback): this {\n this.onInstanceCreated = callback;\n return this;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Deferred } from '@firebase/util';\nimport { ComponentContainer } from './component_container';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport {\n InitializeOptions,\n InstantiationMode,\n Name,\n NameServiceMapping,\n OnInitCallBack\n} from './types';\nimport { Component } from './component';\n\n/**\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\n * NameServiceMapping[T] is an alias for the type of the instance\n */\nexport class Provider {\n private component: Component | null = null;\n private readonly instances: Map = new Map();\n private readonly instancesDeferred: Map<\n string,\n Deferred\n > = new Map();\n private readonly instancesOptions: Map> =\n new Map();\n private onInitCallbacks: Map>> = new Map();\n\n constructor(\n private readonly name: T,\n private readonly container: ComponentContainer\n ) {}\n\n /**\n * @param identifier A provider can provide multiple instances of a service\n * if this.component.multipleInstances is true.\n */\n get(identifier?: string): Promise {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n const deferred = new Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred);\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n // initialize the service if it can be auto-initialized\n try {\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {\n // when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier)!.promise;\n }\n\n /**\n *\n * @param options.identifier A provider can provide multiple instances of a service\n * if this.component.multipleInstances is true.\n * @param options.optional If optional is false or not provided, the method throws an error when\n * the service is not immediately available.\n * If optional is true, the method returns null if the service is not immediately available.\n */\n getImmediate(options: {\n identifier?: string;\n optional: true;\n }): NameServiceMapping[T] | null;\n getImmediate(options?: {\n identifier?: string;\n optional?: false;\n }): NameServiceMapping[T];\n getImmediate(options?: {\n identifier?: string;\n optional?: boolean;\n }): NameServiceMapping[T] | null {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n options?.identifier\n );\n const optional = options?.optional ?? false;\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n try {\n return this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n } else {\n // In case a component is not initialized and should/cannot be auto-initialized at the moment, return null if the optional flag is set, or throw\n if (optional) {\n return null;\n } else {\n throw Error(`Service ${this.name} is not available`);\n }\n }\n }\n\n getComponent(): Component | null {\n return this.component;\n }\n\n setComponent(component: Component): void {\n if (component.name !== this.name) {\n throw Error(\n `Mismatching Component ${component.name} for Provider ${this.name}.`\n );\n }\n\n if (this.component) {\n throw Error(`Component for ${this.name} has already been provided`);\n }\n\n this.component = component;\n\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n if (!this.shouldAutoInitialize()) {\n return;\n }\n\n // if the service is eager, initialize the default instance\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\n } catch (e) {\n // when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n })!;\n instanceDeferred.resolve(instance);\n } catch (e) {\n // when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n }\n\n clearInstance(identifier: string = DEFAULT_ENTRY_NAME): void {\n this.instancesDeferred.delete(identifier);\n this.instancesOptions.delete(identifier);\n this.instances.delete(identifier);\n }\n\n // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n async delete(): Promise {\n const services = Array.from(this.instances.values());\n\n await Promise.all([\n ...services\n .filter(service => 'INTERNAL' in service) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any).INTERNAL!.delete()),\n ...services\n .filter(service => '_delete' in service) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any)._delete())\n ]);\n }\n\n isComponentSet(): boolean {\n return this.component != null;\n }\n\n isInitialized(identifier: string = DEFAULT_ENTRY_NAME): boolean {\n return this.instances.has(identifier);\n }\n\n getOptions(identifier: string = DEFAULT_ENTRY_NAME): Record {\n return this.instancesOptions.get(identifier) || {};\n }\n\n initialize(opts: InitializeOptions = {}): NameServiceMapping[T] {\n const { options = {} } = opts;\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n opts.instanceIdentifier\n );\n if (this.isInitialized(normalizedIdentifier)) {\n throw Error(\n `${this.name}(${normalizedIdentifier}) has already been initialized`\n );\n }\n\n if (!this.isComponentSet()) {\n throw Error(`Component ${this.name} has not been registered yet`);\n }\n\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier,\n options\n })!;\n\n // resolve any pending promise waiting for the service instance\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedDeferredIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\n instanceDeferred.resolve(instance);\n }\n }\n\n return instance;\n }\n\n /**\n *\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n *\n * @param identifier An optional instance identifier\n * @returns a function to unregister the callback\n */\n onInit(callback: OnInitCallBack, identifier?: string): () => void {\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n const existingCallbacks =\n this.onInitCallbacks.get(normalizedIdentifier) ??\n new Set>();\n existingCallbacks.add(callback);\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n\n const existingInstance = this.instances.get(normalizedIdentifier);\n if (existingInstance) {\n callback(existingInstance, normalizedIdentifier);\n }\n\n return () => {\n existingCallbacks.delete(callback);\n };\n }\n\n /**\n * Invoke onInit callbacks synchronously\n * @param instance the service instance`\n */\n private invokeOnInitCallbacks(\n instance: NameServiceMapping[T],\n identifier: string\n ): void {\n const callbacks = this.onInitCallbacks.get(identifier);\n if (!callbacks) {\n return;\n }\n for (const callback of callbacks) {\n try {\n callback(instance, identifier);\n } catch {\n // ignore errors in the onInit callback\n }\n }\n }\n\n private getOrInitializeService({\n instanceIdentifier,\n options = {}\n }: {\n instanceIdentifier: string;\n options?: Record;\n }): NameServiceMapping[T] | null {\n let instance = this.instances.get(instanceIdentifier);\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, {\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n options\n });\n this.instances.set(instanceIdentifier, instance);\n this.instancesOptions.set(instanceIdentifier, options);\n\n /**\n * Invoke onInit listeners.\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\n * while onInit listeners are registered by consumers of the provider.\n */\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\n\n /**\n * Order is important\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\n * makes `isInitialized()` return true.\n */\n if (this.component.onInstanceCreated) {\n try {\n this.component.onInstanceCreated(\n this.container,\n instanceIdentifier,\n instance\n );\n } catch {\n // ignore errors in the onInstanceCreatedCallback\n }\n }\n }\n\n return instance || null;\n }\n\n private normalizeInstanceIdentifier(\n identifier: string = DEFAULT_ENTRY_NAME\n ): string {\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n }\n\n private shouldAutoInitialize(): boolean {\n return (\n !!this.component &&\n this.component.instantiationMode !== InstantiationMode.EXPLICIT\n );\n }\n}\n\n// undefined should be passed to the service factory for the default instance\nfunction normalizeIdentifierForFactory(identifier: string): string | undefined {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component: Component): boolean {\n return component.instantiationMode === InstantiationMode.EAGER;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Provider } from './provider';\nimport { Component } from './component';\nimport { Name } from './types';\n\n/**\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\n */\nexport class ComponentContainer {\n private readonly providers = new Map>();\n\n constructor(private readonly name: string) {}\n\n /**\n *\n * @param component Component being added\n * @param overwrite When a component with the same name has already been registered,\n * if overwrite is true: overwrite the existing component with the new component and create a new\n * provider with the new component. It can be useful in tests where you want to use different mocks\n * for different tests.\n * if overwrite is false: throw an exception\n */\n addComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n throw new Error(\n `Component ${component.name} has already been registered with ${this.name}`\n );\n }\n\n provider.setComponent(component);\n }\n\n addOrOverwriteComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n }\n\n /**\n * getProvider provides a type safe interface where it can only be called with a field name\n * present in NameServiceMapping interface.\n *\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\n * themselves.\n */\n getProvider(name: T): Provider {\n if (this.providers.has(name)) {\n return this.providers.get(name) as unknown as Provider;\n }\n\n // create a Provider for a service that hasn't registered with Firebase\n const provider = new Provider(name, this);\n this.providers.set(name, provider as unknown as Provider);\n\n return provider as Provider;\n }\n\n getProviders(): Array> {\n return Array.from(this.providers.values());\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ComponentContainer,\n ComponentType,\n Provider,\n Name\n} from '@firebase/component';\nimport { PlatformLoggerService, VersionService } from './types';\n\nexport class PlatformLoggerServiceImpl implements PlatformLoggerService {\n constructor(private readonly container: ComponentContainer) {}\n // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n getPlatformInfoString(): string {\n const providers = this.container.getProviders();\n // Loop through providers and get library/version pairs from any that are\n // version components.\n return providers\n .map(provider => {\n if (isVersionServiceProvider(provider)) {\n const service = provider.getImmediate() as VersionService;\n return `${service.library}/${service.version}`;\n } else {\n return null;\n }\n })\n .filter(logString => logString)\n .join(' ');\n }\n}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */\nfunction isVersionServiceProvider(provider: Provider): boolean {\n const component = provider.getComponent();\n return component?.type === ComponentType.VERSION;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from '@firebase/logger';\n\nexport const logger = new Logger('@firebase/app');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { name as appName } from '../package.json';\nimport { name as appCompatName } from '../../app-compat/package.json';\nimport { name as analyticsCompatName } from '../../../packages/analytics-compat/package.json';\nimport { name as analyticsName } from '../../../packages/analytics/package.json';\nimport { name as appCheckCompatName } from '../../../packages/app-check-compat/package.json';\nimport { name as appCheckName } from '../../../packages/app-check/package.json';\nimport { name as authName } from '../../../packages/auth/package.json';\nimport { name as authCompatName } from '../../../packages/auth-compat/package.json';\nimport { name as databaseName } from '../../../packages/database/package.json';\nimport { name as dataconnectName } from '../../../packages/data-connect/package.json';\nimport { name as databaseCompatName } from '../../../packages/database-compat/package.json';\nimport { name as functionsName } from '../../../packages/functions/package.json';\nimport { name as functionsCompatName } from '../../../packages/functions-compat/package.json';\nimport { name as installationsName } from '../../../packages/installations/package.json';\nimport { name as installationsCompatName } from '../../../packages/installations-compat/package.json';\nimport { name as messagingName } from '../../../packages/messaging/package.json';\nimport { name as messagingCompatName } from '../../../packages/messaging-compat/package.json';\nimport { name as performanceName } from '../../../packages/performance/package.json';\nimport { name as performanceCompatName } from '../../../packages/performance-compat/package.json';\nimport { name as remoteConfigName } from '../../../packages/remote-config/package.json';\nimport { name as remoteConfigCompatName } from '../../../packages/remote-config-compat/package.json';\nimport { name as storageName } from '../../../packages/storage/package.json';\nimport { name as storageCompatName } from '../../../packages/storage-compat/package.json';\nimport { name as firestoreName } from '../../../packages/firestore/package.json';\nimport { name as vertexName } from '../../../packages/vertexai/package.json';\nimport { name as firestoreCompatName } from '../../../packages/firestore-compat/package.json';\nimport { name as packageName } from '../../../packages/firebase/package.json';\n\n/**\n * The default app name\n *\n * @internal\n */\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\nexport const PLATFORM_LOG_STRING = {\n [appName]: 'fire-core',\n [appCompatName]: 'fire-core-compat',\n [analyticsName]: 'fire-analytics',\n [analyticsCompatName]: 'fire-analytics-compat',\n [appCheckName]: 'fire-app-check',\n [appCheckCompatName]: 'fire-app-check-compat',\n [authName]: 'fire-auth',\n [authCompatName]: 'fire-auth-compat',\n [databaseName]: 'fire-rtdb',\n [dataconnectName]: 'fire-data-connect',\n [databaseCompatName]: 'fire-rtdb-compat',\n [functionsName]: 'fire-fn',\n [functionsCompatName]: 'fire-fn-compat',\n [installationsName]: 'fire-iid',\n [installationsCompatName]: 'fire-iid-compat',\n [messagingName]: 'fire-fcm',\n [messagingCompatName]: 'fire-fcm-compat',\n [performanceName]: 'fire-perf',\n [performanceCompatName]: 'fire-perf-compat',\n [remoteConfigName]: 'fire-rc',\n [remoteConfigCompatName]: 'fire-rc-compat',\n [storageName]: 'fire-gcs',\n [storageCompatName]: 'fire-gcs-compat',\n [firestoreName]: 'fire-fst',\n [firestoreCompatName]: 'fire-fst-compat',\n [vertexName]: 'fire-vertex',\n 'fire-js': 'fire-js', // Platform identifier for JS SDK.\n [packageName]: 'fire-js-all'\n} as const;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseServerApp\n} from './public-types';\nimport { Component, Provider, Name } from '@firebase/component';\nimport { logger } from './logger';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { FirebaseServerAppImpl } from './firebaseServerApp';\n\n/**\n * @internal\n */\nexport const _apps = new Map();\n\n/**\n * @internal\n */\nexport const _serverApps = new Map();\n\n/**\n * Registered components.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const _components = new Map>();\n\n/**\n * @param component - the component being added to this app's container\n *\n * @internal\n */\nexport function _addComponent(\n app: FirebaseApp,\n component: Component\n): void {\n try {\n (app as FirebaseAppImpl).container.addComponent(component);\n } catch (e) {\n logger.debug(\n `Component ${component.name} failed to register with FirebaseApp ${app.name}`,\n e\n );\n }\n}\n\n/**\n *\n * @internal\n */\nexport function _addOrOverwriteComponent(\n app: FirebaseApp,\n component: Component\n): void {\n (app as FirebaseAppImpl).container.addOrOverwriteComponent(component);\n}\n\n/**\n *\n * @param component - the component to register\n * @returns whether or not the component is registered successfully\n *\n * @internal\n */\nexport function _registerComponent(\n component: Component\n): boolean {\n const componentName = component.name;\n if (_components.has(componentName)) {\n logger.debug(\n `There were multiple attempts to register component ${componentName}.`\n );\n\n return false;\n }\n\n _components.set(componentName, component);\n\n // add the component to existing app instances\n for (const app of _apps.values()) {\n _addComponent(app as FirebaseAppImpl, component);\n }\n\n for (const serverApp of _serverApps.values()) {\n _addComponent(serverApp as FirebaseServerAppImpl, component);\n }\n\n return true;\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n *\n * @returns the provider for the service with the matching name\n *\n * @internal\n */\nexport function _getProvider(\n app: FirebaseApp,\n name: T\n): Provider {\n const heartbeatController = (app as FirebaseAppImpl).container\n .getProvider('heartbeat')\n .getImmediate({ optional: true });\n if (heartbeatController) {\n void heartbeatController.triggerHeartbeat();\n }\n return (app as FirebaseAppImpl).container.getProvider(name);\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\n *\n * @internal\n */\nexport function _removeServiceInstance(\n app: FirebaseApp,\n name: T,\n instanceIdentifier: string = DEFAULT_ENTRY_NAME\n): void {\n _getProvider(app, name).clearInstance(instanceIdentifier);\n}\n\n/**\n *\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\n *\n * @returns true if the provide object is of type FirebaseApp.\n *\n * @internal\n */\nexport function _isFirebaseApp(\n obj: FirebaseApp | FirebaseOptions\n): obj is FirebaseApp {\n return (obj as FirebaseApp).options !== undefined;\n}\n\n/**\n *\n * @param obj - an object of type FirebaseApp.\n *\n * @returns true if the provided object is of type FirebaseServerAppImpl.\n *\n * @internal\n */\nexport function _isFirebaseServerApp(\n obj: FirebaseApp | FirebaseServerApp\n): obj is FirebaseServerApp {\n return (obj as FirebaseServerApp).settings !== undefined;\n}\n\n/**\n * Test only\n *\n * @internal\n */\nexport function _clearComponents(): void {\n _components.clear();\n}\n\n/**\n * Exported in order to be used in app-compat package\n */\nexport { DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AppError {\n NO_APP = 'no-app',\n BAD_APP_NAME = 'bad-app-name',\n DUPLICATE_APP = 'duplicate-app',\n APP_DELETED = 'app-deleted',\n SERVER_APP_DELETED = 'server-app-deleted',\n NO_OPTIONS = 'no-options',\n INVALID_APP_ARGUMENT = 'invalid-app-argument',\n INVALID_LOG_ARGUMENT = 'invalid-log-argument',\n IDB_OPEN = 'idb-open',\n IDB_GET = 'idb-get',\n IDB_WRITE = 'idb-set',\n IDB_DELETE = 'idb-delete',\n FINALIZATION_REGISTRY_NOT_SUPPORTED = 'finalization-registry-not-supported',\n INVALID_SERVER_APP_ENVIRONMENT = 'invalid-server-app-environment'\n}\n\nconst ERRORS: ErrorMap = {\n [AppError.NO_APP]:\n \"No Firebase App '{$appName}' has been created - \" +\n 'call initializeApp() first',\n [AppError.BAD_APP_NAME]: \"Illegal App name: '{$appName}'\",\n [AppError.DUPLICATE_APP]:\n \"Firebase App named '{$appName}' already exists with different options or config\",\n [AppError.APP_DELETED]: \"Firebase App named '{$appName}' already deleted\",\n [AppError.SERVER_APP_DELETED]: 'Firebase Server App has been deleted',\n [AppError.NO_OPTIONS]:\n 'Need to provide options, when not being deployed to hosting via source.',\n [AppError.INVALID_APP_ARGUMENT]:\n 'firebase.{$appName}() takes either no argument or a ' +\n 'Firebase App instance.',\n [AppError.INVALID_LOG_ARGUMENT]:\n 'First argument to `onLog` must be null or a function.',\n [AppError.IDB_OPEN]:\n 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_GET]:\n 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_WRITE]:\n 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_DELETE]:\n 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED]:\n 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\n [AppError.INVALID_SERVER_APP_ENVIRONMENT]:\n 'FirebaseServerApp is not for use in browser environments.'\n};\n\ninterface ErrorParams {\n [AppError.NO_APP]: { appName: string };\n [AppError.BAD_APP_NAME]: { appName: string };\n [AppError.DUPLICATE_APP]: { appName: string };\n [AppError.APP_DELETED]: { appName: string };\n [AppError.INVALID_APP_ARGUMENT]: { appName: string };\n [AppError.IDB_OPEN]: { originalErrorMessage?: string };\n [AppError.IDB_GET]: { originalErrorMessage?: string };\n [AppError.IDB_WRITE]: { originalErrorMessage?: string };\n [AppError.IDB_DELETE]: { originalErrorMessage?: string };\n [AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED]: { appName?: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'app',\n 'Firebase',\n ERRORS\n);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport {\n ComponentContainer,\n Component,\n ComponentType\n} from '@firebase/component';\nimport { ERROR_FACTORY, AppError } from './errors';\n\nexport class FirebaseAppImpl implements FirebaseApp {\n protected readonly _options: FirebaseOptions;\n protected readonly _name: string;\n /**\n * Original config values passed in as a constructor parameter.\n * It is only used to compare with another config object to support idempotent initializeApp().\n *\n * Updating automaticDataCollectionEnabled on the App instance will not change its value in _config.\n */\n private readonly _config: Required;\n private _automaticDataCollectionEnabled: boolean;\n protected _isDeleted = false;\n private readonly _container: ComponentContainer;\n\n constructor(\n options: FirebaseOptions,\n config: Required,\n container: ComponentContainer\n ) {\n this._options = { ...options };\n this._config = { ...config };\n this._name = config.name;\n this._automaticDataCollectionEnabled =\n config.automaticDataCollectionEnabled;\n this._container = container;\n this.container.addComponent(\n new Component('app', () => this, ComponentType.PUBLIC)\n );\n }\n\n get automaticDataCollectionEnabled(): boolean {\n this.checkDestroyed();\n return this._automaticDataCollectionEnabled;\n }\n\n set automaticDataCollectionEnabled(val: boolean) {\n this.checkDestroyed();\n this._automaticDataCollectionEnabled = val;\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): FirebaseOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get config(): Required {\n this.checkDestroyed();\n return this._config;\n }\n\n get container(): ComponentContainer {\n return this._container;\n }\n\n get isDeleted(): boolean {\n return this._isDeleted;\n }\n\n set isDeleted(val: boolean) {\n this._isDeleted = val;\n }\n\n /**\n * This function will throw an Error if the App has already been deleted -\n * use before performing API actions on the App.\n */\n protected checkDestroyed(): void {\n if (this.isDeleted) {\n throw ERROR_FACTORY.create(AppError.APP_DELETED, { appName: this._name });\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseServerApp,\n FirebaseOptions,\n FirebaseAppSettings,\n FirebaseServerAppSettings\n} from './public-types';\nimport { DEFAULT_ENTRY_NAME, PLATFORM_LOG_STRING } from './constants';\nimport { ERROR_FACTORY, AppError } from './errors';\nimport {\n ComponentContainer,\n Component,\n Name,\n ComponentType\n} from '@firebase/component';\nimport { version } from '../../firebase/package.json';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { FirebaseServerAppImpl } from './firebaseServerApp';\nimport {\n _apps,\n _components,\n _isFirebaseApp,\n _registerComponent,\n _serverApps\n} from './internal';\nimport { logger } from './logger';\nimport {\n LogLevelString,\n setLogLevel as setLogLevelImpl,\n LogCallback,\n LogOptions,\n setUserLogHandler\n} from '@firebase/logger';\nimport {\n deepEqual,\n getDefaultAppConfig,\n isBrowser,\n isWebWorker\n} from '@firebase/util';\n\nexport { FirebaseError } from '@firebase/util';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const SDK_VERSION = version;\n\n/**\n * Creates and initializes a {@link @firebase/app#FirebaseApp} instance.\n *\n * See\n * {@link\n * https://firebase.google.com/docs/web/setup#add_firebase_to_your_app\n * | Add Firebase to your app} and\n * {@link\n * https://firebase.google.com/docs/web/setup#multiple-projects\n * | Initialize multiple projects} for detailed documentation.\n *\n * @example\n * ```javascript\n *\n * // Initialize default app\n * // Retrieve your own options values by adding a web app on\n * // https://console.firebase.google.com\n * initializeApp({\n * apiKey: \"AIza....\", // Auth / General Use\n * authDomain: \"YOUR_APP.firebaseapp.com\", // Auth with popup/redirect\n * databaseURL: \"https://YOUR_APP.firebaseio.com\", // Realtime Database\n * storageBucket: \"YOUR_APP.appspot.com\", // Storage\n * messagingSenderId: \"123456789\" // Cloud Messaging\n * });\n * ```\n *\n * @example\n * ```javascript\n *\n * // Initialize another app\n * const otherApp = initializeApp({\n * databaseURL: \"https://.firebaseio.com\",\n * storageBucket: \".appspot.com\"\n * }, \"otherApp\");\n * ```\n *\n * @param options - Options to configure the app's services.\n * @param name - Optional name of the app to initialize. If no name\n * is provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The initialized app.\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n name?: string\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @param options - Options to configure the app's services.\n * @param config - FirebaseApp Configuration\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n config?: FirebaseAppSettings\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @public\n */\nexport function initializeApp(): FirebaseApp;\nexport function initializeApp(\n _options?: FirebaseOptions,\n rawConfig = {}\n): FirebaseApp {\n let options = _options;\n\n if (typeof rawConfig !== 'object') {\n const name = rawConfig;\n rawConfig = { name };\n }\n\n const config: Required = {\n name: DEFAULT_ENTRY_NAME,\n automaticDataCollectionEnabled: false,\n ...rawConfig\n };\n const name = config.name;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(AppError.BAD_APP_NAME, {\n appName: String(name)\n });\n }\n\n options ||= getDefaultAppConfig();\n\n if (!options) {\n throw ERROR_FACTORY.create(AppError.NO_OPTIONS);\n }\n\n const existingApp = _apps.get(name) as FirebaseAppImpl;\n if (existingApp) {\n // return the existing app if options and config deep equal the ones in the existing app.\n if (\n deepEqual(options, existingApp.options) &&\n deepEqual(config, existingApp.config)\n ) {\n return existingApp;\n } else {\n throw ERROR_FACTORY.create(AppError.DUPLICATE_APP, { appName: name });\n }\n }\n\n const container = new ComponentContainer(name);\n for (const component of _components.values()) {\n container.addComponent(component);\n }\n\n const newApp = new FirebaseAppImpl(options, config, container);\n\n _apps.set(name, newApp);\n\n return newApp;\n}\n\n/**\n * Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.\n *\n * The `FirebaseServerApp` is similar to `FirebaseApp`, but is intended for execution in\n * server side rendering environments only. Initialization will fail if invoked from a\n * browser environment.\n *\n * See\n * {@link\n * https://firebase.google.com/docs/web/setup#add_firebase_to_your_app\n * | Add Firebase to your app} and\n * {@link\n * https://firebase.google.com/docs/web/setup#multiple-projects\n * | Initialize multiple projects} for detailed documentation.\n *\n * @example\n * ```javascript\n *\n * // Initialize an instance of `FirebaseServerApp`.\n * // Retrieve your own options values by adding a web app on\n * // https://console.firebase.google.com\n * initializeServerApp({\n * apiKey: \"AIza....\", // Auth / General Use\n * authDomain: \"YOUR_APP.firebaseapp.com\", // Auth with popup/redirect\n * databaseURL: \"https://YOUR_APP.firebaseio.com\", // Realtime Database\n * storageBucket: \"YOUR_APP.appspot.com\", // Storage\n * messagingSenderId: \"123456789\" // Cloud Messaging\n * },\n * {\n * authIdToken: \"Your Auth ID Token\"\n * });\n * ```\n *\n * @param options - `Firebase.AppOptions` to configure the app's services, or a\n * a `FirebaseApp` instance which contains the `AppOptions` within.\n * @param config - `FirebaseServerApp` configuration.\n *\n * @returns The initialized `FirebaseServerApp`.\n *\n * @public\n */\nexport function initializeServerApp(\n options: FirebaseOptions | FirebaseApp,\n config: FirebaseServerAppSettings\n): FirebaseServerApp;\n\nexport function initializeServerApp(\n _options: FirebaseOptions | FirebaseApp,\n _serverAppConfig: FirebaseServerAppSettings\n): FirebaseServerApp {\n if (isBrowser() && !isWebWorker()) {\n // FirebaseServerApp isn't designed to be run in browsers.\n throw ERROR_FACTORY.create(AppError.INVALID_SERVER_APP_ENVIRONMENT);\n }\n\n if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\n _serverAppConfig.automaticDataCollectionEnabled = false;\n }\n\n let appOptions: FirebaseOptions;\n if (_isFirebaseApp(_options)) {\n appOptions = _options.options;\n } else {\n appOptions = _options;\n }\n\n // Build an app name based on a hash of the configuration options.\n const nameObj = {\n ..._serverAppConfig,\n ...appOptions\n };\n\n // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\n // construction of FirebaseServerApp instances. For example, if the object is the request headers.\n if (nameObj.releaseOnDeref !== undefined) {\n delete nameObj.releaseOnDeref;\n }\n\n const hashCode = (s: string): number => {\n return [...s].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0\n );\n };\n\n if (_serverAppConfig.releaseOnDeref !== undefined) {\n if (typeof FinalizationRegistry === 'undefined') {\n throw ERROR_FACTORY.create(\n AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED,\n {}\n );\n }\n }\n\n const nameString = '' + hashCode(JSON.stringify(nameObj));\n const existingApp = _serverApps.get(nameString) as FirebaseServerApp;\n if (existingApp) {\n (existingApp as FirebaseServerAppImpl).incRefCount(\n _serverAppConfig.releaseOnDeref\n );\n return existingApp;\n }\n\n const container = new ComponentContainer(nameString);\n for (const component of _components.values()) {\n container.addComponent(component);\n }\n\n const newApp = new FirebaseServerAppImpl(\n appOptions,\n _serverAppConfig,\n nameString,\n container\n );\n\n _serverApps.set(nameString, newApp);\n\n return newApp;\n}\n\n/**\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\n *\n * When called with no arguments, the default app is returned. When an app name\n * is provided, the app corresponding to that name is returned.\n *\n * An exception is thrown if the app being retrieved has not yet been\n * initialized.\n *\n * @example\n * ```javascript\n * // Return the default app\n * const app = getApp();\n * ```\n *\n * @example\n * ```javascript\n * // Return a named app\n * const otherApp = getApp(\"otherApp\");\n * ```\n *\n * @param name - Optional name of the app to return. If no name is\n * provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The app corresponding to the provided app name.\n * If no app name is provided, the default app is returned.\n *\n * @public\n */\nexport function getApp(name: string = DEFAULT_ENTRY_NAME): FirebaseApp {\n const app = _apps.get(name);\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\n return initializeApp();\n }\n if (!app) {\n throw ERROR_FACTORY.create(AppError.NO_APP, { appName: name });\n }\n\n return app;\n}\n\n/**\n * A (read-only) array of all initialized apps.\n * @public\n */\nexport function getApps(): FirebaseApp[] {\n return Array.from(_apps.values());\n}\n\n/**\n * Renders this app unusable and frees the resources of all associated\n * services.\n *\n * @example\n * ```javascript\n * deleteApp(app)\n * .then(function() {\n * console.log(\"App deleted successfully\");\n * })\n * .catch(function(error) {\n * console.log(\"Error deleting app:\", error);\n * });\n * ```\n *\n * @public\n */\nexport async function deleteApp(app: FirebaseApp): Promise {\n let cleanupProviders = false;\n const name = app.name;\n if (_apps.has(name)) {\n cleanupProviders = true;\n _apps.delete(name);\n } else if (_serverApps.has(name)) {\n const firebaseServerApp = app as FirebaseServerAppImpl;\n if (firebaseServerApp.decRefCount() <= 0) {\n _serverApps.delete(name);\n cleanupProviders = true;\n }\n }\n\n if (cleanupProviders) {\n await Promise.all(\n (app as FirebaseAppImpl).container\n .getProviders()\n .map(provider => provider.delete())\n );\n (app as FirebaseAppImpl).isDeleted = true;\n }\n}\n\n/**\n * Registers a library's name and version for platform logging purposes.\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\n * @param version - Current version of that library.\n * @param variant - Bundle variant, e.g., node, rn, etc.\n *\n * @public\n */\nexport function registerVersion(\n libraryKeyOrName: string,\n version: string,\n variant?: string\n): void {\n // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n let library = PLATFORM_LOG_STRING[libraryKeyOrName] ?? libraryKeyOrName;\n if (variant) {\n library += `-${variant}`;\n }\n const libraryMismatch = library.match(/\\s|\\//);\n const versionMismatch = version.match(/\\s|\\//);\n if (libraryMismatch || versionMismatch) {\n const warning = [\n `Unable to register library \"${library}\" with version \"${version}\":`\n ];\n if (libraryMismatch) {\n warning.push(\n `library name \"${library}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n if (versionMismatch) {\n warning.push(\n `version name \"${version}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n logger.warn(warning.join(' '));\n return;\n }\n _registerComponent(\n new Component(\n `${library}-version` as Name,\n () => ({ library, version }),\n ComponentType.VERSION\n )\n );\n}\n\n/**\n * Sets log handler for all Firebase SDKs.\n * @param logCallback - An optional custom log handler that executes user code whenever\n * the Firebase SDK makes a logging call.\n *\n * @public\n */\nexport function onLog(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(AppError.INVALID_LOG_ARGUMENT);\n }\n setUserLogHandler(logCallback, options);\n}\n\n/**\n * Sets log level for all Firebase SDKs.\n *\n * All of the log types above the current log level are captured (i.e. if\n * you set the log level to `info`, errors are logged, but `debug` and\n * `verbose` logs are not).\n *\n * @public\n */\nexport function setLogLevel(logLevel: LogLevelString): void {\n setLogLevelImpl(logLevel);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { DBSchema, openDB, IDBPDatabase } from 'idb';\nimport { AppError, ERROR_FACTORY } from './errors';\nimport { FirebaseApp } from './public-types';\nimport { HeartbeatsInIndexedDB } from './types';\nimport { logger } from './logger';\n\nconst DB_NAME = 'firebase-heartbeat-database';\nconst DB_VERSION = 1;\nconst STORE_NAME = 'firebase-heartbeat-store';\n\ninterface AppDB extends DBSchema {\n 'firebase-heartbeat-store': {\n key: string;\n value: HeartbeatsInIndexedDB;\n };\n}\n\nlet dbPromise: Promise> | null = null;\nfunction getDbPromise(): Promise> {\n if (!dbPromise) {\n dbPromise = openDB(DB_NAME, DB_VERSION, {\n upgrade: (db, oldVersion) => {\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (oldVersion) {\n case 0:\n try {\n db.createObjectStore(STORE_NAME);\n } catch (e) {\n // Safari/iOS browsers throw occasional exceptions on\n // db.createObjectStore() that may be a bug. Avoid blocking\n // the rest of the app functionality.\n console.warn(e);\n }\n }\n }\n }).catch(e => {\n throw ERROR_FACTORY.create(AppError.IDB_OPEN, {\n originalErrorMessage: e.message\n });\n });\n }\n return dbPromise;\n}\n\nexport async function readHeartbeatsFromIndexedDB(\n app: FirebaseApp\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME);\n const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\n // We already have the value but tx.done can throw,\n // so we need to await it here to catch errors\n await tx.done;\n return result;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_GET, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nexport async function writeHeartbeatsToIndexedDB(\n app: FirebaseApp,\n heartbeatObject: HeartbeatsInIndexedDB\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME, 'readwrite');\n const objectStore = tx.objectStore(STORE_NAME);\n await objectStore.put(heartbeatObject, computeKey(app));\n await tx.done;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_WRITE, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nfunction computeKey(app: FirebaseApp): string {\n return `${app.name}!${app.options.appId}`;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentContainer } from '@firebase/component';\nimport {\n base64urlEncodeWithoutPadding,\n isIndexedDBAvailable,\n validateIndexedDBOpenable\n} from '@firebase/util';\nimport {\n readHeartbeatsFromIndexedDB,\n writeHeartbeatsToIndexedDB\n} from './indexeddb';\nimport { FirebaseApp } from './public-types';\nimport {\n HeartbeatsByUserAgent,\n HeartbeatService,\n HeartbeatsInIndexedDB,\n HeartbeatStorage,\n SingleDateHeartbeat\n} from './types';\nimport { logger } from './logger';\n\nconst MAX_HEADER_BYTES = 1024;\n// 30 days\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\n\nexport class HeartbeatServiceImpl implements HeartbeatService {\n /**\n * The persistence layer for heartbeats\n * Leave public for easier testing.\n */\n _storage: HeartbeatStorageImpl;\n\n /**\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\n * the header string.\n * Stores one record per date. This will be consolidated into the standard\n * format of one record per user agent string before being sent as a header.\n * Populated from indexedDB when the controller is instantiated and should\n * be kept in sync with indexedDB.\n * Leave public for easier testing.\n */\n _heartbeatsCache: HeartbeatsInIndexedDB | null = null;\n\n /**\n * the initialization promise for populating heartbeatCache.\n * If getHeartbeatsHeader() is called before the promise resolves\n * (heartbeatsCache == null), it should wait for this promise\n * Leave public for easier testing.\n */\n _heartbeatsCachePromise: Promise;\n constructor(private readonly container: ComponentContainer) {\n const app = this.container.getProvider('app').getImmediate();\n this._storage = new HeartbeatStorageImpl(app);\n this._heartbeatsCachePromise = this._storage.read().then(result => {\n this._heartbeatsCache = result;\n return result;\n });\n }\n\n /**\n * Called to report a heartbeat. The function will generate\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\n * to IndexedDB.\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\n * already logged, subsequent calls to this function in the same day will be ignored.\n */\n async triggerHeartbeat(): Promise {\n try {\n const platformLogger = this.container\n .getProvider('platform-logger')\n .getImmediate();\n\n // This is the \"Firebase user agent\" string from the platform logger\n // service, not the browser user agent.\n const agent = platformLogger.getPlatformInfoString();\n const date = getUTCDateString();\n if (this._heartbeatsCache?.heartbeats == null) {\n this._heartbeatsCache = await this._heartbeatsCachePromise;\n // If we failed to construct a heartbeats cache, then return immediately.\n if (this._heartbeatsCache?.heartbeats == null) {\n return;\n }\n }\n // Do not store a heartbeat if one is already stored for this day\n // or if a header has already been sent today.\n if (\n this._heartbeatsCache.lastSentHeartbeatDate === date ||\n this._heartbeatsCache.heartbeats.some(\n singleDateHeartbeat => singleDateHeartbeat.date === date\n )\n ) {\n return;\n } else {\n // There is no entry for this date. Create one.\n this._heartbeatsCache.heartbeats.push({ date, agent });\n }\n // Remove entries older than 30 days.\n this._heartbeatsCache.heartbeats =\n this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\n const now = Date.now();\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\n });\n return this._storage.overwrite(this._heartbeatsCache);\n } catch (e) {\n logger.warn(e);\n }\n }\n\n /**\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\n * It also clears all heartbeats from memory as well as in IndexedDB.\n *\n * NOTE: Consuming product SDKs should not send the header if this method\n * returns an empty string.\n */\n async getHeartbeatsHeader(): Promise {\n try {\n if (this._heartbeatsCache === null) {\n await this._heartbeatsCachePromise;\n }\n // If it's still null or the array is empty, there is no data to send.\n if (\n this._heartbeatsCache?.heartbeats == null ||\n this._heartbeatsCache.heartbeats.length === 0\n ) {\n return '';\n }\n const date = getUTCDateString();\n // Extract as many heartbeats from the cache as will fit under the size limit.\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(\n this._heartbeatsCache.heartbeats\n );\n const headerString = base64urlEncodeWithoutPadding(\n JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })\n );\n // Store last sent date to prevent another being logged/sent for the same day.\n this._heartbeatsCache.lastSentHeartbeatDate = date;\n if (unsentEntries.length > 0) {\n // Store any unsent entries if they exist.\n this._heartbeatsCache.heartbeats = unsentEntries;\n // This seems more likely than emptying the array (below) to lead to some odd state\n // since the cache isn't empty and this will be called again on the next request,\n // and is probably safest if we await it.\n await this._storage.overwrite(this._heartbeatsCache);\n } else {\n this._heartbeatsCache.heartbeats = [];\n // Do not wait for this, to reduce latency.\n void this._storage.overwrite(this._heartbeatsCache);\n }\n return headerString;\n } catch (e) {\n logger.warn(e);\n return '';\n }\n }\n}\n\nfunction getUTCDateString(): string {\n const today = new Date();\n // Returns date format 'YYYY-MM-DD'\n return today.toISOString().substring(0, 10);\n}\n\nexport function extractHeartbeatsForHeader(\n heartbeatsCache: SingleDateHeartbeat[],\n maxSize = MAX_HEADER_BYTES\n): {\n heartbeatsToSend: HeartbeatsByUserAgent[];\n unsentEntries: SingleDateHeartbeat[];\n} {\n // Heartbeats grouped by user agent in the standard format to be sent in\n // the header.\n const heartbeatsToSend: HeartbeatsByUserAgent[] = [];\n // Single date format heartbeats that are not sent.\n let unsentEntries = heartbeatsCache.slice();\n for (const singleDateHeartbeat of heartbeatsCache) {\n // Look for an existing entry with the same user agent.\n const heartbeatEntry = heartbeatsToSend.find(\n hb => hb.agent === singleDateHeartbeat.agent\n );\n if (!heartbeatEntry) {\n // If no entry for this user agent exists, create one.\n heartbeatsToSend.push({\n agent: singleDateHeartbeat.agent,\n dates: [singleDateHeartbeat.date]\n });\n if (countBytes(heartbeatsToSend) > maxSize) {\n // If the header would exceed max size, remove the added heartbeat\n // entry and stop adding to the header.\n heartbeatsToSend.pop();\n break;\n }\n } else {\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\n // If the header would exceed max size, remove the added date\n // and stop adding to the header.\n if (countBytes(heartbeatsToSend) > maxSize) {\n heartbeatEntry.dates.pop();\n break;\n }\n }\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\n // quota and the loop breaks early.)\n unsentEntries = unsentEntries.slice(1);\n }\n return {\n heartbeatsToSend,\n unsentEntries\n };\n}\n\nexport class HeartbeatStorageImpl implements HeartbeatStorage {\n private _canUseIndexedDBPromise: Promise;\n constructor(public app: FirebaseApp) {\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\n }\n async runIndexedDBEnvironmentCheck(): Promise {\n if (!isIndexedDBAvailable()) {\n return false;\n } else {\n return validateIndexedDBOpenable()\n .then(() => true)\n .catch(() => false);\n }\n }\n /**\n * Read all heartbeats.\n */\n async read(): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return { heartbeats: [] };\n } else {\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\n if (idbHeartbeatObject?.heartbeats) {\n return idbHeartbeatObject;\n } else {\n return { heartbeats: [] };\n }\n }\n }\n // overwrite the storage with the provided heartbeats\n async overwrite(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: heartbeatsObject.heartbeats\n });\n }\n }\n // add heartbeats\n async add(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: [\n ...existingHeartbeatsObject.heartbeats,\n ...heartbeatsObject.heartbeats\n ]\n });\n }\n }\n}\n\n/**\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\n * in a platform logging header JSON object, stringified, and converted\n * to base 64.\n */\nexport function countBytes(heartbeatsCache: HeartbeatsByUserAgent[]): number {\n // base64 has a restricted set of characters, all of which should be 1 byte.\n return base64urlEncodeWithoutPadding(\n // heartbeatsCache wrapper properties\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })\n ).length;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, ComponentType } from '@firebase/component';\nimport { PlatformLoggerServiceImpl } from './platformLoggerService';\nimport { name, version } from '../package.json';\nimport { _registerComponent } from './internal';\nimport { registerVersion } from './api';\nimport { HeartbeatServiceImpl } from './heartbeatService';\n\nexport function registerCoreComponents(variant?: string): void {\n _registerComponent(\n new Component(\n 'platform-logger',\n container => new PlatformLoggerServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n _registerComponent(\n new Component(\n 'heartbeat',\n container => new HeartbeatServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n\n // Register `app` package.\n registerVersion(name, version, variant);\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n // Register platform SDK identifier (no version).\n registerVersion('fire-js', '');\n}\n","/**\n * Firebase App\n *\n * @remarks This package coordinates the communication between the different Firebase components\n * @packageDocumentation\n */\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { registerCoreComponents } from './registerCoreComponents';\n\nexport * from './api';\nexport * from './internal';\nexport * from './public-types';\n\nregisterCoreComponents('__RUNTIME_ENV__');\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { registerVersion } from '@firebase/app';\nimport { name, version } from '../package.json';\n\nregisterVersion(name, version, 'app');\nexport * from '@firebase/app';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { version } from '../../package.json';\n\nexport const PENDING_TIMEOUT_MS = 10000;\n\nexport const PACKAGE_VERSION = `w:${version}`;\nexport const INTERNAL_AUTH_VERSION = 'FIS_v2';\n\nexport const INSTALLATIONS_API_URL =\n 'https://firebaseinstallations.googleapis.com/v1';\n\nexport const TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\n\nexport const SERVICE = 'installations';\nexport const SERVICE_NAME = 'Installations';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { SERVICE, SERVICE_NAME } from './constants';\n\nexport const enum ErrorCode {\n MISSING_APP_CONFIG_VALUES = 'missing-app-config-values',\n NOT_REGISTERED = 'not-registered',\n INSTALLATION_NOT_FOUND = 'installation-not-found',\n REQUEST_FAILED = 'request-failed',\n APP_OFFLINE = 'app-offline',\n DELETE_PENDING_REGISTRATION = 'delete-pending-registration'\n}\n\nconst ERROR_DESCRIPTION_MAP: { readonly [key in ErrorCode]: string } = {\n [ErrorCode.MISSING_APP_CONFIG_VALUES]:\n 'Missing App configuration value: \"{$valueName}\"',\n [ErrorCode.NOT_REGISTERED]: 'Firebase Installation is not registered.',\n [ErrorCode.INSTALLATION_NOT_FOUND]: 'Firebase Installation not found.',\n [ErrorCode.REQUEST_FAILED]:\n '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\n [ErrorCode.APP_OFFLINE]: 'Could not process request. Application offline.',\n [ErrorCode.DELETE_PENDING_REGISTRATION]:\n \"Can't delete installation while there is a pending registration request.\"\n};\n\ninterface ErrorParams {\n [ErrorCode.MISSING_APP_CONFIG_VALUES]: {\n valueName: string;\n };\n [ErrorCode.REQUEST_FAILED]: {\n requestName: string;\n [index: string]: string | number; // to make TypeScript 3.8 happy\n } & ServerErrorData;\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n SERVICE,\n SERVICE_NAME,\n ERROR_DESCRIPTION_MAP\n);\n\nexport interface ServerErrorData {\n serverCode: number;\n serverMessage: string;\n serverStatus: string;\n}\n\nexport type ServerError = FirebaseError & { customData: ServerErrorData };\n\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\nexport function isServerError(error: unknown): error is ServerError {\n return (\n error instanceof FirebaseError &&\n error.code.includes(ErrorCode.REQUEST_FAILED)\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { GenerateAuthTokenResponse } from '../interfaces/api-response';\nimport {\n CompletedAuthToken,\n RegisteredInstallationEntry,\n RequestStatus\n} from '../interfaces/installation-entry';\nimport {\n INSTALLATIONS_API_URL,\n INTERNAL_AUTH_VERSION\n} from '../util/constants';\nimport { ERROR_FACTORY, ErrorCode } from '../util/errors';\nimport { AppConfig } from '../interfaces/installation-impl';\n\nexport function getInstallationsEndpoint({ projectId }: AppConfig): string {\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\n}\n\nexport function extractAuthTokenInfoFromResponse(\n response: GenerateAuthTokenResponse\n): CompletedAuthToken {\n return {\n token: response.token,\n requestStatus: RequestStatus.COMPLETED,\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\n creationTime: Date.now()\n };\n}\n\nexport async function getErrorFromResponse(\n requestName: string,\n response: Response\n): Promise {\n const responseJson: ErrorResponse = await response.json();\n const errorData = responseJson.error;\n return ERROR_FACTORY.create(ErrorCode.REQUEST_FAILED, {\n requestName,\n serverCode: errorData.code,\n serverMessage: errorData.message,\n serverStatus: errorData.status\n });\n}\n\nexport function getHeaders({ apiKey }: AppConfig): Headers {\n return new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'x-goog-api-key': apiKey\n });\n}\n\nexport function getHeadersWithAuth(\n appConfig: AppConfig,\n { refreshToken }: RegisteredInstallationEntry\n): Headers {\n const headers = getHeaders(appConfig);\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\n return headers;\n}\n\nexport interface ErrorResponse {\n error: {\n code: number;\n message: string;\n status: string;\n };\n}\n\n/**\n * Calls the passed in fetch wrapper and returns the response.\n * If the returned response has a status of 5xx, re-runs the function once and\n * returns the response.\n */\nexport async function retryIfServerError(\n fn: () => Promise\n): Promise {\n const result = await fn();\n\n if (result.status >= 500 && result.status < 600) {\n // Internal Server Error. Retry request.\n return fn();\n }\n\n return result;\n}\n\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn: string): number {\n // This works because the server will never respond with fractions of a second.\n return Number(responseExpiresIn.replace('s', '000'));\n}\n\nfunction getAuthorizationHeader(refreshToken: string): string {\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Returns a promise that resolves after given time passes. */\nexport function sleep(ms: number): Promise {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bufferToBase64UrlSafe } from './buffer-to-base64-url-safe';\n\nexport const VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\nexport const INVALID_FID = '';\n\n/**\n * Generates a new FID using random values from Web Crypto API.\n * Returns an empty string if FID generation fails for any reason.\n */\nexport function generateFid(): string {\n try {\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\n // bytes. our implementation generates a 17 byte array instead.\n const fidByteArray = new Uint8Array(17);\n const crypto =\n self.crypto || (self as unknown as { msCrypto: Crypto }).msCrypto;\n crypto.getRandomValues(fidByteArray);\n\n // Replace the first 4 random bits with the constant FID header of 0b0111.\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\n\n const fid = encode(fidByteArray);\n\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\n } catch {\n // FID generation errored\n return INVALID_FID;\n }\n}\n\n/** Converts a FID Uint8Array to a base64 string representation. */\nfunction encode(fidByteArray: Uint8Array): string {\n const b64String = bufferToBase64UrlSafe(fidByteArray);\n\n // Remove the 23rd character that was added because of the extra 4 bits at the\n // end of our 17 byte array, and the '=' padding.\n return b64String.substr(0, 22);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function bufferToBase64UrlSafe(array: Uint8Array): string {\n const b64 = btoa(String.fromCharCode(...array));\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppConfig } from '../interfaces/installation-impl';\n\n/** Returns a string key that can be used to identify the app. */\nexport function getKey(appConfig: AppConfig): string {\n return `${appConfig.appName}!${appConfig.appId}`;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getKey } from '../util/get-key';\nimport { AppConfig } from '../interfaces/installation-impl';\nimport { IdChangeCallbackFn } from '../api';\n\nconst fidChangeCallbacks: Map> = new Map();\n\n/**\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\n * change to other tabs.\n */\nexport function fidChanged(appConfig: AppConfig, fid: string): void {\n const key = getKey(appConfig);\n\n callFidChangeCallbacks(key, fid);\n broadcastFidChange(key, fid);\n}\n\nexport function addCallback(\n appConfig: AppConfig,\n callback: IdChangeCallbackFn\n): void {\n // Open the broadcast channel if it's not already open,\n // to be able to listen to change events from other tabs.\n getBroadcastChannel();\n\n const key = getKey(appConfig);\n\n let callbackSet = fidChangeCallbacks.get(key);\n if (!callbackSet) {\n callbackSet = new Set();\n fidChangeCallbacks.set(key, callbackSet);\n }\n callbackSet.add(callback);\n}\n\nexport function removeCallback(\n appConfig: AppConfig,\n callback: IdChangeCallbackFn\n): void {\n const key = getKey(appConfig);\n\n const callbackSet = fidChangeCallbacks.get(key);\n\n if (!callbackSet) {\n return;\n }\n\n callbackSet.delete(callback);\n if (callbackSet.size === 0) {\n fidChangeCallbacks.delete(key);\n }\n\n // Close broadcast channel if there are no more callbacks.\n closeBroadcastChannel();\n}\n\nfunction callFidChangeCallbacks(key: string, fid: string): void {\n const callbacks = fidChangeCallbacks.get(key);\n if (!callbacks) {\n return;\n }\n\n for (const callback of callbacks) {\n callback(fid);\n }\n}\n\nfunction broadcastFidChange(key: string, fid: string): void {\n const channel = getBroadcastChannel();\n if (channel) {\n channel.postMessage({ key, fid });\n }\n closeBroadcastChannel();\n}\n\nlet broadcastChannel: BroadcastChannel | null = null;\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\nfunction getBroadcastChannel(): BroadcastChannel | null {\n if (!broadcastChannel && 'BroadcastChannel' in self) {\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\n broadcastChannel.onmessage = e => {\n callFidChangeCallbacks(e.data.key, e.data.fid);\n };\n }\n return broadcastChannel;\n}\n\nfunction closeBroadcastChannel(): void {\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\n broadcastChannel.close();\n broadcastChannel = null;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DBSchema, IDBPDatabase, openDB } from 'idb';\nimport { AppConfig } from '../interfaces/installation-impl';\nimport { InstallationEntry } from '../interfaces/installation-entry';\nimport { getKey } from '../util/get-key';\nimport { fidChanged } from './fid-changed';\n\nconst DATABASE_NAME = 'firebase-installations-database';\nconst DATABASE_VERSION = 1;\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\n\ninterface InstallationsDB extends DBSchema {\n 'firebase-installations-store': {\n key: string;\n value: InstallationEntry | undefined;\n };\n}\n\nlet dbPromise: Promise> | null = null;\nfunction getDbPromise(): Promise> {\n if (!dbPromise) {\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\n upgrade: (db, oldVersion) => {\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (oldVersion) {\n case 0:\n db.createObjectStore(OBJECT_STORE_NAME);\n }\n }\n });\n }\n return dbPromise;\n}\n\n/** Gets record(s) from the objectStore that match the given key. */\nexport async function get(\n appConfig: AppConfig\n): Promise {\n const key = getKey(appConfig);\n const db = await getDbPromise();\n return db\n .transaction(OBJECT_STORE_NAME)\n .objectStore(OBJECT_STORE_NAME)\n .get(key) as Promise;\n}\n\n/** Assigns or overwrites the record for the given key with the given value. */\nexport async function set(\n appConfig: AppConfig,\n value: ValueType\n): Promise {\n const key = getKey(appConfig);\n const db = await getDbPromise();\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\n const oldValue = (await objectStore.get(key)) as InstallationEntry;\n await objectStore.put(value, key);\n await tx.done;\n\n if (!oldValue || oldValue.fid !== value.fid) {\n fidChanged(appConfig, value.fid);\n }\n\n return value;\n}\n\n/** Removes record(s) from the objectStore that match the given key. */\nexport async function remove(appConfig: AppConfig): Promise {\n const key = getKey(appConfig);\n const db = await getDbPromise();\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\n await tx.done;\n}\n\n/**\n * Atomically updates a record with the result of updateFn, which gets\n * called with the current value. If newValue is undefined, the record is\n * deleted instead.\n * @return Updated value\n */\nexport async function update(\n appConfig: AppConfig,\n updateFn: (previousValue: InstallationEntry | undefined) => ValueType\n): Promise {\n const key = getKey(appConfig);\n const db = await getDbPromise();\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n const store = tx.objectStore(OBJECT_STORE_NAME);\n const oldValue: InstallationEntry | undefined = (await store.get(\n key\n )) as InstallationEntry;\n const newValue = updateFn(oldValue);\n\n if (newValue === undefined) {\n await store.delete(key);\n } else {\n await store.put(newValue, key);\n }\n await tx.done;\n\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\n fidChanged(appConfig, newValue.fid);\n }\n\n return newValue;\n}\n\nexport async function clear(): Promise {\n const db = await getDbPromise();\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n await tx.objectStore(OBJECT_STORE_NAME).clear();\n await tx.done;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createInstallationRequest } from '../functions/create-installation-request';\nimport {\n AppConfig,\n FirebaseInstallationsImpl\n} from '../interfaces/installation-impl';\nimport {\n InProgressInstallationEntry,\n InstallationEntry,\n RegisteredInstallationEntry,\n RequestStatus\n} from '../interfaces/installation-entry';\nimport { PENDING_TIMEOUT_MS } from '../util/constants';\nimport { ERROR_FACTORY, ErrorCode, isServerError } from '../util/errors';\nimport { sleep } from '../util/sleep';\nimport { generateFid, INVALID_FID } from './generate-fid';\nimport { remove, set, update } from './idb-manager';\n\nexport interface InstallationEntryWithRegistrationPromise {\n installationEntry: InstallationEntry;\n /** Exist iff the installationEntry is not registered. */\n registrationPromise?: Promise;\n}\n\n/**\n * Updates and returns the InstallationEntry from the database.\n * Also triggers a registration request if it is necessary and possible.\n */\nexport async function getInstallationEntry(\n installations: FirebaseInstallationsImpl\n): Promise {\n let registrationPromise: Promise | undefined;\n\n const installationEntry = await update(installations.appConfig, oldEntry => {\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\n const entryWithPromise = triggerRegistrationIfNecessary(\n installations,\n installationEntry\n );\n registrationPromise = entryWithPromise.registrationPromise;\n return entryWithPromise.installationEntry;\n });\n\n if (installationEntry.fid === INVALID_FID) {\n // FID generation failed. Waiting for the FID from the server.\n return { installationEntry: await registrationPromise! };\n }\n\n return {\n installationEntry,\n registrationPromise\n };\n}\n\n/**\n * Creates a new Installation Entry if one does not exist.\n * Also clears timed out pending requests.\n */\nfunction updateOrCreateInstallationEntry(\n oldEntry: InstallationEntry | undefined\n): InstallationEntry {\n const entry: InstallationEntry = oldEntry || {\n fid: generateFid(),\n registrationStatus: RequestStatus.NOT_STARTED\n };\n\n return clearTimedOutRequest(entry);\n}\n\n/**\n * If the Firebase Installation is not registered yet, this will trigger the\n * registration and return an InProgressInstallationEntry.\n *\n * If registrationPromise does not exist, the installationEntry is guaranteed\n * to be registered.\n */\nfunction triggerRegistrationIfNecessary(\n installations: FirebaseInstallationsImpl,\n installationEntry: InstallationEntry\n): InstallationEntryWithRegistrationPromise {\n if (installationEntry.registrationStatus === RequestStatus.NOT_STARTED) {\n if (!navigator.onLine) {\n // Registration required but app is offline.\n const registrationPromiseWithError = Promise.reject(\n ERROR_FACTORY.create(ErrorCode.APP_OFFLINE)\n );\n return {\n installationEntry,\n registrationPromise: registrationPromiseWithError\n };\n }\n\n // Try registering. Change status to IN_PROGRESS.\n const inProgressEntry: InProgressInstallationEntry = {\n fid: installationEntry.fid,\n registrationStatus: RequestStatus.IN_PROGRESS,\n registrationTime: Date.now()\n };\n const registrationPromise = registerInstallation(\n installations,\n inProgressEntry\n );\n return { installationEntry: inProgressEntry, registrationPromise };\n } else if (\n installationEntry.registrationStatus === RequestStatus.IN_PROGRESS\n ) {\n return {\n installationEntry,\n registrationPromise: waitUntilFidRegistration(installations)\n };\n } else {\n return { installationEntry };\n }\n}\n\n/** This will be executed only once for each new Firebase Installation. */\nasync function registerInstallation(\n installations: FirebaseInstallationsImpl,\n installationEntry: InProgressInstallationEntry\n): Promise {\n try {\n const registeredInstallationEntry = await createInstallationRequest(\n installations,\n installationEntry\n );\n return set(installations.appConfig, registeredInstallationEntry);\n } catch (e) {\n if (isServerError(e) && e.customData.serverCode === 409) {\n // Server returned a \"FID cannot be used\" error.\n // Generate a new ID next time.\n await remove(installations.appConfig);\n } else {\n // Registration failed. Set FID as not registered.\n await set(installations.appConfig, {\n fid: installationEntry.fid,\n registrationStatus: RequestStatus.NOT_STARTED\n });\n }\n throw e;\n }\n}\n\n/** Call if FID registration is pending in another request. */\nasync function waitUntilFidRegistration(\n installations: FirebaseInstallationsImpl\n): Promise {\n // Unfortunately, there is no way of reliably observing when a value in\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\n // so we need to poll.\n\n let entry: InstallationEntry = await updateInstallationRequest(\n installations.appConfig\n );\n while (entry.registrationStatus === RequestStatus.IN_PROGRESS) {\n // createInstallation request still in progress.\n await sleep(100);\n\n entry = await updateInstallationRequest(installations.appConfig);\n }\n\n if (entry.registrationStatus === RequestStatus.NOT_STARTED) {\n // The request timed out or failed in a different call. Try again.\n const { installationEntry, registrationPromise } =\n await getInstallationEntry(installations);\n\n if (registrationPromise) {\n return registrationPromise;\n } else {\n // if there is no registrationPromise, entry is registered.\n return installationEntry as RegisteredInstallationEntry;\n }\n }\n\n return entry;\n}\n\n/**\n * Called only if there is a CreateInstallation request in progress.\n *\n * Updates the InstallationEntry in the DB based on the status of the\n * CreateInstallation request.\n *\n * Returns the updated InstallationEntry.\n */\nfunction updateInstallationRequest(\n appConfig: AppConfig\n): Promise {\n return update(appConfig, oldEntry => {\n if (!oldEntry) {\n throw ERROR_FACTORY.create(ErrorCode.INSTALLATION_NOT_FOUND);\n }\n return clearTimedOutRequest(oldEntry);\n });\n}\n\nfunction clearTimedOutRequest(entry: InstallationEntry): InstallationEntry {\n if (hasInstallationRequestTimedOut(entry)) {\n return {\n fid: entry.fid,\n registrationStatus: RequestStatus.NOT_STARTED\n };\n }\n\n return entry;\n}\n\nfunction hasInstallationRequestTimedOut(\n installationEntry: InstallationEntry\n): boolean {\n return (\n installationEntry.registrationStatus === RequestStatus.IN_PROGRESS &&\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now()\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CreateInstallationResponse } from '../interfaces/api-response';\nimport {\n InProgressInstallationEntry,\n RegisteredInstallationEntry,\n RequestStatus\n} from '../interfaces/installation-entry';\nimport { INTERNAL_AUTH_VERSION, PACKAGE_VERSION } from '../util/constants';\nimport {\n extractAuthTokenInfoFromResponse,\n getErrorFromResponse,\n getHeaders,\n getInstallationsEndpoint,\n retryIfServerError\n} from './common';\nimport { FirebaseInstallationsImpl } from '../interfaces/installation-impl';\n\nexport async function createInstallationRequest(\n { appConfig, heartbeatServiceProvider }: FirebaseInstallationsImpl,\n { fid }: InProgressInstallationEntry\n): Promise {\n const endpoint = getInstallationsEndpoint(appConfig);\n\n const headers = getHeaders(appConfig);\n\n // If heartbeat service exists, add the heartbeat string to the header.\n const heartbeatService = heartbeatServiceProvider.getImmediate({\n optional: true\n });\n if (heartbeatService) {\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\n if (heartbeatsHeader) {\n headers.append('x-firebase-client', heartbeatsHeader);\n }\n }\n\n const body = {\n fid,\n authVersion: INTERNAL_AUTH_VERSION,\n appId: appConfig.appId,\n sdkVersion: PACKAGE_VERSION\n };\n\n const request: RequestInit = {\n method: 'POST',\n headers,\n body: JSON.stringify(body)\n };\n\n const response = await retryIfServerError(() => fetch(endpoint, request));\n if (response.ok) {\n const responseValue: CreateInstallationResponse = await response.json();\n const registeredInstallationEntry: RegisteredInstallationEntry = {\n fid: responseValue.fid || fid,\n registrationStatus: RequestStatus.COMPLETED,\n refreshToken: responseValue.refreshToken,\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\n };\n return registeredInstallationEntry;\n } else {\n throw await getErrorFromResponse('Create Installation', response);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { GenerateAuthTokenResponse } from '../interfaces/api-response';\nimport {\n CompletedAuthToken,\n RegisteredInstallationEntry\n} from '../interfaces/installation-entry';\nimport { PACKAGE_VERSION } from '../util/constants';\nimport {\n extractAuthTokenInfoFromResponse,\n getErrorFromResponse,\n getHeadersWithAuth,\n getInstallationsEndpoint,\n retryIfServerError\n} from './common';\nimport {\n FirebaseInstallationsImpl,\n AppConfig\n} from '../interfaces/installation-impl';\n\nexport async function generateAuthTokenRequest(\n { appConfig, heartbeatServiceProvider }: FirebaseInstallationsImpl,\n installationEntry: RegisteredInstallationEntry\n): Promise {\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\n\n const headers = getHeadersWithAuth(appConfig, installationEntry);\n\n // If heartbeat service exists, add the heartbeat string to the header.\n const heartbeatService = heartbeatServiceProvider.getImmediate({\n optional: true\n });\n if (heartbeatService) {\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\n if (heartbeatsHeader) {\n headers.append('x-firebase-client', heartbeatsHeader);\n }\n }\n\n const body = {\n installation: {\n sdkVersion: PACKAGE_VERSION,\n appId: appConfig.appId\n }\n };\n\n const request: RequestInit = {\n method: 'POST',\n headers,\n body: JSON.stringify(body)\n };\n\n const response = await retryIfServerError(() => fetch(endpoint, request));\n if (response.ok) {\n const responseValue: GenerateAuthTokenResponse = await response.json();\n const completedAuthToken: CompletedAuthToken =\n extractAuthTokenInfoFromResponse(responseValue);\n return completedAuthToken;\n } else {\n throw await getErrorFromResponse('Generate Auth Token', response);\n }\n}\n\nfunction getGenerateAuthTokenEndpoint(\n appConfig: AppConfig,\n { fid }: RegisteredInstallationEntry\n): string {\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { generateAuthTokenRequest } from '../functions/generate-auth-token-request';\nimport {\n AppConfig,\n FirebaseInstallationsImpl\n} from '../interfaces/installation-impl';\nimport {\n AuthToken,\n CompletedAuthToken,\n InProgressAuthToken,\n InstallationEntry,\n RegisteredInstallationEntry,\n RequestStatus\n} from '../interfaces/installation-entry';\nimport { PENDING_TIMEOUT_MS, TOKEN_EXPIRATION_BUFFER } from '../util/constants';\nimport { ERROR_FACTORY, ErrorCode, isServerError } from '../util/errors';\nimport { sleep } from '../util/sleep';\nimport { remove, set, update } from './idb-manager';\n\n/**\n * Returns a valid authentication token for the installation. Generates a new\n * token if one doesn't exist, is expired or about to expire.\n *\n * Should only be called if the Firebase Installation is registered.\n */\nexport async function refreshAuthToken(\n installations: FirebaseInstallationsImpl,\n forceRefresh = false\n): Promise {\n let tokenPromise: Promise | undefined;\n const entry = await update(installations.appConfig, oldEntry => {\n if (!isEntryRegistered(oldEntry)) {\n throw ERROR_FACTORY.create(ErrorCode.NOT_REGISTERED);\n }\n\n const oldAuthToken = oldEntry.authToken;\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\n // There is a valid token in the DB.\n return oldEntry;\n } else if (oldAuthToken.requestStatus === RequestStatus.IN_PROGRESS) {\n // There already is a token request in progress.\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\n return oldEntry;\n } else {\n // No token or token expired.\n if (!navigator.onLine) {\n throw ERROR_FACTORY.create(ErrorCode.APP_OFFLINE);\n }\n\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\n return inProgressEntry;\n }\n });\n\n const authToken = tokenPromise\n ? await tokenPromise\n : (entry.authToken as CompletedAuthToken);\n return authToken;\n}\n\n/**\n * Call only if FID is registered and Auth Token request is in progress.\n *\n * Waits until the current pending request finishes. If the request times out,\n * tries once in this thread as well.\n */\nasync function waitUntilAuthTokenRequest(\n installations: FirebaseInstallationsImpl,\n forceRefresh: boolean\n): Promise {\n // Unfortunately, there is no way of reliably observing when a value in\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\n // so we need to poll.\n\n let entry = await updateAuthTokenRequest(installations.appConfig);\n while (entry.authToken.requestStatus === RequestStatus.IN_PROGRESS) {\n // generateAuthToken still in progress.\n await sleep(100);\n\n entry = await updateAuthTokenRequest(installations.appConfig);\n }\n\n const authToken = entry.authToken;\n if (authToken.requestStatus === RequestStatus.NOT_STARTED) {\n // The request timed out or failed in a different call. Try again.\n return refreshAuthToken(installations, forceRefresh);\n } else {\n return authToken;\n }\n}\n\n/**\n * Called only if there is a GenerateAuthToken request in progress.\n *\n * Updates the InstallationEntry in the DB based on the status of the\n * GenerateAuthToken request.\n *\n * Returns the updated InstallationEntry.\n */\nfunction updateAuthTokenRequest(\n appConfig: AppConfig\n): Promise {\n return update(appConfig, oldEntry => {\n if (!isEntryRegistered(oldEntry)) {\n throw ERROR_FACTORY.create(ErrorCode.NOT_REGISTERED);\n }\n\n const oldAuthToken = oldEntry.authToken;\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\n return {\n ...oldEntry,\n authToken: { requestStatus: RequestStatus.NOT_STARTED }\n };\n }\n\n return oldEntry;\n });\n}\n\nasync function fetchAuthTokenFromServer(\n installations: FirebaseInstallationsImpl,\n installationEntry: RegisteredInstallationEntry\n): Promise {\n try {\n const authToken = await generateAuthTokenRequest(\n installations,\n installationEntry\n );\n const updatedInstallationEntry: RegisteredInstallationEntry = {\n ...installationEntry,\n authToken\n };\n await set(installations.appConfig, updatedInstallationEntry);\n return authToken;\n } catch (e) {\n if (\n isServerError(e) &&\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)\n ) {\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\n // Generate a new ID next time.\n await remove(installations.appConfig);\n } else {\n const updatedInstallationEntry: RegisteredInstallationEntry = {\n ...installationEntry,\n authToken: { requestStatus: RequestStatus.NOT_STARTED }\n };\n await set(installations.appConfig, updatedInstallationEntry);\n }\n throw e;\n }\n}\n\nfunction isEntryRegistered(\n installationEntry: InstallationEntry | undefined\n): installationEntry is RegisteredInstallationEntry {\n return (\n installationEntry !== undefined &&\n installationEntry.registrationStatus === RequestStatus.COMPLETED\n );\n}\n\nfunction isAuthTokenValid(authToken: AuthToken): boolean {\n return (\n authToken.requestStatus === RequestStatus.COMPLETED &&\n !isAuthTokenExpired(authToken)\n );\n}\n\nfunction isAuthTokenExpired(authToken: CompletedAuthToken): boolean {\n const now = Date.now();\n return (\n now < authToken.creationTime ||\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER\n );\n}\n\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\nfunction makeAuthTokenRequestInProgressEntry(\n oldEntry: RegisteredInstallationEntry\n): RegisteredInstallationEntry {\n const inProgressAuthToken: InProgressAuthToken = {\n requestStatus: RequestStatus.IN_PROGRESS,\n requestTime: Date.now()\n };\n return {\n ...oldEntry,\n authToken: inProgressAuthToken\n };\n}\n\nfunction hasAuthTokenRequestTimedOut(authToken: AuthToken): boolean {\n return (\n authToken.requestStatus === RequestStatus.IN_PROGRESS &&\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now()\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getInstallationEntry } from '../helpers/get-installation-entry';\nimport { refreshAuthToken } from '../helpers/refresh-auth-token';\nimport { FirebaseInstallationsImpl } from '../interfaces/installation-impl';\nimport { Installations } from '../interfaces/public-types';\n\n/**\n * Returns a Firebase Installations auth token, identifying the current\n * Firebase Installation.\n * @param installations - The `Installations` instance.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport async function getToken(\n installations: Installations,\n forceRefresh = false\n): Promise {\n const installationsImpl = installations as FirebaseInstallationsImpl;\n await completeInstallationRegistration(installationsImpl);\n\n // At this point we either have a Registered Installation in the DB, or we've\n // already thrown an error.\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\n return authToken.token;\n}\n\nasync function completeInstallationRegistration(\n installations: FirebaseInstallationsImpl\n): Promise {\n const { registrationPromise } = await getInstallationEntry(installations);\n\n if (registrationPromise) {\n // A createInstallation request is in progress. Wait until it finishes.\n await registrationPromise;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp, FirebaseOptions } from '@firebase/app';\nimport { FirebaseError } from '@firebase/util';\nimport { AppConfig } from '../interfaces/installation-impl';\nimport { ERROR_FACTORY, ErrorCode } from '../util/errors';\n\nexport function extractAppConfig(app: FirebaseApp): AppConfig {\n if (!app || !app.options) {\n throw getMissingValueError('App Configuration');\n }\n\n if (!app.name) {\n throw getMissingValueError('App Name');\n }\n\n // Required app config keys\n const configKeys: Array = [\n 'projectId',\n 'apiKey',\n 'appId'\n ];\n\n for (const keyName of configKeys) {\n if (!app.options[keyName]) {\n throw getMissingValueError(keyName);\n }\n }\n\n return {\n appName: app.name,\n projectId: app.options.projectId!,\n apiKey: app.options.apiKey!,\n appId: app.options.appId!\n };\n}\n\nfunction getMissingValueError(valueName: string): FirebaseError {\n return ERROR_FACTORY.create(ErrorCode.MISSING_APP_CONFIG_VALUES, {\n valueName\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _registerComponent, _getProvider } from '@firebase/app';\nimport {\n Component,\n ComponentType,\n InstanceFactory,\n ComponentContainer\n} from '@firebase/component';\nimport { getId, getToken } from '../api/index';\nimport { _FirebaseInstallationsInternal } from '../interfaces/public-types';\nimport { FirebaseInstallationsImpl } from '../interfaces/installation-impl';\nimport { extractAppConfig } from '../helpers/extract-app-config';\n\nconst INSTALLATIONS_NAME = 'installations';\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\n\nconst publicFactory: InstanceFactory<'installations'> = (\n container: ComponentContainer\n) => {\n const app = container.getProvider('app').getImmediate();\n // Throws if app isn't configured properly.\n const appConfig = extractAppConfig(app);\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\n\n const installationsImpl: FirebaseInstallationsImpl = {\n app,\n appConfig,\n heartbeatServiceProvider,\n _delete: () => Promise.resolve()\n };\n return installationsImpl;\n};\n\nconst internalFactory: InstanceFactory<'installations-internal'> = (\n container: ComponentContainer\n) => {\n const app = container.getProvider('app').getImmediate();\n // Internal FIS instance relies on public FIS instance.\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\n\n const installationsInternal: _FirebaseInstallationsInternal = {\n getId: () => getId(installations),\n getToken: (forceRefresh?: boolean) => getToken(installations, forceRefresh)\n };\n return installationsInternal;\n};\n\nexport function registerInstallations(): void {\n _registerComponent(\n new Component(INSTALLATIONS_NAME, publicFactory, ComponentType.PUBLIC)\n );\n _registerComponent(\n new Component(\n INSTALLATIONS_NAME_INTERNAL,\n internalFactory,\n ComponentType.PRIVATE\n )\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getInstallationEntry } from '../helpers/get-installation-entry';\nimport { refreshAuthToken } from '../helpers/refresh-auth-token';\nimport { FirebaseInstallationsImpl } from '../interfaces/installation-impl';\nimport { Installations } from '../interfaces/public-types';\n\n/**\n * Creates a Firebase Installation if there isn't one for the app and\n * returns the Installation ID.\n * @param installations - The `Installations` instance.\n *\n * @public\n */\nexport async function getId(installations: Installations): Promise {\n const installationsImpl = installations as FirebaseInstallationsImpl;\n const { installationEntry, registrationPromise } = await getInstallationEntry(\n installationsImpl\n );\n\n if (registrationPromise) {\n registrationPromise.catch(console.error);\n } else {\n // If the installation is already registered, update the authentication\n // token if needed.\n refreshAuthToken(installationsImpl).catch(console.error);\n }\n\n return installationEntry.fid;\n}\n","/**\n * The Firebase Installations Web SDK.\n * This SDK does not work in a Node.js environment.\n *\n * @packageDocumentation\n */\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { registerInstallations } from './functions/config';\nimport { registerVersion } from '@firebase/app';\nimport { name, version } from '../package.json';\n\nexport * from './api';\nexport * from './interfaces/public-types';\n\nregisterInstallations();\nregisterVersion(name, version);\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\nregisterVersion(name, version, '__BUILD_TARGET__');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Type constant for Firebase Analytics.\n */\nexport const ANALYTICS_TYPE = 'analytics';\n\n// Key to attach FID to in gtag params.\nexport const GA_FID_KEY = 'firebase_id';\nexport const ORIGIN_KEY = 'origin';\n\nexport const FETCH_TIMEOUT_MILLIS = 60 * 1000;\n\nexport const DYNAMIC_CONFIG_URL =\n 'https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig';\n\nexport const GTAG_URL = 'https://www.googletagmanager.com/gtag/js';\n\nexport const enum GtagCommand {\n EVENT = 'event',\n SET = 'set',\n CONFIG = 'config',\n CONSENT = 'consent',\n GET = 'get'\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from '@firebase/logger';\n\nexport const logger = new Logger('@firebase/analytics');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AnalyticsError {\n ALREADY_EXISTS = 'already-exists',\n ALREADY_INITIALIZED = 'already-initialized',\n ALREADY_INITIALIZED_SETTINGS = 'already-initialized-settings',\n INTEROP_COMPONENT_REG_FAILED = 'interop-component-reg-failed',\n INVALID_ANALYTICS_CONTEXT = 'invalid-analytics-context',\n INDEXEDDB_UNAVAILABLE = 'indexeddb-unavailable',\n FETCH_THROTTLE = 'fetch-throttle',\n CONFIG_FETCH_FAILED = 'config-fetch-failed',\n NO_API_KEY = 'no-api-key',\n NO_APP_ID = 'no-app-id',\n NO_CLIENT_ID = 'no-client-id',\n INVALID_GTAG_RESOURCE = 'invalid-gtag-resource'\n}\n\nconst ERRORS: ErrorMap = {\n [AnalyticsError.ALREADY_EXISTS]:\n 'A Firebase Analytics instance with the appId {$id} ' +\n ' already exists. ' +\n 'Only one Firebase Analytics instance can be created for each appId.',\n [AnalyticsError.ALREADY_INITIALIZED]:\n 'initializeAnalytics() cannot be called again with different options than those ' +\n 'it was initially called with. It can be called again with the same options to ' +\n 'return the existing instance, or getAnalytics() can be used ' +\n 'to get a reference to the already-initialized instance.',\n [AnalyticsError.ALREADY_INITIALIZED_SETTINGS]:\n 'Firebase Analytics has already been initialized.' +\n 'settings() must be called before initializing any Analytics instance' +\n 'or it will have no effect.',\n [AnalyticsError.INTEROP_COMPONENT_REG_FAILED]:\n 'Firebase Analytics Interop Component failed to instantiate: {$reason}',\n [AnalyticsError.INVALID_ANALYTICS_CONTEXT]:\n 'Firebase Analytics is not supported in this environment. ' +\n 'Wrap initialization of analytics in analytics.isSupported() ' +\n 'to prevent initialization in unsupported environments. Details: {$errorInfo}',\n [AnalyticsError.INDEXEDDB_UNAVAILABLE]:\n 'IndexedDB unavailable or restricted in this environment. ' +\n 'Wrap initialization of analytics in analytics.isSupported() ' +\n 'to prevent initialization in unsupported environments. Details: {$errorInfo}',\n [AnalyticsError.FETCH_THROTTLE]:\n 'The config fetch request timed out while in an exponential backoff state.' +\n ' Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',\n [AnalyticsError.CONFIG_FETCH_FAILED]:\n 'Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}',\n [AnalyticsError.NO_API_KEY]:\n 'The \"apiKey\" field is empty in the local Firebase config. Firebase Analytics requires this field to' +\n 'contain a valid API key.',\n [AnalyticsError.NO_APP_ID]:\n 'The \"appId\" field is empty in the local Firebase config. Firebase Analytics requires this field to' +\n 'contain a valid app ID.',\n [AnalyticsError.NO_CLIENT_ID]: 'The \"client_id\" field is empty.',\n [AnalyticsError.INVALID_GTAG_RESOURCE]:\n 'Trusted Types detected an invalid gtag resource: {$gtagURL}.'\n};\n\ninterface ErrorParams {\n [AnalyticsError.ALREADY_EXISTS]: { id: string };\n [AnalyticsError.INTEROP_COMPONENT_REG_FAILED]: { reason: Error };\n [AnalyticsError.FETCH_THROTTLE]: { throttleEndTimeMillis: number };\n [AnalyticsError.CONFIG_FETCH_FAILED]: {\n httpStatus: number;\n responseMessage: string;\n };\n [AnalyticsError.INVALID_ANALYTICS_CONTEXT]: { errorInfo: string };\n [AnalyticsError.INDEXEDDB_UNAVAILABLE]: { errorInfo: string };\n [AnalyticsError.INVALID_GTAG_RESOURCE]: { gtagURL: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'analytics',\n 'Analytics',\n ERRORS\n);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CustomParams,\n ControlParams,\n EventParams,\n ConsentSettings\n} from './public-types';\nimport { DynamicConfig, DataLayer, Gtag, MinimalDynamicConfig } from './types';\nimport { GtagCommand, GTAG_URL } from './constants';\nimport { logger } from './logger';\nimport { AnalyticsError, ERROR_FACTORY } from './errors';\n\n// Possible parameter types for gtag 'event' and 'config' commands\ntype GtagConfigOrEventParams = ControlParams & EventParams & CustomParams;\n\n/**\n * Verifies and creates a TrustedScriptURL.\n */\nexport function createGtagTrustedTypesScriptURL(url: string): string {\n if (!url.startsWith(GTAG_URL)) {\n const err = ERROR_FACTORY.create(AnalyticsError.INVALID_GTAG_RESOURCE, {\n gtagURL: url\n });\n logger.warn(err.message);\n return '';\n }\n return url;\n}\n\n/**\n * Makeshift polyfill for Promise.allSettled(). Resolves when all promises\n * have either resolved or rejected.\n *\n * @param promises Array of promises to wait for.\n */\nexport function promiseAllSettled(\n promises: Array>\n): Promise {\n return Promise.all(promises.map(promise => promise.catch(e => e)));\n}\n\n/**\n * Creates a TrustedTypePolicy object that implements the rules passed as policyOptions.\n *\n * @param policyName A string containing the name of the policy\n * @param policyOptions Object containing implementations of instance methods for TrustedTypesPolicy, see {@link https://developer.mozilla.org/en-US/docs/Web/API/TrustedTypePolicy#instance_methods\n * | the TrustedTypePolicy reference documentation}.\n */\nexport function createTrustedTypesPolicy(\n policyName: string,\n policyOptions: Partial\n): Partial | undefined {\n // Create a TrustedTypes policy that we can use for updating src\n // properties\n let trustedTypesPolicy: Partial | undefined;\n if (window.trustedTypes) {\n trustedTypesPolicy = window.trustedTypes.createPolicy(\n policyName,\n policyOptions\n );\n }\n return trustedTypesPolicy;\n}\n\n/**\n * Inserts gtag script tag into the page to asynchronously download gtag.\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\n */\nexport function insertScriptTag(\n dataLayerName: string,\n measurementId: string\n): void {\n const trustedTypesPolicy = createTrustedTypesPolicy(\n 'firebase-js-sdk-policy',\n {\n createScriptURL: createGtagTrustedTypesScriptURL\n }\n );\n\n const script = document.createElement('script');\n // We are not providing an analyticsId in the URL because it would trigger a `page_view`\n // without fid. We will initialize ga-id using gtag (config) command together with fid.\n\n const gtagScriptURL = `${GTAG_URL}?l=${dataLayerName}&id=${measurementId}`;\n (script.src as string | TrustedScriptURL) = trustedTypesPolicy\n ? (trustedTypesPolicy as TrustedTypePolicy)?.createScriptURL(gtagScriptURL)\n : gtagScriptURL;\n\n script.async = true;\n document.head.appendChild(script);\n}\n\n/**\n * Get reference to, or create, global datalayer.\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\n */\nexport function getOrCreateDataLayer(dataLayerName: string): DataLayer {\n // Check for existing dataLayer and create if needed.\n let dataLayer: DataLayer = [];\n if (Array.isArray(window[dataLayerName])) {\n dataLayer = window[dataLayerName] as DataLayer;\n } else {\n window[dataLayerName] = dataLayer;\n }\n return dataLayer;\n}\n\n/**\n * Wrapped gtag logic when gtag is called with 'config' command.\n *\n * @param gtagCore Basic gtag function that just appends to dataLayer.\n * @param initializationPromisesMap Map of appIds to their initialization promises.\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\n * @param measurementId GA Measurement ID to set config for.\n * @param gtagParams Gtag config params to set.\n */\nasync function gtagOnConfig(\n gtagCore: Gtag,\n initializationPromisesMap: { [appId: string]: Promise },\n dynamicConfigPromisesList: Array<\n Promise\n >,\n measurementIdToAppId: { [measurementId: string]: string },\n measurementId: string,\n gtagParams?: ControlParams & EventParams & CustomParams\n): Promise {\n // If config is already fetched, we know the appId and can use it to look up what FID promise we\n /// are waiting for, and wait only on that one.\n const correspondingAppId = measurementIdToAppId[measurementId as string];\n try {\n if (correspondingAppId) {\n await initializationPromisesMap[correspondingAppId];\n } else {\n // If config is not fetched yet, wait for all configs (we don't know which one we need) and\n // find the appId (if any) corresponding to this measurementId. If there is one, wait on\n // that appId's initialization promise. If there is none, promise resolves and gtag\n // call goes through.\n const dynamicConfigResults = await promiseAllSettled(\n dynamicConfigPromisesList\n );\n const foundConfig = dynamicConfigResults.find(\n config => config.measurementId === measurementId\n );\n if (foundConfig) {\n await initializationPromisesMap[foundConfig.appId];\n }\n }\n } catch (e) {\n logger.error(e);\n }\n gtagCore(GtagCommand.CONFIG, measurementId, gtagParams);\n}\n\n/**\n * Wrapped gtag logic when gtag is called with 'event' command.\n *\n * @param gtagCore Basic gtag function that just appends to dataLayer.\n * @param initializationPromisesMap Map of appIds to their initialization promises.\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\n * @param measurementId GA Measurement ID to log event to.\n * @param gtagParams Params to log with this event.\n */\nasync function gtagOnEvent(\n gtagCore: Gtag,\n initializationPromisesMap: { [appId: string]: Promise },\n dynamicConfigPromisesList: Array<\n Promise\n >,\n measurementId: string,\n gtagParams?: ControlParams & EventParams & CustomParams\n): Promise {\n try {\n let initializationPromisesToWaitFor: Array> = [];\n\n // If there's a 'send_to' param, check if any ID specified matches\n // an initializeIds() promise we are waiting for.\n if (gtagParams && gtagParams['send_to']) {\n let gaSendToList: string | string[] = gtagParams['send_to'];\n // Make it an array if is isn't, so it can be dealt with the same way.\n if (!Array.isArray(gaSendToList)) {\n gaSendToList = [gaSendToList];\n }\n // Checking 'send_to' fields requires having all measurement ID results back from\n // the dynamic config fetch.\n const dynamicConfigResults = await promiseAllSettled(\n dynamicConfigPromisesList\n );\n for (const sendToId of gaSendToList) {\n // Any fetched dynamic measurement ID that matches this 'send_to' ID\n const foundConfig = dynamicConfigResults.find(\n config => config.measurementId === sendToId\n );\n const initializationPromise =\n foundConfig && initializationPromisesMap[foundConfig.appId];\n if (initializationPromise) {\n initializationPromisesToWaitFor.push(initializationPromise);\n } else {\n // Found an item in 'send_to' that is not associated\n // directly with an FID, possibly a group. Empty this array,\n // exit the loop early, and let it get populated below.\n initializationPromisesToWaitFor = [];\n break;\n }\n }\n }\n\n // This will be unpopulated if there was no 'send_to' field , or\n // if not all entries in the 'send_to' field could be mapped to\n // a FID. In these cases, wait on all pending initialization promises.\n if (initializationPromisesToWaitFor.length === 0) {\n /* eslint-disable-next-line @typescript-eslint/no-floating-promises */\n initializationPromisesToWaitFor = Object.values(\n initializationPromisesMap\n );\n }\n\n // Run core gtag function with args after all relevant initialization\n // promises have been resolved.\n await Promise.all(initializationPromisesToWaitFor);\n // Workaround for http://b/141370449 - third argument cannot be undefined.\n gtagCore(GtagCommand.EVENT, measurementId, gtagParams || {});\n } catch (e) {\n logger.error(e);\n }\n}\n\n/**\n * Wraps a standard gtag function with extra code to wait for completion of\n * relevant initialization promises before sending requests.\n *\n * @param gtagCore Basic gtag function that just appends to dataLayer.\n * @param initializationPromisesMap Map of appIds to their initialization promises.\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\n */\nfunction wrapGtag(\n gtagCore: Gtag,\n /**\n * Allows wrapped gtag calls to wait on whichever initialization promises are required,\n * depending on the contents of the gtag params' `send_to` field, if any.\n */\n initializationPromisesMap: { [appId: string]: Promise },\n /**\n * Wrapped gtag calls sometimes require all dynamic config fetches to have returned\n * before determining what initialization promises (which include FIDs) to wait for.\n */\n dynamicConfigPromisesList: Array<\n Promise\n >,\n /**\n * Wrapped gtag config calls can narrow down which initialization promise (with FID)\n * to wait for if the measurementId is already fetched, by getting the corresponding appId,\n * which is the key for the initialization promises map.\n */\n measurementIdToAppId: { [measurementId: string]: string }\n): Gtag {\n /**\n * Wrapper around gtag that ensures FID is sent with gtag calls.\n * @param command Gtag command type.\n * @param idOrNameOrParams Measurement ID if command is EVENT/CONFIG, params if command is SET.\n * @param gtagParams Params if event is EVENT/CONFIG.\n */\n async function gtagWrapper(\n command: 'config' | 'set' | 'event' | 'consent' | 'get' | string,\n ...args: unknown[]\n ): Promise {\n try {\n // If event, check that relevant initialization promises have completed.\n if (command === GtagCommand.EVENT) {\n const [measurementId, gtagParams] = args;\n // If EVENT, second arg must be measurementId.\n await gtagOnEvent(\n gtagCore,\n initializationPromisesMap,\n dynamicConfigPromisesList,\n measurementId as string,\n gtagParams as GtagConfigOrEventParams\n );\n } else if (command === GtagCommand.CONFIG) {\n const [measurementId, gtagParams] = args;\n // If CONFIG, second arg must be measurementId.\n await gtagOnConfig(\n gtagCore,\n initializationPromisesMap,\n dynamicConfigPromisesList,\n measurementIdToAppId,\n measurementId as string,\n gtagParams as GtagConfigOrEventParams\n );\n } else if (command === GtagCommand.CONSENT) {\n const [consentAction, gtagParams] = args;\n // consentAction can be one of 'default' or 'update'.\n gtagCore(\n GtagCommand.CONSENT,\n consentAction,\n gtagParams as ConsentSettings\n );\n } else if (command === GtagCommand.GET) {\n const [measurementId, fieldName, callback] = args;\n gtagCore(\n GtagCommand.GET,\n measurementId as string,\n fieldName as string,\n callback as (...args: unknown[]) => void\n );\n } else if (command === GtagCommand.SET) {\n const [customParams] = args;\n // If SET, second arg must be params.\n gtagCore(GtagCommand.SET, customParams as CustomParams);\n } else {\n gtagCore(command, ...args);\n }\n } catch (e) {\n logger.error(e);\n }\n }\n return gtagWrapper as Gtag;\n}\n\n/**\n * Creates global gtag function or wraps existing one if found.\n * This wrapped function attaches Firebase instance ID (FID) to gtag 'config' and\n * 'event' calls that belong to the GAID associated with this Firebase instance.\n *\n * @param initializationPromisesMap Map of appIds to their initialization promises.\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\n * @param dataLayerName Name of global GA datalayer array.\n * @param gtagFunctionName Name of global gtag function (\"gtag\" if not user-specified).\n */\nexport function wrapOrCreateGtag(\n initializationPromisesMap: { [appId: string]: Promise },\n dynamicConfigPromisesList: Array<\n Promise\n >,\n measurementIdToAppId: { [measurementId: string]: string },\n dataLayerName: string,\n gtagFunctionName: string\n): {\n gtagCore: Gtag;\n wrappedGtag: Gtag;\n} {\n // Create a basic core gtag function\n let gtagCore: Gtag = function (..._args: unknown[]) {\n // Must push IArguments object, not an array.\n (window[dataLayerName] as DataLayer).push(arguments);\n };\n\n // Replace it with existing one if found\n if (\n window[gtagFunctionName] &&\n typeof window[gtagFunctionName] === 'function'\n ) {\n // @ts-ignore\n gtagCore = window[gtagFunctionName];\n }\n\n window[gtagFunctionName] = wrapGtag(\n gtagCore,\n initializationPromisesMap,\n dynamicConfigPromisesList,\n measurementIdToAppId\n );\n\n return {\n gtagCore,\n wrappedGtag: window[gtagFunctionName] as Gtag\n };\n}\n\n/**\n * Returns the script tag in the DOM matching both the gtag url pattern\n * and the provided data layer name.\n */\nexport function findGtagScriptOnPage(\n dataLayerName: string\n): HTMLScriptElement | null {\n const scriptTags = window.document.getElementsByTagName('script');\n for (const tag of Object.values(scriptTags)) {\n if (\n tag.src &&\n tag.src.includes(GTAG_URL) &&\n tag.src.includes(dataLayerName)\n ) {\n return tag;\n }\n }\n return null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Most logic is copied from packages/remote-config/src/client/retrying_client.ts\n */\n\nimport { FirebaseApp } from '@firebase/app';\nimport { DynamicConfig, ThrottleMetadata, MinimalDynamicConfig } from './types';\nimport { FirebaseError, calculateBackoffMillis } from '@firebase/util';\nimport { AnalyticsError, ERROR_FACTORY } from './errors';\nimport { DYNAMIC_CONFIG_URL, FETCH_TIMEOUT_MILLIS } from './constants';\nimport { logger } from './logger';\n\n// App config fields needed by analytics.\nexport interface AppFields {\n appId: string;\n apiKey: string;\n measurementId?: string;\n}\n\n/**\n * Backoff factor for 503 errors, which we want to be conservative about\n * to avoid overloading servers. Each retry interval will be\n * BASE_INTERVAL_MILLIS * LONG_RETRY_FACTOR ^ retryCount, so the second one\n * will be ~30 seconds (with fuzzing).\n */\nexport const LONG_RETRY_FACTOR = 30;\n\n/**\n * Base wait interval to multiplied by backoffFactor^backoffCount.\n */\nconst BASE_INTERVAL_MILLIS = 1000;\n\n/**\n * Stubbable retry data storage class.\n */\nclass RetryData {\n constructor(\n public throttleMetadata: { [appId: string]: ThrottleMetadata } = {},\n public intervalMillis: number = BASE_INTERVAL_MILLIS\n ) {}\n\n getThrottleMetadata(appId: string): ThrottleMetadata {\n return this.throttleMetadata[appId];\n }\n\n setThrottleMetadata(appId: string, metadata: ThrottleMetadata): void {\n this.throttleMetadata[appId] = metadata;\n }\n\n deleteThrottleMetadata(appId: string): void {\n delete this.throttleMetadata[appId];\n }\n}\n\nconst defaultRetryData = new RetryData();\n\n/**\n * Set GET request headers.\n * @param apiKey App API key.\n */\nfunction getHeaders(apiKey: string): Headers {\n return new Headers({\n Accept: 'application/json',\n 'x-goog-api-key': apiKey\n });\n}\n\n/**\n * Fetches dynamic config from backend.\n * @param app Firebase app to fetch config for.\n */\nexport async function fetchDynamicConfig(\n appFields: AppFields\n): Promise {\n const { appId, apiKey } = appFields;\n const request: RequestInit = {\n method: 'GET',\n headers: getHeaders(apiKey)\n };\n const appUrl = DYNAMIC_CONFIG_URL.replace('{app-id}', appId);\n const response = await fetch(appUrl, request);\n if (response.status !== 200 && response.status !== 304) {\n let errorMessage = '';\n try {\n // Try to get any error message text from server response.\n const jsonResponse = (await response.json()) as {\n error?: { message?: string };\n };\n if (jsonResponse.error?.message) {\n errorMessage = jsonResponse.error.message;\n }\n } catch (_ignored) {}\n throw ERROR_FACTORY.create(AnalyticsError.CONFIG_FETCH_FAILED, {\n httpStatus: response.status,\n responseMessage: errorMessage\n });\n }\n return response.json();\n}\n\n/**\n * Fetches dynamic config from backend, retrying if failed.\n * @param app Firebase app to fetch config for.\n */\nexport async function fetchDynamicConfigWithRetry(\n app: FirebaseApp,\n // retryData and timeoutMillis are parameterized to allow passing a different value for testing.\n retryData: RetryData = defaultRetryData,\n timeoutMillis?: number\n): Promise {\n const { appId, apiKey, measurementId } = app.options;\n\n if (!appId) {\n throw ERROR_FACTORY.create(AnalyticsError.NO_APP_ID);\n }\n\n if (!apiKey) {\n if (measurementId) {\n return {\n measurementId,\n appId\n };\n }\n throw ERROR_FACTORY.create(AnalyticsError.NO_API_KEY);\n }\n\n const throttleMetadata: ThrottleMetadata = retryData.getThrottleMetadata(\n appId\n ) || {\n backoffCount: 0,\n throttleEndTimeMillis: Date.now()\n };\n\n const signal = new AnalyticsAbortSignal();\n\n setTimeout(\n async () => {\n // Note a very low delay, eg < 10ms, can elapse before listeners are initialized.\n signal.abort();\n },\n timeoutMillis !== undefined ? timeoutMillis : FETCH_TIMEOUT_MILLIS\n );\n\n return attemptFetchDynamicConfigWithRetry(\n { appId, apiKey, measurementId },\n throttleMetadata,\n signal,\n retryData\n );\n}\n\n/**\n * Runs one retry attempt.\n * @param appFields Necessary app config fields.\n * @param throttleMetadata Ongoing metadata to determine throttling times.\n * @param signal Abort signal.\n */\nasync function attemptFetchDynamicConfigWithRetry(\n appFields: AppFields,\n { throttleEndTimeMillis, backoffCount }: ThrottleMetadata,\n signal: AnalyticsAbortSignal,\n retryData: RetryData = defaultRetryData // for testing\n): Promise {\n const { appId, measurementId } = appFields;\n // Starts with a (potentially zero) timeout to support resumption from stored state.\n // Ensures the throttle end time is honored if the last attempt timed out.\n // Note the SDK will never make a request if the fetch timeout expires at this point.\n try {\n await setAbortableTimeout(signal, throttleEndTimeMillis);\n } catch (e) {\n if (measurementId) {\n logger.warn(\n `Timed out fetching this Firebase app's measurement ID from the server.` +\n ` Falling back to the measurement ID ${measurementId}` +\n ` provided in the \"measurementId\" field in the local Firebase config. [${\n (e as Error)?.message\n }]`\n );\n return { appId, measurementId };\n }\n throw e;\n }\n\n try {\n const response = await fetchDynamicConfig(appFields);\n\n // Note the SDK only clears throttle state if response is success or non-retriable.\n retryData.deleteThrottleMetadata(appId);\n\n return response;\n } catch (e) {\n const error = e as Error;\n if (!isRetriableError(error)) {\n retryData.deleteThrottleMetadata(appId);\n if (measurementId) {\n logger.warn(\n `Failed to fetch this Firebase app's measurement ID from the server.` +\n ` Falling back to the measurement ID ${measurementId}` +\n ` provided in the \"measurementId\" field in the local Firebase config. [${error?.message}]`\n );\n return { appId, measurementId };\n } else {\n throw e;\n }\n }\n\n const backoffMillis =\n Number(error?.customData?.httpStatus) === 503\n ? calculateBackoffMillis(\n backoffCount,\n retryData.intervalMillis,\n LONG_RETRY_FACTOR\n )\n : calculateBackoffMillis(backoffCount, retryData.intervalMillis);\n\n // Increments backoff state.\n const throttleMetadata = {\n throttleEndTimeMillis: Date.now() + backoffMillis,\n backoffCount: backoffCount + 1\n };\n\n // Persists state.\n retryData.setThrottleMetadata(appId, throttleMetadata);\n logger.debug(`Calling attemptFetch again in ${backoffMillis} millis`);\n\n return attemptFetchDynamicConfigWithRetry(\n appFields,\n throttleMetadata,\n signal,\n retryData\n );\n }\n}\n\n/**\n * Supports waiting on a backoff by:\n *\n *

      \n *
    • Promisifying setTimeout, so we can set a timeout in our Promise chain
    • \n *
    • Listening on a signal bus for abort events, just like the Fetch API
    • \n *
    • Failing in the same way the Fetch API fails, so timing out a live request and a throttled\n * request appear the same.
    • \n *
    \n *\n *

    Visible for testing.\n */\nfunction setAbortableTimeout(\n signal: AnalyticsAbortSignal,\n throttleEndTimeMillis: number\n): Promise {\n return new Promise((resolve, reject) => {\n // Derives backoff from given end time, normalizing negative numbers to zero.\n const backoffMillis = Math.max(throttleEndTimeMillis - Date.now(), 0);\n\n const timeout = setTimeout(resolve, backoffMillis);\n\n // Adds listener, rather than sets onabort, because signal is a shared object.\n signal.addEventListener(() => {\n clearTimeout(timeout);\n // If the request completes before this timeout, the rejection has no effect.\n reject(\n ERROR_FACTORY.create(AnalyticsError.FETCH_THROTTLE, {\n throttleEndTimeMillis\n })\n );\n });\n });\n}\n\ntype RetriableError = FirebaseError & { customData: { httpStatus: string } };\n\n/**\n * Returns true if the {@link Error} indicates a fetch request may succeed later.\n */\nfunction isRetriableError(e: Error): e is RetriableError {\n if (!(e instanceof FirebaseError) || !e.customData) {\n return false;\n }\n\n // Uses string index defined by ErrorData, which FirebaseError implements.\n const httpStatus = Number(e.customData['httpStatus']);\n\n return (\n httpStatus === 429 ||\n httpStatus === 500 ||\n httpStatus === 503 ||\n httpStatus === 504\n );\n}\n\n/**\n * Shims a minimal AbortSignal (copied from Remote Config).\n *\n *

    AbortController's AbortSignal conveniently decouples fetch timeout logic from other aspects\n * of networking, such as retries. Firebase doesn't use AbortController enough to justify a\n * polyfill recommendation, like we do with the Fetch API, but this minimal shim can easily be\n * swapped out if/when we do.\n */\nexport class AnalyticsAbortSignal {\n listeners: Array<() => void> = [];\n addEventListener(listener: () => void): void {\n this.listeners.push(listener);\n }\n abort(): void {\n this.listeners.forEach(listener => listener());\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnalyticsCallOptions,\n CustomParams,\n ControlParams,\n EventParams,\n ConsentSettings\n} from './public-types';\nimport { Gtag } from './types';\nimport { GtagCommand } from './constants';\nimport { AnalyticsError, ERROR_FACTORY } from './errors';\n\n/**\n * Event parameters to set on 'gtag' during initialization.\n */\nexport let defaultEventParametersForInit: CustomParams | undefined;\n\n/**\n * Logs an analytics event through the Firebase SDK.\n *\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\n * @param eventName Google Analytics event name, choose from standard list or use a custom string.\n * @param eventParams Analytics event parameters.\n */\nexport async function logEvent(\n gtagFunction: Gtag,\n initializationPromise: Promise,\n eventName: string,\n eventParams?: EventParams,\n options?: AnalyticsCallOptions\n): Promise {\n if (options && options.global) {\n gtagFunction(GtagCommand.EVENT, eventName, eventParams);\n return;\n } else {\n const measurementId = await initializationPromise;\n const params: EventParams | ControlParams = {\n ...eventParams,\n 'send_to': measurementId\n };\n gtagFunction(GtagCommand.EVENT, eventName, params);\n }\n}\n\n/**\n * Set screen_name parameter for this Google Analytics ID.\n *\n * @deprecated Use {@link logEvent} with `eventName` as 'screen_view' and add relevant `eventParams`.\n * See {@link https://firebase.google.com/docs/analytics/screenviews | Track Screenviews}.\n *\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\n * @param screenName Screen name string to set.\n */\nexport async function setCurrentScreen(\n gtagFunction: Gtag,\n initializationPromise: Promise,\n screenName: string | null,\n options?: AnalyticsCallOptions\n): Promise {\n if (options && options.global) {\n gtagFunction(GtagCommand.SET, { 'screen_name': screenName });\n return Promise.resolve();\n } else {\n const measurementId = await initializationPromise;\n gtagFunction(GtagCommand.CONFIG, measurementId, {\n update: true,\n 'screen_name': screenName\n });\n }\n}\n\n/**\n * Set user_id parameter for this Google Analytics ID.\n *\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\n * @param id User ID string to set\n */\nexport async function setUserId(\n gtagFunction: Gtag,\n initializationPromise: Promise,\n id: string | null,\n options?: AnalyticsCallOptions\n): Promise {\n if (options && options.global) {\n gtagFunction(GtagCommand.SET, { 'user_id': id });\n return Promise.resolve();\n } else {\n const measurementId = await initializationPromise;\n gtagFunction(GtagCommand.CONFIG, measurementId, {\n update: true,\n 'user_id': id\n });\n }\n}\n\n/**\n * Set all other user properties other than user_id and screen_name.\n *\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\n * @param properties Map of user properties to set\n */\nexport async function setUserProperties(\n gtagFunction: Gtag,\n initializationPromise: Promise,\n properties: CustomParams,\n options?: AnalyticsCallOptions\n): Promise {\n if (options && options.global) {\n const flatProperties: { [key: string]: unknown } = {};\n for (const key of Object.keys(properties)) {\n // use dot notation for merge behavior in gtag.js\n flatProperties[`user_properties.${key}`] = properties[key];\n }\n gtagFunction(GtagCommand.SET, flatProperties);\n return Promise.resolve();\n } else {\n const measurementId = await initializationPromise;\n gtagFunction(GtagCommand.CONFIG, measurementId, {\n update: true,\n 'user_properties': properties\n });\n }\n}\n\n/**\n * Retrieves a unique Google Analytics identifier for the web client.\n * See {@link https://developers.google.com/analytics/devguides/collection/ga4/reference/config#client_id | client_id}.\n *\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\n */\nexport async function internalGetGoogleAnalyticsClientId(\n gtagFunction: Gtag,\n initializationPromise: Promise\n): Promise {\n const measurementId = await initializationPromise;\n return new Promise((resolve, reject) => {\n gtagFunction(\n GtagCommand.GET,\n measurementId,\n 'client_id',\n (clientId: string) => {\n if (!clientId) {\n reject(ERROR_FACTORY.create(AnalyticsError.NO_CLIENT_ID));\n }\n resolve(clientId);\n }\n );\n });\n}\n\n/**\n * Set whether collection is enabled for this ID.\n *\n * @param enabled If true, collection is enabled for this ID.\n */\nexport async function setAnalyticsCollectionEnabled(\n initializationPromise: Promise,\n enabled: boolean\n): Promise {\n const measurementId = await initializationPromise;\n window[`ga-disable-${measurementId}`] = !enabled;\n}\n\n/**\n * Consent parameters to default to during 'gtag' initialization.\n */\nexport let defaultConsentSettingsForInit: ConsentSettings | undefined;\n\n/**\n * Sets the variable {@link defaultConsentSettingsForInit} for use in the initialization of\n * analytics.\n *\n * @param consentSettings Maps the applicable end user consent state for gtag.js.\n */\nexport function _setConsentDefaultForInit(\n consentSettings?: ConsentSettings\n): void {\n defaultConsentSettingsForInit = consentSettings;\n}\n\n/**\n * Sets the variable `defaultEventParametersForInit` for use in the initialization of\n * analytics.\n *\n * @param customParams Any custom params the user may pass to gtag.js.\n */\nexport function _setDefaultEventParametersForInit(\n customParams?: CustomParams\n): void {\n defaultEventParametersForInit = customParams;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DynamicConfig, Gtag, MinimalDynamicConfig } from './types';\nimport { GtagCommand, GA_FID_KEY, ORIGIN_KEY } from './constants';\nimport { _FirebaseInstallationsInternal } from '@firebase/installations';\nimport { fetchDynamicConfigWithRetry } from './get-config';\nimport { logger } from './logger';\nimport { FirebaseApp } from '@firebase/app';\nimport {\n isIndexedDBAvailable,\n validateIndexedDBOpenable\n} from '@firebase/util';\nimport { ERROR_FACTORY, AnalyticsError } from './errors';\nimport { findGtagScriptOnPage, insertScriptTag } from './helpers';\nimport { AnalyticsSettings } from './public-types';\nimport {\n defaultConsentSettingsForInit,\n _setConsentDefaultForInit,\n defaultEventParametersForInit,\n _setDefaultEventParametersForInit\n} from './functions';\n\nasync function validateIndexedDB(): Promise {\n if (!isIndexedDBAvailable()) {\n logger.warn(\n ERROR_FACTORY.create(AnalyticsError.INDEXEDDB_UNAVAILABLE, {\n errorInfo: 'IndexedDB is not available in this environment.'\n }).message\n );\n return false;\n } else {\n try {\n await validateIndexedDBOpenable();\n } catch (e) {\n logger.warn(\n ERROR_FACTORY.create(AnalyticsError.INDEXEDDB_UNAVAILABLE, {\n errorInfo: (e as Error)?.toString()\n }).message\n );\n return false;\n }\n }\n return true;\n}\n\n/**\n * Initialize the analytics instance in gtag.js by calling config command with fid.\n *\n * NOTE: We combine analytics initialization and setting fid together because we want fid to be\n * part of the `page_view` event that's sent during the initialization\n * @param app Firebase app\n * @param gtagCore The gtag function that's not wrapped.\n * @param dynamicConfigPromisesList Array of all dynamic config promises.\n * @param measurementIdToAppId Maps measurementID to appID.\n * @param installations _FirebaseInstallationsInternal instance.\n *\n * @returns Measurement ID.\n */\nexport async function _initializeAnalytics(\n app: FirebaseApp,\n dynamicConfigPromisesList: Array<\n Promise\n >,\n measurementIdToAppId: { [key: string]: string },\n installations: _FirebaseInstallationsInternal,\n gtagCore: Gtag,\n dataLayerName: string,\n options?: AnalyticsSettings\n): Promise {\n const dynamicConfigPromise = fetchDynamicConfigWithRetry(app);\n // Once fetched, map measurementIds to appId, for ease of lookup in wrapped gtag function.\n dynamicConfigPromise\n .then(config => {\n measurementIdToAppId[config.measurementId] = config.appId;\n if (\n app.options.measurementId &&\n config.measurementId !== app.options.measurementId\n ) {\n logger.warn(\n `The measurement ID in the local Firebase config (${app.options.measurementId})` +\n ` does not match the measurement ID fetched from the server (${config.measurementId}).` +\n ` To ensure analytics events are always sent to the correct Analytics property,` +\n ` update the` +\n ` measurement ID field in the local config or remove it from the local config.`\n );\n }\n })\n .catch(e => logger.error(e));\n // Add to list to track state of all dynamic config promises.\n dynamicConfigPromisesList.push(dynamicConfigPromise);\n\n const fidPromise: Promise = validateIndexedDB().then(\n envIsValid => {\n if (envIsValid) {\n return installations.getId();\n } else {\n return undefined;\n }\n }\n );\n\n const [dynamicConfig, fid] = await Promise.all([\n dynamicConfigPromise,\n fidPromise\n ]);\n\n // Detect if user has already put the gtag