{"version":3,"file":"static/js/main.3e64f117.js","mappings":"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,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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,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K9H,GAAU,QAAU,MAAQ,CAAEykB,UAAWzkB,IACpE6jB,WAIR7jB,CAEf,CACJ,CA2EA,IAUIiuT,GAAY,CAAEltD,SAAS,IAVC,WACxB,SAASstD,IACT,CAMA,OAJAA,EAAOz0T,UAAUmnQ,QAAU,SAAUgtD,EAAgBpM,EAAQmK,GAEzD,YADe,IAAXnK,IAAqBA,EAAS,CAAC,GAC5BnnT,GAAOuzT,EAAgBpM,EAClC,EACO0M,CACX,CAT4B,KAUYttD,SC1JpCutD,GAAa,CACb,SACA,QACA,cACA,4BACA,kCACA,wCACA,oCACA,uBACA,0BACA,0BACA,2CAEAC,GAAc,CACd,CAAEjlS,UAAW,OAAQlD,SAAU,yBAC/B,CAAEkD,UAAW,aAAclD,SAAU,+BACrC,CAAEkD,UAAW,QAASlD,SAAU,0BAChC,CAAEkD,UAAW,QAASlD,SAAU,0BAChC,CAAEkD,UAAW,OAAQlD,SAAU,qCAE/BooS,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,CACPruE,KAAMguE,GACNz1S,WAAY01S,IAGxB,EACAE,EAAmBG,SAAW,SAAU1xT,GACpC,IAAI+vB,EAAOjxB,KAAK0yT,iBAEhB,OADa1yT,KAAK6yT,eAAe5hS,EAAM/vB,EAE3C,EACAuxT,EAAmBI,eAAiB,SAAU5hS,EAAM/vB,GAChDlB,KAAKuyT,YAActhS,EAAK0hS,UAAU91S,WAClC7c,KAAKsyT,WAAarhS,EAAK0hS,UAAUruE,KACjCtkP,KAAK8yT,YAAcz8S,SAAS1M,cAAc,OAC1C3J,KAAK8yT,YAAYrqS,UAAYvnB,EAC7BlB,KAAK+yT,gBACL/yT,KAAKgzT,iBACLhzT,KAAKizT,iBACL,IAAIC,EAAelzT,KAAK8yT,YAAYrqS,UAEpC,OADAzoB,KAAKkxG,gBACEgiN,EAAatnT,QAAQ,QAAS,IACzC,EACA6mT,EAAmBvhN,cAAgB,WAG/B,IADA,IAAIxjF,EAAQ1tB,KAAK8yT,YAAYvqT,SACpBa,EAAI,EAAGA,EAAIskB,EAAM/vB,OAAQyL,IAE9B,IADA,IAAIkkB,EAAYI,EAAMljB,SAASpB,EAAE2B,WAAY,KAAK8R,WACzCnd,EAAI,EAAGA,EAAI4tB,EAAU3vB,OAAQ+B,IAClCM,KAAK8yT,YAAYvqT,SAASiC,SAASpB,EAAE2B,WAAY,KAAK2uB,gBAAgBpM,EAAU9iB,SAAS9K,EAAEqL,WAAY,KAAKooT,UAGxH,EACAV,EAAmBM,cAAgB,WAC/B,IAAInxP,EAAW5hE,KAAK8yT,YAAYvsS,iBAAiBvmB,KAAKsyT,WAAWx8R,KAAK,MAClE8rC,EAASjkE,OAAS,GAClBikE,EAAS7+D,SAAQ,SAAUmsB,GACvBssJ,GAAOtsJ,EACX,GAKR,EACAujS,EAAmBO,eAAiB,WAChC,IAAIpxP,EAAW5hE,KAAK8yT,YAAYvsS,iBAAiB,IAAMisS,GAAS18R,KAAK,OAAS,KAC1E8rC,EAASjkE,OAAS,GAClBikE,EAAS7+D,SAAQ,SAAUmsB,GACvBsjS,GAASzvT,SAAQ,SAAUy4D,GACnBtsC,EAAQkkS,aAAa53P,IACrBtsC,EAAQwK,gBAAgB8hC,EAEhC,GACJ,GAKR,EACAi3P,EAAmBQ,eAAiB,WAChC,IAAIrtT,EAAQ5F,KAEZA,KAAKuyT,YAAYxvT,SAAQ,SAAUkuB,EAAM1pB,GACrC,IAAIq6D,EAAWh8D,EAAMktT,YAAYvsS,iBAAiB0K,EAAK7G,UACnDw3C,EAASjkE,OAAS,GAClBikE,EAAS7+D,SAAQ,SAAUmsB,GACvBA,EAAQwK,gBAAgBzI,EAAK3D,UACjC,GAER,GACJ,EACOmlS,CACX,CA7EwC,GCjGjC,SAASY,GAAkB1pT,EAAe2xB,EAAK99B,EAAM0xB,EAASokS,EAASxsH,GAC1E,IAAI3zL,EAAQ+b,EACZ,GAAIA,EAAQhL,UAAYoX,EAAK,CACzB,IAAIi4R,EAAav3R,GAAS,gBAAiB9M,GAC3C/b,EAAQxJ,EAAc,QAAS,CAAE4xD,MAAO,CAAE,KAAQ/9D,KAElD,IADA,IAAI4F,EAAQ,CAAC,SAAU,WAAY,QAAS,gBAAiB,MACpDmE,EAAQ,EAAGlG,EAAM6tB,EAAQrS,WAAWlf,OAAQ4J,EAAQlG,EAAKkG,KACH,IAAvDnE,EAAMqM,QAAQyf,EAAQrS,WAAWtV,GAAOqmB,WACxCza,EAAMwmB,aAAazK,EAAQrS,WAAWtV,GAAOqmB,SAAUsB,EAAQrS,WAAWtV,GAAOumB,WAGzFjR,GAAWqS,EAAS,CAAE,MAASokS,IAC/BpkS,EAAQvG,YAAYxV,GACpB8oB,GAAS,gBAAiBs3R,EAAYpgT,GACtC6/Q,GAAa9jQ,EAAS,gBAC1B,CACA,OAAO/b,CACX,CAQO,SAASqgT,GAAYtkS,GAGxB,IAFA,IAAI9d,EACAqiT,EAAYvkS,EAAQrH,WACfnoB,EAAI,EAAGA,EAAI+zT,EAAU91T,OAAQ+B,IAElC,GAAsB,KADtB0R,EAAOqiT,EAAU/zT,IACRiY,SACL,OAAOvG,EAGf,OAAO,IACX,CAgGO,SAASsiT,GAAmB7zT,EAAG8zT,GAClC,GAAIA,EAAY,CACZ,IAAI9kB,EAAUx4R,SAASC,YAAY,eACnCu4R,EAAQ+kB,UAAU/zT,EAAErC,MAAM,GAAO,GACjCm2T,EAAW1pR,cAAc4kQ,EAC7B,CACJ,CCxJA,IA0BWglB,GACAA,GA3BPj2P,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,GASWoxT,GAiBRA,KAAiBA,GAAe,CAAC,IAbb,KAAI,OAIvBA,GAAoB,MAAI,QAIxBA,GAAkB,IAAI,MAItBA,GAAqB,OAAI,SAED,IAAIh4D,GAAzB,ICzCHi4D,GACAC,GACA7kS,GACA8kS,GCFAA,GACAC,GFwCAC,GACK,QADLA,GAEQ,QAFRA,GAGS,YAHTA,GAIS,aAcTC,GAAwB,SAAUxuT,GAQlC,SAASwuT,EAAOp0T,EAASmvB,GACrB,OAAOvpB,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,IAClD,CAiSA,OA1SA49D,GAAUu2P,EAAQxuT,GAUlBwuT,EAAOv2T,UAAUugT,UAAY,WACzB,EAQJgW,EAAOv2T,UAAUY,OAAS,WACtBwB,KAAKunI,aACLvnI,KAAKo0T,mBAAqB7c,GAAav3S,KAAKkvB,QAAS,CAAE9E,SAAU,IAAM8pS,KACvEl0T,KAAK++S,gBACT,EACAoV,EAAOv2T,UAAU2pI,WAAa,WAO1B,GANIvnI,KAAKq0T,UACLtlB,GAAS,CAAC/uS,KAAKkvB,SAAUlvB,KAAKq0T,SAASzoT,QAAQ,OAAQ,KAAKjD,OAAOwwB,MAAM,MAEzEn5B,KAAK+wC,WACL/wC,KAAKkvB,QAAQlD,UAAUC,IAAIioS,KAE1BvgC,MAAeA,MAAuC,iBAAzB3zR,KAAKwyS,gBAAqC,CACxE,GAAIxyS,KAAK6tB,QAAS,CACd,IAAIymS,EAAet0T,KAAKu0T,oBAAuB9B,GAAmBG,SAAS5yT,KAAK6tB,SAAW7tB,KAAK6tB,QAChG7tB,KAAKkvB,QAAQzG,UAAY6rS,CAC7B,CACAt0T,KAAKw0T,YACT,CACIx0T,KAAK49S,WACL59S,KAAKkvB,QAAQlD,UAAUC,IAAIioS,IAE3Bl0T,KAAKuU,SACLvU,KAAKy0T,cAAcz0T,KAAKuU,UAGxBvU,KAAKqpT,YAEb,EACA8K,EAAOv2T,UAAU62T,cAAgB,SAAUlgT,GACvCvU,KAAKkvB,QAAQ3a,SAAWA,CAC5B,EACA4/S,EAAOv2T,UAAU42T,WAAa,WAC1B,GAAIx0T,KAAK00T,QAAS,CACd,IAAIp7K,EAAOt5I,KAAK2J,cAAc,OAAQ,CAAEC,UAAW,cAAgB5J,KAAK00T,UACnE10T,KAAKkvB,QAAQ2O,YAAYl1B,QAI1B2wI,EAAKttH,UAAUC,IAAI,UAAYjsB,KAAK20T,aAAavnS,eACvB,QAAtBptB,KAAK20T,cAAgD,WAAtB30T,KAAK20T,cACpC30T,KAAKkvB,QAAQlD,UAAUC,IAAI,KAAOjsB,KAAK20T,aAAavnS,cAAgB,cALxEptB,KAAKkvB,QAAQlD,UAAUC,IAAIioS,IAQ/B,IAAI9iT,EAAOpR,KAAKkvB,QAAQrH,WAAW,IAC/BzW,GAA+B,SAAtBpR,KAAK20T,cAAiD,QAAtB30T,KAAK20T,aAI9C30T,KAAKkvB,QAAQvG,YAAY2wH,GAHzBt5I,KAAKkvB,QAAQmhC,aAAaipF,EAAMloI,EAKxC,CACJ,EACA+iT,EAAOv2T,UAAUyrT,WAAa,WACtBrpT,KAAK40T,UACL7mB,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,QAASlvB,KAAK60T,gBAAiB70T,KAEtE,EACAm0T,EAAOv2T,UAAUk3T,aAAe,WACxB90T,KAAK40T,UACL7mB,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,QAASlvB,KAAK60T,gBAExD,EACAV,EAAOv2T,UAAUi3T,gBAAkB,WAC3B70T,KAAKkvB,QAAQlD,UAAU6oB,SAAS,YAChC70C,KAAKkvB,QAAQlD,UAAUG,OAAO,YAG9BnsB,KAAKkvB,QAAQlD,UAAUC,IAAI,WAEnC,EAMAkoS,EAAOv2T,UAAU4C,QAAU,WACvB,IAAIwrB,EAAY,CAACkoS,GAAsBA,GAAkBA,GAAsB,YAAa,SAAU,WAClG,YAAa,SAAU,YAAa,UAAW,WAAY,WAAY,UACvE,iBAAkB,qBAClBl0T,KAAKq0T,WACLroS,EAAYA,EAAUzsB,OAAOS,KAAKq0T,SAASl7R,MAAM,OAErDxzB,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,MAC9BovS,GAAY,CAACpvS,KAAKkvB,SAAUlD,GACvBhsB,KAAKkvB,QAAQ6hD,aAAa,UAC3B/wE,KAAKkvB,QAAQwK,gBAAgB,SAE7B15B,KAAKuU,UACLvU,KAAKkvB,QAAQwK,gBAAgB,YAE7B15B,KAAK6tB,UACL7tB,KAAKkvB,QAAQzG,UAAYzoB,KAAKkvB,QAAQzG,UAAU7c,QAAQ5L,KAAK6tB,QAAS,KAE1E,IAAIyrH,EAAOt5I,KAAKkvB,QAAQnM,cAAc,mBAClCu2H,GACAkiC,GAAOliC,GAEXt5I,KAAK80T,eACDjd,IACA73S,KAAKo0T,oBAEb,EAOAD,EAAOv2T,UAAU40S,cAAgB,WAC7B,MAAO,KACX,EAOA2hB,EAAOv2T,UAAU6hT,eAAiB,WAC9B,OAAOz/S,KAAK+/S,aAAa,GAC7B,EAOAoU,EAAO/U,OAAS,WACZ,EAUJ+U,EAAOv2T,UAAUs0S,kBAAoB,SAAUmF,EAASC,GAEpD,IADA,IAAIh+J,EAAOt5I,KAAKkvB,QAAQnM,cAAc,mBAC7B43C,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,YACG08O,EAAQtmQ,UACR/wC,KAAKkvB,QAAQlD,UAAUC,IAAIioS,IAG3Bl0T,KAAKkvB,QAAQlD,UAAUG,OAAO+nS,IAElC,MACJ,IAAK,WACDl0T,KAAKy0T,cAAcpd,EAAQ9iS,UAC3B,MACJ,IAAK,UACG+kI,EACI+9J,EAAQqd,SACRp7K,EAAK1vI,UAAY,cAAgBytS,EAAQqd,QACrC10T,KAAKkvB,QAAQ2O,YAAYl1B,SACC,SAAtB3I,KAAK20T,aACLr7K,EAAKttH,UAAUC,IAAI,eAGnBqtH,EAAKttH,UAAUC,IAAI,kBAK3BuvJ,GAAOliC,GAIXt5I,KAAKw0T,aAET,MAEJ,IAAK,eACDplB,GAAY,CAACpvS,KAAKkvB,SAAU,CAAC,iBAAkB,uBAC/CoqH,EAAOt5I,KAAKkvB,QAAQnM,cAAc,qBAE9By4J,GAAOliC,GAEXt5I,KAAKw0T,aACL,MACJ,IAAK,WACGld,EAAQ+c,UACRjlB,GAAY,CAACpvS,KAAKkvB,SAAUooR,EAAQ+c,SAASl7R,MAAM,MAEnDk+Q,EAAQgd,UACRtlB,GAAS,CAAC/uS,KAAKkvB,SAAUmoR,EAAQgd,SAASzoT,QAAQ,OAAQ,KAAKjD,OAAOwwB,MAAM,MAEhF,MACJ,IAAK,YACGk+Q,EAAQuG,UACR59S,KAAKkvB,QAAQlD,UAAUC,IAAIioS,IAG3Bl0T,KAAKkvB,QAAQlD,UAAUG,OAAO+nS,IAElC,MACJ,IAAK,UACUV,GAAYxzT,KAAKkvB,UAExBlvB,KAAKkvB,QAAQlD,UAAUG,OAAO+nS,MAE7BvgC,MAAeA,OAAe3zR,KAAK64R,kBAA6C,iBAAzB74R,KAAKwyS,mBACzDxyS,KAAKu0T,sBACLld,EAAQxpR,QAAU4kS,GAAmBG,SAASvb,EAAQxpR,UAE1D7tB,KAAKkvB,QAAQzG,UAAY4uR,EAAQxpR,QACjC7tB,KAAKw0T,cAET,MAEJ,IAAK,WACGnd,EAAQud,SACR7mB,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,QAASlvB,KAAK60T,gBAAiB70T,OAG9D+tS,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,QAASlvB,KAAK60T,iBAChDzlB,GAAY,CAACpvS,KAAKkvB,SAAU,CAAC,cAI7C,CACJ,EAQAilS,EAAOv2T,UAAUo6L,MAAQ,WACrBh4L,KAAKkvB,QAAQ8oK,OACjB,EAQAm8H,EAAOv2T,UAAUm3T,QAAU,WACvB/0T,KAAKkvB,QAAQmnB,OACjB,EACAs/P,GAAW,CACPnB,GAAS,SACV2f,EAAOv2T,UAAW,oBAAgB,GACrC+3S,GAAW,CACPnB,GAAS,KACV2f,EAAOv2T,UAAW,eAAW,GAChC+3S,GAAW,CACPnB,IAAS,IACV2f,EAAOv2T,UAAW,gBAAY,GACjC+3S,GAAW,CACPnB,IAAS,IACV2f,EAAOv2T,UAAW,iBAAa,GAClC+3S,GAAW,CACPnB,GAAS,KACV2f,EAAOv2T,UAAW,gBAAY,GACjC+3S,GAAW,CACPnB,GAAS,KACV2f,EAAOv2T,UAAW,eAAW,GAChC+3S,GAAW,CACPnB,IAAS,IACV2f,EAAOv2T,UAAW,gBAAY,GACjC+3S,GAAW,CACPnB,MACD2f,EAAOv2T,UAAW,cAAU,GAC/B+3S,GAAW,CACPnB,IAAS,IACV2f,EAAOv2T,UAAW,2BAAuB,GAC5C+3S,GAAW,CACPxuH,MACDgtI,EAAOv2T,UAAW,eAAW,GAChCu2T,EAASxe,GAAW,CAChBX,IACDmf,EAEP,CA5S4B,CA4S1BjqT,ICpWE8qT,IAAc,EAuCX,SAASC,GAAkBC,EAAgBC,EAAWC,EAAWrM,EAAesM,GAInF,GAHAtB,QAAY1tT,EACZ0tT,GAAYsB,EACZL,KAAcjM,GACTmM,EACD,MAAO,CAAEllT,KAAM,EAAGF,IAAK,GAEtBqlT,IACDA,EAAY,QAEXC,IACDA,EAAY,OAEhBpB,GAAiBkB,EAAe9gT,cAChC8a,GAAUgmS,EAEV,OA2BJ,SAAwBz3I,EAAMC,EAAMp6G,GAEhC,OADAwwP,GAAc5kS,GAAQxE,wBACdgzJ,EAAOD,GACX,IAAK,YACD63I,GAAQC,KAAqBjyP,GAC7BkyP,GAAQC,KAAiBnyP,GACzB,MACJ,IAAK,WACDgyP,GAAQI,KAAmBpyP,GAC3BkyP,GAAQC,KAAiBnyP,GACzB,MACJ,IAAK,eACDgyP,GAAQC,KAAqBjyP,GAC7BkyP,GAAQG,KAAqBryP,GAC7B,MACJ,IAAK,cACDgyP,GAAQI,KAAmBpyP,GAC3BkyP,GAAQG,KAAqBryP,GAC7B,MACJ,IAAK,aACDgyP,GAAQM,KAAkBtyP,GAC1BkyP,GAAQG,KAAqBryP,GAC7B,MACJ,IAAK,eACDgyP,GAAQC,KAAqBjyP,GAC7BkyP,GAAQK,KAAoBvyP,GAC5B,MACJ,IAAK,cACDgyP,GAAQI,KAAmBpyP,GAC3BkyP,GAAQK,KAAoBvyP,GAC5B,MACJ,IAAK,aACDgyP,GAAQM,KAAkBtyP,GAC1BkyP,GAAQK,KAAoBvyP,GAC5B,MACJ,QAEIgyP,GAAQM,KAAkBtyP,GAC1BkyP,GAAQC,KAAiBnyP,GAIjC,OADAp0C,GAAU,KACHo0C,CACX,CAtEWd,CAAe2yP,EAAU/nS,cAAegoS,EAAUhoS,cAD/C,CAAEpd,KAAM,EAAGF,IAAK,GAE9B,CAOA,SAASwlT,GAAQp0T,EAAOoiE,GACpBA,EAAItzD,KAAO9O,CACf,CAOA,SAASs0T,GAAQt0T,EAAOoiE,GACpBA,EAAIxzD,IAAM5O,CACd,CAuDA,SAAS40T,KACL,OAAO9B,GAAexhS,gBAAgB5H,WAAaopS,GAAe3/S,KAAKuW,SAC3E,CAIA,SAASmrS,KACL,OAAO/B,GAAexhS,gBAAgB7H,YAAcqpS,GAAe3/S,KAAKsW,UAC5E,CAIA,SAASkrS,KACL,OAAOb,GAAclB,GAAYvgS,OAASugS,GAAYvgS,OAASuiS,IACnE,CAIA,SAASH,KACL,OAAOF,KAAmB3B,GAAYp3S,OAAS,CACnD,CAIA,SAAS+4S,KACL,OAAOT,GAAclB,GAAYhkT,IAAMgkT,GAAYhkT,IAAMgmT,IAC7D,CAIA,SAASF,KACL,OAAO9B,GAAY9jT,KAAO+lT,IAC9B,CAIA,SAASL,KACL,IAAIM,EAAc9mS,IAAWA,GAAQlD,UAAU6oB,SAAS,wBAA4Bk/Q,GAAYA,GAAUxqT,MAAQ,EAC7GwqT,IAAcD,GAAYvqT,OAASwqT,GAAUxqT,MAASwqT,GAAUxqT,MAAQ,EAC7E,OAAOuqT,GAAY/rS,MAAQguS,KAAsBC,CACrD,CAIA,SAAST,KACL,OAAOK,KAAoB9B,GAAYvqT,MAAQ,CACnD,CCxKO,SAAS0sT,GAAI/mS,EAASgnS,EAAiBnjS,EAAMnjB,GAGhD,QAFwB,IAApBsmT,IAA8BA,EAAkB,WACvC,IAATnjS,IAAmBA,EAAO,CAAEy9B,GAAG,EAAOuB,GAAG,KACxCh/B,EAAKg/B,IAAMh/B,EAAKy9B,EACjB,MAAO,CAAExgD,KAAM,EAAGF,IAAK,GAE3B,IAAIqmT,EAAWjnS,EAAQxE,wBAMvB,GALAupS,GAAkBiC,EAClBlC,GAAiB9kS,EAAQ9a,cACpBxE,IACDA,EAAWqlT,GAAkB/lS,EAAS,OAAQ,QAE9C6D,EAAKy9B,EAAG,CACR,IAAI4lQ,EAAiBnC,GAAkBoC,KAA4BC,KAC/DC,EAAgBC,KAChBC,EAAiBC,KACjBC,EAAWJ,EAAgB3mT,EAASI,KACpC4mT,EAAYhnT,EAASI,KAAOmmT,EAAS5sT,MAAQktT,EAC7CN,EAAS5sT,MAAQ6sT,EAEbxmT,EAASI,KADT2mT,EAAW,GAAKC,GAAa,EACbH,EAAiBN,EAAS5sT,MAErCqtT,EAAY,GAAKD,GAAY,EAClBJ,EAGAI,EAAWC,EAAaH,EAAiBN,EAAS5sT,MAASgtT,EAG1EI,EAAW,EAChB/mT,EAASI,MAAQ2mT,EAEZC,EAAY,IACjBhnT,EAASI,MAAQ4mT,EAEzB,CACA,GAAI7jS,EAAKg/B,EAAG,CACR,IAAI8kQ,EAAkB5C,GAAkB6C,KAA6BC,KACjEC,EAAeC,KACfC,EAAkBC,KAClBC,EAAUJ,EAAepnT,EAASE,IAClCunT,EAAaznT,EAASE,IAAMqmT,EAASz5S,OAASw6S,EAC9Cf,EAASz5S,OAASm6S,EAEdjnT,EAASE,IADTsnT,EAAU,GAAKC,GAAc,EACdH,EAAkBf,EAASz5S,OAErC26S,EAAa,GAAKD,GAAW,EACnBJ,EAGAI,EAAUC,EAAcH,EAAkBf,EAASz5S,OAAUs6S,EAG3EI,EAAU,EACfxnT,EAASE,KAAOsnT,EAEXC,EAAa,IAClBznT,EAASE,KAAOunT,EAExB,CACA,OAAOznT,CACX,CASO,SAAS0nT,GAAUpoS,EAASgnS,EAAiB7uT,EAAGC,QAC3B,IAApB4uT,IAA8BA,EAAkB,MACpD,IAAIqB,EAAatC,GAAkB/lS,EAAS,OAAQ,OAChD7nB,IACAkwT,EAAWvnT,KAAO3I,GAElBC,IACAiwT,EAAWznT,IAAMxI,GAErB,IAAIsnC,EAAO,GACXqlR,GAAkBiC,EAClBlC,GAAiB9kS,EAAQ9a,cACzB,IAAI0/S,EAAc5kS,EAAQxE,wBACtB5a,EAAMynT,EAAWznT,IACjBE,EAAOunT,EAAWvnT,KAClB+X,EAAQwvS,EAAWvnT,KAAO8jT,EAAYvqT,MAItCiuT,EAAQC,GAAgB3nT,EAHfynT,EAAWznT,IAAMgkT,EAAYp3S,QAItCg7S,EAAQC,GAAiB3nT,EAAM+X,GAanC,OAZIyvS,EAAMI,SACNhpR,EAAK/rC,KAAK,OAEV60T,EAAMG,WACNjpR,EAAK/rC,KAAK,SAEV60T,EAAMI,UACNlpR,EAAK/rC,KAAK,QAEV20T,EAAMO,YACNnpR,EAAK/rC,KAAK,UAEP+rC,CACX,CAcO,SAASopR,GAAK9oS,EAASxuB,EAAQ41H,EAASC,EAAS4+L,EAAWC,EAAWc,EAE9EnjS,EAAMiiS,GAGF,QAFwB,IAApBkB,IAA8BA,EAAkB,WACvC,IAATnjS,IAAmBA,EAAO,CAAEy9B,GAAG,EAAMuB,GAAG,IACvCrxD,GAAWwuB,GAAYimS,GAAcC,IAAeriS,EAAKy9B,GAAMz9B,EAAKg/B,GAAzE,CAGA,IAWI+hQ,EAXAmE,EAAQ,CAAEC,GAAI,KACdC,GAAI,KACJC,GAAI,KACJC,GAAI,MACLC,EAAQ,CACPJ,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,MAIR,GAAiD,SAA7C7hT,OAAOmT,iBAAiBuF,GAASxlB,QAAoB,CACrD,IAAI6uT,EAAgBrpS,EAAQruB,MAAM04I,WAClCrqH,EAAQruB,MAAM04I,WAAa,SAC3BrqH,EAAQruB,MAAM6I,QAAU,QACxBoqT,EAAc5kS,EAAQxE,wBACtBwE,EAAQruB,MAAM23T,eAAe,WAC7BtpS,EAAQruB,MAAM04I,WAAag/K,CAC/B,MAEIzE,EAAc5kS,EAAQxE,wBAE1B,IAAI44C,EAAM,CACNm6G,KAAM03I,EAAWz3I,KAAM03I,EAAW9+L,QAASA,EAASC,QAASA,EAAS3mH,SAAU,CAAEI,KAAM,EAAGF,IAAK,IAEpGmkT,GAAkBiC,EAClBlC,GAAiBtzT,EAAO0T,cAwC5B,SAA2B1T,EAAQ+3T,EAAMn1P,EAAK0xP,EAAalB,GACvDxwP,EAAI1zD,SAAWqlT,GAAkBv0T,EAAQ4iE,EAAIm6G,KAAMn6G,EAAIo6G,KAAMs3I,EAAalB,GAC1E2E,EAAKP,GAAKjD,GAAkBv0T,EAAQ,OAAQ,MAAOs0T,EAAalB,GAChE2E,EAAKN,GAAKlD,GAAkBv0T,EAAQ,QAAS,MAAOs0T,EAAalB,GACjE2E,EAAKJ,GAAKpD,GAAkBv0T,EAAQ,OAAQ,SAAUs0T,EAAalB,GACnE2E,EAAKL,GAAKnD,GAAkBv0T,EAAQ,QAAS,SAAUs0T,EAAalB,EACxE,CA7CI4E,CAAkBh4T,EAAQu3T,EAAO30P,EAAK0xP,EAAalB,GACnD6E,GAAYL,EAAOh1P,EAAKwwP,GACpB/gS,EAAKy9B,GACLooQ,GAASl4T,EAAQ43T,EAAOL,EAAO30P,EAAKwwP,GAAa,GAEjD/gS,EAAKg/B,GAAKkmQ,EAAMC,GAAGpoT,KAAO,GAC1B+oT,GAAQn4T,EAAQ43T,EAAOL,EAAO30P,EAAKwwP,GAAa,GAWxD,SAAkB5kS,EAASo0C,EAAKwwP,GAE5B,IAAI9jT,EAAO,EAAGF,EAAM,EACpB,GAA4B,MAAxBof,EAAQzX,eACgD,aAApDkS,iBAAiBuF,EAAQzX,cAAc7H,UACa,aAApD+Z,iBAAiBuF,EAAQzX,cAAc7H,UAA0B,CACrE,IAAIg/B,EAAOqmR,GAAkB/lS,EAAQzX,aAAc,OAAQ,OAAO,EAAOq8S,GACzE9jT,EAAO4+B,EAAK5+B,KACZF,EAAM8+B,EAAK9+B,GACf,CACAof,EAAQruB,MAAMiP,IAAOwzD,EAAI1zD,SAASE,IAAMwzD,EAAIizD,QAAWzmH,EAAQ,KAC/Dof,EAAQruB,MAAMmP,KAAQszD,EAAI1zD,SAASI,KAAOszD,EAAIgzD,QAAWtmH,EAAS,IACtE,CArBI8oT,CAAS5pS,EAASo0C,EAAKwwP,EArCvB,CAsCJ,CA4CA,SAAS6E,GAAYI,EAASz1P,EAAKwwP,GAC/BiF,EAAQb,GAAK,CAAEpoT,IAAKwzD,EAAI1zD,SAASE,IAAMwzD,EAAIizD,QAASvmH,KAAMszD,EAAI1zD,SAASI,KAAOszD,EAAIgzD,SAClFyiM,EAAQZ,GAAK,CAAEroT,IAAKipT,EAAQb,GAAGpoT,IAAKE,KAAM+oT,EAAQb,GAAGloT,KAAO8jT,EAAYvqT,OACxEwvT,EAAQX,GAAK,CAAEtoT,IAAKipT,EAAQb,GAAGpoT,IAAMgkT,EAAYp3S,OAC7C1M,KAAM+oT,EAAQb,GAAGloT,MACrB+oT,EAAQV,GAAK,CAAEvoT,IAAKipT,EAAQb,GAAGpoT,IAAMgkT,EAAYp3S,OAC7C1M,KAAM+oT,EAAQb,GAAGloT,KAAO8jT,EAAYvqT,MAC5C,CAOA,SAASouT,GAAiB3nT,EAAM+X,GAE5B,IAAI+vS,GAAW,EAAOD,GAAY,EAOlC,OANM7nT,EAAO+lT,KAAuBS,OAChCsB,GAAW,GAEX/vS,EAAQ2uS,OACRmB,GAAY,GAET,CAAEC,SAAUA,EAAUD,UAAWA,EAC5C,CAWA,SAASe,GAASl4T,EAAQ+3T,EAAMR,EAAO30P,EAAKwwP,EAAakF,GACrD,IAAIC,EAActB,GAAiBc,EAAKP,GAAGloT,KAAMyoT,EAAKN,GAAGnoT,MACpDioT,EAAMC,GAAGloT,KAAO+lT,MAAwBS,OACzCyC,EAAYnB,UAAW,GAEvBG,EAAME,GAAGnoT,KAAO0mT,OAChBuC,EAAYpB,WAAY,IAEvBoB,EAAYnB,WAAamB,EAAYpB,YAAgBoB,EAAYnB,UAAYmB,EAAYpB,aACzE,UAAbv0P,EAAIm6G,KACJn6G,EAAIm6G,KAAO,OAGXn6G,EAAIm6G,KAAO,QAEfn6G,EAAIgzD,QAAUhzD,EAAIgzD,QAAUw9L,EAAYvqT,MACxC+5D,EAAIgzD,SAAW,EAAIhzD,EAAIgzD,QACvBhzD,EAAI1zD,SAAWqlT,GAAkBv0T,EAAQ4iE,EAAIm6G,KAAMn6G,EAAIo6G,MAAM,GAC7Di7I,GAAYF,EAAMn1P,EAAKwwP,GACnBkF,GACAJ,GAASl4T,EAAQ+3T,EAAMR,EAAO30P,EAAKwwP,GAAa,GAG5D,CAWA,SAAS+E,GAAQn4T,EAAQ+3T,EAAMR,EAAO30P,EAAKwwP,EAAakF,GACpD,IAAIC,EAAcxB,GAAgBgB,EAAKP,GAAGpoT,IAAK2oT,EAAKL,GAAGtoT,KAClDmoT,EAAMC,GAAGpoT,IAAMgmT,MAAuBmB,OACvCgC,EAAYrB,SAAU,GAEtBK,EAAMG,GAAGtoT,KAAOqnT,MAAqBz2T,EAAOgqB,wBAAwB6I,OAAS/c,OAAOgT,cACpFyvS,EAAYlB,YAAa,IAExBkB,EAAYrB,UAAYqB,EAAYlB,aAAiBkB,EAAYrB,SAAWqB,EAAYlB,cACxE,QAAbz0P,EAAIo6G,KACJp6G,EAAIo6G,KAAO,SAGXp6G,EAAIo6G,KAAO,MAEfp6G,EAAIizD,QAAUjzD,EAAIizD,QAAUu9L,EAAYp3S,OACxC4mD,EAAIizD,SAAW,EAAIjzD,EAAIizD,QACvBjzD,EAAI1zD,SAAWqlT,GAAkBv0T,EAAQ4iE,EAAIm6G,KAAMn6G,EAAIo6G,MAAM,EAAOo2I,GACpE6E,GAAYF,EAAMn1P,EAAKwwP,GACnBkF,GACAH,GAAQn4T,EAAQ+3T,EAAMR,EAAO30P,EAAKwwP,GAAa,GAG3D,CAOA,SAAS2D,GAAgB3nT,EAAKyjB,GAE1B,IAAIqkS,GAAU,EAAOG,GAAa,EAOlC,OANKjoT,EAAMgmT,KAAsBmB,OAC7BW,GAAU,GAEVrkS,EAAS4jS,OACTY,GAAa,GAEV,CAAEH,QAASA,EAASG,WAAYA,EAC3C,CAIA,SAAS1B,KACL,OAAOpC,GAAgBvpS,wBAAwBnhB,KACnD,CAIA,SAASutT,KACL,OAAO7C,GAAgBvpS,wBAAwBhO,MACnD,CAIA,SAASw8S,KACL,OAAOjF,GAAgBvpS,wBAAwB1a,IACnD,CAIA,SAASmpT,KACL,OAAOlF,GAAgBvpS,wBAAwB5a,GACnD,CAEA,SAASmnT,KACL,OAAIhD,GACOkF,KAEJ,CACX,CAEA,SAAS3C,KACL,OAAIvC,GACOiF,KAEJ,CACX,CAEA,SAASxC,KACL,OAAIzC,GACQ8B,KAAsBmD,KAA2B7C,KAErDN,KAAsBO,IAClC,CAEA,SAASa,KACL,OAAIlD,GACQ6B,KAAqBqD,KAA0BrC,KAEnDhB,KAAqBiB,IACjC,CAIA,SAASjB,KAGL,OAAO9B,GAAexhS,gBAAgB5H,WAAaopS,GAAe3/S,KAAKuW,SAC3E,CAIA,SAASmrS,KAGL,OAAO/B,GAAexhS,gBAAgB7H,YAAcqpS,GAAe3/S,KAAKsW,UAC5E,CAIA,SAASosS,KACL,OAAOvgT,OAAOgT,WAClB,CAIA,SAAS8sS,KACL,IAAI8C,EAAc5iT,OAAOuT,WACrBsvS,EAAgBhjT,SAASmc,gBAAgB9H,wBAE7C,OAAO0uS,GAAeA,GADHrmC,GAAkB18Q,SAASmc,iBAAoB,EAAI6mS,EAAc9vT,OAExF,CC9ZA,IAAIq0D,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAYI62T,GAA8B,SAAU3zT,GAExC,SAAS2zT,IACL,OAAkB,OAAX3zT,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAOA,OAVA49D,GAAU07P,EAAc3zT,GAIxBgwS,GAAW,CACPnB,GAAS,SACV8kB,EAAa17T,UAAW,SAAK,GAChC+3S,GAAW,CACPnB,GAAS,QACV8kB,EAAa17T,UAAW,SAAK,GACzB07T,CACX,CAZkC,CAYhC5f,IAGE6f,GACM,UADNA,GAEK,QAFLA,GAGM,eAHNA,GAIO,gBAePC,GAAuB,SAAU7zT,GAEjC,SAAS6zT,EAAMtqS,EAASnvB,GACpB,OAAO4F,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,IAClD,CAsoBA,OAzoBA49D,GAAU47P,EAAO7zT,GAYjB6zT,EAAM57T,UAAUs0S,kBAAoB,SAAUmF,EAASC,GACnD,IAAK,IAAI38O,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,QACDy1O,GAAkBpwS,KAAKkvB,QAAS,CAAE,MAAS6kQ,GAAWsjB,EAAQ9tS,SAC9D,MACJ,IAAK,SACD6mS,GAAkBpwS,KAAKkvB,QAAS,CAAE,OAAU6kQ,GAAWsjB,EAAQ36R,UAC/D,MACJ,IAAK,SACD0zR,GAAkBpwS,KAAKkvB,QAAS,CAAE,OAAUmoR,EAAQnnS,SACpD,MACJ,IAAK,YACDlQ,KAAKy5T,eACL,MACJ,IAAK,WACL,IAAK,WACDz5T,KAAK05T,kBACL,MACJ,IAAK,UAED,IAAIryT,EAAIgwS,EAAQ/gL,QAAUghL,EAAQhhL,QAClCt2H,KAAKkvB,QAAQruB,MAAMmP,MAAQxF,SAASxK,KAAKkvB,QAAQruB,MAAMmP,KAAM,IAAO3I,GAAI0D,WAAa,KACrF,MACJ,IAAK,UAED,IAAIzD,EAAI+vS,EAAQ9gL,QAAU+gL,EAAQ/gL,QAClCv2H,KAAKkvB,QAAQruB,MAAMiP,KAAOtF,SAASxK,KAAKkvB,QAAQruB,MAAMiP,IAAK,IAAOxI,GAAIyD,WAAa,KACnF,MACJ,IAAK,UACD/K,KAAK25T,aACL,MACJ,IAAK,iBAC8B,SAA3BtiB,EAAQuiB,eACR55T,KAAK65T,mBAGL75T,KAAK85T,qBAIrB,CACJ,EAOAN,EAAM57T,UAAU40S,cAAgB,WAC5B,MAAO,OACX,EAMAgnB,EAAM57T,UAAUm8T,iBAAmB,WAC/B/5T,KAAKg6T,gBACT,EAMAR,EAAM57T,UAAU6hT,eAAiB,WAC7B,OAAOz/S,KAAK+/S,aAAa,GAC7B,EAMAyZ,EAAM57T,UAAU4C,QAAU,WAClBR,KAAKkvB,QAAQlD,UAAU6oB,SAAS,iBAChC70C,KAAKwqT,eAETxqT,KAAKkvB,QAAQlD,UAAUG,OAAOotS,GAAiBA,GAAgBA,GAAiBA,IAChF5zT,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,KAClC,EAOAw5T,EAAM57T,UAAUY,OAAS,WACrBwB,KAAKkvB,QAAQlD,UAAUC,IAAIstS,IAC3B,IAAIt/O,EAAS,CAAC,EACM,MAAhBj6E,KAAKkQ,SACL+pE,EAAO/pE,OAASlQ,KAAKkQ,QAEN,SAAflQ,KAAKuJ,QACL0wE,EAAO1wE,MAAQwqR,GAAW/zR,KAAKuJ,QAEf,SAAhBvJ,KAAK0c,SACLu9D,EAAOv9D,OAASq3Q,GAAW/zR,KAAK0c,SAEpC0zR,GAAkBpwS,KAAKkvB,QAAS+qD,GAChCj6E,KAAKg1T,aAAc,EACnBh1T,KAAKy5T,eACLz5T,KAAK25T,YACT,EACAH,EAAM57T,UAAUyrT,WAAa,WACrBjd,GAAQS,UACRkB,GAAa9hR,IAAIzV,OAAQ,oBAAqBxW,KAAKi6T,oBAAqBj6T,MAEhD,SAAxBA,KAAK45T,gBACL55T,KAAK65T,kBAEb,EACAL,EAAM57T,UAAUi8T,iBAAmB,WAC/B,GAAI75T,KAAKk6T,qBACL,IAAK,IAAIv/P,EAAK,EAAGpgD,EAAKva,KAAK8hT,oBAAoB9hT,KAAKk6T,sBAAuBv/P,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC7F,IAAIw/O,EAAW5/R,EAAGogD,GAClBozO,GAAa9hR,IAAIkuR,EAAU,SAAUn6S,KAAKm6T,cAAen6T,KAC7D,CAER,EACAw5T,EAAM57T,UAAU4sT,aAAe,WACvBpe,GAAQS,UACRkB,GAAa5hR,OAAO3V,OAAQ,oBAAqBxW,KAAKi6T,qBAE9B,SAAxBj6T,KAAK45T,gBACL55T,KAAK85T,oBAEb,EACAN,EAAM57T,UAAUk8T,mBAAqB,WACjC,GAAI95T,KAAKk6T,qBACL,IAAK,IAAIv/P,EAAK,EAAGpgD,EAAKva,KAAK8hT,oBAAoB9hT,KAAKk6T,sBAAuBv/P,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC7F,IAAIy/P,EAAW7/S,EAAGogD,GAClBozO,GAAa5hR,OAAOiuS,EAAU,SAAUp6T,KAAKm6T,cACjD,CAER,EACAX,EAAM57T,UAAUs8T,mBAAqB,WACjC,IAAIG,EAAoC,KAAlBr6T,KAAKs6T,UAAmBvnC,GAAkB/yR,KAAKs6T,UACjEjkT,SAAShC,KAAOrU,KAAKs6T,SAEzB,OADAt6T,KAAKwxS,cAAc,CAAE8oB,SAAUD,IAAmB,GACf,kBAAnBr6T,KAAKs6T,SACjBjkT,SAAS0M,cAAc/iB,KAAKs6T,UAAYt6T,KAAKs6T,QACrD,EACAd,EAAM57T,UAAUu8T,cAAgB,SAAUt6T,GAWtC,GAV4B,eAAxBG,KAAK45T,eACA7mC,GAAkB/yR,KAAKkvB,UAAclvB,KAAKkvB,QAAQzX,eAAiB5X,EAAEa,QACrEV,KAAKkvB,QAAQzX,cAAsD,SAAtCzX,KAAKkvB,QAAQzX,aAAayM,SAC1B,MAA1BrkB,EAAEa,OAAOqoT,eACb/oT,KAAK05T,kBAGoB,SAAxB15T,KAAK45T,gBACV55T,KAAKm7K,OAEmB,SAAxBn7K,KAAK45T,gBACD55T,KAAKk6T,qBAAsB,CAC3B,IAAIK,EAAgBv6T,KAAKw6T,oBAAoBx6T,KAAKk6T,qBAAsBr6T,EAAEa,QACrE65T,GAAkBv6T,KAAKy6T,sBAInBF,IACLv6T,KAAKy6T,uBAAwB,IAJ7Bz6T,KAAK2sL,QAAQ,sBACb3sL,KAAKy6T,uBAAwB,EAKrC,CAER,EAWAjB,EAAM57T,UAAU48T,oBAAsB,SAAUH,EAAiBK,GAE7D,IADA,IAAIC,EAAgB36T,KAAK8hT,oBAAoBuY,GACpCO,EAAW,EAAGA,EAAWD,EAAch9T,OAAQi9T,IACpD,IAAI56T,KAAK66T,iBAAiBR,EAAiBM,EAAcC,IAIrD,OAAO,EAGf,OAAO,CACX,EACApB,EAAM57T,UAAUi9T,iBAAmB,SAAUR,EAAiBK,GAC1D,IAAIj/O,EAAOz7E,KAAK86T,2BAA2BT,GAC3C,IAAK5+O,EAAK/+D,SAAW++D,EAAKlyE,MACtB,OAAO,EAEX,GAAKwpR,GAAkB/yR,KAAK86T,2BAA2BJ,IAOlD,CACD,IAAIlvD,EAAMh1P,OACNukT,EAAa,CACbjrT,IAAK07P,EAAIwvD,QACThrT,KAAMw7P,EAAIyvD,QACVlzS,MAAOyjP,EAAIyvD,QAAUzvD,EAAIxgP,WACzBuI,OAAQi4O,EAAIwvD,QAAUxvD,EAAI3gP,aAE1BvqB,EAAM20T,GAAkBoF,GACxBprB,EAAM,CACNn/R,IAAKxP,EAAIwP,IACTE,KAAM1P,EAAI0P,KACV+X,MAAOznB,EAAI0P,KAAOyrE,EAAKlyE,MACvBgqB,OAAQjzB,EAAIwP,IAAM2rE,EAAK/+D,QAEvBw+S,EAAc,CACdprT,IAAKirT,EAAWxnS,OAAS07Q,EAAIn/R,IAC7BE,KAAM+qT,EAAWhzS,MAAQknR,EAAIj/R,KAC7BujB,OAAQ07Q,EAAI17Q,OAASwnS,EAAWjrT,IAChCiY,MAAOknR,EAAIlnR,MAAQgzS,EAAW/qT,MAElC,OAAOkrT,EAAYprT,IAAM,GAClBorT,EAAYlrT,KAAO,GACnBkrT,EAAYnzS,MAAQ,GACpBmzS,EAAY3nS,OAAS,CAChC,CA/BI,IAAI4nS,EAAWT,EAAchwS,wBAC7B,QAAS+wD,EAAKloD,OAAS4nS,EAASrrT,QACzB2rE,EAAKloD,OAAS4nS,EAAS5nS,WACnBkoD,EAAK1zD,MAAQozS,EAASpzS,UACnB0zD,EAAKzrE,KAAOmrT,EAASnrT,KA4B3C,EAOAwpT,EAAM57T,UAAUugT,UAAY,WACxB,EAEJqb,EAAM57T,UAAU67T,aAAe,WAC3Bz5T,KAAK2xG,aAEL3xG,KAAK49S,UAAY59S,KAAKkvB,QAAQlD,UAAUC,IAAIstS,IAAkBv5T,KAAKkvB,QAAQlD,UAAUG,OAAOotS,GAChG,EACAC,EAAM57T,UAAU+7T,WAAa,WACzB,IAAK5mC,GAAkB/yR,KAAK6tB,SAExB,GADA7tB,KAAKkvB,QAAQzG,UAAY,GACK,kBAAlBzoB,KAAK6tB,QACb7tB,KAAKkvB,QAAQ2O,YAAc79B,KAAK6tB,YAE/B,CACD,IAAIutS,EAAep7T,KAAKk6T,qBAEpB92T,EAAQpD,KAAK6tB,QAAQzqB,MACpBg4T,EAAapvS,UAAU6oB,SAAS,oBAAqBk+O,GAAkB3vR,IACxEpD,KAAKkvB,QAAQvG,YAAY3oB,KAAK6tB,QAEtC,CAER,EACA2rS,EAAM57T,UAAUq8T,oBAAsB,WAClC,IAAIr0T,EAAQ5F,KACZkN,YAAW,WACPtH,EAAM8zT,iBACV,GAAG,IACP,EAOAF,EAAM57T,UAAU87T,gBAAkB,SAAUh5T,EAAQ26T,GAC3CtoC,GAAkBryR,IACnBV,KAAKs7T,iBAAiB56T,GAE1BV,KAAK2xG,aACA0pN,GACDr7T,KAAKg6T,gBAEb,EACAR,EAAM57T,UAAU+zG,WAAa,WACzB,IAAIruC,EACA1zD,EACAyqT,EAAkBr6T,KAAKk6T,qBAC3B,GAA+B,kBAApBl6T,KAAK4P,SAAS4gD,GAA6C,kBAApBxwD,KAAK4P,SAASmiD,EAC5DuR,EAAM,CAAEtzD,KAAMhQ,KAAK4P,SAAS4gD,EAAG1gD,IAAK9P,KAAK4P,SAASmiD,QAEjD,GAAgC,kBAApB/xD,KAAK4P,SAAS4gD,GAA6C,kBAApBxwD,KAAK4P,SAASmiD,GACtC,kBAApB/xD,KAAK4P,SAAS4gD,GAA6C,kBAApBxwD,KAAK4P,SAASmiD,EAAiB,CAC9E,IAAIwpQ,OAAgB,EAChB7xT,EAAU1J,KAAKkvB,QAAQruB,MAAM6I,QACjC1J,KAAKkvB,QAAQruB,MAAM6I,QAAU,QACzB1J,KAAKkvB,QAAQlD,UAAU6oB,SAAS,iBAChC0mR,EAAgBv7T,KAAKkvB,QAAQ65R,cAAcloT,MAAM6I,QACjD1J,KAAKkvB,QAAQ65R,cAAcloT,MAAM6I,QAAU,SAE/CkG,EAAW5P,KAAKw7T,kBAAkBnB,EAAiBr6T,KAAKkvB,QAASlvB,KAAK4P,SAAU5P,KAAKs2H,QAASt2H,KAAKu2H,SAE/FjzD,EAD2B,kBAApBtjE,KAAK4P,SAAS4gD,EACf,CAAExgD,KAAMJ,EAASI,KAAMF,IAAK9P,KAAK4P,SAASmiD,GAG1C,CAAE/hD,KAAMhQ,KAAK4P,SAAS4gD,EAAG1gD,IAAKF,EAASE,KAEjD9P,KAAKkvB,QAAQruB,MAAM6I,QAAUA,EACzB1J,KAAKkvB,QAAQlD,UAAU6oB,SAAS,iBAChC70C,KAAKkvB,QAAQ65R,cAAcloT,MAAM6I,QAAU6xT,EAEnD,MACK,GAAIlB,EAAiB,CAClB3wT,EAAU1J,KAAKkvB,QAAQruB,MAAM6I,QACjC1J,KAAKkvB,QAAQruB,MAAM6I,QAAU,QAC7B45D,EAAMtjE,KAAKw7T,kBAAkBnB,EAAiBr6T,KAAKkvB,QAASlvB,KAAK4P,SAAU5P,KAAKs2H,QAASt2H,KAAKu2H,SAC9Fv2H,KAAKkvB,QAAQruB,MAAM6I,QAAUA,CACjC,MAEI45D,EAAM,CAAEtzD,KAAM,EAAGF,IAAK,GAErBijR,GAAkBzvN,KACnBtjE,KAAKkvB,QAAQruB,MAAMmP,KAAOszD,EAAItzD,KAAO,KACrChQ,KAAKkvB,QAAQruB,MAAMiP,IAAMwzD,EAAIxzD,IAAM,KAE3C,EACA0pT,EAAM57T,UAAUk9T,2BAA6B,SAAU7rB,GAEnD,IAEI,OADUA,EAAIvkR,uBAElB,CACA,MAAO5D,GACH,OAAO,IACX,CACJ,EACA0yS,EAAM57T,UAAU49T,kBAAoB,SAAUC,EAAWxsB,EAAKr/R,EAAU0mH,EAASC,GAC7E,IAAImlM,EAAU17T,KAAK86T,2BAA2B7rB,GAC1C0sB,EAAa37T,KAAK86T,2BAA2BW,GACjD,GAAI1oC,GAAkB2oC,IAAY3oC,GAAkB4oC,GAChD,OAAO,KAEX,IAAIr3N,EAASm3N,EACTG,EAAY,CAAE5rT,KAAM,EAAGF,IAAK,GAUhC,OATIm/R,EAAIx3R,cAA6C,SAA7Bw3R,EAAIx3R,aAAayM,SAA4C,SAAtBu3S,EAAUv3S,QACrE03S,EAAY3G,GAAkBwG,IAGzBxsB,EAAIjjR,UAAU6oB,SAAS,gBAAqC,SAAnByvD,EAAOpgF,UACjD+qR,EAAMA,EAAI8Z,eAEd6S,EFxZL,SAAwCt3N,EAAQp1E,GACnD,IAAI2sS,GAAe,EACfD,EAAY,CAAE5rT,KAAM,EAAGF,IAAK,GAC5BgsT,EAAax3N,EACjB,IAAKA,IAAWp1E,EACZ,OAAO0sS,EAKX,IAHI7oC,GAAkB7jQ,EAAQzX,eAA4C,UAA3ByX,EAAQruB,MAAM+O,WACzDisT,GAAe,IAEX3sS,EAAQzX,cAAgBokT,IAAiBv3N,GAAUp1E,EAAQzX,eAAiB6sF,GAChFs3N,EAAU5rT,MAAQs0F,EAAO59E,WACzBk1S,EAAU9rT,KAAOw0F,EAAO79E,UACxB69E,EAASA,EAAO7sF,aAGpB,IADA6sF,EAASw3N,GACD5sS,EAAQzX,cAAgBokT,IAAiBv3N,GAAUp1E,EAAQzX,eAAiB6sF,GAChFs3N,EAAU5rT,MAAQs0F,EAAO35E,WACzBixS,EAAU9rT,KAAOw0F,EAAO15E,UACxB05E,EAASA,EAAOykN,cAEpB,OAAO6S,CACX,CEkYwBG,CAA+Bz3N,EAAQ2qM,IAE/Cr/R,EAAS4gD,GACb,QACA,IAAK,OACD,MACJ,IAAK,SACIy+O,EAAIjjR,UAAU6oB,SAAS,gBAAqC,SAAnByvD,EAAOpgF,SAA0C,cAApBlkB,KAAKg8T,WAC5EJ,EAAU5rT,MAASwG,OAAOuT,WAAa,EAAI2xS,EAAQnyT,MAAQ,EAElC,cAApBvJ,KAAKg8T,WACVJ,EAAU5rT,MAAS2rT,EAAWpyT,MAAQ,EAAImyT,EAAQnyT,MAAQ,EAG1DqyT,EAAU5rT,MAAS2rT,EAAWpyT,MAAQ,EAE1C,MACJ,IAAK,QACI0lS,EAAIjjR,UAAU6oB,SAAS,gBAAqC,SAAnByvD,EAAOpgF,SAA0C,cAApBlkB,KAAKg8T,WAC5EJ,EAAU5rT,MAASwG,OAAOuT,WAAa2xS,EAAQnyT,MAEtB,cAApBvJ,KAAKg8T,WACVJ,EAAU5rT,MAAS2rT,EAAWpyT,MAAQmyT,EAAQnyT,MAG9CqyT,EAAU5rT,MAAS2rT,EAAWpyT,MAI1C,OAAQqG,EAASmiD,GACb,QACA,IAAK,MACD,MACJ,IAAK,SACIk9O,EAAIjjR,UAAU6oB,SAAS,gBAAqC,SAAnByvD,EAAOpgF,SAA0C,cAApBlkB,KAAKg8T,WAC5EJ,EAAU9rT,KAAQ0G,OAAOgT,YAAc,EAAIkyS,EAAQh/S,OAAS,EAEnC,cAApB1c,KAAKg8T,WACVJ,EAAU9rT,KAAQ6rT,EAAWj/S,OAAS,EAAIg/S,EAAQh/S,OAAS,EAG3Dk/S,EAAU9rT,KAAQ6rT,EAAWj/S,OAAS,EAE1C,MACJ,IAAK,SACIuyR,EAAIjjR,UAAU6oB,SAAS,gBAAqC,SAAnByvD,EAAOpgF,SAA0C,cAApBlkB,KAAKg8T,WAC5EJ,EAAU9rT,KAAQ0G,OAAOgT,YAAckyS,EAAQh/S,OAEtB,cAApB1c,KAAKg8T,WACVJ,EAAU9rT,KAAQ6rT,EAAWj/S,OAASg/S,EAAQh/S,OAG9Ck/S,EAAU9rT,KAAQ6rT,EAAWj/S,OAMzC,OAFAk/S,EAAU5rT,MAAQsmH,EAClBslM,EAAU9rT,KAAOymH,EACVqlM,CACX,EACApC,EAAM57T,UAAUq+T,SAAW,SAAU75R,GACjC,IAAIi4R,EAAkBr6T,KAAKk6T,qBAC3BlC,GAAKh4T,KAAKkvB,QAASmrS,EAAiBr6T,KAAKs2H,QAASt2H,KAAKu2H,QAASv2H,KAAK4P,SAAS4gD,EAAGxwD,KAAK4P,SAASmiD,EAAG/xD,KAAKk2T,gBAAiB9zR,EAAOpiC,KAAKg1T,YACxI,EACAwE,EAAM57T,UAAUs+T,QAAU,SAAU95R,GAChC,GAA6D,IAAzDk1R,GAAUt3T,KAAKkvB,QAASlvB,KAAKk2T,iBAAiBv4T,OAC9C,GAAIo1R,GAAkB/yR,KAAKk2T,iBAAkB,CACzC,IAAItnR,EAAOqnR,GAAIj2T,KAAKkvB,QAASlvB,KAAKk2T,gBAAiB9zR,GAC/CA,EAAMouB,IACNxwD,KAAKkvB,QAAQruB,MAAMmP,KAAO4+B,EAAK5+B,KAAO,MAEtCoyB,EAAM2vB,IACN/xD,KAAKkvB,QAAQruB,MAAMiP,IAAM8+B,EAAK9+B,IAAM,KAE5C,KACK,CACD,IAAIgkT,EAAc9zT,KAAK86T,2BAA2B96T,KAAKkvB,SACnDitS,EAAen8T,KAAK86T,2BAA2B96T,KAAKk2T,iBACxD,GAAInjC,GAAkB+gC,IAAgB/gC,GAAkBopC,GACpD,OAAO,KAEP/5R,IAAqB,IAAZA,EAAM2vB,IACXoqQ,EAAarsT,IAAMgkT,EAAYhkT,IAC/B9P,KAAKkvB,QAAQruB,MAAMiP,IAAM,MAEpBqsT,EAAa5oS,OAASugS,EAAYvgS,SACvCvzB,KAAKkvB,QAAQruB,MAAMiP,IAAMtF,SAASxK,KAAKkvB,QAAQruB,MAAMiP,IAAK,KAAOgkT,EAAYvgS,OAAS4oS,EAAa5oS,QAAU,OAGjH6O,IAAqB,IAAZA,EAAMouB,IACX2rQ,EAAap0S,MAAQ+rS,EAAY/rS,MACjC/nB,KAAKkvB,QAAQruB,MAAMmP,KAAOxF,SAASxK,KAAKkvB,QAAQruB,MAAMmP,KAAM,KAAO8jT,EAAY/rS,MAAQo0S,EAAap0S,OAAS,KAExGo0S,EAAansT,KAAO8jT,EAAY9jT,OACrChQ,KAAKkvB,QAAQruB,MAAMmP,KAAOxF,SAASxK,KAAKkvB,QAAQruB,MAAMmP,KAAM,KAAOmsT,EAAansT,KAAO8jT,EAAY9jT,MAAQ,MAGvH,CAER,EACAwpT,EAAM57T,UAAUo8T,eAAiB,WAC7B,IAAIoC,EAAOp8T,KAAKq7T,UAAU7qQ,EACtB6rQ,EAAOr8T,KAAKq7T,UAAUtpQ,EACb,SAATqqQ,GAA4B,SAATC,IAGV,SAATD,GAA4B,SAATC,EACnBr8T,KAAKi8T,SAAS,CAAEzrQ,GAAG,EAAMuB,GAAG,IAEd,QAATqqQ,GAA2B,QAATC,EACvBr8T,KAAKk8T,QAAQ,CAAE1rQ,GAAG,EAAMuB,GAAG,KAGd,SAATqqQ,EACAp8T,KAAKi8T,SAAS,CAAEzrQ,GAAG,EAAMuB,GAAG,IAEd,SAATsqQ,GACLr8T,KAAKi8T,SAAS,CAAElqQ,GAAG,EAAMvB,GAAG,IAEnB,QAAT4rQ,EACAp8T,KAAKk8T,QAAQ,CAAE1rQ,GAAG,EAAMuB,GAAG,IAEb,QAATsqQ,GACLr8T,KAAKk8T,QAAQ,CAAE1rQ,GAAG,EAAOuB,GAAG,KAGxC,EAQAynQ,EAAM57T,UAAU09K,KAAO,SAAUghJ,EAAkBC,GAC/C,IAAI32T,EAAQ5F,KASZ,GARsBA,KAAKk6T,qBACPluS,UAAU6oB,SAAS,mBACnC70C,KAAKw8T,kBAAoBx8T,KAAKkvB,QAAQgjF,uBAAuB,sBAAsB,IAEvFlyG,KAAKqpT,cACAt2B,GAAkB/yR,KAAKw8T,oBAAsBpwB,GAAQqwB,QACtDz8T,KAAKw8T,kBAAkB37T,MAAM6I,QAAU,SAEvB,MAAhB1J,KAAKkQ,SAAoB6iR,GAAkBwpC,GAAkB,CAC7D,IAAIG,EAAiB3pC,GAAkBwpC,GAAoBv8T,KAAKkvB,QAAUqtS,EAC1Ev8T,KAAKkQ,OAASysT,GAAiBD,GAC/BtsB,GAAkBpwS,KAAKkvB,QAAS,CAAE,OAAUlvB,KAAKkQ,QACrD,CACAosT,EAAqBvpC,GAAkBupC,IAAiD,kBAArBA,EAC5Ct8T,KAAK48T,cAAxBN,EACqB,SAArBt8T,KAAKq7T,UAAU7qQ,GAAqC,SAArBxwD,KAAKq7T,UAAUtpQ,IAC9Cq9O,GAAY,CAACpvS,KAAKkvB,SAAUqqS,IAC5BxqB,GAAS,CAAC/uS,KAAKkvB,SAAUqqS,IACzBv5T,KAAKg6T,iBACL5qB,GAAY,CAACpvS,KAAKkvB,SAAUqqS,IAC5BxqB,GAAS,CAAC/uS,KAAKkvB,SAAUqqS,KAExBxmC,GAAkBupC,IAenBltB,GAAY,CAACpvS,KAAKkvB,SAAUqqS,IAC5BxqB,GAAS,CAAC/uS,KAAKkvB,SAAUqqS,IACzBv5T,KAAK2sL,QAAQ,UAhBb2vI,EAAiBlqM,MAAQ,WAChBxsH,EAAM6rS,cACPrC,GAAY,CAACxpS,EAAMspB,SAAUqqS,IAC7BxqB,GAAS,CAACnpS,EAAMspB,SAAUqqS,IAElC,EACA+C,EAAiB9mR,IAAM,WACd5vC,EAAM6rS,aACP7rS,EAAM+mL,QAAQ,OAEtB,EACA,IAAImpH,GAAUwmB,GAAkB9lB,QAAQx2S,KAAKkvB,SAOrD,EAOAsqS,EAAM57T,UAAUu9K,KAAO,SAAUmhJ,GAC7B,IAAI12T,EAAQ5F,KACZs8T,EAAqBvpC,GAAkBupC,IAAiD,kBAArBA,EAC5Ct8T,KAAK68T,cAAxBP,EACCvpC,GAAkBupC,IAWnBltB,GAAY,CAACpvS,KAAKkvB,SAAUqqS,IAC5BxqB,GAAS,CAAC/uS,KAAKkvB,SAAUqqS,IACzBv5T,KAAK2sL,QAAQ,WAZb2vI,EAAiB9mR,IAAM,WACd5vC,EAAM6rS,cACPrC,GAAY,CAACxpS,EAAMspB,SAAUqqS,IAC7BxqB,GAAS,CAACnpS,EAAMspB,SAAUqqS,IAC1B3zT,EAAM+mL,QAAQ,SAEtB,EACA,IAAImpH,GAAUwmB,GAAkB9lB,QAAQx2S,KAAKkvB,UAOjDlvB,KAAKwqT,cACT,EAOAgP,EAAM57T,UAAUkkT,oBAAsB,SAAU5yR,GAE5C,OADAlvB,KAAKs7T,iBAAiBpsS,GACf4yR,GAAoB5yR,EAASlvB,KAAKg1T,YAC7C,EACAwE,EAAM57T,UAAU09T,iBAAmB,SAAUpsS,GAEzC,IADA,IAAIvB,EAASuB,EAAQ65R,cACdp7R,GAA6B,SAAnBA,EAAOzJ,SAAoB,CACxC,IAAI44S,EAAcnzS,iBAAiBgE,GACN,UAAzBmvS,EAAYltT,WAAyBmjR,GAAkB/yR,KAAKkvB,UAAYlvB,KAAKkvB,QAAQzX,cAC/C,SAAtCzX,KAAKkvB,QAAQzX,aAAayM,SAA+E,WAAzDyF,iBAAiB3pB,KAAKkvB,QAAQzX,cAAc0mC,WAC5Fn+C,KAAKkvB,QAAQruB,MAAMiP,IAAM0G,OAAOwkT,QAAUxwT,SAASxK,KAAKkvB,QAAQruB,MAAMiP,IAAK,IACvEikR,GAAWv9Q,OAAOwkT,QAAUxwT,SAASxK,KAAKkvB,QAAQruB,MAAMiP,IAAK,KAC3DikR,GAAWvpR,SAASxK,KAAKkvB,QAAQruB,MAAMiP,IAAK,IAAM0G,OAAOwkT,SAC/Dh7T,KAAKkvB,QAAQruB,MAAM+O,SAAW,QAC9B5P,KAAKg1T,aAAc,GAEvBrnS,EAASA,EAAOo7R,eACXh2B,GAAkB/yR,KAAKkvB,UAAY6jQ,GAAkB/yR,KAAKkvB,QAAQzX,eAA0C,UAAzBqlT,EAAYltT,UAC7D,UAAhC5P,KAAKkvB,QAAQruB,MAAM+O,WACtB5P,KAAKg1T,aAAc,EAE3B,CACJ,EACArf,GAAW,CACPnB,GAAS,SACVglB,EAAM57T,UAAW,cAAU,GAC9B+3S,GAAW,CACPnB,GAAS,SACVglB,EAAM57T,UAAW,aAAS,GAC7B+3S,GAAW,CACPnB,GAAS,OACVglB,EAAM57T,UAAW,eAAW,GAC/B+3S,GAAW,CACPnB,GAAS,cACVglB,EAAM57T,UAAW,kBAAc,GAClC+3S,GAAW,CACPnB,GAAS,OACVglB,EAAM57T,UAAW,uBAAmB,GACvC+3S,GAAW,CACPnB,GAAS,CAAEhkP,EAAG,OAAQuB,EAAG,UAC1BynQ,EAAM57T,UAAW,iBAAa,GACjC+3S,GAAW,CACPnB,GAAS,KACVglB,EAAM57T,UAAW,gBAAY,GAChC+3S,GAAW,CACPhB,GAAQ,CAAC,EAAG2kB,KACbE,EAAM57T,UAAW,gBAAY,GAChC+3S,GAAW,CACPnB,GAAS,IACVglB,EAAM57T,UAAW,eAAW,GAC/B+3S,GAAW,CACPnB,GAAS,IACVglB,EAAM57T,UAAW,eAAW,GAC/B+3S,GAAW,CACPnB,GAAS,MACVglB,EAAM57T,UAAW,cAAU,GAC9B+3S,GAAW,CACPnB,IAAS,IACVglB,EAAM57T,UAAW,iBAAa,GACjC+3S,GAAW,CACPnB,GAAS,eACVglB,EAAM57T,UAAW,sBAAkB,GACtC+3S,GAAW,CACPnB,GAAS,OACVglB,EAAM57T,UAAW,qBAAiB,GACrC+3S,GAAW,CACPnB,GAAS,OACVglB,EAAM57T,UAAW,qBAAiB,GACrC+3S,GAAW,CACPxuH,MACDqyI,EAAM57T,UAAW,YAAQ,GAC5B+3S,GAAW,CACPxuH,MACDqyI,EAAM57T,UAAW,aAAS,GAC7B+3S,GAAW,CACPxuH,MACDqyI,EAAM57T,UAAW,0BAAsB,GAC1C47T,EAAQ7jB,GAAW,CACfX,IACDwkB,EAEP,CA3oB2B,CA2oBzBtvT,IAUK,SAAS43S,GAAoB5yR,EAAS8lS,GAKzC,IAJA,IAAIzG,EAAW5kS,iBAAiBuF,GAC5ByrS,EAAgB,GAChBoC,EAAgB,gBAChBpvS,EAASuB,EAAQ65R,cACdp7R,GAA6B,SAAnBA,EAAOzJ,SAAoB,CACxC,IAAI44S,EAAcnzS,iBAAiBgE,GACP,aAAtB4gS,EAAS3+S,UAAoD,WAAzBktT,EAAYltT,WAC/CmtT,EAAcjxT,KAAKgxT,EAAY3+Q,SAAW2+Q,EAAYrzI,UAAYqzI,EAAYpzI,YACjFixI,EAAc93T,KAAK8qB,GAEvBA,EAASA,EAAOo7R,aACpB,CAIA,OAHKiM,GACD2F,EAAc93T,KAAKwT,UAEhBskT,CACX,CAQO,SAASgC,GAAiBztS,GAI7B,IAFA,IAAIvB,EAASuB,EAAQ65R,cACjBiU,EAAe,GACZrvS,GACoB,SAAnBA,EAAOzJ,SADA,CAEP,IAAI3c,EAAQ8O,SAAS7B,YAAYmV,iBAAiBgE,EAAQ,MAAMg6G,iBAAiB,WAC7E/3H,EAAWyG,SAAS7B,YAAYmV,iBAAiBgE,EAAQ,MAAMg6G,iBAAiB,YACtE,SAAVpgI,GAAiC,WAAbqI,GACpBotT,EAAan6T,KAAK0E,GAEtBomB,EAASA,EAAOo7R,aAKxB,CAEA,IADA,IAAIkU,EAAiB,GACZv9T,EAAI,EAAGA,EAAI2W,SAAShC,KAAK9L,SAAS5K,OAAQ+B,IAC/C,IAAKwvB,EAAQguS,YAAY7mT,SAAShC,KAAK9L,SAAS7I,IAAK,CAC7C6H,EAAQ8O,SAAS7B,YAAYmV,iBAAiBtT,SAAShC,KAAK9L,SAAS7I,GAAI,MAAMioI,iBAAiB,WAChG/3H,EAAWyG,SAAS7B,YAAYmV,iBAAiBtT,SAAShC,KAAK9L,SAAS7I,GAAI,MAAMioI,iBAAiB,YACzF,SAAVpgI,GAAiC,WAAbqI,GACpBqtT,EAAep6T,KAAK0E,EAE5B,CAEJ01T,EAAep6T,KAAK,OACpB,IAAIs6T,EAAiB,GACrB,IAAKpqC,GAAkB7jQ,EAAQ65R,gBAAoD,SAAlC75R,EAAQ65R,cAAc7kS,QACnE,KAAI2D,EAAa,GAAGhgB,MAAMvF,KAAK4sB,EAAQ65R,cAAcxgT,UACrD,IAAS7I,EAAI,EAAGA,EAAImoB,EAAWlqB,OAAQ+B,IACnC,IAAKwvB,EAAQguS,YAAYr1S,EAAWnoB,IAAK,CACjC6H,EAAQ8O,SAAS7B,YAAYmV,iBAAiB9B,EAAWnoB,GAAI,MAAMioI,iBAAiB,WACpF/3H,EAAWyG,SAAS7B,YAAYmV,iBAAiB9B,EAAWnoB,GAAI,MAAMioI,iBAAiB,YAC7E,SAAVpgI,GAAiC,WAAbqI,GACpButT,EAAet6T,KAAK0E,EAE5B,CAR0D,CAWlE,IAAI61T,EAAaJ,EAAaz9T,OAAO09T,EAAgBE,GAEjDE,EAAqBpyT,KAAKC,IAAI3I,MAAM0I,KAAMmyT,GAAc,EAC5D,OAAOC,EAAqB,WAAa,WAAaA,CAC1D,CCtxBA,IAOIC,GACAC,GAOAhxL,GACA8B,GACA5mI,GACAC,GACA81T,GAKAC,GAxBAC,GAAe,CAAC,aAAc,QAAS,aAAc,OAAQ,OAAQ,aAAc,QAAS,cAC5FC,GAAiB,kBACjBC,GAAkB,mBAElBC,GAAgB,CAAC,mBACjBC,GAAyB,oBACzBC,GAAqB,CAAC,QAAS,OAAQ,OAAQ,SAG/CC,GAAgB,EAChBC,GAAiB,EACjBC,GAAY,EACZC,GAAY,EACZC,GAAiB,EACjBC,GAAiB,EAMjBC,GAAc,KACdC,GAAS,KACTC,GAAY,KAGZC,IAAU,EACVC,GAAgB,EAChBC,IAAW,EAwCf,SAASC,GAAmB56S,GACxB66S,KACA,IAAIC,EAAen1T,GAAc,OAAQ,CACrC4xD,MAAO,CACH,aAAgB,KAAM,gBAAmB,WAGjDujQ,EAAanlS,aAAa,QAAS,4BAA8B3V,GAC/C,UAAdA,IACA86S,EAAaj+T,MAAM6b,OAAS,MAC5BoiT,EAAaj+T,MAAM0I,MAAQ,OAC3Bu1T,EAAaj+T,MAAM0yB,OAAS,MAC5BurS,EAAaj+T,MAAMmP,KAAO,OAEZ,UAAdgU,IACA86S,EAAaj+T,MAAM6b,OAAS,MAC5BoiT,EAAaj+T,MAAM0I,MAAQ,OAC3Bu1T,EAAaj+T,MAAMiP,IAAM,MACzBgvT,EAAaj+T,MAAMmP,KAAO,OAEZ,SAAdgU,IACA86S,EAAaj+T,MAAM6b,OAAS,OAC5BoiT,EAAaj+T,MAAM0I,MAAQ,MAC3Bu1T,EAAaj+T,MAAMknB,MAAQ,MAC3B+2S,EAAaj+T,MAAMiP,IAAM,OAEX,SAAdkU,IACA86S,EAAaj+T,MAAM6b,OAAS,OAC5BoiT,EAAaj+T,MAAM0I,MAAQ,MAC3Bu1T,EAAaj+T,MAAMmP,KAAO,MAC1B8uT,EAAaj+T,MAAMiP,IAAM,OAE7BwtT,GAAc30S,YAAYm2S,EAC9B,CAMA,SAASC,GAAc7vS,GACnB,IAAI81J,EASJ,OARKg6I,GAAM9vS,KAEH81J,EADqB,kBAAb91J,EACK7Y,SAAS0M,cAAcmM,GAGvBA,GAGd81J,CACX,CAEA,SAASqkI,GAAWz8S,GACZoyT,GAAMpyT,KACNA,EAAO5M,MAGX,IADA,IAAIi/T,EAAW3B,GAAc/2S,iBAAiB,IAAMo3S,IAC3Cj+T,EAAI,EAAGA,EAAIu/T,EAASthU,OAAQ+B,IAAK,CACtC69T,GAAkB0B,EAASv/T,GAC3BquS,GAAa9hR,IAAIsxS,GAAiB,YAAaxpT,GAAanH,GAC5D,IAAIi7K,EAAmC,SAAtBukH,GAAQ3uK,KAAK//H,KAAmB,cAAgB,aACjEqwS,GAAa9hR,IAAIsxS,GAAiB11I,EAAW/wK,GAAclK,EAC/D,CACA,IAAIsyT,EAAiB5B,GAAc/2S,iBAAiB,2BACpD,IAAKy4S,GAAME,GACP,IAASx/T,EAAI,EAAGA,EAAIw/T,EAAevhU,OAAQ+B,IAAK,CAC5C69T,GAAkB2B,EAAex/T,GACjCquS,GAAa9hR,IAAIsxS,GAAiB,YAAaxpT,GAAanH,GACxDi7K,EAAmC,SAAtBukH,GAAQ3uK,KAAK//H,KAAmB,cAAgB,aACjEqwS,GAAa9hR,IAAIsxS,GAAiB11I,EAAW/wK,GAAclK,EAC/D,CAER,CAOA,SAASuyT,GAAat/T,GAClB,OAAQA,EAAE4P,QAAQ,UAAY,EAAK,QAAU,OACjD,CAOA,SAASsE,GAAYlU,GAOjB,GANAA,EAAE+U,iBACF0oT,GAAgBz9T,EAAEa,OAAOqoT,cACzB8V,KACAT,GAAiBv+T,EAAE0kB,MACnB85S,GAAiBx+T,EAAE4kB,MACnB5kB,EAAEa,OAAOsrB,UAAUC,IAAI2xS,IAClBoB,GAAMV,MAEuB,IAA1BA,GAAYz+T,EADRG,MADZ,CAMIA,KAAKo/T,WAAa9B,IAAiBA,GAAcv6S,cAAc,sBAC/Dy6S,GAAoC,SAAjBx9T,KAAKU,OAA0D,KAAOV,KAAKo/T,UAC9F13T,GAAW1H,KAAKo/T,UAAUp1S,YAC1BqkH,GAAYruI,KAAKo/T,UAAU31S,cAE/B,IAAI/oB,EAAUs+T,GAAMxB,IAAqBnnT,SAAWmnT,GACpDzvB,GAAa9hR,IAAIvrB,EAAQ,YAAai2M,GAAa32M,MACnD+tS,GAAa9hR,IAAI5V,SAAU,UAAWgB,GAAWrX,MACjD,IAAK,IAAIN,EAAI,EAAGA,EAAIm+T,GAAclgU,OAAQ+B,IAElC++T,IADAnB,GAActxS,UAAU6oB,SAASgpR,GAAcn+T,GAVvD,CAiBJ,CAOA,SAAS2X,GAAUxX,GACf,IAAI+tS,EAAwC,SAAtBxB,GAAQ3uK,KAAK//H,KAAmB,cAAgB,YAClEmwS,EAAuC,SAAtBzB,GAAQ3uK,KAAK//H,KAAmB,YAAc,WAC/DgD,EAAUs+T,GAAMxB,IAAqBnnT,SAAWmnT,GAChD31I,EAAmC,SAAtBukH,GAAQ3uK,KAAK//H,KAAmB,cAAgB,aACjEqwS,GAAa5hR,OAAOzrB,EAAQ,YAAai2M,IACzCo3F,GAAa5hR,OAAOzrB,EAAQktS,EAAgBj3F,IAC5Co3F,GAAa5hR,OAAOzrB,EAAQmnL,EAAW8uB,IAClCqoH,GAAM3oT,SAAShC,KAAK0O,cAAc,IAAM66S,MACzCvnT,SAAShC,KAAK0O,cAAc,IAAM66S,IAAiB5xS,UAAUG,OAAOyxS,IAEnEoB,GAAMR,KAEPA,GAAU3+T,EADFG,MAGZ+tS,GAAa5hR,OAAO9V,SAAU,UAAWgB,IACzC02R,GAAa5hR,OAAO9V,SAAUw3R,EAAex2R,GACjD,CAKA,SAASwnT,KACLb,GAAgBjkP,WAAWpwD,iBAAiB2zS,GAAe,MAAM31L,iBAAiB,SAAS/7H,QAAQ,KAAM,KACzGqyT,GAAiBlkP,WAAWpwD,iBAAiB2zS,GAAe,MAAM31L,iBAAiB,UAAU/7H,QAAQ,KAAM,KAC3GsyT,GAAYZ,GAAc5yS,wBAAwB1a,KAClDmuT,GAAYb,GAAc5yS,wBAAwB5a,GACtD,CAOA,SAASgH,GAAajX,GAClBy9T,GAAgBz9T,EAAEa,OAAOqoT,cACzB8V,KACA,IAAIQ,EAAsB/B,GAActxS,UAAU6oB,SAAS,aACtDh1C,EAAEa,OAAOsrB,UAAU6oB,SAAS8oR,KAAmB99T,EAAEa,OAAOsrB,UAAU6oB,SAAS,4BAA8BwqR,GAC1Gx/T,EAAEa,OAAOsrB,UAAUC,IAAI2xS,IAE3B,IAAI0B,EAAcz/T,EAAEykB,QAAUzkB,EAAE0pB,eAAe,GAAK1pB,EAGpD,GAFAu+T,GAAiBkB,EAAY/6S,MAC7B85S,GAAiBiB,EAAY76S,MACxBu6S,GAAMV,MAEuB,IAA1BA,GAAYz+T,EADRG,MADZ,CAMA,IAAI4tS,EAAwC,SAAtBxB,GAAQ3uK,KAAK//H,KAAmB,cAAgB,YAClEmwS,EAAuC,SAAtBzB,GAAQ3uK,KAAK//H,KAAmB,YAAc,WAC/DgD,EAAUs+T,GAAMxB,IAAqBnnT,SAAWmnT,GACpDzvB,GAAa9hR,IAAIvrB,EAAQktS,EAAgBj3F,GAAa32M,MACtD+tS,GAAa9hR,IAAI5V,SAAUw3R,EAAex2R,GAAWrX,KALrD,CAMJ,CAOA,SAAS22M,GAAY92M,GAOjB,GANIA,EAAEa,OAAOsrB,UAAU6oB,SAAS8oR,KAAmB99T,EAAEa,OAAOsrB,UAAU6oB,SAAS+oR,IAC3EL,GAAkB19T,EAAEa,OAEds+T,GAAM3oT,SAAShC,KAAK0O,cAAc,IAAM66S,OAC9CL,GAAkBlnT,SAAShC,KAAK0O,cAAc,IAAM66S,MAEnDoB,GAAMzB,IAAkB,CAEzB,IADA,IAAIgC,EAAgB,GACX7/T,EAAI,EAAGA,EAAIg+T,GAAa//T,OAAQ+B,IACjC69T,GAAgBvxS,UAAU6oB,SAAS,KAAO6oR,GAAah+T,MACvD6/T,EAAgB7B,GAAah+T,IAOrC,OAJKs/T,GAAMT,KAEPA,GAAO1+T,EADCG,MAGJu/T,GACJ,IAAK,QACDC,GAAY3/T,GACZ,MACJ,IAAK,QACD4/T,GAAY5/T,GACZ,MACJ,IAAK,OACD6/T,GAAW7/T,GACX,MACJ,IAAK,OACD8/T,GAAW9/T,GACX,MACJ,IAAK,aACD2/T,GAAY3/T,GACZ8/T,GAAW9/T,GACX,MACJ,IAAK,aACD2/T,GAAY3/T,GACZ6/T,GAAW7/T,GACX,MACJ,IAAK,aACD4/T,GAAY5/T,GACZ8/T,GAAW9/T,GACX,MACJ,IAAK,aACD4/T,GAAY5/T,GACZ6/T,GAAW7/T,GAIvB,CACJ,CAOA,SAAS+/T,GAAoB1wS,GACzB,OAAOA,EAAQxE,uBACnB,CAGA,SAAS80S,GAAY3/T,GACjB,IAKIggU,EALAC,EAAiBzpT,SAASmc,gBAAgB/I,aAC1Cs2S,GAAiB,EAEjBC,GADcngU,EAAEykB,QAAUzkB,EAAE0pB,eAAe,GAAK1pB,GACrB4kB,MAC3Bw7S,EAAmBL,GAAoBtC,IAEtC0B,GAAMxB,MACPqC,EAAsBD,GAAoBpC,KAEzCwB,GAAMxB,IAGFwB,GAAMxB,MAAuBsC,EAAiBE,GAAiB,GAAMC,EAAiBnwT,IAAM,KACjGiwT,GAAiB,GAHjBA,GAAiB,EAKrB,IAAIG,EAAmBjC,IAAkB+B,EAAe3B,IACxD6B,EAAoBA,EAAmB3zL,GAAa2zL,EAAmB3zL,GACvE,IAAIyqL,EAAe,EACdgI,GAAMxB,MACPxG,EAAe6I,EAAoB/vT,KAEvC,IAAIqwT,EAAcnB,GAAMxB,IAAoB,EAAIA,GAAiBj8S,aAAei8S,GAAiB/zS,aAC7F22S,EAAoBH,EAAiBnwT,IAAMknT,EAAiBmJ,EAAc,EAE9E,GADAC,EAAoBA,EAAmB,EAAK,EAAIA,EAC5CH,EAAiBnwT,IAAM,GAAMswT,EAAmBF,EAAoB7xL,GAAxE,CAEI,GADA0xL,GAAiB,EACbzC,GAActxS,UAAU6oB,SAASipR,IACjC,OAEJR,GAAcz8T,MAAM6b,OAAU2xH,GAAY7jI,SAAS41T,EAAiBr1T,WAAY,IAAO,IAE3F,KAPA,CAQA,IAAIs1T,EAAY,EAChB,GAAIN,EAAgB,CACZE,EAAiBnwT,IAAM,GAAMgwT,GAAkBG,EAAiBvjT,OAASujT,EAAiBnwT,KAAO,GAE5FowT,GADLG,EAAYJ,EAAiBnwT,MACS,KAClCowT,EAAoBD,EAAiBvjT,QAAUujT,EAAiBvjT,OAASujT,EAAiBnwT,KAAQ,IAGpGowT,EAAmBD,EAAiBnwT,KAAQu+H,KAC9CivL,GAAcz8T,MAAM6b,OAASujT,EAAiBvjT,QACzCojT,GAAkBG,EAAiBvjT,OAASujT,EAAiBnwT,MAAQ,MAE9E,IAAIwwT,EAAiBtB,GAAMxB,IAAqB6C,EAAYD,EACxDF,GAAoB3zL,IAAe2zL,EAAmBI,GAAkBjyL,KACxEivL,GAAcz8T,MAAM6b,OAASwjT,EAAmB,KAExD,CAjBA,CAkBJ,CAGA,SAAST,GAAY5/T,GACjB,IACI0gU,EADAR,GAAiB,EAEjBt7S,EAAkC,UAAzB06S,GAAat/T,EAAErC,MAAqBqC,EAAE4kB,MAAQ5kB,EAAEykB,QAAQ,GAAGG,MACpEw7S,EAAmBL,GAAoBtC,IACtC0B,GAAMxB,MACP+C,EAAqBX,GAAoBpC,OAExCwB,GAAMxB,KAAsByC,EAAiBnwT,IAAMywT,EAAmBzwT,IAAO,GAGzEkvT,GAAMxB,KAAqB/4S,EAAQ,KAFxCs7S,GAAiB,GAKrB,IAAIS,EAAgBvC,IAAkBx5S,EAAQ45S,IAC9C,GAAI0B,GACIS,GAAiBj0L,IAAai0L,GAAiBnyL,GAAW,CAC1D,IAAI2oL,EAAe,EACdgI,GAAMxB,MACPxG,EAAeuJ,EAAmBzwT,KAEtC,IAAI2wT,EAAStC,GAAYnH,GAAiBvyS,EAAQ45S,IAClDoC,EAAQA,EAAQ,EAAIA,EAAQ,EAC5BnD,GAAcz8T,MAAM6b,OAAS8jT,EAAgB,KAC7ClD,GAAcz8T,MAAMiP,IAAM2wT,EAAQ,IACtC,CAER,CAGA,SAASf,GAAW7/T,GAChB,IAEI6gU,EAFAC,EAAgBtqT,SAASmc,gBAAgBxI,YACzC+1S,GAAiB,EAEhBf,GAAMxB,MACPkD,EAAad,GAAoBpC,KAErC,IAAIj5S,EAAkC,UAAzB46S,GAAat/T,EAAErC,MAAqBqC,EAAE0kB,MAAQ1kB,EAAEykB,QAAQ,GAAGC,MACpE07S,EAAmBL,GAAoBtC,IACvC6C,EAAcnB,GAAMxB,IAAoB,EAAIA,GAAiBl8S,YAAck8S,GAAiBxzS,YAE5Fha,EAAOgvT,GAAMxB,IAAoB,EAAIkD,EAAW1wT,KAChDomT,EAAiB4I,GAAMxB,IAAoB,EAAIkD,EAAWn3T,MAE1Dy1T,GAAMvB,MACDuB,GAAMxB,IAKPC,GAAkBkD,GAJlBlD,GAAqBwC,EAAiBjwT,KAAOA,EAAQmwT,EAAc,EAAMF,EAAiB12T,MAC1Fk0T,IAAqCrH,EAAiB+J,EAAc1C,OAMvEuB,GAAMxB,KACNvyT,KAAKoD,MAAO4xT,EAAiBjwT,KAAO0wT,EAAW1wT,KAAQiwT,EAAiB12T,OACpEm3T,EAAW34S,MAAQk4S,EAAiBl4S,QAAUo4S,GAAgBz4T,IAG9Ds3T,GAAMxB,KAAqBj5S,GAAS,KAFzCw7S,GAAiB,GAKrB,IAAIa,EAAkB5C,IAAiBz5S,EAAQ65S,IAI/C,GAHIK,KACAmC,EAAmBA,EAAkBnD,GAAmBA,GAAkBmD,GAE1Eb,GACIa,GAAmBn5T,IAAYm5T,GAAmBl5T,GAAU,CAC5D,IAAI6uT,EAAgB,EACfyI,GAAMxB,MACPjH,EAAgBmK,EAAW1wT,MAE/B,IAAI6wT,EAAU3C,GAAY3H,GAAkBhyS,EAAQ65S,IACpDyC,EAAUA,EAAS,EAAKA,EAAS,EAC7BD,IAAoBlC,IAAiBC,KACrCrB,GAAcz8T,MAAM0I,MAAQq3T,EAAkB,MAE9CnC,KACAnB,GAAcz8T,MAAMmP,KAAO6wT,EAAS,KAEhClC,GADW,IAAXkC,EAOZ,CAEJnC,GAAgBkC,CACpB,CAGA,SAASjB,GAAW9/T,GAChB,IAEIggU,EAFAc,EAAgBtqT,SAASmc,gBAAgBxI,YACzC+1S,GAAiB,EAEhBf,GAAMxB,MACPqC,EAAsBD,GAAoBpC,KAE9C,IACIj5S,GADc1kB,EAAEykB,QAAUzkB,EAAE0pB,eAAe,GAAK1pB,GAC5B0kB,MACpB07S,EAAmBL,GAAoBtC,MACtC0B,GAAMxB,MAAwByC,EAAiBjwT,KAAO6vT,EAAoB7vT,KAAQiwT,EAAiB12T,OAAU7B,IAC1Gu4T,EAAiBl4S,MAAQ83S,EAAoB7vT,MAASiwT,EAAiB12T,QAGtEy1T,GAAMxB,KAAsBmD,EAAgBp8S,EAAS,KAF1Dw7S,GAAiB,GAKrB,IAAIa,EAAkB5C,IAAiBz5S,EAAQ65S,IAC3C7H,EAAgB,EAIpB,GAHKyI,GAAMxB,MACPjH,EAAgBsJ,EAAoB7vT,MAElCiwT,EAAiBjwT,KAAOumT,EAAiBqK,EAAmBl5T,GAAU,CAExE,GADAq4T,GAAiB,EACbzC,GAActxS,UAAU6oB,SAASipR,IACjC,OAEJR,GAAcz8T,MAAM0I,MAAQ7B,IAAYu4T,EAAiBjwT,KAAOumT,GAAiB,IACrF,CACIwJ,GACIa,GAAmBn5T,IAAYm5T,GAAmBl5T,KAClD41T,GAAcz8T,MAAM0I,MAAQq3T,EAAkB,KAG1D,CA6BO,SAASE,KAEZ,IADA,IAAI9qP,EAAWsnP,GAAc/2S,iBAAiB,IAAMo3S,IAC3Cj+T,EAAI,EAAGA,EAAIs2E,EAASr4E,OAAQ+B,IACjC87K,GAAOxlG,EAASt2E,IAEpB,IAAIw/T,EAAiB5B,GAAc/2S,iBAAiB,2BACpD,IAAKy4S,GAAME,GACP,IAASx/T,EAAI,EAAGA,EAAIw/T,EAAevhU,OAAQ+B,IACvC87K,GAAO0jJ,EAAex/T,GAGlC,CC1hBA,IAuoDWqhU,GAvoDPnjQ,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EASIu+T,GAA6B,SAAUr7T,GAEvC,SAASq7T,IACL,OAAkB,OAAXr7T,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAaA,OAhBA49D,GAAUojQ,EAAar7T,GAIvBgwS,GAAW,CACPnB,IAAS,IACVwsB,EAAYpjU,UAAW,cAAU,GACpC+3S,GAAW,CACPnB,MACDwsB,EAAYpjU,UAAW,mBAAe,GACzC+3S,GAAW,CACPnB,GAAS,WACVwsB,EAAYpjU,UAAW,YAAQ,GAClC+3S,GAAW,CACPxuH,MACD65I,EAAYpjU,UAAW,aAAS,GAC5BojU,CACX,CAlBiC,CAkB/BtnB,IAKEunB,GAAmC,SAAUt7T,GAE7C,SAASs7T,IACL,OAAkB,OAAXt7T,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAUA,OAbA49D,GAAUqjQ,EAAmBt7T,GAI7BgwS,GAAW,CACPnB,GAAS,SACVysB,EAAkBrjU,UAAW,cAAU,GAC1C+3S,GAAW,CACPnB,GAAS,MACVysB,EAAkBrjU,UAAW,gBAAY,GAC5C+3S,GAAW,CACPnB,GAAS,IACVysB,EAAkBrjU,UAAW,aAAS,GAClCqjU,CACX,CAfuC,CAerCvnB,IAEEwnB,GAAO,WACPC,GAAM,QACNC,GAAqB,uBACrBC,GAAa,eACbC,GAAqB,mBACrBC,GAAY,cAEZC,GAAiB,mBAEjBC,GAAa,eAEbC,GAAkB,oBAIlBC,GAAS,WACTC,GAAa,mBACbC,GAAqB,sBAErBC,GAAW,eACXC,GAAyB,cACzBC,GAAgB,oBAChBC,GAAiB,iBACjBC,GAAmB,mBACnBC,GAAgB,kBAChBC,GAA0B,kBAC1BC,GAA2B,oBAE3BC,GAAyB,cAkBzBC,GAAwB,SAAU58T,GASlC,SAAS48T,EAAOxiU,EAASmvB,GACrB,IAAItpB,EAAQD,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,KAEnD,OADA4F,EAAM83S,SAAU,EACT93S,CACX,CAkgDA,OA9gDAg4D,GAAU2kQ,EAAQ58T,GAmBlB48T,EAAO3kU,UAAUY,OAAS,WACtBwB,KAAKunI,aACLvnI,KAAKwiU,aACLxiU,KAAKqpT,aACc,SAAfrpT,KAAKuJ,QACLvJ,KAAKkvB,QAAQruB,MAAM0I,MAAQ,IAER,KAAnBvJ,KAAKusI,YACLvsI,KAAKkvB,QAAQruB,MAAM0rI,UAAYwnJ,GAAW/zR,KAAKusI,YAE/CvsI,KAAKyiU,eACLziU,KAAK0iU,YACiC,SAAlC1iU,KAAK2iU,kBAAkBC,QACvB5iU,KAAK6iU,gBAGb7iU,KAAK++S,gBACT,EACAwjB,EAAO3kU,UAAUklU,gBAAkB,WAC/B9iU,KAAK+iU,YAAcT,EACvB,EAOAC,EAAO3kU,UAAUugT,UAAY,WACzB,IAAIv4S,EAAQ5F,KACZA,KAAK8iU,kBACL9iU,KAAKgjU,cAAgB,KACrBhjU,KAAKijU,gBAAiB,EACtBjjU,KAAKkjU,mBAAoB,EACzBljU,KAAKmjU,UAAYnjU,KAAKkvB,QAAQ+uC,WAAU,GACxCj+D,KAAKojU,2BAA6B,SAAUhtT,GACxCxQ,EAAMm9T,YAxEU,aAyEhBn9T,EAAMu1K,KAAK/kK,EACf,EACApW,KAAKqjU,4BAA8B,SAAUjtT,GACzCxQ,EAAMm9T,YA1EY,eA2ElB3sT,EAAMktT,cAAe,EACrB19T,EAAM+mL,QAAQ,eAAgBv2K,GAAO,SAAUmtT,GACtCA,EAAsBD,cACvB19T,EAAM49T,eAEV59T,EAAMm9T,YAAcT,EACxB,GACJ,EAIA,GAFAtiU,KAAKwnI,KAAO,IAAIqjL,GAAK,SADJ,CAAE76M,MAAO,SACiBhwG,KAAKqwC,QAChDrwC,KAAKyjU,oBACD1wC,GAAkB/yR,KAAKU,QAAS,CAChC,IAAIgjU,EAAe1jU,KAAK8wS,oBACxB9wS,KAAK8wS,qBAAsB,EAC3B9wS,KAAKU,OAAS2V,SAAShC,KACvBrU,KAAK8wS,oBAAsB4yB,CAC/B,CACJ,EACAnB,EAAO3kU,UAAU+lU,cAAgB,SAAUziU,GAEvC,MADe,mBAAmB4K,KAAK5K,EAE3C,EACAqhU,EAAO3kU,UAAU6lU,kBAAoB,WACjC,IAAK1wC,GAAkB/yR,KAAK4P,UAAW,CACnC,IAAKmjR,GAAkB/yR,KAAK4P,SAAS4gD,IAAoC,kBAArBxwD,KAAK4P,SAAS4gD,EAE9D,GADexwD,KAAK2jU,cAAc3jU,KAAK4P,SAAS4gD,GAClC,CACV,IAAIkzQ,EAAe1jU,KAAK8wS,oBACxB9wS,KAAK8wS,qBAAsB,EAC3B9wS,KAAK4P,SAAS4gD,EAAIupB,WAAW/5E,KAAK4P,SAAS4gD,GAC3CxwD,KAAK8wS,oBAAsB4yB,CAC/B,CAEJ,IAAK3wC,GAAkB/yR,KAAK4P,SAASmiD,IAAoC,kBAArB/xD,KAAK4P,SAASmiD,EAE9D,GADe/xD,KAAK2jU,cAAc3jU,KAAK4P,SAASmiD,GAClC,CACN2xQ,EAAe1jU,KAAK8wS,oBACxB9wS,KAAK8wS,qBAAsB,EAC3B9wS,KAAK4P,SAASmiD,EAAIgoB,WAAW/5E,KAAK4P,SAASmiD,GAC3C/xD,KAAK8wS,oBAAsB4yB,CAC/B,CAER,CACJ,EACAnB,EAAO3kU,UAAUgmU,OAAS,SAAUj+H,EAAMv7K,GAEtC,IADA,IAAI8E,OAAU7oB,EACL3G,EAAI,EAAGA,EAAIimM,EAAKhoM,OAAQ+B,IAC7B,GAAIimM,EAAKjmM,GAAGssB,UAAU6oB,SAASzqB,GAAW,CACtC8E,EAAUy2K,EAAKjmM,GACf,KACJ,CAEJ,OAAOwvB,CACX,EAEAqzS,EAAO3kU,UAAUilU,aAAe,WAC5B,IAAIgB,EAAuB,MACvBC,EAAuB,MACtB/wC,GAAkB/yR,KAAKkvB,QAAQnM,cAAc,IAAMq+S,OACpDyC,EAAuBl6S,iBAAiB3pB,KAAKgjU,eAAetmT,QAEhE,IAAIqnT,EAAY/jU,KAAK4jU,OAAO5jU,KAAKkvB,QAAQ3mB,SAAU+4T,IAC9CvuC,GAAkBgxC,KACnBD,EAAuBn6S,iBAAiBo6S,GAAWrnT,QAEvD,ID2QqBsnT,EC3QjBC,EAAez5T,SAASq5T,EAAqBh8T,MAAM,EAAGg8T,EAAqBp0T,QAAQ,MAAO,IAC1Fy0T,EAAe15T,SAASs5T,EAAqBj8T,MAAM,EAAGi8T,EAAqBr0T,QAAQ,MAAO,IAE9F,ODwQqBu0T,ECzQRC,EAAe,IAAMrsS,MAAMssS,GAAgB,EAAIA,GD0QhE33L,GAAYy3L,ECzQAC,EAAe,GAAKC,CAChC,EACA3B,EAAO3kU,UAAUumU,cAAgB,SAAUv3T,EAAMw3T,GAE7C,OADAA,EAAUz3I,QAAQ,cAAe//K,GAC1BA,EAAKW,MAChB,EACAg1T,EAAO3kU,UAAUymU,WAAa,SAAUz3T,EAAMw3T,GAC1CA,EAAUz3I,QAAQ,WAAY//K,EAClC,EACA21T,EAAO3kU,UAAU0mU,iBAAmB,SAAU13T,EAAMw3T,GAChDA,EAAUz3I,QAAQ,aAAc//K,EACpC,EACA21T,EAAO3kU,UAAU8kU,UAAY,WACzB,GAAI1iU,KAAKyiU,aAAc,CACnB,GAAIziU,KAAKukU,yBAA2BxxC,GAAkB/yR,KAAKkvB,QAAQnM,cAAc,6BAC7E,OAEJ/iB,KAAKkvB,QAAQlD,UAAUC,IAAIk2S,IAI3B,IAHA,IAAIqC,EAAiB76S,iBAAiB3pB,KAAKkvB,SAASq9G,UAChDk4L,EAAgB96S,iBAAiB3pB,KAAKkvB,SAASznB,SAC/Cuc,EAAY,GACPtkB,EAAI,EAAGA,EAAIM,KAAK0kU,cAAc/mU,OAAQ+B,IAAK,CAChD,GAA8B,QAA1BM,KAAK0kU,cAAchlU,GAAc,CACjCskB,EAAY,oEACZ,KACJ,CAEI,IAAI2gT,EAAiB,GACrB,OAAQ3kU,KAAK0kU,cAAchlU,GAAGqL,YAC1B,IAAK,YACD45T,EAAiB,aACjB,MACJ,IAAK,YACDA,EAAiB,aACjB,MACJ,IAAK,YACDA,EAAiB,aACjB,MACJ,IAAK,YACDA,EAAiB,aACjB,MACJ,QACIA,EAAiB3kU,KAAK0kU,cAAchlU,GAAGqL,WAG/CiZ,GAAa2gT,EAAe5zO,oBAAsB,GAE1D,CACI/wF,KAAK49S,WAAkC,eAArB55R,EAAUrb,OAC5Bqb,EAAY,aAEPhkB,KAAK49S,WAAkC,eAArB55R,EAAUrb,SACjCqb,EAAY,cAEZhkB,KAAK4kU,SAAW5kU,KAAK49S,UACrB59S,KAAKkvB,QAAQlD,UAAUC,IAAIm2S,IAEtBpiU,KAAK4kU,SAAW5kU,KAAKU,SAAW2V,SAAShC,MAC9CrU,KAAKkvB,QAAQlD,UAAUC,IAAIo2S,IDnQpC,SAAsBz1T,GACzB0xT,GAAc1xT,EAAKi4T,YACnBtG,GAAS3xT,EAAKk4T,SACdtG,GAAY5xT,EAAKm4T,eACjBzH,GAAgByB,GAAcnyT,EAAKsiB,SACnCsuS,GAAmBuB,GAAcnyT,EAAKo4T,UAEtC,IADA,IAAIC,EAAar4T,EAAKoX,UAAUmV,MAAM,KAC7Bz5B,EAAI,EAAGA,EAAIulU,EAAWtnU,OAAQ+B,IACnC,GAAIq+T,GAAmBtuT,QAAQw1T,EAAWvlU,KAAO,GAAKulU,EAAWvlU,GAC7Dk/T,GAAmBqG,EAAWvlU,SAE7B,GAA6B,KAAzBulU,EAAWvlU,GAAGiJ,OAAe,CAClC,IAAIu8T,EAAgBv7T,GAAc,MAAO,CAAEC,UAAW,WAAa+zT,GAAb,MAA2CsH,EAAWvlU,KAC5G49T,GAAc30S,YAAYu8S,EAC9B,CAEJ34L,GAAY3/H,EAAK2/H,UACjB9kI,GAAWmF,EAAKnF,SAChBC,GAAWkF,EAAKlF,SAChB2mI,GAAYzhI,EAAKyhI,UACbzhI,EAAK0rE,OAAS1rE,EAAK0rE,MAAMppD,SAAWtiB,EAAK0rE,MAAMppD,QAAQlD,UAAU6oB,SAAS,YAC1Ew0Q,GAAWz8S,EAAK0rE,OAGhB+wO,IAER,CC2OY8b,CAAa,CACTj2S,QAASlvB,KAAKkvB,QACdlL,UAAWA,EACXuoH,UAAW/hI,SAASg6T,EAAe38T,MAAM,EAAG48T,EAAch1T,QAAQ,MAAO,IACzE4+H,UAAWruI,KAAKo/T,UAAU31S,aAC1BhiB,SAAU+C,SAASi6T,EAAc58T,MAAM,EAAG48T,EAAch1T,QAAQ,MAAO,IACvE/H,SAAU1H,KAAKo/T,UAAUp1S,YACzBg7S,SAAUhlU,KAAKU,SAAW2V,SAAShC,KAAO,KAAOrU,KAAKo/T,UACtDyF,YAAa7kU,KAAKmkU,cAAchiU,KAAKnC,MACrC+kU,eAAgB/kU,KAAKskU,iBAAiBniU,KAAKnC,MAC3C8kU,SAAU9kU,KAAKqkU,WAAWliU,KAAKnC,MAC/Bs4E,MAAOt4E,OAEXA,KAAKolU,uBACT,MAEItE,KACA9gU,KAAKqlU,0BACDrlU,KAAK4kU,QACL5kU,KAAKkvB,QAAQlD,UAAUG,OAAOi2S,IAG9BpiU,KAAKkvB,QAAQlD,UAAUG,OAAOk2S,IAElCriU,KAAKkvB,QAAQlD,UAAUG,OAAOg2S,GAEtC,EACAI,EAAO3kU,UAAU0nU,gBAAkB,SAAU5kU,GACzC,IACIg5H,EAAQh5H,EAAO6lB,iBADP,8EAEZ,MAAO,CAAE2I,QAASwqG,EAAMA,EAAM/7H,OAAS,GAC3C,EAEA4kU,EAAO3kU,UAAUwuL,QAAU,SAAUh2K,GACjC,IAAIxQ,EAAQ5F,KACZ,GAAsB,IAAlBoW,EAAM+N,SACFnkB,KAAK4kU,QAAS,CACd,IAAIW,OAAY,EACXxyC,GAAkB/yR,KAAKwlU,UACxBD,EAAYvlU,KAAKwlU,OAAOxlU,KAAKwlU,OAAO7nU,OAAS,IAE5Co1R,GAAkB/yR,KAAKwlU,UAAczyC,GAAkB/yR,KAAKylU,sBAC7DF,EAAYvlU,KAAKslU,gBAAgBtlU,KAAKylU,qBAEtC1yC,GAAkB/yR,KAAKwlU,SAAWzyC,GAAkB/yR,KAAKylU,sBAAwB1yC,GAAkB/yR,KAAK0lU,cACxGH,EAAYvlU,KAAKslU,gBAAgBtlU,KAAK0lU,aAErC3yC,GAAkBwyC,IAAclvT,SAASkmB,gBAAkBgpS,EAAUr2S,SAAY9Y,EAAMi3B,WACxFj3B,EAAMxB,iBACN5U,KAAKygQ,kBAAkBzgQ,KAAKkvB,SAASmnB,SAErChgC,SAASkmB,gBAAkBv8B,KAAKygQ,kBAAkBzgQ,KAAKkvB,UAAY9Y,EAAMi3B,WACzEj3B,EAAMxB,iBACDm+Q,GAAkBwyC,IACnBA,EAAUr2S,QAAQmnB,QAG9B,CAEJ,IAkBQsvR,EAlBJz2S,EAAU7Y,SAASkmB,cACnBqpS,EAAa,CAAC,QAAS,YAAYn2T,QAAQyf,EAAQhL,QAAQkJ,gBAAkB,EAC7Ey4S,GAAgB,EAIpB,GAHKD,IACDC,EAAgB32S,EAAQkkS,aAAa,oBAAkE,SAA5ClkS,EAAQ6hD,aAAa,oBAE9D,KAAlB36D,EAAM+N,SAAkBnkB,KAAK8lU,cAAe,CAC5C9lU,KAAK+iU,YA9QO,SA+QZ,IAAIn8T,EAAQyP,SAAS0M,cAAc,iCAE5BgwQ,GAAkBnsR,IAAWA,EAAMolB,UAAU6oB,SAAS,mBACzD70C,KAAKm7K,KAAK/kK,EAElB,EACuB,KAAlBA,EAAM+N,UAAmB/N,EAAMg3B,SAA6C,aAAlCle,EAAQhL,QAAQkJ,eAC3Dw4S,IAAc7yC,GAAkB/yR,KAAK+lU,mBAClB,KAAlB3vT,EAAM+N,SAAkB/N,EAAMg3B,UAA8C,aAAlCle,EAAQhL,QAAQkJ,eACvDy4S,KAAoB9yC,GAAkB/yR,KAAK+lU,qBAE5B/lU,KAAK0tC,QAAQopC,MAAK,SAAUloC,EAAMrnC,GACjDo+T,EAAgBp+T,EAEhB,IAAIy+T,EAAcp3R,EAAKo3R,YACvB,OAAQjzC,GAAkBizC,KAA0C,IAA1BA,EAAYj1R,SAC1D,KACmE,oBAAvC/wC,KAAK0tC,QAAQi4R,GAAe3tI,OACpD9qL,YAAW,WACPtH,EAAM8nC,QAAQi4R,GAAe3tI,MAAM11L,KAAKsD,EAAOwQ,EACnD,IAGZ,EAOAmsT,EAAO3kU,UAAU2pI,WAAa,WACrBwrJ,GAAkB/yR,KAAKU,UACxBV,KAAKo/T,UAAsC,kBAAjBp/T,KAAKU,OAC3B2V,SAAS0M,cAAc/iB,KAAKU,QAAUV,KAAKU,QAE9CV,KAAKukU,wBACNx1B,GAAS,CAAC/uS,KAAKkvB,SAAUgyS,IAEzB90B,GAAQS,UACRkC,GAAS,CAAC/uS,KAAKkvB,SAAUyyS,IAExB3hU,KAAKukU,wBACNvkU,KAAKimU,cAETjmU,KAAKkmU,cACT,EAOA3D,EAAO3kU,UAAU4kU,WAAa,WAC1B,IAAI58T,EAAQ5F,KA8CZ,GA7CAA,KAAKmmU,eAAgB,EAChBnmU,KAAKukU,wBACN1nT,GAAW7c,KAAKkvB,QAAS,CAAE43K,KAAM,WAEjB,MAAhB9mM,KAAKkQ,QACLlQ,KAAKomU,UAAUpmU,KAAKkvB,SAAS,GAC7BlvB,KAAKqmU,iBAAkB,GAGvBrmU,KAAKqmU,iBAAkB,EAEvBrmU,KAAKukU,wBAA0BxxC,GAAkB/yR,KAAKgjU,iBACtDhjU,KAAKgjU,cAAgBhjU,KAAKkvB,QAAQgjF,uBAAuB,wBAAwB,IAEjFlyG,KAAKukU,wBAA0BxxC,GAAkB/yR,KAAK0lU,cACtD1lU,KAAK0lU,WAAa1lU,KAAKkvB,QAAQnM,cAAc,IAAM/iB,KAAKkvB,QAAQ1G,GAAK,oBAEpExoB,KAAKukU,yBACNvkU,KAAKsmU,mBACe,KAAhBtmU,KAAKgtL,QAAkB+lG,GAAkB/yR,KAAKgtL,SAC9ChtL,KAAK8nO,YAET9nO,KAAKumU,kBACLvmU,KAAK25T,aACuB,KAAxB35T,KAAKwmU,gBAA0BzzC,GAAkB/yR,KAAKwmU,gBAGhDzzC,GAAkB/yR,KAAK0tC,QAAQ,GAAGs4R,cACxChmU,KAAKymU,YAHLzmU,KAAK0mU,qBAMT1mU,KAAKukU,yBACAxxC,GAAkB/yR,KAAK0tC,QAAQ,GAAGs4R,cAAwC,KAAxBhmU,KAAKwmU,gBACxDxmU,KAAKymU,aAGTzmU,KAAK2mU,gBAAmB5zC,GAAkB/yR,KAAKgjU,gBAC/ChjU,KAAK4mU,mBAEJ5mU,KAAKukU,yBACN1nT,GAAW7c,KAAKkvB,QAAS,CAAE,aAAelvB,KAAK4kU,QAAU,OAAS,UAC9D5kU,KAAK4kU,SACL5kU,KAAK6mU,cAGT7mU,KAAKukU,wBAA0BxxC,GAAkB/yR,KAAK8mU,cAAe,CACrE9mU,KAAK8mU,aAAe9mU,KAAKkvB,QAAQ65R,cACjC,IAAK,IAAIrpT,EAAI,EAAGmoB,EAAa7nB,KAAK8mU,aAAav+T,SAAU7I,EAAImoB,EAAWlqB,OAAQ+B,IACxEmoB,EAAWnoB,GAAGssB,UAAU6oB,SAAS,mBACjC70C,KAAK+mU,WAAal/S,EAAWnoB,GAGzC,CACA,IAAwD,IAApDM,KAAKkvB,QAAQlD,UAAU6oB,SAASotR,MAAkF,IAAtDjiU,KAAKkvB,QAAQlD,UAAU6oB,SAASqtR,MACxFnvC,GAAkB/yR,KAAKkvB,QAAQ65R,eAAgB,CACnD,IAAIie,EAAYhnU,KAAK4kU,QAAU5kU,KAAK8mU,aAAa/d,cAAgB/oT,KAAKkvB,QAAQ65R,cAC9E/oT,KAAKinU,WAAajnU,KAAK2J,cAAc,MAAO,CAAEC,UAhYpC,sBAiYVo9T,EAAU32Q,aAAarwD,KAAKinU,WAAajnU,KAAK4kU,QAAU5kU,KAAK8mU,aAAe9mU,KAAKkvB,QACrF,CACK6jQ,GAAkB/yR,KAAKo/T,aAExBp/T,KAAK4kU,QAAU5kU,KAAKo/T,UAAUz2S,YAAY3oB,KAAK8mU,cAAgB9mU,KAAKo/T,UAAUz2S,YAAY3oB,KAAKkvB,UAEnGlvB,KAAKknU,SAAW,IAAI1N,GAAMx5T,KAAKkvB,QAAS,CACpCxS,OAAQ1c,KAAK0c,OACbnT,MAAOvJ,KAAKuJ,MACZ2G,OAAQlQ,KAAKkQ,OACboqT,SAAUt6T,KAAKU,OACfk5T,eAAgB,OAChBhc,UAAW59S,KAAK49S,UAEhB3sO,KAAM,SAAU76D,GACZ,IAAIs0R,EAAY,CACZ70N,UAAWjwE,EAAMg/T,QAAUh/T,EAAMkhU,aAAelhU,EAAMspB,QACtDA,QAAStpB,EAAMspB,QACfxuB,OAAQkF,EAAMlF,OACd4iU,cAAc,GAEd19T,EAAM68T,cACN78T,EAAMuhU,kBAEVvhU,EAAM+mL,QAAQ,OAAQ+9G,GAAW,SAAU08B,GAClCA,EAAc9D,cACf19T,EAAM49T,cAEd,GACJ,EAEAxzN,MAAO,SAAU55F,GACTxQ,EAAMg/T,SACN71B,GAAS,CAACnpS,EAAMmhU,YAAa,UAEjCnhU,EAAMyhU,YAAYzhU,EAAMspB,SACpBtpB,EAAMg/T,UACNh/T,EAAMkhU,aAAajmU,MAAM6I,QAAU,QAEvC9D,EAAM+mL,QAAQ,QAAS/mL,EAAM0hU,WAC7B,IAAIC,EAAYlxT,SAASkmB,cACpBw2P,GAAkBw0C,IAAex0C,GAAmBw0C,EAAWtzL,OAChEszL,EAAUtzL,OAET8+I,GAAkBntR,EAAM4hU,qBAAwBz0C,GAAkBntR,EAAM4hU,mBAAmBnxR,QAC5FzwC,EAAM4hU,mBAAmBnxR,OAEjC,IAEJr2C,KAAKynU,iBACLznU,KAAK0nU,eACA1nU,KAAKukU,yBACNx1B,GAAS,CAAC/uS,KAAKkvB,SA9bZ,iBA+bClvB,KAAK4kU,SACL5kU,KAAK2nU,oBAGT3nU,KAAKw7J,QACLx7J,KAAKs7K,OAGDt7K,KAAK4kU,UACL5kU,KAAK+mU,WAAWlmU,MAAM6I,QAAU,QAGxC1J,KAAKmmU,eAAgB,CACzB,EACA5D,EAAO3kU,UAAUupU,gBAAkB,WAC/B,IAAIS,EAAkB5nU,KAAK6iU,eAC3B,GAAI7iU,KAAKo/T,UAAU79S,aAAeqmT,EAAiB,CAC/C,IAAIh+T,EAAY5J,KAAK49S,UAAY,eAAiB,eAC9CiqB,EAAa7nU,KAAKkvB,QAAQnM,cAAc,IAAMnZ,GAC7CmpR,GAAkB80C,KACnBA,EAAWhnU,MAAM0yB,OAAS,IAAMq0S,EAAgB78T,WAAa,KAErE,CACJ,EACAw3T,EAAO3kU,UAAU+pU,iBAAmB,SAAUG,GAC1C,IAAI53T,EAEAA,EADA6iR,GAAkB+0C,GACTt9T,SAASxK,KAAKkvB,QAAQruB,MAAMqP,OAAQ,IAAM1F,SAASxK,KAAKkvB,QAAQruB,MAAMqP,OAAQ,IAAMlQ,KAAKkQ,OAGzF43T,EAEb9nU,KAAK+mU,WAAWlmU,MAAMqP,QAAUA,EAAS,GAAGnF,WAC5C/K,KAAK8mU,aAAajmU,MAAMqP,OAASA,EAAOnF,UAC5C,EACAw3T,EAAO3kU,UAAU6pU,eAAiB,WAC1BznU,KAAK4kU,UACAhtS,MAAMmiD,WAAW/5E,KAAK4P,SAAS4gD,KAAQ54B,MAAMmiD,WAAW/5E,KAAK4P,SAASmiD,MAGhEn6B,MAAMmiD,WAAW/5E,KAAK4P,SAAS4gD,KAAO54B,MAAMmiD,WAAW/5E,KAAK4P,SAASmiD,KACxEn6B,MAAMmiD,WAAW/5E,KAAK4P,SAAS4gD,MAAQ54B,MAAMmiD,WAAW/5E,KAAK4P,SAASmiD,IAC1E/xD,KAAK+nU,oBAGL/nU,KAAKkvB,QAAQruB,MAAMiP,IAAM,MACzB9P,KAAKkvB,QAAQruB,MAAMmP,KAAO,MAC1BhQ,KAAK8mU,aAAa96S,UAAUC,IAAI,SAAWjsB,KAAK4P,SAAS4gD,EAAI,IAAMxwD,KAAK4P,SAASmiD,IAIrF/xD,KAAK+nU,kBAEb,EACAxF,EAAO3kU,UAAUmqU,iBAAmB,WAChC/nU,KAAKknU,SAAS11B,cAAc,CACxB5hS,SAAU,CACN4gD,EAAGxwD,KAAK4P,SAAS4gD,EAAGuB,EAAG/xD,KAAK4P,SAASmiD,IAGjD,EACAwwQ,EAAO3kU,UAAUgpU,iBAAmB,WAChC,IAAIhhU,EAAQ5F,KACRgoU,EAAgB,IAAM5G,GACrBphU,KAAKkvB,QAAQlD,UAAU6oB,SAjfrB,iBAkfH70C,KAAKioU,QAAU,IAAI5zS,GAAUr0B,KAAKkvB,QAAS,CACvC09C,OAAO,EACP62O,cAAc,EACd/wL,MAAO,uBACPh+G,OAAQszT,EACRjkB,UAAW,SAAU3tS,GACjBxQ,EAAM+mL,QAAQ,YAAav2K,GAAO,SAAU8xT,GACpCv0C,MACAu0C,EAAc55L,WAAWl4H,EAAM8tS,YAEvC,GACJ,EACAwD,SAAU,SAAUtxS,GACZxQ,EAAMg/T,UACD7xC,GAAkBntR,EAAMgK,WACzBhK,EAAMkhU,aAAa96S,UAAUG,OAAO,SAAWvmB,EAAMgK,SAAS4gD,EAAI,IAAM5qD,EAAMgK,SAASmiD,GAG3FnsD,EAAMspB,QAAQruB,MAAM+O,SAAW,YAEnChK,EAAM+mL,QAAQ,WAAYv2K,GAC1BxQ,EAAMspB,QAAQlD,UAAUG,OAAOi2S,GACnC,EACAx4L,KAAM,SAAUxzH,GACZxQ,EAAM+mL,QAAQ,OAAQv2K,EAC1B,IAEC28Q,GAAkB/yR,KAAKo/T,aACxBp/T,KAAKioU,QAAQ9jB,SAAWnkT,KAAKo/T,WAGzC,EACAmD,EAAO3kU,UAAU6oU,UAAY,WACzB,IAAKzmU,KAAKukU,uBAAwB,CAC9BvkU,KAAKmoU,cAAgB,GACrBnoU,KAAKwlU,OAAS,GAGd,IADA,IACS9lU,EAAI,EAAGA,EAAIM,KAAK0tC,QAAQ/vC,OAAQ+B,IAAK,CAC1C,IAAI0oU,EAAcr1C,GAAkB/yR,KAAK0tC,QAAQhuC,GAAGlC,MAA6C,SAArCwC,KAAK0tC,QAAQhuC,GAAGlC,KAAK4vB,cAC7Ei7S,EAAMroU,KAAK2J,cAAc,SAAU,CAAEC,UAAW5J,KAAKq0T,SAAU94P,MAAO,CAAE/9D,KAAM4qU,KAClFpoU,KAAKmoU,cAActlU,KAAKwlU,EAAIC,UAChC,CACAtoU,KAAK0mU,mBACT,CAEShnU,EAAI,EAAb,IADA,IAAI6oU,EACY1gT,EAAa7nB,KAAKkvB,QAAQ3mB,SAAU7I,EAAImoB,EAAWlqB,OAAQ+B,IACnEmoB,EAAWnoB,GAAGssB,UAAU6oB,SAASysR,MACjCiH,EAAY1gT,EAAWnoB,GAAG6mB,iBAAiB,WAGnD,IAAS7mB,EAAI,EAAGA,EAAIM,KAAK0tC,QAAQ/vC,OAAQ+B,IAChCM,KAAKukU,yBACNvkU,KAAKwlU,OAAO9lU,GAAK,IAAIy0T,GAAOn0T,KAAK0tC,QAAQhuC,GAAGsmU,cAE5ChmU,KAAKukU,yBACLvkU,KAAKylU,mBAAqBzlU,KAAKkvB,QAAQnM,cAAc,IAAMu+S,MAE1DvuC,GAAkB/yR,KAAKylU,qBAAuB8C,EAAU5qU,OAAS,IAC3B,oBAA3BqC,KAAK0tC,QAAQhuC,GAAGs4L,OACxB+1G,GAAa9hR,IAAIs8S,EAAU7oU,GAAI,QAASM,KAAK0tC,QAAQhuC,GAAGs4L,MAAOh4L,MAE5B,kBAA3BA,KAAK0tC,QAAQhuC,GAAGs4L,OACxB+1G,GAAa9hR,IAAIs8S,EAAU7oU,GAAI,QAASM,KAAKwoU,mBAAmBrmU,KAAKnC,KAAMN,GAAIM,OAGlFA,KAAKukU,wBAA2BxxC,GAAkB/yR,KAAKylU,sBACxDzlU,KAAKwlU,OAAO9lU,GAAGs+S,SAASh+S,KAAKylU,mBAAmBl9T,SAAS7I,IACrDM,KAAK0tC,QAAQhuC,GAAG+oU,QAChBzoU,KAAKwlU,OAAO9lU,GAAGwvB,QAAQlD,UAAUC,IAAI,UAEzCjsB,KAAK+lU,iBAAmB/lU,KAAKkvB,QAAQgjF,uBAAuB,aAAa,GAGrF,EACAqwN,EAAO3kU,UAAU4qU,mBAAqB,SAAUjhU,GAC5CvH,KAAK2sL,QAAQ,WAAaplL,EAAQ,UAAW,CAAC,EAClD,EACAg7T,EAAO3kU,UAAU+7T,WAAa,WAE1B,GADA35T,KAAK0lU,WAAa1lU,KAAK2J,cAAc,MAAO,CAAEC,UA3lBpC,gBA2lB4D4e,GAAIxoB,KAAKkvB,QAAQ1G,GAAK,oBACxFxoB,KAAK0oU,oBACL1oU,KAAK0lU,WAAW/8S,YAAY3oB,KAAK0oU,0BAEhC,IAAK31C,GAAkB/yR,KAAK6tB,UAA6B,KAAjB7tB,KAAK6tB,UAAmB7tB,KAAKmmU,cAAe,CAEjExnU,OAAOW,KAAKkX,SACF,kBAAlBxW,KAAK6tB,SAA0B8lQ,OAGlC3zR,KAAK6tB,mBAAmB8F,YAC7B3zB,KAAK0lU,WAAW/8S,YAAY3oB,KAAK6tB,SAHjC7tB,KAAK2oU,YAAY3oU,KAAK6tB,QAAS7tB,KAAK0lU,WAAY,UAQxD,CACK3yC,GAAkB/yR,KAAKgjU,eAIxBhjU,KAAKkvB,QAAQmhC,aAAarwD,KAAK0lU,WAAY1lU,KAAKkvB,QAAQ3mB,SAAS,IAHjEvI,KAAKkvB,QAAQmhC,aAAarwD,KAAK0lU,WAAY1lU,KAAKkvB,QAAQ3mB,SAAS,IAKjD,SAAhBvI,KAAK0c,SACA1c,KAAKukU,yBAA0Bn4B,GAAQoC,MAAqC,KAA7BxuS,KAAKkvB,QAAQruB,MAAM0I,OAAiBwpR,GAAkB/yR,KAAKuJ,SAC3GvJ,KAAKkvB,QAAQruB,MAAM0I,MAAQwqR,GAAW/zR,KAAKuJ,QAE/CvJ,KAAKkmU,eAEb,EACA3D,EAAO3kU,UAAU+qU,YAAc,SAAUjnQ,EAAU7zB,EAAW1b,GAC1D,IAAIy2S,EACAC,EAYAC,EAVgBnqU,OAAOW,KAAKkX,QAE5BqyT,EADAh7R,EAAU7hB,UAAU6oB,SAASwsR,IACbrhU,KAAKkvB,QAAQ1G,GAAK,SAE7BqlB,EAAU7hB,UAAU6oB,SAASysR,IAClBthU,KAAKkvB,QAAQ1G,GAAK,iBAGlBxoB,KAAKkvB,QAAQ1G,GAAK,UAGjCuqQ,GAAkBrxN,EAAS4mQ,YAGF,kBAAb5mQ,GAA+C,kBAAbA,GAA2BiyN,OAAe3zR,KAAKy9S,oBACrE,kBAAb/7O,IACRA,EAAW1hE,KAAK+oU,eAAernQ,IAE/B1hE,KAAKgpU,OAA6B,kBAAbtnQ,GACrBknQ,EAAa7jE,GAAQrjM,GACrBonQ,EAAgBpnQ,GAGhB7zB,EAAUplB,UAAYi5C,GAX1B7zB,EAAUllB,YAAY+4C,GAc1B,IAAI6tO,EAAe,GACnB,IAAKxc,GAAkB61C,GAAa,CAIhC,IAHA,IAGSjuQ,EAAK,EAAGpgD,EAAKquT,EAAW,CAAC,EAAG5oU,KAAMmyB,EAAM02S,IAHjCl1C,OACX3zR,KAAKy9S,kBAA+D,IAA1CqrB,EAAer5T,QAAQ,iBAClDzP,KAAKy9S,kBACkE9iP,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC7F,IAAI1pC,EAAO1W,EAAGogD,GACd40O,EAAa1sS,KAAKouB,EACtB,CACAg6G,GAAO,GAAGpjI,MAAMvF,KAAKitS,GAAe1hQ,EACxC,CACJ,EAMA00R,EAAO3kU,UAAUmrU,eAAiB,SAAU7nU,GACxC,GAAIlB,KAAKu0T,oBAAqB,CAC1B,IAAI0U,EAAaxW,GAAmBC,iBAKpC/8Q,GAAOszR,EAAYA,EAJD,CACd17T,QAAQ,EACRo4S,OAAQ,OAGZ3lT,KAAK2sL,QAAQ,qBAAsBs8I,GAC/BA,EAAW17T,SAAWwlR,GAAkBk2C,EAAWtjB,QACnDzkT,EAAQ+nU,EAAWtjB,OAAOzkT,GAEpB+nU,EAAW17T,SACjBrM,EAAQuxT,GAAmBI,eAAeoW,EAAY/nU,GAE9D,CACA,OAAOA,CACX,EACAqhU,EAAO3kU,UAAUsoU,aAAe,WAC5B,GAAKlmU,KAAKijU,eAAV,CAGA,IAAIv5T,EAAU1J,KAAKkvB,QAAQruB,MAAM6I,QACjC1J,KAAKkvB,QAAQruB,MAAM6I,QAAU,OAC7B1J,KAAKkvB,QAAQruB,MAAMwtI,WAAc0kJ,GAAkB/yR,KAAKU,SAAaV,KAAKo/T,UAAU79S,aAAe/K,OAAOgT,YACrGxpB,KAAKo/T,UAAU79S,aAAe,GAAM,KAAQ/K,OAAOgT,YAAc,GAAM,KAC5ExpB,KAAKkvB,QAAQruB,MAAM6I,QAAUA,EACzB0iS,GAAQoC,MAAwB,SAAhBxuS,KAAK0c,SAAsBq2Q,GAAkB/yR,KAAK0lU,aAC/D1lU,KAAKkvB,QAAQ3N,aAAevhB,KAAK0lU,WAAWnkT,eAC/CvhB,KAAKkvB,QAAQruB,MAAM6b,OAAS,UARhC,CAUJ,EACA6lT,EAAO3kU,UAAU8pU,aAAe,WACvB1nU,KAAKukU,yBAENvkU,KAAK49S,UAAY7O,GAAS,CAAC/uS,KAAKkvB,SAAUiyS,IAAO/xB,GAAY,CAACpvS,KAAKkvB,SAAUiyS,KAE5EpuC,GAAkB/yR,KAAKkvB,QAAQnM,cAAc,uBAC9C+9S,KACA9gU,KAAK0iU,YAEb,EACAH,EAAO3kU,UAAU0oU,iBAAmB,WAChC,IAAI1gU,EAAQ5F,KACZ,GAAI+yR,GAAkB/yR,KAAK6tB,UAA6B,KAAjB7tB,KAAK6tB,QAAgB,CACxD,IAAIq7S,EAA8E,KAAlElpU,KAAKkvB,QAAQzG,UAAU7c,QAAQ,0BAA2B,KACtE5L,KAAKkvB,QAAQ3mB,SAAS5K,OAAS,GAAKurU,KACpClpU,KAAK0oU,oBAAsBryT,SAASq5R,yBACpC,GAAG7nS,MAAMvF,KAAKtC,KAAKkvB,QAAQrH,YAAY9kB,SAAQ,SAAUmlB,GACjC,IAAhBA,EAAGvQ,UACH/R,EAAM8iU,oBAAoB//S,YAAYT,EAE9C,IAER,CACJ,EACAq6S,EAAO3kU,UAAUkqO,UAAY,WACrB9nO,KAAKmpU,UACLnpU,KAAKmpU,UAAU1gT,UAAY,GAG3BzoB,KAAKmpU,UAAYnpU,KAAK2J,cAAc,MAAO,CAAE6e,GAAIxoB,KAAKkvB,QAAQ1G,GAAK,SAAU5e,UAAWy3T,KAE5FrhU,KAAKopU,sBACLppU,KAAKgjU,cAAcr6S,YAAY3oB,KAAKmpU,WACpCnpU,KAAK2oU,YAAY3oU,KAAKgtL,OAAQhtL,KAAKmpU,UAAW,UAC9CtsT,GAAW7c,KAAKkvB,QAAS,CAAE,kBAAmBlvB,KAAKkvB,QAAQ1G,KAC3DxoB,KAAKkvB,QAAQmhC,aAAarwD,KAAKgjU,cAAehjU,KAAKkvB,QAAQ3mB,SAAS,IAChEvI,KAAK2mU,gBAAmB5zC,GAAkB/yR,KAAKgjU,gBAC/ChjU,KAAK4mU,kBAEb,EACArE,EAAO3kU,UAAU8oU,kBAAoB,WAC7B1mU,KAAKylU,mBACLzlU,KAAKylU,mBAAmBh9S,UAAY,GAGpCzoB,KAAKylU,mBAAqBzlU,KAAK2J,cAAc,MAAO,CAChDC,UAAW03T,KAGS,KAAxBthU,KAAKwmU,gBAA0BzzC,GAAkB/yR,KAAKwmU,gBAItDxmU,KAAKylU,mBAAmBh9S,UAAYzoB,KAAKmoU,cAAcryS,KAAK,IAH5D91B,KAAK2oU,YAAY3oU,KAAKwmU,eAAgBxmU,KAAKylU,mBAAoB,kBAKnEzlU,KAAKkvB,QAAQvG,YAAY3oB,KAAKylU,mBAClC,EACAlD,EAAO3kU,UAAUwrU,oBAAsB,WAC/Br2C,GAAkB/yR,KAAKgjU,iBACvBhjU,KAAKgjU,cAAgBhjU,KAAK2J,cAAc,MAAO,CAAE6e,GAAIxoB,KAAKkvB,QAAQ1G,GAAK,iBAAkB5e,UAAWw3T,KAE5G,EACAmB,EAAO3kU,UAAU2oU,gBAAkB,WAC3BvmU,KAAKqpU,gBACLrpU,KAAKmmR,UAAYnmR,KAAK2J,cAAc,SAAU,CAAEC,UAAWi4T,GAAoBtmQ,MAAO,CAAE/9D,KAAM,YAC9FwC,KAAKspU,gBAAkB,IAAInV,GAAO,CAAEE,SAAU,SAAUK,QAAS8M,gBACjExhU,KAAKupU,iBACAx2C,GAAkB/yR,KAAKgjU,gBAIxBhjU,KAAKopU,sBACLj+L,GAAQ,CAACnrI,KAAKmmR,WAAYnmR,KAAKgjU,eAC/BhjU,KAAKkvB,QAAQmhC,aAAarwD,KAAKgjU,cAAehjU,KAAKkvB,QAAQ3mB,SAAS,KALpE4iI,GAAQ,CAACnrI,KAAKmmR,WAAYnmR,KAAKgjU,eAOnChjU,KAAKspU,gBAAgBtrB,SAASh+S,KAAKmmR,WAE3C,EACAo8C,EAAO3kU,UAAU2rU,eAAiB,WAC9BvpU,KAAKwnI,KAAKwjL,UAAUhrT,KAAKqwC,QACzB,IAAIk5R,EAAiBvpU,KAAKwnI,KAAK6jL,YAAY,SAC3CrrT,KAAKmmR,UAAUxsP,aAAa,QAAS4vS,GACrCvpU,KAAKmmR,UAAUxsP,aAAa,aAAc4vS,EAC9C,EACAhH,EAAO3kU,UAAUqoU,YAAc,SAAUuD,GACjCA,IACAp6B,GAAY,CAACpvS,KAAKkvB,SAAUs6S,EAAYrwS,MAAM,MAC1Cn5B,KAAK4kU,UAAY7xC,GAAkB/yR,KAAK8mU,eACxC13B,GAAY,CAACpvS,KAAK8mU,cAAe0C,EAAYrwS,MAAM,OAGvDn5B,KAAKq0T,WACLtlB,GAAS,CAAC/uS,KAAKkvB,SAAUlvB,KAAKq0T,SAASl7R,MAAM,MACzCn5B,KAAK4kU,UAAY7xC,GAAkB/yR,KAAK8mU,eACxC/3B,GAAS,CAAC/uS,KAAK8mU,cAAe9mU,KAAKq0T,SAASl7R,MAAM,MAG9D,EACAopS,EAAO3kU,UAAUipU,WAAa,WAC1B7mU,KAAK8mU,aAAe9mU,KAAK2J,cAAc,MAAO,CAAEC,UAvyBpC,oBAwyBZ5J,KAAKimU,cACLjmU,KAAKkvB,QAAQlD,UAAUG,OAAO21S,IAC9B9hU,KAAKkvB,QAAQ5E,WAAW+lC,aAAarwD,KAAK8mU,aAAc9mU,KAAKkvB,SAC7DlvB,KAAK8mU,aAAan+S,YAAY3oB,KAAKkvB,SACnC6/Q,GAAS,CAAC/uS,KAAKkvB,SAAUqyS,IACzBvhU,KAAK+mU,WAAa/mU,KAAK2J,cAAc,MAAO,CAAEC,UA/yBpC,kBAgzBV5J,KAAK+mU,WAAWlmU,MAAMqP,QAAUlQ,KAAKkQ,OAAS,GAAGnF,WACjD/K,KAAK8mU,aAAan+S,YAAY3oB,KAAK+mU,WACvC,EACAxE,EAAO3kU,UAAU6rU,kBAAoB,SAAU/vM,GAE3C,IADA,IAAItoH,EACKunC,EAAI,EAAGA,EAAI+gF,EAAM/7H,OAAQg7C,IAAK,CAEnC,KADAvnC,EAAOsoH,EAAM/gF,IACHlvB,aAAe,GAAqC,MAA/BrY,EAAK8S,QAAQkJ,eAAyBhc,EAAKgiT,aAAa,UAAahiT,EAAK3H,UAAY,IAChH2H,EAAKmD,WAAavU,KAAK0pU,eAAet4T,EAAM,qDAC7C,OAAOA,EAGPA,EAAO,IAEf,CACA,OAAOA,CACX,EACAmxT,EAAO3kU,UAAU6iQ,kBAAoB,SAAU5yO,GAC3C,IAAKklQ,GAAkBllQ,GAAU,CAC7B,IACI6rG,EAAQ7rG,EAAQtH,iBADR,sEAEZ,OAAOvmB,KAAKypU,kBAAkB/vM,EAClC,CACA,OAAO,IACX,EACA6oM,EAAO3kU,UAAU+rU,iBAAmB,SAAU9zP,GAC1C,IAAIzkE,EAAOykE,EAAU9yD,cAAc,IAAM8+S,IAErCnoM,EAAQ7jD,EAAUtvD,iBADV,eAERqjT,EAAY5pU,KAAKypU,kBAAkB/vM,GAIvC,GAHIi6J,OACA3zR,KAAK+lU,iBAAmB/lU,KAAKkvB,QAAQgjF,uBAAuB,aAAa,IAExE6gL,GAAkB62C,GAGlB,CAED,IAAK72C,GADL62C,EAAY5pU,KAAKygQ,kBAAkBzgQ,KAAK0lU,aAEpC,OAAckE,EAEb,IAAK72C,GAAkB/yR,KAAK+lU,kBAC7B,OAAO/lU,KAAKkvB,QAAQnM,cAAc,aAE1C,MAVI3R,EAAOw4T,EAWX,OAAOx4T,CACX,EACAmxT,EAAO3kU,UAAU8rU,eAAiB,SAAUx6S,EAASxsB,GACjD,IAAImnU,EAAe36S,EAAUA,EAAQqnD,SAAWrnD,EAAQshR,uBAAyBthR,EAAQ46S,mBAAqB,KAC9G,GAAID,EACA,KAAO36S,EAASA,EAAUA,EAAQ5E,WAC9B,GAAI4E,aAAmBlC,SAAW68S,EAAavnU,KAAK4sB,EAASxsB,GAEzD,OAAOwsB,EAInB,OAAO,IACX,EACAqzS,EAAO3kU,UAAU4lU,aAAe,WAC5B,IAAIt0S,EAAUlvB,KAAK2pU,iBAAiB3pU,KAAKkvB,SACrC9d,EAAQ2hR,GAAkB7jQ,GAAqBlvB,KAAKkvB,QAAfA,EACrCoI,EAAY80Q,GAAQ90Q,WACpBA,EAAU7nB,QAAQ,SAAW,GAAK6nB,EAAU7nB,QAAQ,YAAc,IAClEzP,KAAKkvB,QAAQmnB,QAEjBjlC,EAAKilC,QACLr2C,KAAKqnU,YAAYrnU,KAAKkvB,SACtBlvB,KAAK+pU,UAAU/pU,KAAKkvB,QACxB,EACAqzS,EAAO3kU,UAAUmsU,UAAY,SAAU76S,GACnC6+Q,GAAa9hR,IAAIiD,EAAS,UAAWlvB,KAAKosL,QAASpsL,KACvD,EACAuiU,EAAO3kU,UAAUypU,YAAc,SAAUn4S,GACrC6+Q,GAAa5hR,OAAO+C,EAAS,UAAWlvB,KAAKosL,QACjD,EACAm2I,EAAO3kU,UAAUosU,sBAAwB,WAChChqU,KAAKukU,yBACNvkU,KAAK0lU,WAAWj9S,UAAYzoB,KAAK+oU,eAAe/oU,KAAK6tB,SAE7D,EACA00S,EAAO3kU,UAAU2mU,qBAAuB,WACpC,OAAO5wC,MAAc3zR,KAAK64R,gBAC9B,EAOA0pC,EAAO3kU,UAAU40S,cAAgB,WAC7B,MAAO,QACX,EASA+vB,EAAO3kU,UAAUs0S,kBAAoB,SAAUmF,EAASC,GACpD,GAAKt3S,KAAKkvB,QAAQlD,UAAU6oB,SAASqsR,IAGrC,IAAK,IAAIvmQ,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,UACIo4N,GAAkB/yR,KAAK6tB,UAA6B,KAAjB7tB,KAAK6tB,QA6BnCklQ,GAAkB/yR,KAAK0lU,cAC7BlqJ,GAAOx7K,KAAK0lU,YACZ1lU,KAAK0lU,WAAa,OA9Bd1lU,KAAKukU,yBACLvkU,KAAK0lU,WAAa1lU,KAAKkvB,QAAQnM,cAAc,mBAE5CgwQ,GAAkB/yR,KAAK0lU,aAAwD,WAAzC1lU,KAAK0lU,WAAW30P,aAAa,QAmB/D/wE,KAAKukU,yBACNxxC,GAAkB/yR,KAAKkvB,QAAQnM,cAAc,oBAC7C/iB,KAAK25T,cApBJ35T,KAAKukU,yBACNvkU,KAAK0lU,WAAWj9S,UAAY,IAEF,oBAAlBzoB,KAAK6tB,SACb7tB,KAAK2/S,cAAc,CAAC,YACpBnkI,GAAOx7K,KAAK0lU,YACZ1lU,KAAK0lU,WAAa,KAClB1lU,KAAK25T,cAIqB,kBAAlB35T,KAAK6tB,QAAyB7tB,KAAKukU,wBAAyD,KAA9BvkU,KAAK0lU,WAAW50N,UAClF9wG,KAAK0lU,WAAWuE,mBAAmB,YAAajqU,KAAK+oU,eAAe/oU,KAAK6tB,UACzE7tB,KAAKgqU,wBAA0BhqU,KAAK0lU,WAAW/8S,YAAY3oB,KAAK6tB,SAExE7tB,KAAKkmU,iBAab,MACJ,IAAK,SACmB,KAAhBlmU,KAAKgtL,QAAiB+lG,GAAkB/yR,KAAKgtL,QACzChtL,KAAKmpU,YACL3tJ,GAAOx7K,KAAKmpU,WACZnpU,KAAKmpU,UAAY,MAIhBnpU,KAAKukU,yBACNxxC,GAAkB/yR,KAAKkvB,QAAQnM,cAAc,2BAC7C/iB,KAAK8nO,YAGb,MACJ,IAAK,iBACD,GAA4B,KAAxB9nO,KAAKwmU,gBAAyBzzC,GAAkB/yR,KAAKwmU,gBAAiB,CACtE,IAAKxmU,KAAKylU,mBACN,OAEJjqJ,GAAOx7K,KAAKylU,oBACZzlU,KAAKylU,mBAAqB,KAC1BzlU,KAAK0tC,QAAU,CAAC,CAAC,EACrB,MAES1tC,KAAKukU,yBACNxxC,GAAkB/yR,KAAKkvB,QAAQnM,cAAc,uBAC7C/iB,KAAK0mU,oBAET1mU,KAAK0tC,QAAU,CAAC,CAAC,GAErB,MACJ,IAAK,gBACG1tC,KAAKkvB,QAAQgjF,uBAAuBsvN,IAAgB7jU,OAAS,EACxDqC,KAAKqpU,eAAkC,KAAhBrpU,KAAKgtL,SAAiB+lG,GAAkB/yR,KAAKgtL,QAI/DhtL,KAAKqpU,cAIPrpU,KAAKukU,wBACLvkU,KAAKqpT,aAJT7tI,GAAOx7K,KAAKmmR,YAJZ3qG,GAAOx7K,KAAKgjU,eACZhjU,KAAKgjU,cAAgB,OAYpBhjU,KAAKukU,wBACNvkU,KAAKumU,kBAETvmU,KAAKqpT,cAET,MACJ,IAAK,SACGrpT,KAAKqpU,eACLrpU,KAAKupU,iBAET,MACJ,IAAK,UAEDvpU,KAAKw7J,QAAUx7J,KAAKs7K,OAASt7K,KAAKm7K,OAClC,MACJ,IAAK,UACDn7K,KAAKkqU,gBACL,MACJ,IAAK,SACD95B,GAAkBpwS,KAAKkvB,QAAS,CAAE,OAAU6kQ,GAAWsjB,EAAQ36R,UAC/D,MACJ,IAAK,QACD0zR,GAAkBpwS,KAAKkvB,QAAS,CAAE,MAAS6kQ,GAAWsjB,EAAQ9tS,SAC9D,MACJ,IAAK,SACDvJ,KAAKknU,SAASh3T,OAASlQ,KAAKkQ,OACxBlQ,KAAK4kU,SACL5kU,KAAK2nU,iBAAiB3nU,KAAKkQ,QAE3BlQ,KAAKkvB,QAAQruB,MAAMqP,SAAWlQ,KAAKkQ,OAAOnF,aAC1C/K,KAAKqmU,iBAAkB,GAE3B,MACJ,IAAK,WACDrmU,KAAKimU,YAAY3uB,EAAQ+c,UACzB,MACJ,IAAK,UACD,IAAI8V,EAAcnqU,KAAK0tC,QAAQ/vC,OAC1Bo1R,GAAkB/yR,KAAKylU,qBAAwBzlU,KAAKukU,yBACrD/oJ,GAAOx7K,KAAKylU,oBACZzlU,KAAKylU,mBAAqB,MAE9B,IAAK,IAAI/lU,EAAI,EAAGA,EAAIyqU,EAAazqU,IACxBqzR,GAAkB/yR,KAAK0tC,QAAQhuC,GAAGsmU,eACnChmU,KAAKwmU,eAAiB,GACtBxmU,KAAKymU,aAGb,MAEJ,IAAK,gBACGzmU,KAAK2mU,gBAAmB5zC,GAAkB/yR,KAAKgjU,eAC/ChjU,KAAK4mU,mBAGL5mU,KAAKioU,QAAQznU,UAEjB,MACJ,IAAK,SACDR,KAAKoqU,UAAU/yB,EAAQ32S,QACvB,MACJ,IAAK,WAED,GADAV,KAAKyjU,oBACDzjU,KAAK4kU,QAAS,CACd,IAAIzP,EAAYpiC,GAAkBukB,EAAQ1nS,SAAS4gD,GAAKxwD,KAAK4P,SAAS4gD,EAAI8mP,EAAQ1nS,SAAS4gD,EACvF4kQ,EAAYriC,GAAkBukB,EAAQ1nS,SAASmiD,GAAK/xD,KAAK4P,SAASmiD,EAAIulP,EAAQ1nS,SAASmiD,EACvF/xD,KAAK8mU,aAAa96S,UAAU6oB,SAAS,SAAWsgR,EAAY,IAAMC,IAClEp1T,KAAK8mU,aAAa96S,UAAUG,OAAO,SAAWgpS,EAAY,IAAMC,EAExE,CACAp1T,KAAKynU,iBACL,MACJ,IAAK,YACDznU,KAAK0nU,eACL,MACJ,IAAK,eACD1nU,KAAK0iU,YACL,MACJ,IAAK,YACsB,KAAnB1iU,KAAKusI,YACLvsI,KAAKkvB,QAAQruB,MAAM0rI,UAAYwnJ,GAAW/zR,KAAKusI,YAI/D,CACJ,EACAg2L,EAAO3kU,UAAUwsU,UAAY,SAAU1pU,GACnCV,KAAKknU,SAAS5M,SAAW55T,EACzBV,KAAKU,OAASA,EACdV,KAAKo/T,UAAsC,kBAAjBp/T,KAAKU,OAC3B2V,SAAS0M,cAAc/iB,KAAKU,QAAUV,KAAKU,OAC3CV,KAAKioU,UACLjoU,KAAKioU,QAAQ9jB,SAAWnkT,KAAKo/T,WAEjCp/T,KAAKkmU,eACDlmU,KAAK4kU,SACL5kU,KAAKkqU,gBAELlqU,KAAKyiU,cACLziU,KAAK0iU,WAEb,EACAH,EAAO3kU,UAAUssU,cAAgB,WAE7B,GADAlqU,KAAKkvB,QAAQyK,aAAa,aAAc35B,KAAK4kU,QAAU,OAAS,SAC5D5kU,KAAK4kU,QACD7xC,GAAkB/yR,KAAK+mU,cACvB/mU,KAAK6mU,aACL7mU,KAAKkvB,QAAQruB,MAAMiP,IAAM,MACzB9P,KAAKkvB,QAAQruB,MAAMmP,KAAO,MACrB+iR,GAAkB/yR,KAAKo/T,YACxBp/T,KAAKo/T,UAAUz2S,YAAY3oB,KAAK8mU,mBAIvC,CAID,IAHA13B,GAAY,CAACpvS,KAAKkvB,SAAUqyS,IAC5BnyB,GAAY,CAAC/4R,SAAShC,MAAO,CAACotT,GAAYC,KAC1ClmJ,GAAOx7K,KAAK+mU,YACL/mU,KAAK8mU,aAAa3oS,YACrBn+B,KAAK8mU,aAAa/d,cAAc14P,aAAarwD,KAAK8mU,aAAa3oS,WAAYn+B,KAAK8mU,cAEpF9mU,KAAK8mU,aAAa/d,cAAc3qR,YAAYp+B,KAAK8mU,aACrD,CACI9mU,KAAKw7J,SACLx7J,KAAKs7K,OAETt7K,KAAKynU,iBACDznU,KAAK4kU,SAAW5kU,KAAK+mU,YACrBh5B,GAAa9hR,IAAIjsB,KAAK+mU,WAAY,QAAS/mU,KAAKqjU,4BAA6BrjU,KAErF,EACAuiU,EAAO3kU,UAAUwoU,UAAY,SAAU1J,EAAe2N,GAClD,IAAI3G,EAAe1jU,KAAK8wS,oBACxB9wS,KAAK8wS,qBAAsB,EAC3B,IAAIw5B,EAAgB3N,GAAiBD,GACrC18T,KAAKkQ,OAASo6T,EAAgBtqU,KAAKkQ,OAASo6T,EAAgBtqU,KAAKkQ,OACjElQ,KAAK8wS,oBAAsB4yB,EACvB2G,IACArqU,KAAKknU,SAASh3T,OAASlQ,KAAKkQ,OAEpC,EACAqyT,EAAO3kU,UAAU2sU,oBAAsB,WDrsBpC,IAAqBrpU,ICssBRlB,KAAKo/T,UAAUp1S,YDrsB/BtiB,GAAWxG,EAOR,SAAsBA,GACzBmtI,GAAYntI,CAChB,CC6rBQglU,CAAalmU,KAAKo/T,UAAU31S,cAC5BzpB,KAAKkmU,cACT,EAOA3D,EAAO3kU,UAAU6hT,eAAiB,WAC9B,OAAOz/S,KAAK+/S,aAAa,GAC7B,EAMAwiB,EAAO3kU,UAAU4C,QAAU,WACvB,IAAIR,KAAKyxS,YAAT,CAGA,IAAI+4B,EAAa,CAACrJ,GAAKI,GAAWY,GAAeC,GAAyBR,GAAYD,IAClFpmQ,EAAQ,CAAC,OAAQ,aAAc,kBAAmB,mBAAoB,eAAgB,WAAY,SAStG,GARA6zO,GAAY,CAACpvS,KAAKo/T,WAAY,CAACqC,GAAYC,MACtC3uC,GAAkB/yR,KAAKkvB,UAAYlvB,KAAKkvB,QAAQlD,UAAU6oB,SAAS+sR,KACpExyB,GAAY,CAAC/4R,SAAShC,MAAO,CAACotT,GAAYC,KAE1C1hU,KAAK4kU,SACLx1B,GAAY,CAAGrc,GAAkB/yR,KAAKo/T,WAA8B/oT,SAAShC,KAA1BrU,KAAKo/T,WAA6BsC,IAEzF1hU,KAAK80T,gBACA/hC,GAAkB/yR,KAAKwlU,QACxB,IAAK,IAAI9lU,EAAI,EAAGA,EAAIM,KAAKwlU,OAAO7nU,OAAQ+B,IACpCM,KAAKwlU,OAAO9lU,GAAGc,UA6BvB,GA1BKuyR,GAAkB/yR,KAAKspU,kBACxBtpU,KAAKspU,gBAAgB9oU,UAEpBuyR,GAAkB/yR,KAAKioU,UACxBjoU,KAAKioU,QAAQznU,WAEZuyR,GAAkB/yR,KAAKknU,SAASh4S,UAAYlvB,KAAKknU,SAASh4S,QAAQlD,UAAU6oB,SAjqCxE,YAkqCL70C,KAAKknU,SAAS1mU,UAElB4uS,GAAY,CAACpvS,KAAKkvB,SAAUs7S,GACvBz3C,GAAkB/yR,KAAKq0T,WAA+B,KAAlBr0T,KAAKq0T,UAC1CjlB,GAAY,CAACpvS,KAAKkvB,SAAUlvB,KAAKq0T,SAASl7R,MAAM,MAE/C45P,GAAkB/yR,KAAKinU,aAAgBl0C,GAAkB/yR,KAAKinU,WAAWle,iBAC1E/oT,KAAKinU,WAAWle,cAAc14P,aAAcrwD,KAAK4kU,QAAU5kU,KAAK8mU,aAAe9mU,KAAKkvB,QAAUlvB,KAAKinU,YACnGzrJ,GAAOx7K,KAAKinU,YACZjnU,KAAKinU,gBAAa5gU,GAElBrG,KAAK4kU,UAAY5kU,KAAKukU,yBACtB/oJ,GAAOx7K,KAAK+mU,YACZ/mU,KAAK8mU,aAAax8S,WAAW+lC,aAAarwD,KAAKkvB,QAASlvB,KAAK8mU,cAC7DtrJ,GAAOx7K,KAAK8mU,eAEX9mU,KAAKukU,yBACNvkU,KAAKkvB,QAAQzG,UAAYzoB,KAAKmjU,UAAU16S,WAExCzoB,KAAKukU,yBACAxxC,GAAkB/yR,KAAKkvB,QAAQ3mB,UAChC,IAAS7I,EAAI,EAAGA,GAAKM,KAAKkvB,QAAQ3mB,SAAS5K,OAAQ+B,IAC/CA,GAAQA,EACR87K,GAAOx7K,KAAKkvB,QAAQ3mB,SAAS7I,IAIzC,IAASA,EAAI,EAAGA,EAAI67D,EAAM59D,OAAQ+B,IAC9BM,KAAKkvB,QAAQwK,gBAAgB6hC,EAAM77D,IAElCM,KAAKukU,uBAINvkU,KAAKyxS,aAAc,EAHnB9rS,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,MAM9BA,KAAKyqU,SACLzqU,KAAK2/S,eA7DT,CA+DJ,EACA4iB,EAAO3kU,UAAUwnU,sBAAwB,WACrC5uT,OAAO6Q,iBAAiB,SAAUrnB,KAAKuqU,oBAAoBpoU,KAAKnC,MACpE,EACAuiU,EAAO3kU,UAAUynU,wBAA0B,WACvC7uT,OAAO4U,oBAAoB,SAAUprB,KAAKuqU,oBAAoBpoU,KAAKnC,MACvE,EAOAuiU,EAAO3kU,UAAUyrT,WAAa,WACtBrpT,KAAKukU,wBAA0BvkU,KAAKqpU,gBACpCrpU,KAAKmmR,UAAYnmR,KAAKkvB,QAAQgjF,uBAAuB,uBAAuB,IAE5ElyG,KAAKqpU,eACLt7B,GAAa9hR,IAAIjsB,KAAKmmR,UAAW,QAASnmR,KAAKojU,2BAA4BpjU,MAE3EA,KAAK4kU,SAAW5kU,KAAK+mU,YACrBh5B,GAAa9hR,IAAIjsB,KAAK+mU,WAAY,QAAS/mU,KAAKqjU,4BAA6BrjU,KAErF,EAOAuiU,EAAO3kU,UAAUk3T,aAAe,WAO5B,GANI90T,KAAKqpU,eACLt7B,GAAa5hR,OAAOnsB,KAAKmmR,UAAW,QAASnmR,KAAKojU,4BAElDpjU,KAAK4kU,SACL72B,GAAa5hR,OAAOnsB,KAAK+mU,WAAY,QAAS/mU,KAAKqjU,6BAEnDrjU,KAAK0tC,QAAQ/vC,OAAS,IAAMo1R,GAAkB/yR,KAAK0tC,QAAQ,GAAGs4R,cAAwC,KAAxBhmU,KAAKwmU,eACnF,IAAK,IAAI9mU,EAAI,EAAGA,EAAIM,KAAK0tC,QAAQ/vC,OAAQ+B,IACE,oBAA3BM,KAAK0tC,QAAQhuC,GAAGs4L,OACxB+1G,GAAa5hR,OAAOnsB,KAAKylU,mBAAmBl9T,SAAS7I,GAAI,QAASM,KAAK0tC,QAAQhuC,GAAGs4L,MAIlG,EAMAuqI,EAAO3kU,UAAU87T,gBAAkB,WAC/B15T,KAAKknU,SAASxN,iBAClB,EAOA6I,EAAO3kU,UAAU8sU,aAAe,WAG5B,MAAO,CAAEnhU,MAFSvJ,KAAKkvB,QAAQ5N,YAEF5E,OADV1c,KAAKkvB,QAAQ3N,aAEpC,EAQAghT,EAAO3kU,UAAU09K,KAAO,SAAUqvJ,GAC9B,IAAI/kU,EAAQ5F,KACZ,GAAKA,KAAKkvB,QAAQlD,UAAU6oB,SAASqsR,IAArC,CAGA,IAAKlhU,KAAKkvB,QAAQlD,UAAU6oB,SAASitR,MAAe/uC,GAAkB43C,GAAgB,CAC7E53C,GAAkB43C,IACnB3qU,KAAK4qU,WAAWD,GAEpB,IAAIE,EAAcl3C,KAAa,CAC3BpmR,QAAQ,EACR2hB,QAASlvB,KAAKkvB,QACd2mD,UAAW71E,KAAK4kU,QAAU5kU,KAAK8mU,aAAe9mU,KAAKkvB,QACnDm/G,UAAWruI,KAAKkvB,QAAQruB,MAAMwtI,WAC9B,CACA9gI,QAAQ,EACR2hB,QAASlvB,KAAKkvB,QACd2mD,UAAW71E,KAAK4kU,QAAU5kU,KAAK8mU,aAAe9mU,KAAKkvB,QACnDxuB,OAAQV,KAAKU,OACb2tI,UAAWruI,KAAKkvB,QAAQruB,MAAMwtI,WAElCruI,KAAK2sL,QAAQ,aAAck+I,GAAa,SAAUC,GAC9C,IAAKA,EAAev9T,OAAQ,CACpB3H,EAAMspB,QAAQruB,MAAMwtI,YAAcw8L,EAAYx8L,YAC9CzoI,EAAMq9T,gBAAiB,EACvBr9T,EAAMspB,QAAQruB,MAAMwtI,UAAYw8L,EAAYx8L,WAEhDzoI,EAAM4hU,mBAAqBnxT,SAASkmB,cACpC32B,EAAMspB,QAAQzlB,UAAY,EACtB7D,EAAMg/T,UAAa7xC,GAAkBntR,EAAMmhU,cAC3CnhU,EAAMmhU,WAAWlmU,MAAM6I,QAAU,QACjC9D,EAAMkhU,aAAajmU,MAAM6I,QAAU,OACnC0lS,GAAY,CAACxpS,EAAMmhU,YAAa,UAC3Bh0C,GAAkBntR,EAAMw5T,WAYzBrwB,GAAS,CAAC14R,SAAShC,MAAO,CAACotT,GAAYC,MAXnC97T,EAAMw5T,YAAc/oT,SAAShC,KAC7BzO,EAAMkhU,aAAajmU,MAAM+O,SAAW,QAGpChK,EAAMkhU,aAAajmU,MAAM+O,SAAW,WAExChK,EAAMmhU,WAAWlmU,MAAM+O,SAAW,WAClChK,EAAMspB,QAAQruB,MAAM+O,SAAW,WAC/Bm/R,GAAS,CAACnpS,EAAMw5T,WAAY,CAACqC,GAAYC,OAMjD,IAAIqJ,EAAgB,CAChBrtU,KAAMkI,EAAM+8T,kBAAkBC,OAAS,KACvC98P,SAAUlgE,EAAM+8T,kBAAkB78P,SAClCoS,MAAOtyE,EAAM+8T,kBAAkBzqP,OAE/BwkP,EAAiB92T,EAAMg/T,QAAWh/T,EAAMspB,QAAQ65R,cAAgBnjT,EAAMspB,QACtEtpB,EAAMygU,kBACNzgU,EAAMwgU,UAAU1J,GAAe,GAC/BtsB,GAAkBxqS,EAAMspB,QAAS,CAAE,OAAUtpB,EAAMsK,SAC/CtK,EAAMg/T,SACNh/T,EAAM+hU,iBAAiB/hU,EAAMsK,SAIF,SAAnCtK,EAAM+8T,kBAAkBC,OAAoBh9T,EAAMshU,SAAS5rJ,OAAS11K,EAAMshU,SAAS5rJ,KAAKyvJ,GACxFnlU,EAAMolU,YAAa,EACnB,IAAItH,EAAe99T,EAAMkrS,oBACzBlrS,EAAMkrS,qBAAsB,EAC5BlrS,EAAM41J,SAAU,EAChB51J,EAAMs9T,mBAAoB,EAC1Bt9T,EAAMkrS,oBAAsB4yB,CAChC,CACJ,GACJ,CAEI1jU,KAAKyqU,SACLzqU,KAAK0/S,sBAtET,CAwEJ,EAOA6iB,EAAO3kU,UAAUu9K,KAAO,SAAU/kK,GAC9B,IAAIxQ,EAAQ5F,KACZ,GAAKA,KAAKkvB,QAAQlD,UAAU6oB,SAASqsR,KAGjClhU,KAAKkjU,kBAAmB,CACxB,IAAIx4B,EAAY/W,KAAa,CACzBpmR,QAAQ,EACR09T,eAAc70T,EACd8Y,QAASlvB,KAAKkvB,QACd2mD,UAAW71E,KAAK4kU,QAAU5kU,KAAK8mU,aAAe9mU,KAAKkvB,QACnD9Y,MAAOA,GACP,CACA7I,QAAQ,EACR09T,eAAc70T,EACd8Y,QAASlvB,KAAKkvB,QACdxuB,OAAQV,KAAKU,OACbm1E,UAAW71E,KAAK4kU,QAAU5kU,KAAK8mU,aAAe9mU,KAAKkvB,QACnD9Y,MAAOA,EACP80T,SAAUlrU,KAAK+iU,aAEnB/iU,KAAKsnU,UAAY58B,EACjB1qS,KAAK2sL,QAAQ,cAAe+9G,GAAW,SAAUygC,GAC7C,IAAKA,EAAgB59T,OAAQ,CACrB3H,EAAMg/T,UACD7xC,GAAkBntR,EAAMw5T,YACzBhwB,GAAY,CAACxpS,EAAMw5T,WAAY,CAACqC,GAAYC,MAGhDrrT,SAAShC,KAAK2X,UAAU6oB,SAAS4sR,KACjCprT,SAAShC,KAAK2X,UAAU6oB,SAAS6sR,KACjCtyB,GAAY,CAAC/4R,SAAShC,MAAO,CAACotT,GAAYC,KAE9C,IAAI0J,EAAiB,CACjB1tU,KAAMkI,EAAM+8T,kBAAkBC,OAAS,MACvC98P,SAAUlgE,EAAM+8T,kBAAkB78P,SAClCoS,MAAOtyE,EAAM+8T,kBAAkBzqP,OAGA,SAAnCtyE,EAAM+8T,kBAAkBC,OAAoBh9T,EAAMshU,SAAS/rJ,OAASv1K,EAAMshU,SAAS/rJ,KAAKiwJ,GACxFxlU,EAAMolU,YAAa,EACnB,IAAItH,EAAe99T,EAAMkrS,oBACzBlrS,EAAMkrS,qBAAsB,EAC5BlrS,EAAM41J,SAAU,EAChB51J,EAAMs9T,mBAAoB,EAC1Bt9T,EAAMkrS,oBAAsB4yB,CAChC,CACA99T,EAAMm9T,YAAcT,EACxB,GACJ,CACJ,EAQAC,EAAO3kU,UAAUgtU,WAAa,SAAUh+T,GAE1B5M,KAAKkvB,QAAQzI,UACZzmB,KAAKkvB,QAAQxI,WAExB,GAAI9Z,EAAM,CACN5M,KAAKkvB,QAAQruB,MAAMiP,IAAMuG,SAAS6wS,iBAAiBt8R,UAAY,KAC/DmkR,GAAS,CAAC/uS,KAAKkvB,SAAU0yS,IACzB,IAAIl4T,EAAU1J,KAAKkvB,QAAQruB,MAAM6I,QACjC1J,KAAKkvB,QAAQruB,MAAM6I,QAAU,OAC7B1J,KAAKkvB,QAAQruB,MAAMwtI,UAAc0kJ,GAAkB/yR,KAAKU,QACZ8V,OAAOgT,YAAe,KAA7DxpB,KAAKo/T,UAAU79S,aAAgB,KACpCvhB,KAAKkvB,QAAQruB,MAAM6I,QAAUA,EAC7BqlS,GAAS,CAAC14R,SAAShC,MAAO,CAACotT,GAAYC,KACnC1hU,KAAK2mU,gBAAkB5zC,GAAkB/yR,KAAKioU,UAC9CjoU,KAAKioU,QAAQznU,SAErB,MAEI4uS,GAAY,CAACpvS,KAAKkvB,SAAU0yS,IAC5BxyB,GAAY,CAAC/4R,SAAShC,MAAO,CAACotT,GAAYC,KACtC1hU,KAAK2mU,gBAAmB5zC,GAAkB/yR,KAAKgjU,gBAC/ChjU,KAAK4mU,mBAGb,OAAOh6T,CACX,EAQA21T,EAAO3kU,UAAUytU,WAAa,SAAU9jU,GACpC,OAAKwrR,GAAkBxrR,GAGhBvH,KAAKwlU,OAFDxlU,KAAKwlU,OAAOj+T,EAG3B,EACAouS,GAAW,CACPnB,GAAS,KACV+tB,EAAO3kU,UAAW,eAAW,GAChC+3S,GAAW,CACPnB,IAAS,IACV+tB,EAAO3kU,UAAW,2BAAuB,GAC5C+3S,GAAW,CACPnB,IAAS,IACV+tB,EAAO3kU,UAAW,qBAAiB,GACtC+3S,GAAW,CACPnB,IAAS,IACV+tB,EAAO3kU,UAAW,eAAW,GAChC+3S,GAAW,CACPnB,GAAS,KACV+tB,EAAO3kU,UAAW,cAAU,GAC/B+3S,GAAW,CACPnB,IAAS,IACV+tB,EAAO3kU,UAAW,eAAW,GAChC+3S,GAAW,CACPnB,IAAS,IACV+tB,EAAO3kU,UAAW,oBAAgB,GACrC+3S,GAAW,CACPnB,GAAS,CAAC,gBACX+tB,EAAO3kU,UAAW,qBAAiB,GACtC+3S,GAAW,CACPnB,GAAS,SACV+tB,EAAO3kU,UAAW,cAAU,GAC/B+3S,GAAW,CACPnB,GAAS,KACV+tB,EAAO3kU,UAAW,iBAAa,GAClC+3S,GAAW,CACPnB,GAAS,SACV+tB,EAAO3kU,UAAW,aAAS,GAC9B+3S,GAAW,CACPnB,GAAS,KACV+tB,EAAO3kU,UAAW,gBAAY,GACjC+3S,GAAW,CACPnB,GAAS,MACV+tB,EAAO3kU,UAAW,cAAU,GAC/B+3S,GAAW,CACPnB,GAAS,OACV+tB,EAAO3kU,UAAW,cAAU,GAC/B+3S,GAAW,CACPnB,GAAS,KACV+tB,EAAO3kU,UAAW,sBAAkB,GACvC+3S,GAAW,CACPnB,IAAS,IACV+tB,EAAO3kU,UAAW,qBAAiB,GACtC+3S,GAAW,CACPf,GAAW,CAAC,CAAC,GAAIosB,KAClBuB,EAAO3kU,UAAW,eAAW,GAChC+3S,GAAW,CACPnB,IAAS,IACV+tB,EAAO3kU,UAAW,qBAAiB,GACtC+3S,GAAW,CACPhB,GAAQ,CAAC,EAAGssB,KACbsB,EAAO3kU,UAAW,yBAAqB,GAC1C+3S,GAAW,CACPhB,GAAQ,CAAEnkP,EAAG,SAAUuB,EAAG,UAAYunQ,KACvCiJ,EAAO3kU,UAAW,gBAAY,GACjC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,eAAW,GAChC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,YAAQ,GAC7B+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,0BAAsB,GAC3C+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,kBAAc,GACnC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,aAAS,GAC9B+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,mBAAe,GACpC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,iBAAa,GAClC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,gBAAY,GACjC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,YAAQ,GAC7B+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,oBAAgB,GACrC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,mBAAe,GACpC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,gBAAY,GACjC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,kBAAc,GACnC+3S,GAAW,CACPxuH,MACDo7I,EAAO3kU,UAAW,iBAAa,GAClC2kU,EAAS5sB,GAAW,CAChBX,IACDutB,EAEP,CAhhD4B,CAghD1Br4T,KAOF,SAAW62T,GA0GP,SAASuK,EAAavrU,EAASmvB,GAC3B,IAAIq8S,EAAe,IAAIhJ,GAAOxiU,GAE9B,OADAwrU,EAAavtB,SAAS9uR,GACfq8S,CACX,CAkBA,SAASC,EAAYzrU,EAASsrL,GAgB1B,OAfAtrL,EAAQitL,OAAU+lG,GAAkB1nG,EAAO5tG,OAAwBskP,GAAf12I,EAAO5tG,MAC3D19E,EAAQ8tB,QAAWklQ,GAAkB1nG,EAAOx9J,SAA4B,GAAjBw9J,EAAOx9J,QAC9D9tB,EAAQ6kU,UAAW7xC,GAAkB1nG,EAAOu5I,UAAWv5I,EAAOu5I,QAC9D7kU,EAAQspU,eAAiBt2C,GAAkB1nG,EAAOg+I,gBAAiBh+I,EAAOg+I,cAC1EtpU,EAAQ4mU,eAAiB5zC,GAAkB1nG,EAAOogJ,cAAepgJ,EAAOogJ,YACxE1rU,EAAQ+lU,eAAiB/yC,GAAkB1nG,EAAOy6I,gBAAiBz6I,EAAOy6I,cAC1E/lU,EAAQ6P,SAAYmjR,GAAkB1nG,EAAOz7K,UAA8B,CAAE4gD,EAAG,SAAUuB,EAAG,OAApCs5H,EAAOz7K,SAChE7P,EAAQ4iU,kBAAqB5vC,GAAkB1nG,EAAOs3I,mBAClD,CAAEC,OAAQ,OAAQ98P,SAAU,IAAKoS,MAAO,GAD+BmzG,EAAOs3I,kBAElF5iU,EAAQs0T,SAAYthC,GAAkB1nG,EAAOgpI,UAA8B,GAAlBhpI,EAAOgpI,SAChEt0T,EAAQmQ,OAAU6iR,GAAkB1nG,EAAOn7K,QAA0B,IAAhBm7K,EAAOn7K,OAE5DnQ,EAAQkxE,KAAQ8hN,GAAkB1nG,EAAOp6G,MAAsB,KAAdo6G,EAAOp6G,KACxDlxE,EAAQwJ,MAASwpR,GAAkB1nG,EAAO9hL,OAAwB,OAAf8hL,EAAO9hL,MAC1DxJ,EAAQ2c,OAAUq2Q,GAAkB1nG,EAAO3uK,QAA0B,OAAhB2uK,EAAO3uK,OACrD3c,CACX,CA8CA,SAAS2rU,EAAgB1F,EAAa36I,EAAQsgJ,GAC1C,IAAIC,EAAcD,EAalB,OAZK54C,GAAkB1nG,EAAOv4I,QAC1B84R,EAAY5F,YAAYn4S,QAAUw9J,EAAOv4I,MAExCigP,GAAkB1nG,EAAO2Z,QAC1B4mI,EAAY5F,YAAYtR,QAAUrpI,EAAO2Z,MAExC+tF,GAAkB1nG,EAAOgpI,YAC1BuX,EAAY5F,YAAY3R,SAAWhpI,EAAOgpI,UAEzCthC,GAAkB1nG,EAAO2M,SAC1B4zI,EAAY5zI,MAAQ3M,EAAO2M,OAExB4zI,CACX,CA5JA7K,EAAcn0C,MApCd,SAAehgR,GAEX,IAGIi/T,EAFAC,EAAgBniU,GAAc,MAAO,CAAE,UAAas4T,KA+BxD,OA9BA5rT,SAAShC,KAAKsU,YAAYmjT,IAStBD,EAAiBP,EADC,kBAAV1+T,EACsB,CAAEihB,QAASjhB,EACrCgD,SAAU,CAAE4gD,EAAG,SAAUuB,EAAG,OAC5B6yQ,SAAS,EAAM53I,OAAQ+0I,GACvBr0R,QAVY,CAAC,CACbs4R,YAAa,CAAEj1R,WAAW,EAAMljB,QAAS,MACzCmqK,MAAO,WACHh4L,KAAKm7K,MACT,KAwFZ,SAAsBkQ,GAClB,IAAItrL,EAAU,CACdA,QAAkB,IAGlB,OADAA,EA+BJ,SAA6BA,EAASsrL,GAClC,IAAI0gJ,EAAmB,CAAC,CAChB/F,YAAa,CAAEj1R,WAAW,EAAMljB,QAAS,MACzCmqK,MAAO,WACHh4L,KAAKm7K,MACT,IAEH43G,GAAkB1nG,EAAO2gJ,UAI1BjsU,EAAQ2tC,QAAUq+R,EAHlBhsU,EAAQ2tC,QAAQ,GAAKg+R,EAAgB3rU,EAAQ2tC,QAAQ,GAAI29I,EAAO2gJ,SAAUD,EAAiB,IAK/F,OAAOhsU,CACX,CA7CcksU,CADVlsU,EAAUyrU,EAAYzrU,EAASsrL,GACQA,EAE3C,CArFsC6gJ,CAAat/T,GAHbk/T,IAKnB97N,MAAQ,WACfpjG,GAAQA,EAAKojG,OACbpjG,EAAKojG,MAAMztG,MAAMspU,GAErBA,EAAerrU,UACXqrU,EAAe38S,QAAQlD,UAAU6oB,SAAS,gBAC1Cg3R,EAAe38S,QAAQ65R,cAAc58R,SACrC0/S,EAAenrU,OAAOsrB,UAAUG,OAAO61S,KAGvC6J,EAAe38S,QAAQ/C,QAE/B,EACO0/S,CACX,EAuDA9K,EAAcoL,QAxCd,SAAiBv/T,GAEb,IAGIw/T,EAFAN,EAAgBniU,GAAc,MAAO,CAAE,UAAau4T,KAmCxD,OAlCA7rT,SAAShC,KAAKsU,YAAYmjT,IActBM,EAAmBd,EADD,kBAAV1+T,EACwB,CAAEgD,SAAU,CAAE4gD,EAAG,SAAUuB,EAAG,OAASlkC,QAASjhB,EAAMg4T,SAAS,EAC3F53I,OAAQ+0I,GAAwBr0R,QAbd,CAAC,CACnBs4R,YAAa,CAAEj1R,WAAW,EAAMljB,QAAS,MACzCmqK,MAAO,WACHh4L,KAAKm7K,MACT,GACD,CACC6qJ,YAAa,CAAEn4S,QAAS,UACxBmqK,MAAO,WACHh4L,KAAKm7K,MACT,KAyCZ,SAAwBkQ,GACpB,IAAItrL,EAAU,CACdA,QAAkB,IAGlB,OADAA,EAuCJ,SAA+BA,EAASsrL,GACpC,IAAIghJ,EAAgB,CAChBrG,YAAa,CAAEj1R,WAAW,EAAMljB,QAAS,MACzCmqK,MAAO,WACHh4L,KAAKm7K,MACT,GAEAmxJ,EAAoB,CACpBtG,YAAa,CAAEn4S,QAAS,UACxBmqK,MAAO,WACHh4L,KAAKm7K,MACT,GAEC43G,GAAkB1nG,EAAO2gJ,UAI1BjsU,EAAQ2tC,QAAQ,GAAK2+R,EAHrBtsU,EAAQ2tC,QAAQ,GAAKg+R,EAAgB3rU,EAAQ2tC,QAAQ,GAAI29I,EAAO2gJ,SAAUK,GAKzEt5C,GAAkB1nG,EAAOkhJ,cAI1BxsU,EAAQ2tC,QAAQ,GAAK4+R,EAHrBvsU,EAAQ2tC,QAAQ,GAAKg+R,EAAgB3rU,EAAQ2tC,QAAQ,GAAI29I,EAAOkhJ,aAAcD,GAKlF,OAAOvsU,CACX,CAjEcysU,CADVzsU,EAAUyrU,EAAYzrU,EAASsrL,GACUA,EAE7C,CAvCwCohJ,CAAe7/T,GAH5Ck/T,IAKU97N,MAAQ,WACjBpjG,GAAQA,EAAKojG,OACbpjG,EAAKojG,MAAMztG,MAAM6pU,GAErBA,EAAiB5rU,UACb4rU,EAAiBl9S,QAAQlD,UAAU6oB,SAAS,gBAC5Cu3R,EAAiBl9S,QAAQ65R,cAAc58R,SACvCigT,EAAiB1rU,OAAOsrB,UAAUG,OAAO61S,KAGzCoK,EAAiBl9S,QAAQ/C,QAEjC,EACOigT,CACX,CAwGH,CA/MD,CA+MGrL,KAAkBA,GAAgB,CAAC,ICh1DtC,IAAI2L,GAA2B,WAM3B,SAASA,EAAUC,EAAWC,GAC1B,IAAIhnU,EAAQ5F,KAEZA,KAAK6sU,gBAAkB,GAKvB7sU,KAAK8sU,eAAiB,GAItB9sU,KAAKi2Q,kBAAoB,WACrBrwQ,EAAMmnU,aAAa5xJ,MACvB,EACAn7K,KAAK2sU,UAAYA,EACjB3sU,KAAK4sU,cAAgBA,CACzB,CAspBA,OA7oBAF,EAAU9uU,UAAUovU,aAAe,SAAUv5M,EAAY2S,EAAWC,EAAY4mM,GAC5E,IACIC,EAUJ,OAXc72T,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,cAAgBirG,MAG9Ey5M,EAAYvjU,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,cAAgBirG,EAAY7pH,UAAW,qBAChG/I,MAAM0I,MAAQ68H,EAAY,KACpC8mM,EAAUrsU,MAAM6b,OAAS2pH,EAAa,KAClC4mM,GACAA,EAAQtkT,YAAYukT,IAG5BltU,KAAK4sU,cAAcO,mBAAmBD,EAAWz5M,GAC1Cy5M,CACX,EAUAR,EAAU9uU,UAAUwvU,mBAAqB,SAAU35M,EAAY45M,EAAcC,EAAYj3M,EAAUk3M,GAC/F,IAIIC,EACAC,EALAP,EAAY72T,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,cAAgBirG,GAChFi6M,EAAgB/jU,GAAc,UAC9BgkU,EAAa,GACbC,EAAc,GAGdN,EAAW3vU,OAAS,IACQ,IAAxB2vU,EAAW,GAAGO,OAAeP,EAAW3vU,OAAS,GACjD6vU,EAASF,EAAW,GAAGv7Q,EACvB07Q,EAAcH,EAAW,GAAGQ,SAG5BN,EAASF,EAAW,GAAGv7Q,EACvB07Q,EAAcH,EAAW,GAAGQ,SAGpC,IAAIC,EAAW,EACf,GAAIL,GAAiBR,GAA6C,IAAhCA,EAAUrlT,WAAWlqB,OACnD,IAAK,IAAI+B,EAAI,EAAGA,EAAI2tU,EAAa1vU,OAAQ+B,IAErC,GAAO2tU,EAAa3tU,GAAGshB,SAAS,SAAcqsT,EAAa3tU,GAAGshB,SAAS,SAAethB,GAAK4tU,EAAW3vU,OAAS,GAAkB,IAAb04H,GAAmBk3M,EAUlI,CACDI,EAAW9qU,KAAKyqU,EAAW9iU,SAAS9K,EAAEqL,WAAY,MAClD6iU,EAAY/qU,KAAKwqU,EAAa7iU,SAAS9K,EAAEqL,WAAY,MACjDyiU,EAASF,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAKgnD,GAAsD,IAAjDu7Q,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK8iU,QAC5FL,EAASF,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAKgnD,GAEhD07Q,EAAcH,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK+iU,QAA2D,IAAjDR,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK8iU,QACtGJ,EAAcH,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK+iU,QAEzD,IAAK,IAAI1kU,EAAI,EAAGA,EAAIukU,EAAWhwU,OAAQyL,IAAK,CACxC,IAAIkqB,EAASq6S,EAAWnjU,SAASpB,EAAE2B,WAAY,KAE3CssK,EAAU1tK,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,SAAWirG,EAAa,IAAMs6M,EAAUnkU,UAAW,YAAa2xD,MAAO,CAAE,SAAY,QACtJ19B,EAAc+vS,EAAYpjU,SAASpB,EAAE2B,WAAY,KACjC,MAAhB8yB,GAAuBz0B,GAAKukU,EAAWhwU,OAAS,GAAU,GAALyL,IACrDkqB,EAAOw6S,OAASH,EAAWvkU,EAAI,GAAG0kU,OAClCx6S,EAAOy+B,EAAI47Q,EAAWvkU,EAAI,GAAG2oD,GAEjCslH,EAAQx5I,YAAcA,EAAYjyB,QAAQ,UAAW,KAGrC,MADFgiU,EAAYxkU,GAAGwC,QAAQ,OAAQ,OAEzCyrK,EAAQx2K,MAAMmtU,WAAa,OAEV,IAAjB16S,EAAOu6S,OAAezkU,GAAKukU,EAAWhwU,OAAS,GAAU,GAALyL,GAChDukU,EAAWvkU,EAAI,GAAGonD,GAAKm9Q,EAAWvkU,EAAI,GAAGonD,EAAIm9Q,EAAWvkU,EAAI,GAAGykU,OAAS,KAAQD,EAAYxkU,EAAI,GAAG4X,SAAS,UAAaqsT,EAAa7iU,SAASpB,EAAE2B,WAAY,KAAKiW,SAAS,UAC3KsS,EAAOu6S,MAAQF,EAAWvkU,EAAI,GAAGonD,GAAKm9Q,EAAWvkU,EAAI,GAAGonD,EAAIm9Q,EAAWvkU,EAAI,GAAGykU,OAC9Ev6S,EAAOk9B,EAAIm9Q,EAAWvkU,EAAI,GAAGonD,EAAIm9Q,EAAWvkU,EAAI,GAAGykU,MAC/Cv6S,EAAOu6S,MAAQ,EACfv6S,EAAOu6S,MAAQ,EAGfx2J,EAAQx2K,MAAMmtU,WAAa,QAI7B,GAAL5kU,GAAUukU,EAAWhwU,OAAS,IAAM,GAAM21B,EAAOy+B,EAAIy7Q,EAAU,IAAsB,GAAhBl6S,EAAOu6S,QAA2B,GAAZE,IAAmBT,EAAWS,EAAW,GAAGh8Q,EAAIu7Q,EAAW9iU,SAASujU,EAAShjU,WAAY,KAAKgnD,EAAK,IAAQu7Q,EAAW9iU,SAASujU,EAAShjU,WAAY,KAAKgnD,EAAIu7Q,EAAWS,EAAW,GAAGh8Q,EAAK,KAAmD,KAA3C67Q,EAAYpjU,SAASpB,EAAE2B,WAAY,OAClUyiU,EAASG,EAAWnjU,SAASpB,EAAE2B,WAAY,KAAKgnD,EAChD07Q,EAAcE,EAAWnjU,SAASpB,EAAE2B,WAAY,KAAK+iU,QAErDx6S,IACAA,EAAOy+B,EAAIy7Q,EACXl6S,EAAOw6S,OAASL,EAChBztU,KAAKiuU,kBAAkB52J,EAAS/jJ,EAAOk9B,EAAGl9B,EAAOy+B,EAAGz+B,EAAO46S,OAAQ56S,EAAOu6S,MAAOv6S,EAAOw6S,SAE5F9tU,KAAKmuU,yBAAyB92J,GAC9B,IAAIv2H,EAAU4sR,EAAc18L,WAAW,MACvClwF,EAAQqgF,KAAOk2C,EAAQx2K,MAAMylJ,SAAW,IAAM+wB,EAAQx2K,MAAM0iJ,WAC5D,IAAI6qL,EAAettR,EAAQg3G,YAAY81K,EAAYpjU,SAASpB,EAAE2B,WAAY,KAAKa,QAAQ,iBAAkB,KAAKrC,MAC9G,GAAI+pB,EAAQ,CACR,IAAItb,EAAQsb,EAAOu6S,MAAQ7tU,KAAK4sU,cAAcyB,gBAAkBD,EAChEpuU,KAAKsuU,kBAAkBt2T,EAAOq/J,EAAShhD,EAAU/iG,EAAOi7S,SAC5D,CACArB,EAAUvkT,YAAY0uJ,GACtBr3K,KAAKwuU,gBAAgBtB,EAAW71J,GAE5Br3K,KAAK2sU,UAAU8B,qBAAuBzuU,KAAK2sU,UAAU+B,sBAAwB1uU,KAAK4sU,cAAc+B,yBAAiD,2BAAtBt3J,EAAQztK,WAC1G,oCAAtBytK,EAAQztK,WAAyE,8CAAtBytK,EAAQztK,WACtEytK,EAAQrrJ,UAAUC,IAAI,eAE1B8hT,GACJ,CACAJ,EAAa,GACbC,EAAc,GACVluU,EAAI4tU,EAAW3vU,OAAS,IACQ,IAA5B2vU,EAAW5tU,EAAI,GAAGmuU,OAAgB96C,GAAkBu6C,EAAW5tU,EAAI,KAKnE8tU,EAASF,EAAW5tU,EAAI,GAAGqyD,EAC3B07Q,EAAcH,EAAW5tU,EAAI,GAAGouU,SALhCN,EAASF,EAAW5tU,EAAI,GAAGqyD,EAC3B07Q,EAAcH,EAAW5tU,EAAI,GAAGouU,QAO5C,MAnFIH,EAAW9qU,KAAKyqU,EAAW9iU,SAAS9K,EAAEqL,WAAY,MAClD6iU,EAAY/qU,KAAKwqU,EAAa7iU,SAAS9K,EAAEqL,WAAY,MACjDyiU,EAASF,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAKgnD,GAAsD,IAAjDu7Q,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK8iU,QAC5FL,EAASF,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAKgnD,GAEhD07Q,EAAcH,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK+iU,QAA2D,IAAjDR,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK8iU,QACtGJ,EAAcH,EAAW9iU,SAAS9K,EAAEqL,WAAY,KAAK+iU,OAgFzE,EAeApB,EAAU9uU,UAAUgxU,mBAAqB,SAAUn7M,EAAY45M,EAAcC,EAAYj3M,EAAUw4M,GAC/F,IAAI3B,EAAYltU,KAAK4sU,cAAckC,WAAW,cAAgBr7M,GAC1Di6M,EAAgB/jU,GAAc,UAClC,GAAI+jU,EACA,IAAK,IAAIhuU,EAAI,EAAGA,EAAIwtU,EAAUrlT,WAAWlqB,OAAQ+B,IAAK,CAElD,IAAI4zB,OAAS,EACT+jJ,EAAUr3K,KAAK4sU,cAAckC,WAAW,SAAWr7M,EAAa,IAAM/zH,GAC1E,GAAIqzR,GAAkB17G,GAClB,MAEAi2J,IACAh6S,EAASg6S,EAAW9iU,SAAS9K,EAAEqL,WAAY,OAEvC/K,KAAKiuU,kBAAkB52J,EAAS/jJ,EAAOk9B,EAAGl9B,EAAOy+B,EAAGz+B,EAAO46S,OAAQ56S,EAAOu6S,MAAOv6S,EAAOw6S,QAGhG9tU,KAAKmuU,yBAAyB92J,GAC9B,IAAIv2H,EAAU4sR,EAAc18L,WAAW,MACvClwF,EAAQqgF,KAAOk2C,EAAQx2K,MAAMylJ,SAAW,IAAM+wB,EAAQx2K,MAAM0iJ,WAC5D,IAAI6qL,OAAe,EACnB,GAAIf,EAAc,CACd,IAAIxvS,EAAcwvS,EAAa7iU,SAAS9K,EAAEqL,WAAY,KAClD8yB,IACAuwS,EAAettR,EAAQg3G,YAAYj6H,EAAYjyB,QAAQ,iBAAkB,KAAKrC,MAEtF,MAEI6kU,EAAettR,EAAQg3G,YAAYuf,EAAQx5I,YAAYjyB,QAAQ,iBAAkB,KAAKrC,MAE1F,GAAI+pB,EAAQ,CACR,IAAItb,EAAQsb,EAAOu6S,MAAQ7tU,KAAK4sU,cAAcyB,gBAAkBD,EAChEpuU,KAAKsuU,kBAAkBt2T,EAAOq/J,EAAShhD,EAAU/iG,EAAOi7S,SAC5D,CACAvuU,KAAKwuU,gBAAgBtB,EAAW71J,EACpC,MAGA61J,EAAUnkB,cAAc3qR,YAAY8uS,GAEpCltU,KAAK2sU,UAAUoC,aACVF,GACD7uU,KAAK2sU,UAAUoC,WAAWC,qBAAqBv7M,GAG3D,EACAi5M,EAAU9uU,UAAU0wU,kBAAoB,SAAUt2T,EAAOq/J,EAAShhD,EAAU44M,GACxE,IAAIC,EAAc,UAAYl3T,EAAQ,IACrB,IAAbq+G,EAEIghD,EAAQx2K,MAAMqX,UADd+2T,GAAgB,GAAKA,GAAgB,GACXC,EAGA,UAAYD,EAAe,QAAUC,EAGjD,IAAb74M,EAEDghD,EAAQx2K,MAAMqX,UADG,IAAjB+2T,EAC0B,iBAAmBC,GAEtB,KAAlBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAGjD,IAAb74M,EAEDghD,EAAQx2K,MAAMqX,UADG,IAAjB+2T,EAC0B,kBAAoBC,EAExB,MAAjBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAGjD,IAAb74M,IAEDghD,EAAQx2K,MAAMqX,UADG,IAAjB+2T,EAC0B,kBAAoBC,EAExB,KAAjBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAG3E,EACAxC,EAAU9uU,UAAUuwU,yBAA2B,SAAU92J,GACrDA,EAAQx2K,MAAM0iJ,WAAa,QAC3B8zB,EAAQx2K,MAAMsuU,gBAAkB,IACpC,EAMAzC,EAAU9uU,UAAUwxU,yBAA2B,SAAU37M,GAErD,IAKI4C,EALAg5M,EAAe74T,OAAO4+O,eAAeJ,QAAQh1P,KAAK4sU,cAAc0C,gBAAkB,IAAM77M,EAAa,IAAMzzH,KAAKuvU,yBAEhHjC,EAAa,GACbD,EAAe,GAGnB,GAAIgC,EAAc,CAEd,IAAIzgS,EAAOooB,KAAKr2D,MAAM0uU,GAEtB/B,EAAa1+R,EAAiB,WAE9By+R,EAAez+R,EAAkB,YAEjCynF,EAAWznF,EAAe,QAC9B,CACA,GAA0B,IAAtB0+R,EAAW3vU,OACXqC,KAAK6sU,gBAAgBhqU,KAAK,CAAE4wH,WAAYA,EAAY65M,WAAYA,IAChEttU,KAAK4uU,mBAAmBn7M,EAAY45M,EAAcC,EAAYj3M,OAE7D,CAED,IAAIm5M,EAAexvU,KAAK6sU,gBAAgBlqU,QAAO,SAAUf,GACrD,OAAOA,EAAI6xH,aAAeA,CAC9B,IACI+7M,GAC4B,IAAxBA,EAAa7xU,SAEb2vU,EAAakC,EAAa,GAAe,WACzCxvU,KAAK4uU,mBAAmBn7M,EAAY,KAAM65M,EAAYj3M,GAGlE,CACJ,EACAq2M,EAAU9uU,UAAU4wU,gBAAkB,SAAUtB,EAAW71J,GACvD,IAAIo4J,EAAoBvC,EAAUxiT,wBAC9BglT,EAAkBr4J,EAAQ3sJ,yBAEzBglT,EAAgBnmU,MAAQmmU,EAAgB1/T,MAAUy/T,EAAkBlmU,MAAQkmU,EAAkBz/T,MAAU0/T,EAAgBnmU,MAAQkmU,EAAkBlmU,SAEnJ8tK,EAAQx2K,MAAM0I,MAAQ,OAEtB8tK,EAAQx2K,MAAM0I,MAAQ8tK,EAAQrtJ,YAAc,KAEpD,EAMA0iT,EAAU9uU,UAAU+xU,gBAAkB,SAAUC,GAC5C,IAAIC,EAAiB7vU,KAAK4sU,cAAckD,kBAAoB,EAC5DD,EAAkBA,EAAiB,EAAKA,EAAiB,EACzD,IAAIE,EAAkB/vU,KAAK4sU,cAAckD,kBAAoB,EAC7DC,EAAmBA,EAAkB/vU,KAAK4sU,cAAcoD,UAAaD,EAAmB/vU,KAAK4sU,cAAcoD,UAAY,EAEvH,IADA,IAAIC,EAAa55T,SAASkQ,iBAAiB,YAAcvmB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,iBAC5E9oB,EAAI,EAAGA,EAAIuwU,EAAWtyU,OAAQ+B,IAEnC,GADAuwU,EAAWzlU,SAAS9K,EAAEqL,WAAY,KAAKlK,MAAM6I,QAAU,QACnD1J,KAAK4sU,cAAcsD,iBAAmBlwU,KAAKmwU,0BAA4BnwU,KAAKowU,uBAAwB,CAEpG,IAAI38M,EAAajpH,SAASylU,EAAWzlU,SAAS9K,EAAEqL,WAAY,KAAKyd,GAAG2Q,MAAM,eAAe,IACjF02S,EAAiB,GAAMp8M,GAAgBA,GAAes8M,EAAkB,GAC5E/vU,KAAKkxG,cAAc++N,EAAWzlU,SAAS9K,EAAEqL,WAAY,KAAM6kU,EAEnE,MACS5vU,KAAK4sU,cAAcyD,iBACxBrwU,KAAKkxG,cAAc++N,EAAWzlU,SAAS9K,EAAEqL,WAAY,KAAM6kU,EAMvE,EACAlD,EAAU9uU,UAAUszG,cAAgB,SAAUhiF,EAAS0gT,GAC/CA,EACA5vU,KAAKswU,qBAAqBphT,GAGtBk9Q,GAAQoC,KACJt/Q,EAAQ65R,cACR75R,EAAQ65R,cAAc3qR,YAAYlP,GAE7BA,EAAQ5E,YACb4E,EAAQ5E,WAAW8T,YAAYlP,GAInCA,EAAQ/C,QAGpB,EACAugT,EAAU9uU,UAAU0yU,qBAAuB,SAAUphT,GAEjD,IAAIqhT,EAAerhT,EAAQgjF,uBAAuB,kBAClD,GAAIq+N,EACA,IAAK,IAAI7wU,EAAI,EAAGA,EAAI6wU,EAAa5yU,OAAQ+B,IACrC,GAAI0sS,GAAQS,UAER,GAAyE,oBAArE0jC,EAAa/lU,SAAS9K,EAAEqL,WAAY,KAAKg+S,cAAcn/S,WAA+E,4BAA5C2mU,EAAa,GAAGxnB,cAAcn/S,UACxHslB,EAAQkP,YAAYmyS,EAAa,SAEhC,GAAyE,4BAArEA,EAAa/lU,SAAS9K,EAAEqL,WAAY,KAAKg+S,cAAcn/S,UAAyC,CACrG,IAAI4mU,EAAiBn6T,SAASkS,eAAegoT,EAAa,GAAGxnB,cAAcvgS,IACvEgoT,GACAA,EAAeznB,cAAc58R,QAErC,MAGyE,oBAArEokT,EAAa/lU,SAAS9K,EAAEqL,WAAY,KAAKg+S,cAAcn/S,WACvDslB,EAAQkP,YAAYmyS,EAAa,GAKrD,EAWA7D,EAAU9uU,UAAU6yU,cAAgB,SAAUh9M,EAAYi9M,EAAOC,EAAYC,EAAUC,EAAYjnU,GAC/F,IAAIytK,EAAUr3K,KAAK4sU,cAAckC,WAAW,SAAWr7M,EAAa,IAAMi9M,GACtE7yS,EAAcgzS,EAAW5iT,UAAU0iT,EAAYC,GAC/Cx/T,EAAOiF,SAAS24C,eAAenxB,GACnC,GAAIj0B,EAAW,CACX,IAAIknU,EAAcnnU,GAAc,QAChCmnU,EAAYlnU,UAAYA,EAAY,aACpCknU,EAAYnoT,YAAYvX,GACxBimK,EAAQ1uJ,YAAYmoT,EACxB,MAEIz5J,EAAQ1uJ,YAAYvX,EAE5B,EAWAs7T,EAAU9uU,UAAUmzU,sBAAwB,SAAUC,EAAWC,EAASC,EAAiBC,EAAgBr7R,EAAcE,GACrH,GAAIh2C,KAAK2sU,UAAU8B,oBACf,IAAK,IAAI/uU,EAAIsxU,EAAWtxU,GAAKuxU,EAASvxU,IAAK,CACvC,IAAI0xU,OAAU,EACVC,OAAQ,EAER56J,EAAWz2K,KAAK4sU,cAAckC,WAAW,cAAgBpvU,GAAGmoB,WAC5DnoB,IAAMsxU,GACNI,EAAUF,EACVG,EAAQ56J,EAAS94K,OAAS,GAErB+B,IAAMuxU,GACXG,EAAU,EACVC,EAAQF,IAGRC,EAAU,EACVC,EAAQ56J,EAAS94K,OAAS,GAE1BqzU,IAAcC,IACdG,EAAUF,EACVG,EAAQF,GAEZ,IAAK,IAAI/nU,EAAIgoU,EAAShoU,GAAKioU,EAAOjoU,IAAK,CACnC,IAAIiuK,EAAUr3K,KAAK4sU,cAAckC,WAAW,SAAWpvU,EAAI,IAAM0J,GAC7DkoU,OAAS,EACTC,OAAS,EACTt3C,OAAW,EACf,GAAI5iH,GAAWA,EAAQx5I,YAAa,CAChCo8P,EAAW5iH,EAAQx5I,YAAYlgC,OAC/B,IAAIkgC,EAAcw5I,EAAQx5I,YAC1Bw5I,EAAQx5I,YAAc,GAClBz0B,IAAMgoU,GAEFE,EADA5xU,IAAMsxU,EACGl7R,EAGA,EAEby7R,EAASt3C,EACTj6R,KAAKywU,cAAc/wU,EAAG0J,EAAG,EAAGkoU,EAAQzzS,EAAa,OAE5Cz0B,IAAMioU,GAAS3xU,IAAMuxU,GAC1BK,EAAS,EACTC,EAASv7R,IAGTs7R,EAAS,EACTC,EAASt3C,GAETm3C,IAAYC,GAASL,IAAcC,IACnCK,EAASx7R,EACTy7R,EAASv7R,GAEbh2C,KAAKywU,cAAc/wU,EAAG0J,EAAGkoU,EAAQC,EAAQ1zS,EAAa,wBAClDz0B,IAAMioU,GAAS3xU,IAAMuxU,GACrBjxU,KAAKywU,cAAc/wU,EAAG0J,EAAGmoU,EAAQ1zS,EAAYlgC,OAAQkgC,EAAa,KAE1E,CACJ,CACJ,CAER,EAKA6uS,EAAU9uU,UAAU4zU,kBAAoB,WAEpC,IADA,IAAIvB,EAAa55T,SAASkQ,iBAAiB,YAAcvmB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,iBAC5E9oB,EAAI,EAAGA,EAAIuwU,EAAWtyU,OAAQ+B,IAEnC,IADA,IAAImoB,EAAaooT,EAAWzlU,SAAS9K,EAAEqL,WAAY,KAAK8c,WAC/Cze,EAAI,EAAGA,EAAIye,EAAWlqB,OAAQyL,IAAK,CACxC,IAAIiuK,EAAUxvJ,EAAWrd,SAASpB,EAAE2B,WAAY,KAEhD,GAA0B,2BAAtBssK,EAAQztK,WAAgE,oCAAtBytK,EAAQztK,WAAyE,8CAAtBytK,EAAQztK,UAA2D,CAChL,IAAIi0B,EAAcw5I,EAAQx5I,aAEtBw5I,EAAQxvJ,WAAWlqB,OAAS,GAAmC,IAA9B05K,EAAQxvJ,WAAWlqB,QAAmD,SAAlC05K,EAAQxvJ,WAAW,GAAG3D,WAC3FmzJ,EAAQx5I,YAAc,GACtBw5I,EAAQx5I,YAAcA,EAE9B,CACJ,CAER,EAEA6uS,EAAU9uU,UAAUqwU,kBAAoB,SAAU52J,EAASrnK,EAAMF,EAAKyjB,EAAQhqB,EAAOmT,GACjF26J,EAAQx2K,MAAMmP,KAAOA,EAAOhQ,KAAK4sU,cAAcyB,gBAAkB,KACjEh3J,EAAQx2K,MAAMiP,IAAMA,EAAM9P,KAAK4sU,cAAcyB,gBAAkB,KAC/D,IAAIoD,EAAa/0T,EAAS1c,KAAK4sU,cAAcyB,gBAC7Ch3J,EAAQx2K,MAAM6b,OAAS+0T,EAAa,KACpCp6J,EAAQx2K,MAAMylJ,SAAW5pI,EAAS1c,KAAK4sU,cAAcyB,gBAAkB,IAC3E,EACA3B,EAAU9uU,UAAUuyU,uBAAyB,WACzC,QAAInwU,KAAK2sU,UAAU8B,qBACRzuU,KAAK2sU,UAAU8B,oBAAoBiD,eAKlD,EAMAhF,EAAU9uU,UAAU+zU,iBAAmB,SAAUC,GAE7C,IADA,IAAIC,EAAgBx7T,SAASkQ,iBAAiB,YAAcvmB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,iBAC/E9oB,EAAI,EAAGA,EAAImyU,EAAcl0U,OAAQ+B,IAEtC,IADA,IAAImoB,EAAagqT,EAAcrnU,SAAS9K,EAAEqL,WAAY,KAAK8c,WAClDze,EAAI,EAAGA,EAAIye,EAAWlqB,OAAQyL,IAAK,CACxC,IAAI0oU,EAAcjqT,EAAWrd,SAASpB,EAAE2B,WAAY,KAEhD6mU,GAAmC,2BAA1BE,EAAYloU,WAAoE,oCAA1BkoU,EAAYloU,WAA6E,8CAA1BkoU,EAAYloU,UAC1IkoU,EAAY9lT,UAAUC,IAAI,eAG1B6lT,EAAY9lT,UAAUG,OAAO,cAErC,CAER,EAMAugT,EAAU9uU,UAAUm0U,oBAAsB,SAAUzmT,GAChD,IAAI1b,EAAW0b,EAAUuqB,WAAWf,wBAAwBxpB,EAAUyqB,WAClEi8R,GAAW,EAIf,QAHKpiU,GAAY0b,EAAUwqB,aAAexqB,EAAU0qB,aAAepmC,IAAa6E,KAAKw9T,+BACjFD,GAAW,GAERA,CACX,EAMAtF,EAAU9uU,UAAU81H,aAAe,SAAUxkG,GACzC,IAEI65R,EAAgB75R,EAAQ65R,cAY5B,OAXKA,IACDA,EAAgB75R,EAAQ5E,YAEI,oBAA5By+R,EAAcn/S,UAELY,SAAS0kB,EAAQ1G,GAAG2Q,MAAM,UAAU,IAIpC3uB,SAASu+S,EAAcvgS,GAAG2Q,MAAM,UAAU,GAG3D,EAOAuzS,EAAU9uU,UAAUs0U,aAAe,SAAUhjT,EAASomG,GAClD,IAEIyzL,EAAgB75R,EAAQ65R,cAY5B,OAXKA,IACDA,EAAgB75R,EAAQ5E,YAEI,oBAA5By+R,EAAcn/S,UAEFY,SAAS0kB,EAAQ1G,GAAG2Q,MAAM,SAAWm8F,EAAY,KAAK,IAItD9qH,SAASu+S,EAAcvgS,GAAG2Q,MAAM,SAAWm8F,EAAY,KAAK,GAGhF,EACAo3M,EAAU9uU,UAAU2xU,sBAAwB,WACxC,OAAIvvU,KAAK2sU,UAAUwF,oBACRnyU,KAAK2sU,UAAUwF,oBAAoBC,mBAGnC,CAEf,EAKA1F,EAAU9uU,UAAUwyU,oBAAsB,WACtC,QAAIpwU,KAAK2sU,UAAU0F,kBACRryU,KAAK2sU,UAAU0F,iBAAiBxD,YAK/C,EAMAnC,EAAU9uU,UAAU00U,wBAA0B,SAAUx/R,GACpD,IAAIltC,EAAQ5F,KACZ,IAAKA,KAAKuyU,iBACN,GAAK5+C,KAkCA,CAED,IAAI6+C,EAAsBn8T,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,+BAC1EgqT,IACAA,EAAoB30S,YAAciV,EAClC0/R,EAAoB/pT,UAAYqqB,GAEhC9yC,KAAK2sU,UAAU0F,mBACfryU,KAAK2sU,UAAUoC,WAAW0D,sBAAuB,GAErDzyU,KAAK2sU,UAAU+F,gBAAgBC,kBAAkB,wBAAyB7/R,EAC9E,KA7CiB,CAEb,IAAI8/R,EAAiBjpU,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,UAAW5e,UAAW,4BAClG5J,KAAK4sU,cAAciG,gBAAgBlqT,YAAYiqT,GAC/C5yU,KAAK+sU,aAAe,IAAIxK,GAAO,CAC3B8G,eAAe,EAAMvD,eAAe,EAAOlB,SAAS,EAAM53I,OAAQhtL,KAAK2sU,UAAUmG,UAAUznB,YAAY,aACvG39Q,QAAS,CAAC,CACFs4R,YAAa,CAAEn4S,QAAS7tB,KAAK2sU,UAAUmG,UAAUznB,YAAY,MAAOt6Q,WAAW,GAC/EinJ,MAAOh4L,KAAKi2Q,kBAAkB9zQ,KAAKnC,QAG3C6tB,QAAS,+DAAiEilB,EAAO,SAAUpyC,OAAQV,KAAK2sU,UAAUz9S,QAClH6jT,YAAa,WAET,GADAntU,EAAMmnU,aAAavsU,UACfoF,EAAM+mU,UAAUz9S,QAChB,IACItpB,EAAM+mU,UAAUz9S,QAAQkP,YAAYw0S,EACxC,CACA,MAAO9rT,GACH8rT,EAAe7pB,cAAc3qR,YAAYw0S,EAC7C,CAEAhtU,EAAM+mU,UAAU0F,mBAChBzsU,EAAM+mU,UAAUoC,WAAW0D,sBAAuB,GAEtD7sU,EAAM2sU,kBAAmB,CAC7B,IAEAvyU,KAAK2sU,UAAU/uB,YACf59S,KAAK+sU,aAAanvB,WAAY,GAElC59S,KAAK+sU,aAAa/uB,SAAS40B,GAC3B5yU,KAAKuyU,kBAAmB,CAC5B,CAcR,EACO7F,CACX,CA9qB+B,GCHxB,SAASsG,GAAgBpkS,GAC5B,IACIxlC,EADAujB,EAAa,GAEbsmT,EA0ED,SAAuBrkS,GAC1B,IAAIskS,EAAY,wCACZ/7T,EAAU,GACVg8T,EAAW,GACXx2U,EAAQ,CAAC,EACbu2U,EAAUjtP,UAAY,EACtB,IAAImtP,GAAgB,EACpBz2U,EAAQu2U,EAAUz9S,KAAKmZ,GACvB,KAAOjyC,GAAO,CACV,GAAiB,MAAbA,EAAM,GAAY,CAElBy2U,GAAgB,CACpB,MACSz2U,EAAM,IACoB,OAA3BA,EAAM,GAAGywB,eACLjW,EAAQxZ,QACRw1U,EAAStwU,KAAKsU,GAElBg8T,EAAStwU,KAAK,CAAC,MACfsU,EAAU,CAACxa,EAAM,GAAGsxB,UAAU,EAAG,MAG7B9W,EAAQxZ,QACRw1U,EAAStwU,KAAKsU,GAElBA,EAAU,CAACxa,EAAM,KAErBy2U,GAAgB,IAGXj8T,EAAQxZ,SACTwZ,EAAU,IAETi8T,GACDj8T,EAAQtU,KAAKiC,OAAOnI,EAAM,KAE9By2U,GAAgB,GAEpBz2U,EAAQu2U,EAAUz9S,KAAKmZ,EAC3B,CACIz3B,EAAQxZ,QACRw1U,EAAStwU,KAAKsU,GAElB,OAAOg8T,CACX,CAtH0BE,CAAczkS,GACpC,GAAIqkS,EAAgBt1U,OAAS,EACzB,IAAK,IAAI+B,EAAI,EAAGA,EAAIuzU,EAAgBt1U,OAAQ+B,IAAK,CAC7C,IAAI6+B,EAAK00S,EAAgBvzU,GACrB85C,EAAO,GAEX,QADAA,EAAOjb,EAAG,IACGnR,eACT,IAAK,IACD,IAAKhkB,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CAAEywU,QAAS95R,EAAMnyC,EAAGk3B,EAAGn1B,GAAI9B,EAAGi3B,EAAGn1B,EAAI,KACrDA,GAAQ,EACK,MAATowC,EACAA,EAAO,IAEO,MAATA,IACLA,EAAO,KAGf,MACJ,IAAK,IACL,IAAK,IACD,IAAKpwC,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CAAEywU,QAAS95R,EAAMnyC,EAAGk3B,EAAGn1B,GAAI9B,EAAGi3B,EAAGn1B,EAAI,KACrDA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CAAEywU,QAAS95R,EAAMnyC,EAAGk3B,EAAGn1B,KAE3C,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CAAEywU,QAAS95R,EAAMlyC,EAAGi3B,EAAGn1B,KAE3C,MACJ,IAAK,IACDujB,EAAW9pB,KAAK,CAAEywU,QAAS95R,IAC3B,MACJ,IAAK,IACD,IAAKpwC,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CACZywU,QAAS95R,EAAMiwE,GAAIlrF,EAAGn1B,GAAIsgH,GAAInrF,EAAGn1B,EAAI,GAAIugH,GAAIprF,EAAGn1B,EAAI,GAAIwgH,GAAIrrF,EAAGn1B,EAAI,GAAI/B,EAAGk3B,EAAGn1B,EAAI,GAAI9B,EAAGi3B,EAAGn1B,EAAI,KAEnGA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CAAEywU,QAAS95R,EAAMmwE,GAAIprF,EAAGn1B,GAAIwgH,GAAIrrF,EAAGn1B,EAAI,GAAI/B,EAAGk3B,EAAGn1B,EAAI,GAAI9B,EAAGi3B,EAAGn1B,EAAI,KACnFA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CAAEywU,QAAS95R,EAAMiwE,GAAIlrF,EAAGn1B,GAAIsgH,GAAInrF,EAAGn1B,EAAI,GAAI/B,EAAGk3B,EAAGn1B,EAAI,GAAI9B,EAAGi3B,EAAGn1B,EAAI,KACnFA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIm1B,EAAG5gC,OAAQyL,IACvBujB,EAAW9pB,KAAK,CACZywU,QAAS95R,EAAM+5R,GAAIh1S,EAAGn1B,GAAIoqU,GAAIj1S,EAAGn1B,EAAI,GAAI+gI,MAAO5rG,EAAGn1B,EAAI,GAAIqqU,SAAUl1S,EAAGn1B,EAAI,GAC5EsqU,MAAOn1S,EAAGn1B,EAAI,GAAI/B,EAAGk3B,EAAGn1B,EAAI,GAAI9B,EAAGi3B,EAAGn1B,EAAI,KAE9CA,GAAQ,EAIxB,CAEJ,OAAOujB,CACX,CAiFO,SAASgnT,GAAsBhnT,GAClC,IAAI48F,EACAC,EACAC,EACAC,EACAC,EACAC,EACAviH,EACAC,EACA3J,EACA+B,EAGAq9M,EAAW,GACf,IAAK11M,EAAI,EAAGC,EAAI,EAAG5H,EAAI,EAAG/B,EAASgvB,EAAWhvB,OAAQ+B,EAAI/B,IAAU+B,EAAG,CACnE,IAEI85C,EADAo6R,EADMjnT,EAAWjtB,GAGrB85C,EAAOo6R,EAAIN,QACP,OAAQM,IACRlqN,EAAKkqN,EAAIlqN,IAET,OAAQkqN,IACRhqN,EAAKgqN,EAAIhqN,IAET,OAAQgqN,IACRnqN,EAAKmqN,EAAInqN,IAET,OAAQmqN,IACRjqN,EAAKiqN,EAAIjqN,IAET,MAAOiqN,IACPvsU,EAAIusU,EAAIvsU,GAER,MAAOusU,IACPtsU,EAAIssU,EAAItsU,GAEZ,IAAIymB,EAAOgvL,EAASA,EAASp/M,OAAS,GACtC,OAAQ67C,GACJ,IAAK,IACDujK,EAASl6M,KAAK,CAAEywU,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,IACvC,MACJ,IAAK,IACDy1M,EAASl6M,KAAK,CAAEywU,QAAS,IAAK/pN,GAAIA,EAAIC,GAAIA,EAAIniH,EAAGA,EAAGC,EAAGA,IACvD,MACJ,IAAK,IACDy1M,EAASl6M,KAAK,CAAEywU,QAAS,IAAK/pN,GAAIA,EAAIC,GAAIA,EAAIniH,EAAGA,EAAGC,EAAGkiH,IACvD,MACJ,IAAK,IACDuzF,EAASl6M,KAAK,CAAEywU,QAAS,IAAK/pN,GAAIA,EAAIC,GAAIA,EAAIniH,EAAGkiH,EAAIjiH,EAAGA,IACxD,MACJ,IAAK,IACDy1M,EAASl6M,KAAK,CAAEywU,QAAS,IAAK/pN,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIviH,EAAGA,EAAGC,EAAGA,IACvF,MACJ,IAAK,IACD,GAAIymB,EAAM,CACN,IAAI8lT,OAAO,EAOPC,EAAO,CAAEzsU,EAAG,EAAIkiH,GALhBsqN,EADiB,MAAjB9lT,EAAKulT,SAAoC,MAAjBvlT,EAAKulT,QACtB,CAAEjsU,EAAG0mB,EAAK47F,GAAIriH,EAAGymB,EAAK67F,IAGtB,CAAEviH,EAAGkiH,EAAIjiH,EAAGkiH,IAEOniH,EAAGC,EAAG,EAAIkiH,EAAKqqN,EAAKvsU,GAClDy1M,EAASl6M,KAAK,CAAEywU,QAAS,IAAK/pN,GAAIA,EAAIC,GAAIA,EAAIC,GAAIqqN,EAAKzsU,EAAGqiH,GAAIoqN,EAAKxsU,EAAGqiH,GAAIA,EAAIC,GAAIA,EAAIviH,EAAGA,EAAGC,EAAGA,GACnG,CACA,MACJ,IAAK,IAEDy1M,EAASl6M,KAAK,CAAEywU,QAAS,IAAK/pN,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIriH,EAAGA,EAAGC,EAAGA,IACvE,MACJ,IAAK,IACD,GAAIymB,EAAM,CACF8lT,OAAO,EAOPC,EAAO,CAAEzsU,EAAG,EAAIkiH,GALhBsqN,EADiB,MAAjB9lT,EAAKulT,QACE,CAAEjsU,EAAG0mB,EAAK07F,GAAIniH,EAAGymB,EAAK27F,IAGtB,CAAEriH,EAAGkiH,EAAIjiH,EAAGkiH,IAEOniH,EAAGC,EAAG,EAAIkiH,EAAKqqN,EAAKvsU,GAClDy1M,EAASl6M,KAAK,CAAEywU,QAAS,IAAK/pN,GAAIA,EAAIC,GAAIA,EAAIC,GAAIqqN,EAAKzsU,EAAGqiH,GAAIoqN,EAAKxsU,EAAGD,EAAGA,EAAGC,EAAGA,GACnF,CACA,MACJ,IAAK,IACD,IAAIysU,EAASH,EACbG,EAAOT,QAAU,IACjBv2H,EAASl6M,KAAKkxU,GACd,MACJ,IAAK,IACL,IAAK,IACDh3H,EAASl6M,KAAK,CAAEywU,QAAS,MACzBjsU,EAAIkiH,EACJjiH,EAAIkiH,EAGC,MAAThwE,GAAyB,MAATA,GAERlyC,EAEZiiH,EAAKliH,EACLmiH,EAAKliH,CACT,CACA,OAAOy1M,CACX,CA2FO,SAASi3H,GAAep2H,EAASpkK,EAAM53C,EAAKqyU,EAASC,EAAIC,GAC5D,OAAQ36R,GACJ,IAAK,IAIL,IAAK,IA8BL,IAAK,IACDokK,EAAQv2M,EAAIzF,EAAIyF,EAChBu2M,EAAQt2M,EAAI1F,EAAI0F,EAChB,MA7BJ,IAAK,IACDs2M,EAAQv2M,EAAIzF,EAAIyF,EAChB,MACJ,IAAK,IACDu2M,EAAQt2M,EAAI1F,EAAI0F,EAChB,MACJ,IAAK,IACDs2M,EAAQv2M,EAAIzF,EAAIyF,EAChBu2M,EAAQt2M,EAAI1F,EAAI0F,EAChBs2M,EAAQn0F,GAAK7nH,EAAI6nH,GACjBm0F,EAAQl0F,GAAK9nH,EAAI8nH,GACjBk0F,EAAQj0F,GAAK/nH,EAAI+nH,GACjBi0F,EAAQh0F,GAAKhoH,EAAIgoH,GACjB,MACJ,IAAK,IACDg0F,EAAQv2M,EAAIzF,EAAIyF,EAChBu2M,EAAQt2M,EAAI1F,EAAI0F,EAChBs2M,EAAQj0F,GAAK/nH,EAAI+nH,GACjBi0F,EAAQh0F,GAAKhoH,EAAIgoH,GACjB,MACJ,IAAK,IACDg0F,EAAQv2M,EAAIzF,EAAIyF,EAChBu2M,EAAQt2M,EAAI1F,EAAI0F,EAChBs2M,EAAQn0F,GAAK7nH,EAAI6nH,GACjBm0F,EAAQl0F,GAAK9nH,EAAI8nH,GACjB,MAKJ,IAAK,IACD,IAAI6pN,EAAK3xU,EAAI2xU,GACTC,EAAK5xU,EAAI4xU,GACTS,IACAryU,EAAI2xU,GAAKA,GAAWW,EACpBtyU,EAAI4xU,GAAKA,GAAWW,GAExBv2H,EAAQv2M,EAAIzF,EAAIyF,EAChBu2M,EAAQt2M,EAAI1F,EAAI0F,EAChBs2M,EAAQ21H,GAAK3xU,EAAI2xU,GACjB31H,EAAQ41H,GAAK5xU,EAAI4xU,GACjB,MACJ,IAAK,IACL,IAAK,IACD51H,EAAU,CAAE01H,QAAS,KAG7B,OAAO11H,CACX,CAEO,SAASw2H,GAAc7wQ,EAAK8yG,EAAag+J,EAAWC,GAevD,OAdI/wQ,IAAQ8wQ,EAEJ9wQ,EADA+wQ,IAAcD,EACL9wQ,EAAM8yG,GAAgBvxK,OAAOuvU,GAAah+J,EAAcvxK,OAAOuvU,KACjEC,EAAYxvU,OAAOuvU,IAGlBvvU,OAAOy+D,GAAO8yG,GAAgBvxK,OAAOuvU,GAAah+J,EAAcvxK,OAAOuvU,IAI/EC,IAAcD,IACd9wQ,EAAM+wQ,GAGPxvU,OAAOy+D,EAAImrC,QAAQ,GAC9B,CAEO,SAAS6lO,GAAqBtB,GACjC,IAAI1pN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAviH,EACAC,EACA3J,EACA+B,EACJ,IAAK2H,EAAI,EAAGC,EAAI,EAAG5H,EAAI,EAAG/B,EAASs1U,EAAgBt1U,OAAQ+B,EAAI/B,IAAU+B,EAAG,CACxE,IACIk0U,EADOX,EAAgBvzU,GAEvB85C,EAAOo6R,EAAIN,QACf,GAAI,cAAcxnU,KAAK0tC,GACf,MAAOo6R,IACPA,EAAIvsU,EAAIA,EAAIusU,EAAIvsU,GAEhB,MAAOusU,IACPA,EAAItsU,EAAIA,EAAIssU,EAAItsU,OAGnB,CACG,OAAQssU,IACRA,EAAInqN,GAAKA,EAAKpiH,EAAIusU,EAAInqN,IAEtB,OAAQmqN,IACRA,EAAIjqN,GAAKA,EAAKtiH,EAAIusU,EAAIjqN,IAEtB,OAAQiqN,IACRA,EAAIlqN,GAAKA,EAAKpiH,EAAIssU,EAAIlqN,IAEtB,OAAQkqN,IACRA,EAAIhqN,GAAKA,EAAKtiH,EAAIssU,EAAIhqN,IAEtB,MAAOgqN,IACPA,EAAIvsU,EAAIA,GAAKusU,EAAIvsU,GAEjB,MAAOusU,IACPA,EAAItsU,EAAIA,GAAKssU,EAAItsU,GAErB,IAAIysU,OAAS,EACb,OAAQv6R,GACJ,IAAK,IACL,IAAK,IACDu6R,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,IACDysU,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,IACDysU,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,GAC5B,MACJ,IAAK,IACL,IAAK,IACD0sU,EAAS,CAAET,QAAS,IAAKhsU,EAAGA,GAC5B,MACJ,IAAK,IACL,IAAK,IACDysU,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,EAAGmiH,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,GACjE,MACJ,IAAK,IACL,IAAK,IACDmqN,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,EAAGqiH,GAAIA,EAAIC,GAAIA,GACjD,MACJ,IAAK,IACL,IAAK,IACDmqN,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,EAAGmiH,GAAIA,EAAIC,GAAIA,GACjD,MACJ,IAAK,IACL,IAAK,IACDqqN,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,KACDysU,EAAS,CAAET,QAAS,IAAKjsU,EAAGA,EAAGC,EAAGA,IAC3BisU,GAAKK,EAAIL,GAChBQ,EAAOP,GAAKI,EAAIJ,GAChBO,EAAO5pM,MAAQypM,EAAIzpM,MACnB4pM,EAAON,SAAWG,EAAIH,SACtBM,EAAOL,MAAQE,EAAIF,MACnB,MACJ,IAAK,IACL,IAAK,IACDK,EAAS,CAAET,QAAS,KACpBjsU,EAAIkiH,EACJjiH,EAAIkiH,EACJuqN,EAASd,EAAgBvzU,GAG7Bq0U,IACAd,EAAgBvzU,GAAKq0U,EAE7B,CACa,MAATv6R,GAAyB,MAATA,IAChB+vE,EAAKliH,EACLmiH,EAAKliH,EAEb,CACA,OAAO2rU,CACX,CAEO,SAASuB,GAAcvB,GAC1B,IACIvzU,EADA+0U,EAAe,GAEnB,IAAK/0U,EAAI,EAAGA,EAAIuzU,EAAgBt1U,OAAQ+B,IAEhC+0U,GADM,IAAN/0U,EACgBg1U,GAAUzB,EAAgBvzU,IAG1B,IAAMg1U,GAAUzB,EAAgBvzU,IAGxD,OAAO+0U,CACX,CAEO,SAASC,GAAU9yU,GACtB,IAAIkW,EAAS,GACb,OAAQlW,EAAI0xU,SACR,IAAK,IACL,IAAK,IACDx7T,EAASlW,EAAI0xU,QACb,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IA+BL,IAAK,IACL,IAAK,IACDx7T,EAASlW,EAAI0xU,QAAU,IAAM1xU,EAAIyF,EAAI,IAAMzF,EAAI0F,QA9BnD,IAAK,IACL,IAAK,IACDwQ,EAASlW,EAAI0xU,QAAU,IAAM1xU,EAAI6nH,GAAK,IAAM7nH,EAAI8nH,GAAK,IAAM9nH,EAAI+nH,GAAK,IAAM/nH,EAAIgoH,GAAK,IAAMhoH,EAAIyF,EAAI,IAAMzF,EAAI0F,EAC3G,MACJ,IAAK,IACL,IAAK,IACDwQ,EAASlW,EAAI0xU,QAAU,IAAM1xU,EAAI6nH,GAAK,IAAM7nH,EAAI8nH,GAAK,IAAM9nH,EAAIyF,EAAI,IAAMzF,EAAI0F,EAC7E,MACJ,IAAK,IACL,IAAK,IACD,IAAI6kI,EAAMvqI,EAAI0xU,QACVqB,EAAM/yU,EAAIuoI,MACV1sH,EAAK7b,EAAI6xU,SAAW,IAAM,IAC1Bz1Q,EAAKp8D,EAAI8xU,MAAQ,IAAM,IAC3B57T,EAASq0H,EAAM,IAAMvqI,EAAI2xU,GAAK,IAAM3xU,EAAI4xU,GAAK,IAAMmB,EAAM,IAAMl3T,EAAI,IAAMugD,EAAI,IAAMp8D,EAAIyF,EAAI,IAAMzF,EAAI0F,EACrG,MACJ,IAAK,IACL,IAAK,IACDwQ,EAASlW,EAAI0xU,QAAU,IAAM1xU,EAAIyF,EACjC,MACJ,IAAK,IACL,IAAK,IACDyQ,EAASlW,EAAI0xU,QAAU,IAAM1xU,EAAI0F,EACjC,MACJ,IAAK,IACL,IAAK,IACDwQ,EAASlW,EAAI0xU,QAAU,IAAM1xU,EAAI+nH,GAAK,IAAM/nH,EAAIgoH,GAAK,IAAMhoH,EAAIyF,EAAI,IAAMzF,EAAI0F,EAMrF,OAAOwQ,CACX,CCnlBA,IAsBWupP,GAtBPk4D,GACK,QADLA,GAES,aAFTA,GAGO,UAHPA,GAIU,qBAJVA,GAKY,gBALZA,GAMY,gBANZA,GAOW,eAPXA,GAQW,eARXA,GASkB,uBATlBA,GAUW,eAVXA,GAWe,oBAXfA,GAYU,cAZVA,GAaa,iBAbbA,GAcc,mBAddA,GAegB,qBAfhBA,GAgBgB,sBAOpB,SAAWl4D,GACP,IAKIuzE,EACAC,GAAoB,EA+CxB,SAASC,EAAiBloU,GACtBmoU,EAAgBnoU,EAAKooU,eAAgBpoU,EAAKsiB,SAC1CtiB,EAAKsiB,QAAQ7H,iBAAiB,SAAS,WACnC,IAAIsG,EAASq9O,EAAchrQ,OACvB2tB,EAAO3B,UAAU6oB,SAAS,kBAAoBlnB,EAAO3B,UAAU6oB,SAAS,cACrElnB,EAAO3B,UAAU6oB,SAAS,cAC7BlnB,EAAO3B,UAAUC,IAAI,iBAEzB/e,YAAW,WACPm0P,EAAM4zE,eAAeroU,EAAKsiB,QAASvB,EACvC,GAAG,GACP,IACA/gB,EAAKsiB,QAAQ7H,iBAAiB,QAAQ,WAClC,IAAIsG,EAASq9O,EAAchrQ,OACvB2tB,EAAO3B,UAAU6oB,SAAS,kBAAoBlnB,EAAO3B,UAAU6oB,SAAS,cACrElnB,EAAO3B,UAAU6oB,SAAS,cAC7BlnB,EAAO3B,UAAUG,OAAO,iBAE5Bjf,YAAW,WACPm0P,EAAM4zE,eAAeroU,EAAKsiB,QAASvB,EACvC,GAAG,GACP,IACA/gB,EAAKsiB,QAAQ7H,iBAAiB,SAAS,WACnC0tT,EAAgBH,EAAWhoU,EAAKsiB,QACpC,GACJ,CAEA,SAAS6lT,EAAgBC,EAAgBxjE,GACrC,IAAIxgM,EAAawgM,EAAatwQ,MACX,KAAf8vE,IAAsB+hN,GAAkB/hN,IAAewgM,EAAau3C,cACpEv3C,EAAau3C,cAAc/8R,UAAUC,IAAI,iBAEjB,WAAnB+oT,GAA+BxjE,EAAau3C,eACjDv3C,EAAau3C,cAAc/8R,UAAUG,OAAO,gBAEpD,CACA,SAAS+oT,IACL,IAAIxvI,EAAQslE,EAAchrQ,MAAMkyG,uBAAuB,gBAAgB,GAClE6gL,GAAkBrtF,KACnBqpG,GAAS,CAACrpG,GAAQ6zH,IACd7zH,EAAM15K,UAAU6oB,SAAS0kR,KACzBnqB,GAAY,CAAC1pG,GAAQ6zH,IAGjC,CACA,SAAS4b,IACL,IAAIxnT,EAASq9O,EAAchrQ,MAC3B,GAAK2tB,EAAOjF,qBAAqB,YAAY,GAA2D,KAArDiF,EAAOjF,qBAAqB,YAAY,GAAGxnB,MACxC,KAAlDysB,EAAOjF,qBAAqB,SAAS,GAAGxnB,MAAc,CACtD,IAAIwkM,EAAQ/3K,EAAOukF,uBAAuB,gBAAgB,GACrD6gL,GAAkBrtF,KACfA,EAAM15K,UAAU6oB,SAAS0kR,KACzBnqB,GAAY,CAAC1pG,GAAQ6zH,IAEzBxqB,GAAS,CAACrpG,GAAQ6zH,IAE1B,CACJ,CACA,SAAS6b,EAAmBlmT,GACxBA,EAAQ7H,iBAAiB,QAAS6tT,GAClChmT,EAAQ7H,iBAAiB,OAAQ8tT,EACrC,CAMA,SAASE,EAAoBzoU,EAAM08E,EAAagsP,GAC5C,IAAIC,EAAexiD,GAAkBuiD,GAAiD3rU,GAAxB2rU,EAClC,SAAxB1oU,EAAKooU,gBACLI,EAAmBxoU,EAAKsiB,SAExB6jQ,GAAkBzpM,EAAYzT,YAC9ByT,EAAYzT,UAAY2/P,EAAqB5oU,EAAM2sT,GAAuBA,GAA2B,MAAOgc,GACxG3oU,EAAKsiB,QAAQ5E,YACb1d,EAAKsiB,QAAQ5E,WAAW+lC,aAAai5B,EAAYzT,UAAWjpE,EAAKsiB,WAIhE6jQ,GAAkBnmR,EAAK6oU,YACxBnsP,EAAYzT,UAAU7pD,UAAUC,IAAIstS,IAExCjwO,EAAYzT,UAAU7pD,UAAUC,IAAIstS,KAExC,IAAImc,EAAkBH,EAAY,OAAQ,CAAE3rU,UAAW2vT,KACnDoc,EAAoBJ,EAAY,QAAS,CAAE3rU,UAAW2vT,KAgB1D,GAfKxmC,GAAkBnmR,EAAKsiB,QAAQ1G,KAA2B,KAApB5b,EAAKsiB,QAAQ1G,KACpDmtT,EAAkBntT,GAAK,SAAW5b,EAAKsiB,QAAQ1G,GAAG5c,QAAQ,KAAM,KAChEiR,GAAWjQ,EAAKsiB,QAAS,CAAE,kBAAmBymT,EAAkBntT,MAE/DuqQ,GAAkBnmR,EAAKsiB,QAAQo3K,cAA6C,KAA7B15L,EAAKsiB,QAAQo3K,cAC7DqvI,EAAkB7kO,UAAY8kO,EAAkBhpU,EAAKsiB,QAAQo3K,aAC7D15L,EAAKsiB,QAAQwK,gBAAgB,gBAE5Bq5P,GAAkBnmR,EAAKk2F,aAAgBiwL,GAAkBnmR,EAAKk2F,WAAWwjG,cAC1C,KAAhC15L,EAAKk2F,WAAWwjG,cAChBqvI,EAAkB7kO,UAAY8kO,EAAkBhpU,EAAKk2F,WAAWwjG,cAE/DqvI,EAAkB7kO,WACnBxnB,EAAYzT,UAAU7pD,UAAUC,IAAIstS,IAEpCjwO,EAAYzT,UAAU7pD,UAAU6oB,SAAS,qBAAsB,CAC/D,IAAIghS,EAAYvsP,EAAYzT,UAAU9yD,cAAc,oBACpD8yT,EAAUltT,YAAY/b,EAAKsiB,SAC3B2mT,EAAUltT,YAAY+sT,GACtBG,EAAUltT,YAAYgtT,EAC1B,MAEIrsP,EAAYzT,UAAUltD,YAAY/b,EAAKsiB,SACvCo6D,EAAYzT,UAAUltD,YAAY+sT,GAClCpsP,EAAYzT,UAAUltD,YAAYgtT,GAEtCG,EAAiBlpU,EAAKsiB,QAAQhuB,MAAOy0U,GACT,WAAxB/oU,EAAKooU,iBACDW,EAAkB3pT,UAAU6oB,SAAS0kR,KACrCnqB,GAAY,CAACumC,GAAoBpc,IAErCxqB,GAAS,CAAC4mC,GAAoBpc,KAEN,SAAxB3sT,EAAKooU,iBAELpoU,EAAKsiB,QAAQ7H,iBAAiB,SAAS,SAAUjR,GAC7C0/T,EAAiBlpU,EAAKsiB,QAAQhuB,MAAOy0U,EAAmB/oU,EAAKsiB,QACjE,IAEAtiB,EAAKsiB,QAAQ7H,iBAAiB,QAAQ,SAAUjR,GAC5C0/T,EAAiBlpU,EAAKsiB,QAAQhuB,MAAOy0U,EACzC,KAEC5iD,GAAkBnmR,EAAKsiB,QAAQ6hD,aAAa,QAC7C4kQ,EAAkBh8S,aAAa,MAAO/sB,EAAKsiB,QAAQ6hD,aAAa,MAExE,CACA,SAASglQ,EAAoBv4U,EAAMq4E,GAClB,WAATr4E,GAAqBq4E,EAAU7pD,UAAU6oB,SAAS,cAClDghC,EAAU7pD,UAAUC,IAAI,gBAEhC,CA2BA,SAAS+pT,EAAgB90U,EAAO+S,EAAQ8uK,GAChC7hL,IAAU6hL,EACVqsH,GAAY,CAACn7R,GAASslT,IAGtBxqB,GAAS,CAAC96R,GAASslT,GAE3B,CACA,SAASuc,EAAiB50U,EAAOwkM,EAAOx2K,SACpB,IAAZA,IAAsBA,EAAU,MAChChuB,IACA6tS,GAAS,CAACrpG,GAAQ6zH,IACd7zH,EAAM15K,UAAU6oB,SAAS0kR,KACzBnqB,GAAY,CAAC1pG,GAAQ6zH,MAIK,MAAXrqS,GAAkBA,IAAY7Y,SAASkmB,iBAElDmpK,EAAM15K,UAAU6oB,SAAS0kR,KACzBnqB,GAAY,CAAC1pG,GAAQ6zH,IAEzBxqB,GAAS,CAACrpG,GAAQ6zH,IAG9B,CACA,SAASvuD,EAAc97O,GACnB,IAAI5E,EAAayoQ,GAAkB7jQ,EAAQ5E,YAAc4E,EACnDA,EAAQ5E,WAId,OAHIA,GAAcA,EAAW0B,UAAU6oB,SAAS,qBAC5CvqB,EAAaA,EAAWA,YAErBA,CACX,CA0BA,SAAS2rT,EAAmB/mT,EAASjb,EAAQ4hE,SAChBxvE,GAArBwuU,GAAkCA,IAClC5gU,EAAOoT,iBAAiB,SAAS,SAAUjR,GACjC8Y,EAAQlD,UAAU6oB,SAAS0kR,KAAuBrqS,EAAQy6J,WAC5DvzK,EAAMxB,iBACFsa,IAAY7Y,SAASkmB,eACrBrN,EAAQmnB,QAEZnnB,EAAQhuB,MAAQ,GAChB6tS,GAAS,CAAC96R,GAASslT,IAE3B,IAGJrqS,EAAQ7H,iBAAiB,SAAS,SAAUjR,GACxC4/T,EAAgB9mT,EAAQhuB,MAAO+S,EACnC,IAEAib,EAAQ7H,iBAAiB,SAAS,SAAUjR,GACxC4/T,EAAgB9mT,EAAQhuB,MAAO+S,EAAQib,EAAQy6J,SACnD,IAEAz6J,EAAQ7H,iBAAiB,QAAQ,SAAUjR,GACvClJ,YAAW,WACP6hS,GAAS,CAAC96R,GAASslT,GACvB,GAAG,IACP,GACJ,CAMA,SAAS2c,EAAchnT,EAAS8lT,GAE5B,GADahqE,EAAc97O,GAChBlD,UAAU6oB,SAAS0kR,KAA6C,SAAnByb,EAA2B,CAC/E,IAAItvI,EAAQslE,EAAc97O,GAASgjF,uBAAuB,gBAAgB,GAC1E4jO,EAAiB5mT,EAAQhuB,MAAOwkM,EAAOx2K,EAC3C,CACJ,CAIA,SAASsmT,EAAqB5oU,EAAMhD,EAAWusU,EAAU76S,EAAKg6S,GAC1D,IACIz/P,EADA0/P,EAAexiD,GAAkBuiD,GAAiD3rU,GAAxB2rU,EAU9D,OARKviD,GAAkBnmR,EAAK6oU,WAKxB5/P,EAAY0/P,EAAYj6S,EAAK,CAAE1xB,UAAWA,KAJ1CisE,EAAY0/P,EAAY3oU,EAAK6oU,UAAW,CAAE7rU,UAAWA,KAC3CoiB,UAAUC,IAAIkqT,GAK5BtgQ,EAAU7pD,UAAUC,IAAI,qBACjB4pD,CACX,CACA,SAAS+/P,EAAkBtvI,GACvB,IAAItiM,EAAS,GACb,IAAK+uR,GAAkBzsF,IAAgC,KAAhBA,EAAoB,CACvD,IAAI8vI,EAAU//T,SAAS1M,cAAc,QACrCysU,EAAQ3tT,UAAY,wBAA0B69K,EAAc,MAE5DtiM,EADmBoyU,EAAQ7tU,SAAS,GACf+9L,WACzB,CACA,OAAOtiM,CACX,CA8CA,SAASqyU,EAAYhiB,EAAUzyP,EAAU00Q,GAChCvjD,GAAkBujD,IAA0B,KAAbA,GAChClnC,GAAYxtO,EAAU00Q,EAASn9S,MAAM,MAEpC45P,GAAkBshC,IAA0B,KAAbA,GAChCtlB,GAASntO,EAAUyyP,EAASl7R,MAAM,KAE1C,CAWA,SAAS87S,EAAe/lT,EAAS2mD,EAAW0gQ,GACxC,IAAIn0J,EAA8B,gBAAfm0J,EAA+BrnT,EAAUA,EAAQlF,YAAcxf,SAASmf,iBAAiBuF,EAAS,MAAMy4G,iBAAiB,iBACvIorJ,GAAkBl9M,EAAUq8B,uBAAuB,wBAAwB,MACxEr8B,EAAUq8B,uBAAuB,wBAAwB,GAAGlmF,UAAU6oB,SAAS,0BAC/EghC,EAAUq8B,uBAAuB,wBAAwB,GAAGlmF,UAAUG,OAAO,0BAE7Ei2J,EAAevsG,EAAUq8B,uBAAuB,wBAAwB,GAAGloF,aAAeo4J,IAAiBvsG,EAAUq8B,uBAAuB,wBAAwB,GAAGloF,cACvK6rD,EAAUq8B,uBAAuB,wBAAwB,GAAGlmF,UAAUC,IAAI,yBAGtF,CA8BA,SAASuqT,EAAelwI,EAAap3K,GACjCo3K,EAAcsvI,EAAkBtvI,GAChC,IAAIyiH,EAAgB/9C,EAAc97O,GAC9B65R,EAAc/8R,UAAU6oB,SAAS0kR,IAC5BxmC,GAAkBzsF,IAAgC,KAAhBA,GAMnCyiH,EAAc/8R,UAAUC,IAAIstS,IAC5BxQ,EAAc72M,uBAAuB,wBAAwB,GAAK62M,EAAc72M,uBAAuBqnN,IAAsB,GAAGhxT,SAAS,GAAGs1B,YAAc,GAAKkrR,EAAc72M,uBAAuBqnN,IAAsB,GAAG17R,YAAc,KAN3OkrR,EAAc72M,uBAAuB,wBAAwB,GAAK62M,EAAc72M,uBAAuBqnN,IAAsB,GAAGhxT,SAAS,GAAGs1B,YAAcyoK,EAAcyiH,EAAc72M,uBAAuBqnN,IAAsB,GAAG17R,YAAcyoK,EACpPyiH,EAAc/8R,UAAUG,OAAOotS,IAC/BrqS,EAAQwK,gBAAgB,gBAQvBq5P,GAAkBzsF,IAAgC,KAAhBA,EAInCp3K,EAAQwK,gBAAgB,eAHxB7c,GAAWqS,EAAS,CAAE,YAAeo3K,GAMjD,CAaA,SAASmwI,EAAYC,EAAYxnT,EAAS8lT,GAClC0B,EACA75T,GAAWqS,EAAS,CAAE6zJ,SAAU,KAGhC7zJ,EAAQwK,gBAAgB,YAEvBq5P,GAAkBiiD,IACnBkB,EAAchnT,EAAS8lT,EAE/B,CAaA,SAASvb,EAAakd,EAAO/0Q,GACrB+0Q,EACA5nC,GAASntO,EAAU23P,IAGnBnqB,GAAYxtO,EAAU23P,GAE9B,CAaA,SAASqd,EAAWC,EAAU3nT,EAAS8lT,EAAgB8B,GACnD,IAAIC,EAAgB,CAAE,SAAY,WAAY,gBAAiB,QAC3DC,GAAkBjkD,GAAkB+jD,GACpCD,GACA3nT,EAAQlD,UAAUG,OAAOotS,IACzB0d,EAAiBF,EAAe7nT,GAC5B8nT,GACA5nC,GAAY,CAAC0nC,GAAiBvd,MAIlCrqS,EAAQlD,UAAUC,IAAIstS,IACtB2d,EAAcH,EAAe7nT,GACzB8nT,GACAjoC,GAAS,CAAC+nC,GAAiBvd,KAG9BxmC,GAAkBiiD,IACnBkB,EAAchnT,EAAS8lT,EAE/B,CAEA,SAASmC,EAAeC,EAASloT,EAASo6D,EAAa+tP,EAAS/B,GAC5D,IAAIC,EAAexiD,GAAkBuiD,GAAiD3rU,GAAxB2rU,EAC1D8B,EACA9tP,EAAYguP,YAtSpB,SAA2BpoT,EAASo6D,EAAa+tP,EAAS/B,GACtD,IACIrhU,GADe8+Q,GAAkBuiD,GAAiD3rU,GAAxB2rU,GACrC,OAAQ,CAAE1rU,UAAW2vT,KAC1C1jP,EAAYyT,EAAYzT,UAgB5B,OAfKk9M,GAAkBskD,IAID/tP,EAAYzT,UAAU7pD,UAAU6oB,SAAS0kR,IACvDjwO,EAAYzT,UAAU9yD,cAAc,IAAMw2S,IAAwBrqS,GAC1D8hF,sBAAsB,WAAY/8F,GAL9C4hE,EAAUltD,YAAY1U,IAOrB8+Q,GAAkBl9M,IACnBA,EAAU7pD,UAAU6oB,SAAS0kR,KAC7BxqB,GAAS,CAACl5N,GAAY0jP,IAE1BxqB,GAAS,CAAC96R,GAASslT,IACnB0c,EAAmB/mT,EAASjb,GAC5BA,EAAO0lB,aAAa,aAAc,SAC3B1lB,CACX,CAkRkCsjU,CAAkBroT,EAASo6D,EAAa+tP,EAAS9B,IAG3EppT,GAAOm9D,EAAYguP,aACnBhuP,EAAYguP,YAAc,KAElC,CAaA,SAASL,EAAiB17Q,EAAOrsC,GAC7B,IAAK,IAAIyrC,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKi8D,GAAQZ,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC5D,IAAIh7D,EAAM4a,EAAGogD,GACTouP,EAAgB/9C,EAAc97O,GACtB,aAARvvB,GACAuvB,EAAQlD,UAAUG,OAAOotS,IAEjB,aAAR55T,GAAsBopT,EAAc/8R,UAAU6oB,SAAS0kR,KACvDxQ,EAAc/8R,UAAUG,OAAOotS,IAEvB,gBAAR55T,GAAyBopT,EAAc/8R,UAAU6oB,SAAS0kR,IAC1DxQ,EAAc72M,uBAAuBqnN,IAAsB,GAAG17R,YAAc,GAG5E3O,EAAQwK,gBAAgB/5B,EAEhC,CACJ,CAaA,SAASu3U,EAAc37Q,EAAOrsC,GAC1B,IAAK,IAAIyrC,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKi8D,GAAQZ,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC5D,IAAIh7D,EAAM4a,EAAGogD,GACTouP,EAAgB/9C,EAAc97O,GACtB,aAARvvB,GACAuvB,EAAQlD,UAAUC,IAAIstS,IAEd,aAAR55T,GAAsBopT,EAAc/8R,UAAU6oB,SAAS0kR,KACvDxQ,EAAc/8R,UAAUC,IAAIstS,IAEpB,gBAAR55T,GAAyBopT,EAAc/8R,UAAU6oB,SAAS0kR,IAC1DxQ,EAAc72M,uBAAuBqnN,IAAsB,GAAG17R,YAAc09B,EAAM57D,GAGlFuvB,EAAQyK,aAAah6B,EAAK47D,EAAM57D,GAExC,CACJ,CA6EA,SAAS63U,EAAkBluP,EAAaisP,GACpC,GAAIjsP,EAAYt9D,UAAU6oB,SAAS,cAAgBy0C,EAAY4oB,uBAAuB,gBAAgB,GAAI,CACtG,IAAIulO,EAAmBlC,EAAY,OAAQ,CAAE3rU,UAAW2vT,KACxDke,EAAiBhvT,UAAY6gE,EAAY4oB,uBAAuB,gBAAgB,GAAGzpF,UACnF6gE,EAAY4oB,uBAAuB,gBAAgB,GAAGzpF,UAAY,GAClE6gE,EAAY4oB,uBAAuB,gBAAgB,GAAGvpF,YAAY8uT,EACtE,CACJ,CAmBA,SAASC,EAAgBC,EAAU9hQ,EAAW5hE,GAC1C,IAAI2jU,EAAa,GACjBA,EAAW/0U,KAAKoR,GAChB,IAAIy5B,EAAUqlP,GAAkB9+Q,GAC5B4hE,EAAUtvD,iBAAiB,uBAAyBqxT,EACxD,GAAID,GAAYjqS,EAAQ/vC,OAAS,EAC7B,IAAK,IAAI4J,EAAQ,EAAGA,EAAQmmC,EAAQ/vC,OAAQ4J,IACxCmmC,EAAQnmC,GAAO8f,iBAAiB,YAAawwT,GAAoB,GACjEnqS,EAAQnmC,GAAO8f,iBAAiB,UAAWywT,GAAkB,QAGhE,GAAIpqS,EAAQ/vC,OAAS,EACtB,IAAS4J,EAAQ,EAAGA,EAAQmmC,EAAQ/vC,OAAQ4J,IACxCmmC,EAAQnmC,GAAO6jB,oBAAoB,YAAaysT,EAAoB73U,MACpE0tC,EAAQnmC,GAAO6jB,oBAAoB,UAAW0sT,EAAkB93U,KAG5E,CAMA,SAAS63U,IAIL,IAFA,IAPoBhiQ,EAAW5hE,EAQ3B+yT,EAAYhnU,KAAK+oT,eACbie,EAAUh7S,UAAU6oB,SAAS,kBACjCmyR,EAAYA,EAAUje,cAVK90S,EAOrBjU,MAPU61E,EAYLmxP,GAXAh7S,UAAU6oB,SAAS,eAAkBghC,EAAU9yD,cAAc,SAAS4mK,UACjF11K,EAAO+X,UAAUC,IAAI,qBAW7B,CACA,SAAS6rT,IAEL,IAAI7oC,EAAMjvS,KACVkN,YAAW,WACP+hS,EAAIjjR,UAAUG,OAAO,qBACzB,GAAG,IACP,CACA,SAAS4rT,EAAc9oD,EAAWsmD,GAC9B,IAAIthU,EAASshU,EAAY,OAAQ,CAAE3rU,UAAWqlR,IAE9C,OADAh7Q,EAAO+X,UAAUC,IAAI,sBACdhY,CACX,CA+CA,SAAS+jU,EAAY/oD,EAAWp5M,EAAW27L,EAAc8jE,GAErD,IAAIC,EAAexiD,GAAkBuiD,GAAiD3rU,GAAxB2rU,EAC1DrhU,EAAS8jU,EAAc9oD,EAAWsmD,GACtC1/P,EAAU7pD,UAAUC,IAAI,qBACxB,IAAIgsT,EAAepiQ,EAAU9yD,cAAc,oBAC3C,GAAIgwQ,GAAkBklD,GAAe,CACjCA,EAAe1C,EAAY,OAAQ,CAAE3rU,UAAW,oBAChD4nQ,EAAalnP,WAAW+lC,aAAa4nR,EAAczmE,GACnD,IAAIxtQ,EAAS6xE,EAAUtvD,iBAAiBirP,EAAattP,QAAU,QAC/D+zT,EAAatvT,YAAY6oP,GACzB,IAAK,IAAI9xQ,EAAI,EAAGA,EAAIsE,EAAOrG,OAAQ+B,IAC/Bu4U,EAAatvT,YAAY3kB,EAAOtE,GAExC,CAMA,OALAu4U,EAAa3tT,WAAW+lC,aAAap8C,EAAQgkU,GACxCpiQ,EAAU7pD,UAAU6oB,SAAS0kR,KAC9B1jP,EAAU7pD,UAAUC,IAAIstS,IAE5Bme,GAAgB,EAAM7hQ,EAAW5hE,GAC1BA,CACX,CAYA,SAASikU,EAAWjpD,EAAWp5M,EAAWy/P,GACtC,IACIrhU,EAAS8jU,EAAc9oD,EADR8D,GAAkBuiD,GAAiD3rU,GAAxB2rU,GAS9D,OAPKz/P,EAAU7pD,UAAU6oB,SAAS0kR,KAC9B1jP,EAAU7pD,UAAUC,IAAIstS,KAEhB1jP,EAAU7pD,UAAU6oB,SAAS,qBAAwBghC,EAAU9yD,cAAc,oBACrF8yD,GACCltD,YAAY1U,GACjByjU,GAAgB,EAAM7hQ,EAAW5hE,GAC1BA,CACX,CAEA,SAASkkU,EAAkB3a,EAAkBrqT,GACtB,WAAfA,EAAM3V,KACNggU,EAAiBxxS,UAAUC,IAAI,YAE1BuxS,EAAiBxxS,UAAU6oB,SAAS,aACzC2oR,EAAiBxxS,UAAUG,OAAO,WAE1C,CAxyBAk1O,EAAM+2E,YAtCN,SAAqBxrU,EAAM0oU,GACvB,IAAIC,EAAexiD,GAAkBuiD,GAAiD3rU,GAAxB2rU,EAC1DhsP,EAAc,CAAEzT,UAAW,KAAMnoC,QAAS,GAAI4pS,YAAa,MAqB/D,GApBA1C,EAAYhoU,EAAKooU,eACjBH,EAAoBjoU,EAAKyrU,gBACrBtlD,GAAkBnmR,EAAKooU,iBAA2C,UAAxBpoU,EAAKooU,gBAC/C1rP,EAAYzT,UAAY2/P,EAAqB5oU,EAAM2sT,GAAuBA,GAA2B,OAAQgc,GAC7G3oU,EAAKsiB,QAAQ5E,WAAW+lC,aAAai5B,EAAYzT,UAAWjpE,EAAKsiB,SACjE6/Q,GAAS,CAACniS,EAAKsiB,SAAUqqS,IACzBjwO,EAAYzT,UAAUltD,YAAY/b,EAAKsiB,UAGvCmmT,EAAoBzoU,EAAM08E,EAAaisP,GAE3CT,EAAiBloU,GACZmmR,GAAkBnmR,EAAKk2F,aAAgBiwL,GAAkBnmR,EAAKk2F,WAAWw1O,mBAC1E1rU,EAAKk2F,WAAWw1O,iBAA4C,aAAzB1rU,EAAKsiB,QAAQhL,UAChDizT,EAAevqU,EAAKk2F,WAAWw1O,gBAAiB1rU,EAAKsiB,QAASo6D,GAAa,EAAMisP,GACjFjsP,EAAYguP,YAAY39S,aAAa,OAAQ,UACzC2vD,EAAYzT,UAAU7pD,UAAU6oB,SAAS0kR,KACzCxqB,GAAS,CAACzlN,EAAYzT,WAAY0jP,MAGrCxmC,GAAkBnmR,EAAK8gC,UAAqC,aAAzB9gC,EAAKsiB,QAAQhL,QACjD,IAAK,IAAIxkB,EAAI,EAAGA,EAAIkN,EAAK8gC,QAAQ/vC,OAAQ+B,IACrC4pF,EAAY57C,QAAQ7qC,KAAKq1U,EAAWtrU,EAAK8gC,QAAQhuC,GAAI4pF,EAAYzT,UAAW0/P,IAWpF,OARKxiD,GAAkBnmR,EAAKsiB,UAAqC,aAAzBtiB,EAAKsiB,QAAQhL,SACjD6qR,GAAS,CAACzlN,EAAYzT,WAAY0jP,IAEtC4e,EAAkB7uP,EAAYzT,UAAWjpE,EAAKsiB,SAE9CsoT,GADAluP,EAiJJ,SAA0B18E,EAAM08E,GAC5B,IAAKypM,GAAkBnmR,EAAKk2F,YACxB,IAAK,IAAInoC,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKsN,EAAKk2F,YAAanoC,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAEtE,OADWpgD,EAAGogD,IAEV,IAAK,WACD07Q,EAAYzpU,EAAKk2F,WAAWuxN,SAAU,CAAC/qO,EAAYzT,YACnDkgQ,EAAoBnpU,EAAKooU,eAAgB1rP,EAAYzT,WACrD,MACJ,IAAK,UACD+gQ,EAAWhqU,EAAKk2F,WAAWo+B,QAASt0H,EAAKsiB,QAAStiB,EAAKooU,eAAgB1rP,EAAYzT,WACnF,MACJ,IAAK,YACD4jP,EAAa7sT,EAAKk2F,WAAW86M,UAAW,CAACt0N,EAAYzT,YACrD,MACJ,IAAK,cACD2gQ,EAAe5pU,EAAKk2F,WAAWwjG,YAAa15L,EAAKsiB,SACjD,MACJ,IAAK,WACDunT,EAAY7pU,EAAKk2F,WAAWigF,SAAUn2K,EAAKsiB,SAGvD,CAEJ,OAAOo6D,CACX,CA1KkBivP,CAAiB3rU,EAAM08E,IACPzT,UAAW0/P,GAGlCjsP,CACX,EA4BA+3K,EAAMyzE,iBAAmBA,EAoCzBzzE,EAAM+zE,mBAAqBA,EA6L3B/zE,EAAM40E,mBAAqBA,EAI3B50E,EAAM7gQ,QAHN,WACIg4U,CACJ,EAoEAn3E,EAAMplO,SAtBN,SAAkB/6B,EAAOguB,EAAS8lT,EAAgBsC,GAM9C,GALApoT,EAAQhuB,MAAQA,EAChB+zU,EAAe/lT,EAASA,EAAQ65R,eAC1Bh2B,GAAkBiiD,IAAuC,SAAnBA,GACxCkB,EAAchnT,EAAS8lT,IAEtBjiD,GAAkBukD,IAAgBA,EAAa,CAChD,IAAIvuB,EAAgB/9C,EAAc97O,GAClC,IAAK6jQ,GAAkBg2B,GAAgB,CACnC,IAAI90S,EAAS80S,EAAc72M,uBAAuBqnN,IAAsB,GACnExmC,GAAkB9+Q,KACfib,EAAQhuB,QAAU6xR,GAAkBg2B,IAAkBA,EAAc/8R,UAAU6oB,SAAS,iBACvFu6P,GAAY,CAACn7R,GAASslT,IAGtBxqB,GAAS,CAAC96R,GAASslT,IAG/B,CACJ,CACAwb,EAAgBC,EAAgB9lT,EACpC,EAqBAmyO,EAAMg1E,YAAcA,EAqBpBh1E,EAAM4zE,eAAiBA,EAmBvB5zE,EAAMs9D,SATN,SAAkBp1T,EAAOssE,GACA,kBAAVtsE,EACPssE,EAAUh1E,MAAM0I,MAAQwqR,GAAWxqR,GAEb,kBAAVA,IACZssE,EAAUh1E,MAAM0I,MAASA,EAAM5M,MAAM,WAAe4M,EAAUwqR,GAAWxqR,IAE7E0rU,EAAep/P,EAAU13C,WAAY03C,EACzC,EAkCAwrL,EAAMm1E,eAAiBA,EAuBvBn1E,EAAMo1E,YAAcA,EAoBpBp1E,EAAMo4D,aAAeA,EAiCrBp4D,EAAMu1E,WAAaA,EAWnBv1E,EAAM81E,eAAiBA,EA8BvB91E,EAAM41E,iBAAmBA,EA8BzB51E,EAAM61E,cAAgBA,EAmBtB71E,EAAMo3E,eAlBN,SAAwBtlU,GACpB,IArf0B+b,EAqftB2mD,EAAY1iE,EAAM0iE,UACtB,IAAKk9M,GAAkBl9M,IAAcA,EAAU7pD,UAAU6oB,SAAS0kR,IAAwB,CACtF,IAAImf,EAAW7iQ,EAAU9yD,cAAc,YAAc8yD,EAAU9yD,cAAc,YACzE8yD,EAAU9yD,cAAc,SACxBujL,EAAczwH,EAAU9yD,cAAc,IAAMw2S,IAAsB17R,YAClEy5S,EAA2D,OAA7CzhQ,EAAU9yD,cAAc,iBAC1Cy4J,GAAO3lG,EAAU9yD,cAAc,IAAMw2S,KACrC/9I,GAAO3lG,EAAU9yD,cAAc,IAAMw2S,KACrCvtS,GAAU6pD,EAAW,CAAC0jP,IAAwB,CAACA,MA7fzBrqS,EA8fDwpT,GA7fjBttT,oBAAoB,QAAS8pT,GACrChmT,EAAQ9D,oBAAoB,OAAQ+pT,GA6fhCt4T,GAAW67T,EAAU,CAAE,YAAepyI,IACtCoyI,EAAS1sT,UAAUC,IAAIstS,IAClB+d,GAAoC,UAArBoB,EAASx0T,SACzBw0T,EAASh/S,gBAAgB,WAEjC,CACJ,EA8CA2nO,EAAMs3E,YA5CN,SAAqBxlU,EAAO3V,EAAM8oM,EAAagvI,GAC3C,IAAIC,EAAexiD,GAAkBuiD,GAAiD3rU,GAAxB2rU,EAC1Dz/P,EAAYizD,GAAQ31H,EAAO,IAAMomT,IAErC,GADAqb,EAAYp3U,EACC,UAATA,EAAkB,CAClB,IAAIi4U,EAAY5/P,EAAU3xD,QAEtBtX,EAAO,CAAEsiB,QAAS/b,EAAO6hU,eAAgBx3U,EACzCi4U,UAFJA,EAA0B,QAAdA,GAAqC,SAAdA,EAAuBA,EAAY,KAE5C3yO,WAAY,CAAEwjG,YAAaA,IACjDsyI,EAAU/iQ,EAAU9yD,cAAc,iBAClC81T,EAAW,CAAEhjQ,UAAWA,GAC5B1iE,EAAM6Y,UAAUG,OAAOotS,IACvB8b,EAAoBzoU,EAAMisU,EAAUtD,GACpCiC,EAAkBqB,EAAShjQ,UAAW0/P,GACtCN,EAAeroU,EAAKsiB,QAAS2pT,EAAShjQ,WACtC,IAAIijQ,EAAgBjjQ,EAAU7pD,UAAU6oB,SAAS,qBACjD,GAAIk+O,GAAkB6lD,GAClB,GAAIE,EAEAF,EADgB/iQ,EAAU9yD,cAAc,oBACpBA,cAAc,4BAGlC61T,EAAU/iQ,EAAU9yD,cAAc,uBAG1C,GAAIgwQ,GAAkB6lD,GACdE,IACAF,EAAU/iQ,EAAU9yD,cAAc,wBAElCgwQ,GAAkB6lD,IAClB/iQ,EAAU7pD,UAAUG,OAAOotS,QAG9B,CACD,IAAIwf,EAAYljQ,EAAU9yD,cAAc,IAAMw2S,IAC1Cyf,EAAYnjQ,EAAU9yD,cAAc,IAAMw2S,IAC1C7+S,EAAUo+T,EAAgBjjQ,EAAU9yD,cAAc,oBAAsB8yD,EAC5En7D,EAAQ21C,aAAal9C,EAAOylU,GAC5Bl+T,EAAQ21C,aAAa0oR,EAAWH,GAChCl+T,EAAQ21C,aAAa2oR,EAAWJ,EACpC,CACJ,CACA7C,EAAoBv4U,EAAM2V,EAAM41S,cACpC,EAqBA1nD,EAAMm2E,kBAAoBA,EAiB1Bn2E,EAAM43E,UALN,SAAmBtB,EAAUkB,GACzB,IAAK,IAAIn5U,EAAI,EAAGA,EAAIm5U,EAASl7U,OAAQ+B,IACjCg4U,EAAgBC,EAAUkB,EAASn5U,GAAGm2E,UAE9C,EA+EAwrL,EAAM63E,QApBN,SAAiBtpU,EAAUupU,EAAOtjQ,EAAW1iE,EAAOimU,GAEhD,IAAIp1U,EAA4B,kBAAXm1U,EAAsBA,EAAMhgT,MAAM,KACjDggT,EACN,GAA+B,WAA3BvpU,EAASwd,cACT,IAAK,IAAIutC,EAAK,EAAG+gP,EAAW13S,EAAQ22D,EAAK+gP,EAAS/9S,OAAQg9D,IAAM,CAE5Du9Q,EADWx8B,EAAS/gP,GACHkb,EAAWujQ,EAChC,MAGA,IAAK,IAAI7+T,EAAK,EAAG8+T,EAAWr1U,EAAQuW,EAAK8+T,EAAS17U,OAAQ4c,IAAM,CAE5Dy9T,EADWqB,EAAS9+T,GACFs7D,EAAW1iE,EAAOimU,EACxC,CAEAvjQ,EAAUq8B,uBAAuB,sBAAsB,IAAMr8B,EAAUq8B,uBAAuB,yBAAyB,IACvHr8B,EAAUq8B,uBAAuB,yBAAyB,GAAGlmF,UAAUC,IAAI,SAEnF,EAoCAo1O,EAAM22E,YAAcA,EAuBpB32E,EAAM62E,WAAaA,EASnB72E,EAAM82E,kBAAoBA,CAC7B,CA/1BD,CA+1BG92E,KAAUA,GAAQ,CAAC,ICz3BtB,ICIWi4E,GACAA,GDLP17Q,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAMI82U,GAAgB,gBAChBC,GAAgB,CAAC,QAAS,QAAS,SAanCC,GAAyB,SAAU9zU,GAQnC,SAAS8zU,EAAQ15U,EAASmvB,GACtB,IAAItpB,EAAQD,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,KAQnD,OAPA4F,EAAM8zU,cAAgB,KACtB9zU,EAAM+zU,WAAY,EAClB/zU,EAAMg0U,eAAgB,EACtBh0U,EAAMquO,QAAS,EACfruO,EAAMi0U,mBAAqB,KAC3Bj0U,EAAMojU,OAAQ,EACdpjU,EAAMk0U,eAAiB/5U,EAChB6F,CACX,CAsrBA,OAvsBAg4D,GAAU67Q,EAAS9zU,GA0BnB8zU,EAAQ77U,UAAUs0S,kBAAoB,SAAUmF,EAASC,GACrD,IAAK,IAAI38O,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,iBACD0mM,GAAMo3E,eAAez4U,KAAK+5U,gBAC1B14E,GAAMs3E,YAAY34U,KAAKg6U,kBAAmBh6U,KAAKg1U,eAAgBh1U,KAAKsmM,aACpE,MACJ,IAAK,UACD+6D,GAAMu1E,WAAW52U,KAAKkhI,QAASlhI,KAAKg6U,kBAAmBh6U,KAAKg1U,eAAgBh1U,KAAK+5U,eAAelkQ,WAChG71E,KAAKi6U,iBACL,MACJ,IAAK,QACD54E,GAAMs9D,SAAStnB,EAAQ9tS,MAAOvJ,KAAK+5U,eAAelkQ,WAClD,MACJ,IAAK,QAEG,IAAI6tP,EAAe1jU,KAAK8wS,oBACxB9wS,KAAK8wS,qBAAsB,EACtB9wS,KAAKi6L,QAAQj6L,KAAKkB,SACnBlB,KAAKkB,MAAQlB,KAAKkB,MAAM6J,YAE5B/K,KAAK8wS,oBAAsB4yB,EAC3BriE,GAAMplO,SAASj8B,KAAKkB,MAAOlB,KAAKg6U,kBAAmBh6U,KAAKg1U,eAAgBh1U,KAAKs4U,iBACzEt4U,KAAK45U,gBACL55U,KAAKkvB,QAAQhuB,MAAQlB,KAAKg6U,kBAAkB94U,OAEhDlB,KAAK65U,mBAAqB75U,KAAKg6U,kBAAkB94U,OAE5ClB,KAAK25U,WAAa35U,KAAKgpU,SAAiC,IAAvBhpU,KAAKk6U,eACvCl6U,KAAK05U,cAAgB15U,KAAK25U,UAAY35U,KAAKkB,MAAQlB,KAAK05U,cACxD15U,KAAKk6U,eAAgB,IAEhBnnD,GAAkB/yR,KAAK25U,aAAe35U,KAAK25U,WAC5C35U,KAAK25U,YAAc35U,KAAKk6U,eAAmBl6U,KAAK25U,WAAa5mD,GAAkB/yR,KAAKk6U,iBACxFl6U,KAAKm6U,mBAGb,MACJ,IAAK,iBAEGn6U,KAAKo6U,0BACLp6U,KAAKq6U,0BACLr6U,KAAKs6U,iBAAgB,GACrBj5E,GAAM82E,kBAAkBn4U,KAAK+5U,eAAelkQ,UAAW71E,KAAKkvB,SAEhE,MACJ,IAAK,WACDmyO,GAAMo1E,YAAYz2U,KAAK+iL,SAAU/iL,KAAKg6U,mBACtC,MACJ,IAAK,OACsC,aAAnCh6U,KAAKg6U,kBAAkB91T,UACvBlkB,KAAKg6U,kBAAkBrgT,aAAa,OAAQ35B,KAAKxC,MACjD6jQ,GAAM82E,kBAAkBn4U,KAAK+5U,eAAelkQ,UAAW71E,KAAKkvB,SAC5DlvB,KAAKm6U,oBAET,MACJ,IAAK,kBACsC,aAAnCn6U,KAAKg6U,kBAAkB91T,UACvBm9O,GAAM81E,eAAen3U,KAAKs4U,gBAAiBt4U,KAAKg6U,kBAAmBh6U,KAAK+5U,gBACxE/5U,KAAKi6U,kBAET,MACJ,IAAK,YACD54E,GAAMo4D,aAAaz5T,KAAK49S,UAAW,CAAC59S,KAAK+5U,eAAelkQ,YACxD,MACJ,IAAK,cACDwrL,GAAMm1E,eAAex2U,KAAKsmM,YAAatmM,KAAKg6U,mBAC5C34E,GAAM4zE,eAAej1U,KAAKg6U,kBAAmBh6U,KAAK+5U,eAAelkQ,WACjE,MACJ,IAAK,eACyB,OAAtB71E,KAAKu6U,cAA+C,KAAtBv6U,KAAKu6U,aACnCv6U,KAAKg6U,kBAAkBO,aAAev6U,KAAKu6U,aAG3Cv6U,KAAKi3U,iBAAiB,CAAC,iBAE3B,MACJ,IAAK,WACDj3U,KAAKw6U,eAAenjC,EAAQgd,SAAU/c,EAAQ+c,UAC9C,MACJ,IAAK,SACDr0T,KAAKy6U,UAAY,IAAIx1C,GAAqBjlS,KAAKqwC,QAC/CrwC,KAAKwnI,KAAKwjL,UAAUhrT,KAAKqwC,QACzBrwC,KAAKwxS,cAAc,CAAElrG,YAAatmM,KAAKwnI,KAAK6jL,YAAY,iBAAkB,GAC1EhqD,GAAMm1E,eAAex2U,KAAKsmM,YAAatmM,KAAKg6U,mBAGxD,CACJ,EAOAP,EAAQ77U,UAAU40S,cAAgB,WAC9B,MAAO,SACX,EACAinC,EAAQ77U,UAAUq8L,QAAU,SAAUxnK,GAClC,OAASA,GAAO,QAAQ3mB,KAAK2mB,EACjC,EACAgnT,EAAQ77U,UAAUugT,UAAY,WAO1B,GANAn+S,KAAKwJ,aAAexJ,KAAKkvB,QAAQ+uC,WAAU,GAC3Cj+D,KAAK06U,YAAc5xM,GAAQ9oI,KAAKkvB,QAAS,QACpC6jQ,GAAkB/yR,KAAK06U,eACxB16U,KAAKi0O,QAAS,GAGW,gBAAzBj0O,KAAKkvB,QAAQhL,QAA2B,CAMxC,IALA,IAAIqvS,EAAav3R,GAAS,gBAAiBh8B,KAAKkvB,SAC5CsiP,EAAexxQ,KAAK26U,UACpB36U,KAAK2J,cAAc,YACnB3J,KAAK2J,cAAc,SACnBpC,EAAQ,EACAA,EAAQvH,KAAKkvB,QAAQrS,WAAWlf,OAAQ4J,IAAS,CAEnC,QADlBqxB,EAAgB54B,KAAKkvB,QAAQrS,WAAWtV,GAAOqmB,WACH,UAAlBgL,GAC1B44O,EAAa73O,aAAaf,EAAe54B,KAAKkvB,QAAQrS,WAAWtV,GAAOumB,WACxE0jP,EAAa/oP,UAAYzoB,KAAKkvB,QAAQzG,UAChB,SAAlBmQ,GACA54B,KAAKkvB,QAAQwK,gBAAgB,SAGV,UAAlBd,GACL44O,EAAa73O,aAAaf,EAAe54B,KAAKkvB,QAAQtlB,UAAUuvB,MAAM,KAAKx2B,QAAO,SAAUsuB,GAAQ,OAA+B,IAAxBA,EAAKxhB,QAAQ,MAAc,IAAGqmB,KAAK,KAEtJ,CACA91B,KAAKkvB,QAAQvG,YAAY6oP,GACzBxxQ,KAAKkvB,QAAUsiP,EACfv1O,GAAS,gBAAiBs3R,EAAYvzT,KAAKkvB,QAC/C,CACAlvB,KAAKo6U,0BACLp6U,KAAKs6U,iBAAgB,IAChBvnD,GAAkB/yR,KAAK85U,sBAAqDzzU,IAAjCrG,KAAK85U,eAAsB,OAA4C,KAAvB95U,KAAKkvB,QAAQhuB,OACzGlB,KAAKwxS,cAAc,CAAEtwS,MAAOlB,KAAKkvB,QAAQhuB,QAAS,GAEzB,aAAzBlB,KAAKkvB,QAAQhL,SACblkB,KAAKkvB,QAAQyK,aAAa,OAAQ35B,KAAKxC,MAE3CwC,KAAKkvB,QAAQyK,aAAa,OAAQ,WAClC35B,KAAKy6U,UAAY,IAAIx1C,GAAqBjlS,KAAKqwC,QAC/C,IAAIuqS,EAAa,CAAEt0I,YAAatmM,KAAKsmM,aAWrC,GAVAtmM,KAAKwnI,KAAO,IAAIqjL,GAAK,UAAW+vB,EAAY56U,KAAKqwC,QACJ,KAAzCrwC,KAAKwnI,KAAK6jL,YAAY,gBACtBrrT,KAAKwxS,cAAc,CAAElrG,YAAatmM,KAAKsmM,aAAetmM,KAAKwnI,KAAK6jL,YAAY,iBAAkB,GAE7FrrT,KAAKkvB,QAAQkkS,aAAa,OAC3BpzT,KAAKkvB,QAAQyK,aAAa,KAAMi6P,GAAY,YAE3C5zR,KAAKkvB,QAAQkkS,aAAa,SAC3BpzT,KAAKkvB,QAAQyK,aAAa,OAAQ35B,KAAKkvB,QAAQ6hD,aAAa,OAEnC,UAAzB/wE,KAAKkvB,QAAQhL,SAAuBlkB,KAAK26U,UAAW,CACpD36U,KAAK45U,eAAgB,EACrB55U,KAAK66U,SAAW76U,KAAK2J,cAAc,YACnC3J,KAAKkvB,QAAQ5E,WAAW+lC,aAAarwD,KAAK66U,SAAU76U,KAAKkvB,SACzDlvB,KAAKkvB,QAAQyK,aAAa,OAAQ,UAClC35B,KAAK66U,SAASlhT,aAAa,OAAQ35B,KAAKkvB,QAAQ6hD,aAAa,SAC7D/wE,KAAKkvB,QAAQwK,gBAAgB,QAC7B15B,KAAK66U,SAASlhT,aAAa,OAAQ35B,KAAKkvB,QAAQ6hD,aAAa,SAC7D/wE,KAAKkvB,QAAQwK,gBAAgB,QAC7B15B,KAAK66U,SAASlhT,aAAa,KAAMi6P,GAAY,aAC7C,IAAIknD,EAAgB,CAAC,cAAe,WAAY,QAAS,WAAY,OAAQ,gBAC7E,IAASvzU,EAAQ,EAAGA,EAAQvH,KAAKkvB,QAAQrS,WAAWlf,OAAQ4J,IAAS,CACjE,IAAIqxB,EAAgB54B,KAAKkvB,QAAQrS,WAAWtV,GAAOqmB,SAC/C5tB,KAAKkvB,QAAQkkS,aAAax6R,IAAkB4gT,GAAc/pU,QAAQmpB,GAAiB,GAC/D,OAAlBA,GAA4C,SAAlBA,GAA8C,iBAAlBA,IAExD54B,KAAK66U,SAASlhT,aAAaf,EAAe54B,KAAKkvB,QAAQrS,WAAWtV,GAAOumB,WACrEgtT,EAAcrrU,QAAQmpB,GAAiB,IACvC54B,KAAKkvB,QAAQwK,gBAAgBd,GAC7BrxB,KAGZ,CACJ,CACJ,EACAkyU,EAAQ77U,UAAU08U,gBAAkB,SAAUS,GAG1C,IAFA,IAESpgR,EAAK,EAAGqgR,EAFLD,EAAYhoD,GAAkB/yR,KAAKi7U,gBAAkB,GAAKt8U,OAAOW,KAAKU,KAAKi7U,gBACnF,CAAC,cAAe,WAAY,QAAS,WAAY,OAAQ,gBAC3BtgR,EAAKqgR,EAAQr9U,OAAQg9D,IAAM,CACzD,IAAIh7D,EAAMq7U,EAAQrgR,GAClB,IAAKo4N,GAAkB/yR,KAAKkvB,QAAQ6hD,aAAapxE,IAC7C,OAAQA,GACJ,IAAK,WACD,GAAKozR,GAAkB/yR,KAAK85U,sBAAuDzzU,IAAnCrG,KAAK85U,eAAwB,SAAqBiB,EAAW,CACzG,IAAI75M,EAA6C,aAAnClhI,KAAKkvB,QAAQ6hD,aAAapxE,IAA0D,KAAnCK,KAAKkvB,QAAQ6hD,aAAapxE,IAClD,SAAnCK,KAAKkvB,QAAQ6hD,aAAapxE,GAC9BK,KAAKwxS,cAAc,CAAEtwK,QAASA,IAAY65M,EAC9C,CACA,MACJ,IAAK,WACD,GAAKhoD,GAAkB/yR,KAAK85U,sBAAwDzzU,IAApCrG,KAAK85U,eAAyB,UAAqBiB,EAAW,CAC1G,IAAIh4J,EAA8C,aAAnC/iL,KAAKkvB,QAAQ6hD,aAAapxE,IAA0D,KAAnCK,KAAKkvB,QAAQ6hD,aAAapxE,IAChD,SAAnCK,KAAKkvB,QAAQ6hD,aAAapxE,GACjCK,KAAKwxS,cAAc,CAAEzuH,SAAUA,IAAag4J,EAChD,CACA,MACJ,IAAK,eACIhoD,GAAkB/yR,KAAK85U,sBAA2DzzU,IAAvCrG,KAAK85U,eAA4B,aAAqBiB,IAClG/6U,KAAKwxS,cAAc,CAAElrG,YAAatmM,KAAKkvB,QAAQo3K,cAAgBy0I,GAEnE,MACJ,IAAK,eACD,GAAKhoD,GAAkB/yR,KAAK85U,sBAA4DzzU,IAAxCrG,KAAK85U,eAA6B,cAAqBiB,EAAW,CAC9G,IAAIG,EAAgD,QAA9Bl7U,KAAKkvB,QAAQqrT,aAAyB,MAAQ,KACpEv6U,KAAKwxS,cAAc,CAAE+oC,aAAcW,IAAoBH,EAC3D,CACA,MACJ,IAAK,SACKhoD,GAAkB/yR,KAAK85U,sBAAqDzzU,IAAjCrG,KAAK85U,eAAsB,OAAqBiB,IAAqC,KAAvB/6U,KAAKkvB,QAAQhuB,OACxHlB,KAAKwxS,cAAc,CAAEtwS,MAAOlB,KAAKkvB,QAAQhuB,QAAU65U,GAEvD,MACJ,IAAK,QACIhoD,GAAkB/yR,KAAK85U,sBAAoDzzU,IAAhCrG,KAAK85U,eAAqB,MAAqBiB,IAC3F/6U,KAAKwxS,cAAc,CAAEh0S,KAAMwC,KAAKkvB,QAAQ1xB,OAASu9U,GAKrE,CACJ,EAOAtB,EAAQ77U,UAAUY,OAAS,WACvB,IAAI28U,EAAuBn7U,KAAKq0T,SAC3BthC,GAAkB/yR,KAAKq0T,WAA+B,KAAlBr0T,KAAKq0T,WAC1C8mB,EAAuBn7U,KAAKo7U,uBAAuBp7U,KAAKq0T,WAE5Dr0T,KAAKg6U,kBAAqBh6U,KAAK45U,cAAiB55U,KAAK66U,SAAW76U,KAAKkvB,QACrElvB,KAAK+5U,eAAiB14E,GAAM+2E,YAAY,CACpClpT,QAASlvB,KAAKg6U,kBACdhF,eAAgBh1U,KAAKg1U,eACrBlyO,WAAY,CACRo+B,QAASlhI,KAAKkhI,QACd08K,UAAW59S,KAAK49S,UAChByW,SAAU8mB,EACVp4J,SAAU/iL,KAAK+iL,SACfujB,YAAatmM,KAAKsmM,YAClBgyI,gBAAiBt4U,KAAKs4U,mBAG9Bt4U,KAAKq6U,0BACDr6U,KAAK45U,eACL55U,KAAKg6U,kBAAkB1vT,WAAW+lC,aAAarwD,KAAKkvB,QAASlvB,KAAKg6U,mBAEtEh6U,KAAKqpT,aACAt2B,GAAkB/yR,KAAKkB,SACxBmgQ,GAAMplO,SAASj8B,KAAKkB,MAAOlB,KAAKg6U,kBAAmBh6U,KAAKg1U,eAAgBh1U,KAAKs4U,iBACzEt4U,KAAK45U,gBACL55U,KAAKkvB,QAAQhuB,MAAQlB,KAAKg6U,kBAAkB94U,QAG/C6xR,GAAkB/yR,KAAKkB,SACxBlB,KAAK88B,aAAe98B,KAAKkB,MACzBlB,KAAKq7U,mBAEiB,OAAtBr7U,KAAKu6U,cAA+C,KAAtBv6U,KAAKu6U,aACnCv6U,KAAKg6U,kBAAkBO,aAAev6U,KAAKu6U,aAErCxnD,GAAkB/yR,KAAK85U,sBAA4DzzU,IAAxCrG,KAAK85U,eAA6B,cACnF95U,KAAKi3U,iBAAiB,CAAC,iBAE3Bj3U,KAAK05U,cAAgB15U,KAAKkB,MAC1BlB,KAAK65U,mBAAqB75U,KAAKkB,MAC/BlB,KAAKg6U,kBAAkBt9S,aAAe18B,KAAKg6U,kBAAkB94U,MAC7DmgQ,GAAMs9D,SAAS3+T,KAAKuJ,MAAOvJ,KAAK+5U,eAAelkQ,YAC1Ck9M,GAAkBjqJ,GAAQ9oI,KAAKkvB,QAAS,cAAgB45G,GAAQ9oI,KAAKkvB,QAAS,YAAY3a,WAC3FvU,KAAKkhI,SAAU,GAEnBlhI,KAAK++S,gBACT,EACA06B,EAAQ77U,UAAUy8U,wBAA0B,WACxC,IAAKtnD,GAAkB/yR,KAAKi7U,gBACxB,IAAK,IAAItgR,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKU,KAAKi7U,gBAAiBtgR,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC1E,IAAIh7D,EAAM4a,EAAGogD,GACb,GAAI6+Q,GAAc/pU,QAAQ9P,IAAQ,EAC9B,GAAY,UAARA,EAAiB,CACjB,IAAI27U,EAAqBt7U,KAAKo7U,uBAAuBp7U,KAAKi7U,eAAe,GAAKt7U,IACnD,KAAvB27U,GACAvsC,GAAS,CAAC/uS,KAAK+5U,eAAelkQ,WAAYylQ,EAAmBniT,MAAM,KAE3E,MACK,GAAY,UAARx5B,EAAiB,CACtB,IAAI47U,EAAWv7U,KAAK+5U,eAAelkQ,UAAU9E,aAAapxE,GAC1D47U,EAAYxoD,GAAkBwoD,GAC1Bv7U,KAAKi7U,eAAe,GAAKt7U,GADc47U,EAAWv7U,KAAKi7U,eAAe,GAAKt7U,GAE/EK,KAAK+5U,eAAelkQ,UAAUl8C,aAAah6B,EAAK47U,EACpD,MAEIv7U,KAAK+5U,eAAelkQ,UAAUl8C,aAAah6B,EAAKK,KAAKi7U,eAAe,GAAKt7U,GAGrF,CAER,EACA85U,EAAQ77U,UAAUw8U,wBAA0B,WACxC,IAAKrnD,GAAkB/yR,KAAKi7U,gBACxB,IAAK,IAAItgR,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKU,KAAKi7U,gBAAiBtgR,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC1E,IAAIh7D,EAAM4a,EAAGogD,GACT6+Q,GAAc/pU,QAAQ9P,GAAO,GAC7BK,KAAKkvB,QAAQyK,aAAah6B,EAAKK,KAAKi7U,eAAe,GAAKt7U,GAEhE,CAER,EACA85U,EAAQ77U,UAAU48U,eAAiB,SAAUv5I,EAAUq1I,GACnDj1E,GAAMg1E,YAAYr2U,KAAKo7U,uBAAuBn6I,GAAW,CAACjhM,KAAK+5U,eAAelkQ,WAAY71E,KAAKo7U,uBAAuB9E,GAC1H,EACAmD,EAAQ77U,UAAUw9U,uBAAyB,SAAUI,GACjD,IAAIx3U,EAASw3U,EAIb,OAHKzoD,GAAkByoD,IAAsC,KAAnBA,IACtCx3U,EAAUw3U,EAAe5vU,QAAQ,OAAQ,KAAMjD,QAE5C3E,CACX,EACAy1U,EAAQ77U,UAAUy9U,gBAAkB,WAC3Br7U,KAAK25U,WACN35U,KAAKg6U,kBAAkBrgT,aAAa,QAAS35B,KAAK88B,aAE1D,EACA28S,EAAQ77U,UAAUyrT,WAAa,WAC3Btb,GAAa9hR,IAAIjsB,KAAKg6U,kBAAmB,QAASh6U,KAAKy7U,aAAcz7U,MACrE+tS,GAAa9hR,IAAIjsB,KAAKg6U,kBAAmB,OAAQh6U,KAAK07U,gBAAiB17U,MACvE+tS,GAAa9hR,IAAIjsB,KAAKg6U,kBAAmB,QAASh6U,KAAK27U,aAAc37U,MACrE+tS,GAAa9hR,IAAIjsB,KAAKg6U,kBAAmB,SAAUh6U,KAAK47U,cAAe57U,MACnEA,KAAKi0O,QACL85D,GAAa9hR,IAAIjsB,KAAK06U,YAAa,QAAS16U,KAAKkmL,UAAWlmL,MAEhEA,KAAKi6U,kBACAlnD,GAAkB/yR,KAAK+5U,eAAelkQ,UAAU9yD,cAAc,mBAA6C,SAAxB/iB,KAAKg1U,gBACtFh1U,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,eACpD70C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,cACjDk5P,GAAa9hR,IAAKjsB,KAAK+5U,eAAelkQ,UAAU9yD,cAAc,iBAAmB,iBAAkB/iB,KAAK67U,iBAAkB77U,KAElI,EACAy5U,EAAQ77U,UAAUi+U,iBAAmB,WACjC77U,KAAK+5U,eAAelkQ,UAAU7pD,UAAUC,IAAI,iBAC5C,IAAIy5K,EAAQ1lM,KAAK+5U,eAAelkQ,UAAU9yD,cAAc,iBACnDgwQ,GAAkBrtF,KACnBA,EAAM15K,UAAUC,IAAI,eAChBy5K,EAAM15K,UAAU6oB,SAAS,mBACzB6wJ,EAAM15K,UAAUG,OAAO,kBAGnC,EACAstT,EAAQ77U,UAAUk+U,WAAa,SAAU56U,GACrC,IAAIwiU,EAAe1jU,KAAK8wS,oBACxB9wS,KAAK8wS,qBAAsB,EAC3B9wS,KAAKkB,MAAQA,EACblB,KAAK8wS,oBAAsB4yB,CAC/B,EACA+V,EAAQ77U,UAAUsoL,UAAY,WAO1B,GANIlmL,KAAK25U,UACL35U,KAAK87U,WAAW,IAGhB97U,KAAK87U,WAAW97U,KAAK88B,eAEpBi2P,GAAkB/yR,KAAK+5U,gBAAiB,CACzC,IAAIr0I,EAAQ1lM,KAAK+5U,eAAelkQ,UAAU9yD,cAAc,iBACnDgwQ,GAAkBrtF,IAAkC,WAAxB1lM,KAAKg1U,iBAC7BjiD,GAAkB/yR,KAAK88B,eAAuC,KAAtB98B,KAAK88B,cAC9C4oK,EAAM15K,UAAUC,IAAI,kBACpBy5K,EAAM15K,UAAUG,OAAO,gBAEI,KAAtBnsB,KAAK88B,eACV4oK,EAAM15K,UAAUC,IAAI,eACpBy5K,EAAM15K,UAAUG,OAAO,mBAGnC,CACJ,EACAstT,EAAQ77U,UAAU69U,aAAe,SAAU7uU,GACvC,IAAI89R,EAAY,CACZ70N,UAAW71E,KAAK+5U,eAAelkQ,UAC/Bz/D,MAAOxJ,EACP1L,MAAOlB,KAAKkB,OAEhBlB,KAAK2sL,QAAQ,QAAS+9G,EAC1B,EACA+uC,EAAQ77U,UAAU89U,gBAAkB,SAAU9uU,GACb,OAAvB5M,KAAK05U,eAAyC,OAAf15U,KAAKkB,OAAmD,KAAjClB,KAAKg6U,kBAAkB94U,OAC9ElB,KAAK05U,gBAAkB15U,KAAKkB,OAC7BlB,KAAKm6U,iBAAiBvtU,GAAM,GAEhC,IAAI89R,EAAY,CACZ70N,UAAW71E,KAAK+5U,eAAelkQ,UAC/Bz/D,MAAOxJ,EACP1L,MAAOlB,KAAKkB,OAEhBlB,KAAK2sL,QAAQ,OAAQ+9G,EACzB,EACA+uC,EAAQ77U,UAAU+9U,aAAe,SAAU/uU,GAEvC,IACI89R,EAAY,CACZt0R,MAAOxJ,EACP1L,MAAOlB,KAAKg6U,kBAAkB94U,MAC9Bw4U,cAAe15U,KAAK65U,mBACpBhkQ,UAAW71E,KAAK+5U,eAAelkQ,WAEnC71E,KAAK65U,mBAAqB75U,KAAKg6U,kBAAkB94U,MAE7ClB,KAAK25U,YATQ35U,KAUF+7U,YAAY,CAAE76U,MAAOlB,KAAKg6U,kBAAkB94U,QACvDlB,KAAKk6U,eAAgB,GAErBl6U,KAAKgpU,QACLhpU,KAAKk6U,eAAgB,GAEzBl6U,KAAK2sL,QAAQ,QAAS+9G,GACtB99R,EAAKm+B,iBACT,EACA0uS,EAAQ77U,UAAUg+U,cAAgB,SAAUhvU,GACxC5M,KAAKwxS,cAAc,CAAEtwS,MAAOlB,KAAKg6U,kBAAkB94U,QAAS,GAC5DlB,KAAKm6U,iBAAiBvtU,GAAM,GAC5BA,EAAKm+B,iBACT,EACA0uS,EAAQ77U,UAAUu8U,iBAAmB,SAAU/jU,EAAO4lU,GAClD,IAAItxC,EAAY,CACZt0R,MAAOA,EACPlV,MAAOlB,KAAKkB,MACZw4U,cAAe15U,KAAK05U,cACpB7jQ,UAAW71E,KAAK+5U,eAAelkQ,UAC/BomQ,cAAeD,IAA4B,EAC3C/Q,aAAc+Q,IAA4B,GAE9Ch8U,KAAKk6U,eAAgB,EACrBl6U,KAAK2sL,QAAQ,SAAU+9G,GACvB1qS,KAAK05U,cAAgB15U,KAAKkB,MAEG,UAAzBlB,KAAKkvB,QAAQhL,SAAuBlkB,KAAK26U,WAAmC,YAAtBvuC,GAAQ3uK,KAAK//H,OACnEsC,KAAKkvB,QAAQhuB,MAAQlB,KAAKg6U,kBAAkB94U,MAEpD,EACAu4U,EAAQ77U,UAAUq8U,eAAiB,WAC3Bj6U,KAAKs4U,iBAAsD,aAAnCt4U,KAAKg6U,kBAAkB91T,UAC3ClkB,KAAKkhI,QACL6sK,GAAa9hR,IAAIjsB,KAAK+5U,eAAezC,YAAa,uBAAwBt3U,KAAKk8U,kBAAmBl8U,MAGlG+tS,GAAa5hR,OAAOnsB,KAAK+5U,eAAezC,YAAa,uBAAwBt3U,KAAKk8U,mBAG9F,EACAzC,EAAQ77U,UAAUs+U,kBAAoB,SAAU9lU,GAE5C,GADAA,EAAMxB,kBACA5U,KAAK+5U,eAAezC,YAAYtrT,UAAU6oB,SAhfvC,sBAgfgE70C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,kBAAmB,CACzIwsN,GAAMplO,SAAS,GAAIj8B,KAAKg6U,kBAAmBh6U,KAAKg1U,eAAgBh1U,KAAKs4U,iBACjEt4U,KAAK45U,gBACL55U,KAAKkvB,QAAQhuB,MAAQlB,KAAKg6U,kBAAkB94U,OAEhDlB,KAAKwxS,cAAc,CAAEtwS,MAAOlB,KAAKg6U,kBAAkB94U,QAAS,GAC5D,IAAIwpS,EAAY,CACZt0R,MAAOA,EACPlV,MAAOlB,KAAKg6U,kBAAkB94U,MAC9Bw4U,cAAe15U,KAAK65U,mBACpBhkQ,UAAW71E,KAAK+5U,eAAelkQ,WAKnC,GAHA71E,KAAK2sL,QAAQ,QAAS+9G,GACtB1qS,KAAK65U,mBAAqB75U,KAAKg6U,kBAAkB94U,MACjDlB,KAAKm6U,iBAAiB/jU,GAAO,GACzB0yH,GAAQ9oI,KAAKkvB,QAAS,QAAS,CAC/B,IAAIA,EAAUlvB,KAAKkvB,QACfitT,EAAa9lU,SAASC,YAAY,iBACtC6lU,EAAWvoB,UAAU,SAAS,GAAO,GACrC1kS,EAAQ+a,cAAckyS,EAC1B,CACJ,CACJ,EACA1C,EAAQ77U,UAAUk3T,aAAe,WAC7B/mB,GAAa5hR,OAAOnsB,KAAKg6U,kBAAmB,QAASh6U,KAAKy7U,cAC1D1tC,GAAa5hR,OAAOnsB,KAAKg6U,kBAAmB,OAAQh6U,KAAK07U,iBACzD3tC,GAAa5hR,OAAOnsB,KAAKg6U,kBAAmB,QAASh6U,KAAK27U,cAC1D5tC,GAAa5hR,OAAOnsB,KAAKg6U,kBAAmB,SAAUh6U,KAAK47U,eACvD57U,KAAKi0O,QACL85D,GAAa5hR,OAAOnsB,KAAK06U,YAAa,QAAS16U,KAAKkmL,YAEnD6sG,GAAkB/yR,KAAK+5U,eAAelkQ,UAAU9yD,cAAc,mBAA6C,SAAxB/iB,KAAKg1U,gBACtFh1U,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,cACpD70C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,eACjDk5P,GAAa5hR,OAAQnsB,KAAK+5U,eAAelkQ,UAAU9yD,cAAc,iBAAmB,iBAAkB/iB,KAAK67U,iBAEnH,EAQApC,EAAQ77U,UAAU4C,QAAU,WACxBR,KAAK80T,eACwB,UAAzB90T,KAAKkvB,QAAQhL,SAAuBlkB,KAAK26U,YACzCn/J,GAAOx7K,KAAK+5U,eAAelkQ,UAAUntD,qBAAqB,YAAY,IACtE1oB,KAAKg6U,kBAAoBh6U,KAAKkvB,QAC9BlvB,KAAKkvB,QAAQwK,gBAAgB,SAEjC15B,KAAKg6U,kBAAkB94U,MAAQlB,KAAKg6U,kBAAkBt9S,aACtD18B,KAAKg6U,kBAAkBhuT,UAAUG,OAAO,WACxCnsB,KAAKi3U,iBAAiB,CAAC,gBAAiB,gBAAiB,oBACpDlkD,GAAkB/yR,KAAK+5U,kBACxB/5U,KAAK+5U,eAAelkQ,UAAUm7B,sBAAsB,WAAYhxG,KAAKg6U,mBACrEx+J,GAAOx7K,KAAK+5U,eAAelkQ,YAE/B71E,KAAK+5U,eAAiB,KACtB14E,GAAM7gQ,UACNmF,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,KAClC,EASAy5U,EAAQ77U,UAAUs7U,QAAU,SAAUtpU,EAAUupU,GAC5C93E,GAAM63E,QAAQtpU,EAAUupU,EAAOn5U,KAAK+5U,eAAelkQ,UAAW71E,KAAKg6U,kBAAmBh6U,KAAK2J,cAC/F,EAMA8vU,EAAQ77U,UAAU6hT,eAAiB,WAE/B,OAAOz/S,KAAK+/S,aADI,CAAC,SAErB,EAQA05B,EAAQ77U,UAAUs5U,cAAgB,SAAUr6T,GACxC,IAAK,IAAI89C,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKud,GAAa89C,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CACjE,IAAIh7D,EAAM4a,EAAGogD,GACD,aAARh7D,GACAK,KAAKwxS,cAAc,CAAEtwK,SAAS,IAAS,GACvCmgI,GAAMu1E,WAAW52U,KAAKkhI,QAASlhI,KAAKg6U,kBAAmBh6U,KAAKg1U,eAAgBh1U,KAAK+5U,eAAelkQ,YAEnF,aAARl2E,GACLK,KAAKwxS,cAAc,CAAEzuH,UAAU,IAAQ,GACvCs+E,GAAMo1E,YAAYz2U,KAAK+iL,SAAU/iL,KAAKg6U,oBAEzB,UAARr6U,EACLK,KAAKg6U,kBAAkBhuT,UAAUC,IAAIpP,EAAW,GAAKld,IAExC,gBAARA,GACLK,KAAKwxS,cAAc,CAAElrG,YAAazpL,EAAW,GAAKld,KAAQ,GAC1D0hQ,GAAMm1E,eAAex2U,KAAKsmM,YAAatmM,KAAKg6U,qBAE/B,SAARr6U,GAAkBK,KAAKg6U,kBAAkB91T,QAC9ClkB,KAAKg6U,kBAAkBrgT,aAAah6B,EAAKkd,EAAW,GAAKld,IAKjE,CACJ,EAOA85U,EAAQ77U,UAAUq5U,iBAAmB,SAAUp6T,GAC3C,IAAK,IAAI89C,EAAK,EAAGyhR,EAAev/T,EAAY89C,EAAKyhR,EAAaz+U,OAAQg9D,IAAM,CACxE,IAAIh7D,EAAMy8U,EAAazhR,GACX,aAARh7D,GACAK,KAAKwxS,cAAc,CAAEtwK,SAAS,IAAQ,GACtCmgI,GAAMu1E,WAAW52U,KAAKkhI,QAASlhI,KAAKg6U,kBAAmBh6U,KAAKg1U,eAAgBh1U,KAAK+5U,eAAelkQ,YAEnF,aAARl2E,GACLK,KAAKwxS,cAAc,CAAEzuH,UAAU,IAAS,GACxCs+E,GAAMo1E,YAAYz2U,KAAK+iL,SAAU/iL,KAAKg6U,oBAEzB,gBAARr6U,GACLK,KAAKwxS,cAAc,CAAElrG,YAAa,OAAQ,GAC1C+6D,GAAMm1E,eAAex2U,KAAKsmM,YAAatmM,KAAKg6U,oBAG5Ch6U,KAAKg6U,kBAAkBtgT,gBAAgB/5B,EAE/C,CACJ,EAMA85U,EAAQ77U,UAAUm3T,QAAU,WACpB1+S,SAASkmB,gBAAkBv8B,KAAKg6U,mBAAqBh6U,KAAKkhI,UAC1DlhI,KAAKg6U,kBAAkB3jS,SACnBr2C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,kBAC9C70C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,cACjD70C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,cACpDk6P,GAAS,CAAC/uS,KAAK+5U,eAAelkQ,WAAY,CAAC0jQ,KAGvD,EAMAE,EAAQ77U,UAAUy+U,SAAW,WACrBhmU,SAASkmB,gBAAkBv8B,KAAKg6U,mBAAqBh6U,KAAKkhI,UAC1DlhI,KAAKg6U,kBAAkB/lM,QACnBj0I,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,kBAC9C70C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,cACjD70C,KAAK+5U,eAAelkQ,UAAU7pD,UAAU6oB,SAAS,cACpDu6P,GAAY,CAACpvS,KAAK+5U,eAAelkQ,WAAY,CAAC0jQ,KAG1D,EACA5jC,GAAW,CACPnB,GAAS,SACVilC,EAAQ77U,UAAW,YAAQ,GAC9B+3S,GAAW,CACPnB,IAAS,IACVilC,EAAQ77U,UAAW,gBAAY,GAClC+3S,GAAW,CACPnB,GAAS,OACVilC,EAAQ77U,UAAW,aAAS,GAC/B+3S,GAAW,CACPnB,GAAS,UACVilC,EAAQ77U,UAAW,sBAAkB,GACxC+3S,GAAW,CACPnB,GAAS,KACVilC,EAAQ77U,UAAW,gBAAY,GAClC+3S,GAAW,CACPnB,GAAS,OACVilC,EAAQ77U,UAAW,mBAAe,GACrC+3S,GAAW,CACPnB,GAAS,OACVilC,EAAQ77U,UAAW,oBAAgB,GACtC+3S,GAAW,CACPnB,GAAS,CAAC,IACXilC,EAAQ77U,UAAW,sBAAkB,GACxC+3S,GAAW,CACPnB,IAAS,IACVilC,EAAQ77U,UAAW,iBAAa,GACnC+3S,GAAW,CACPnB,IAAS,IACVilC,EAAQ77U,UAAW,eAAW,GACjC+3S,GAAW,CACPnB,IAAS,IACVilC,EAAQ77U,UAAW,uBAAmB,GACzC+3S,GAAW,CACPnB,IAAS,IACVilC,EAAQ77U,UAAW,yBAAqB,GAC3C+3S,GAAW,CACPnB,GAAS,OACVilC,EAAQ77U,UAAW,aAAS,GAC/B+3S,GAAW,CACPxuH,MACDsyJ,EAAQ77U,UAAW,eAAW,GACjC+3S,GAAW,CACPxuH,MACDsyJ,EAAQ77U,UAAW,iBAAa,GACnC+3S,GAAW,CACPxuH,MACDsyJ,EAAQ77U,UAAW,cAAU,GAChC+3S,GAAW,CACPxuH,MACDsyJ,EAAQ77U,UAAW,YAAQ,GAC9B+3S,GAAW,CACPxuH,MACDsyJ,EAAQ77U,UAAW,aAAS,GAC/B+3S,GAAW,CACPxuH,MACDsyJ,EAAQ77U,UAAW,aAAS,GAC/B67U,EAAU9jC,GAAW,CACjBX,IACDykC,EAEP,CAzsB6B,CAysB3BvvU,IE/uBE0zD,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAKI65U,GAAuB,SAAU32U,GAEjC,SAAS22U,IACL,OAAkB,OAAX32U,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CA4GA,OA/GA49D,GAAU0+Q,EAAO32U,GAKjB22U,EAAM77U,OAAS,SAAUy0K,EAAQqnK,GAC7B,OAAIrnK,IAAWqnK,MAGVrnK,IAAWqnK,MAGRrnK,IAAWqnK,GAAUrnK,EAAO7tK,IAAMk1U,EAAOl1U,GAAK6tK,EAAO5tK,IAAMi1U,EAAOj1U,EAC9E,EAIAg1U,EAAME,aAAe,SAAUzvM,GAC3B,OAAIA,EAAM1lI,IAAK0lI,EAAMzlI,CAIzB,EAEAg1U,EAAMpkU,UAAY,SAAU60H,EAAO5C,EAAOxsI,GACtC,IAAI8+U,EAAK,CAAEp1U,EAAG,EAAGC,EAAG,GAGpB,OAFAm1U,EAAGp1U,EAAI4D,KAAKiX,MAA6D,KAAtD6qH,EAAM1lI,EAAI1J,EAASsN,KAAKutK,IAAIruC,EAAQl/H,KAAKkX,GAAK,OAAe,IAChFs6T,EAAGn1U,EAAI2D,KAAKiX,MAA6D,KAAtD6qH,EAAMzlI,EAAI3J,EAASsN,KAAKstK,IAAIpuC,EAAQl/H,KAAKkX,GAAK,OAAe,IACzEs6T,CACX,EAEAH,EAAMI,WAAa,SAAU1+Q,EAAGn+D,GAE5B,OADaoL,KAAKoa,KAAKpa,KAAKqa,IAAK04C,EAAE32D,EAAIxH,EAAEwH,EAAI,GAAK4D,KAAKqa,IAAK04C,EAAE12D,EAAIzH,EAAEyH,EAAI,GAE5E,EAEAg1U,EAAMK,UAAY,SAAUznK,EAAQqnK,GAChC,IAAIpyM,EAAQl/H,KAAKgX,MAAMs6T,EAAOj1U,EAAI4tK,EAAO5tK,EAAGi1U,EAAOl1U,EAAI6tK,EAAO7tK,GAM9D,OALA8iI,EAAS,IAAMA,EAAQl/H,KAAKkX,IAC5BgoH,GAAS,KACG,IACRA,GAAS,KAENA,CACX,EAEAmyM,EAAMM,eAAiB,SAAUC,EAAKC,GAClC,OAAO7xU,KAAKoa,KAAKpa,KAAKqa,IAAIw3T,EAAIz1U,EAAIw1U,EAAIx1U,EAAG,GAAK4D,KAAKqa,IAAIw3T,EAAIx1U,EAAIu1U,EAAIv1U,EAAG,GAC1E,EAEAg1U,EAAMS,0BAA4B,SAAUtiL,GAExC,IADA,IAAI98J,EAAS,EACJyL,EAAI,EAAGA,EAAIqxJ,EAAO98J,OAAS,EAAGyL,IACnCzL,GAAUqC,KAAK48U,eAAeniL,EAAOrxJ,GAAIqxJ,EAAOrxJ,EAAI,IAExD,OAAOzL,CACX,EAEA2+U,EAAMU,YAAc,SAAU56U,EAAQ1B,EAAQuyB,EAASt1B,GACnD,IACIwsI,EADAsyM,EAAKxpT,EAAU,CAAE5rB,EAAGjF,EAAOiF,EAAGC,EAAGlF,EAAOkF,GAAM,CAAED,EAAG3G,EAAO2G,EAAGC,EAAG5G,EAAO4G,GA4B3E,OA1BIlF,EAAOiF,IAAM3G,EAAO2G,EAChBjF,EAAOkF,EAAI5G,EAAO4G,GAAK2rB,GAAW7wB,EAAOkF,EAAI5G,EAAO4G,IAAM2rB,EAC1DwpT,EAAGn1U,GAAK3J,EAGR8+U,EAAGn1U,GAAK3J,EAGPyE,EAAOkF,IAAM5G,EAAO4G,EACrBlF,EAAOiF,EAAI3G,EAAO2G,GAAK4rB,GAAW7wB,EAAOiF,EAAI3G,EAAO2G,IAAM4rB,EAC1DwpT,EAAGp1U,GAAK1J,EAGR8+U,EAAGp1U,GAAK1J,EAIRs1B,GACAk3G,EAAQnqI,KAAK28U,UAAUv6U,EAAQ1B,GAC/B+7U,EAAKz8U,KAAKkY,UAAU9V,EAAQ+nI,EAAOxsI,KAGnCwsI,EAAQnqI,KAAK28U,UAAUj8U,EAAQ0B,GAC/Bq6U,EAAKz8U,KAAKkY,UAAUxX,EAAQypI,EAAOxsI,IAGpC8+U,CACX,EAEAH,EAAMt4T,UAAY,SAAU64T,EAAKC,GAC7B,OAAI7xU,KAAKmX,IAAI06T,EAAIz1U,EAAIw1U,EAAIx1U,GAAK4D,KAAKmX,IAAI06T,EAAIx1U,EAAIu1U,EAAIv1U,GACxCu1U,EAAIx1U,EAAIy1U,EAAIz1U,EAAI,QAAU,OAG1Bw1U,EAAIv1U,EAAIw1U,EAAIx1U,EAAI,SAAW,KAE1C,EAKAg1U,EAAM1+U,UAAUy0E,aAAe,WAC3B,MAAO,OACX,EACAsjO,GAAW,CACPnB,GAAS,IACV8nC,EAAM1+U,UAAW,SAAK,GACzB+3S,GAAW,CACPnB,GAAS,IACV8nC,EAAM1+U,UAAW,SAAK,GAClB0+U,CACX,CAjH2B,CAiHzB5iC,KDnIS4/B,GAKRA,KAAgBA,GAAc,CAAC,IAJlBA,GAAsB,SAAI,GAAK,WAC3CA,GAAYA,GAAyB,YAAI,GAAK,cAC9CA,GAAYA,GAAqB,QAAI,GAAK,UAC1CA,GAAYA,GAAqB,QAAI,GAAK,UAG9C,IAAI2D,GACA,SAAgBC,EAAKC,EAAKC,EAAKC,EAAK/mN,EAASC,EAAS/4H,GAClDwC,KAAKk9U,IAAMA,EACXl9U,KAAKm9U,IAAMA,EACXn9U,KAAKo9U,IAAMA,EACXp9U,KAAKq9U,IAAMA,EACXr9U,KAAKs2H,QAAUA,EACft2H,KAAKu2H,QAAUA,EAMfv2H,KAAKxC,KAAOA,CAChB,EAKG,SAAS8/U,KACZ,OAAO,IAAIL,GAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG3D,GAAYiE,SACpD,CAEO,SAASC,GAAuBtkL,EAAQnsB,GAC3C,IAAI0vM,EA0DR,SAAuBvjL,EAAQ7xJ,EAAGC,GAC9B,OAAQ4xJ,EAAO17J,MACX,KAAK87U,GAAYiE,SAAU,MAC3B,KAAKjE,GAAYmE,YACbp2U,GAAK6xJ,EAAO5iC,QACZhvH,GAAK4xJ,EAAO3iC,QACZ,MACJ,KAAK+iN,GAAYoE,QACbr2U,GAAK6xJ,EAAOgkL,IACZ51U,GAAK4xJ,EAAOmkL,IACZ,MACJ,KAAK/D,GAAYmE,YAAcnE,GAAYoE,QACvCr2U,GAAK6xJ,EAAOgkL,IACZ71U,GAAK6xJ,EAAO5iC,QACZhvH,GAAK4xJ,EAAOmkL,IACZ/1U,GAAK4xJ,EAAO3iC,QACZ,MACJ,QACI,IAAI5+F,EAAMrwB,EAAI4xJ,EAAOkkL,IAAMlkL,EAAO5iC,QAC9BqnN,EAAOt2U,EAAI6xJ,EAAOikL,IAAMjkL,EAAO3iC,QACnClvH,GAAK6xJ,EAAOgkL,IACZ71U,GAAKswB,EACLrwB,GAAK4xJ,EAAOmkL,IACZ/1U,GAAKq2U,EAGb,MAAO,CAAEt2U,EAAGA,EAAGC,EAAGA,EACtB,CArFas2U,CAAc1kL,EAAQnsB,EAAM1lI,EAAG0lI,EAAMzlI,GAC9C,MAAO,CAAED,EAAG4D,KAAKiX,MAAa,IAAPu6T,EAAGp1U,GAAW,IAAKC,EAAG2D,KAAKiX,MAAa,IAAPu6T,EAAGn1U,GAAW,IAC1E,CAWO,SAASu2U,GAAa3kL,EAAQ/uB,EAAO6T,EAASC,GAEjD6/L,GAAe5kL,EAgCnB,SAA+B/uB,EAAO6T,EAASC,GAC3C,IAAIj6I,EAASs5U,KACT3lT,EAAM1sB,KAAKstK,IAAIpuC,GACfwzM,EAAO1yU,KAAKutK,IAAIruC,GAChB7T,EAAU0nB,GAAW,EAAM2/L,GAAQ1/L,EAAUtmH,EAC7C4+F,EAAU0nB,GAAW,EAAM0/L,GAAQ3/L,EAAUrmH,EAGjD,OAFA3zB,EAAOxG,KAAO87U,GAAYyE,QAC1BC,GAAUh6U,EAAQ25U,EAAMhmT,GAAMA,EAAKgmT,EAAMrnN,EAASC,GAC3CvyH,CACX,CAzC2Bi6U,CAA8B,qBADrD9zM,GAAS,KACkE6T,GAAoB,EAAGC,GAAoB,GAC1H,CAEO,SAASigM,GAAYhlL,EAAQS,EAAQC,EAAQ5b,EAASC,QACzC,IAAZD,IAAsBA,EAAU,QACpB,IAAZC,IAAsBA,EAAU,GACpC6/L,GAAe5kL,EAmBnB,SAAuBS,EAAQC,EAAQ5b,EAASC,GAC5C,IAAIj6I,EAASs5U,KAGb,OAFAt5U,EAAOxG,KAASwgJ,GAAWC,EAAiCq7L,GAAYoE,QAAUpE,GAAYmE,YAAxDnE,GAAYoE,QAClDM,GAAUh6U,EAAQ21J,EAAQ,EAAK,EAAKC,EAAQ5b,EAAU2b,EAAS3b,EAASC,EAAU2b,EAAS3b,GACpFj6I,CACX,CAxB2Bm6U,CAAcxkL,EAAQC,EAAQ5b,EAASC,GAClE,CAiEO,SAAS6/L,GAAeM,EAASC,GACpC,IAAI7gV,EAAO4gV,EAAQ5gV,KACf8gV,EAAQD,EAAQ7gV,KACpB,GAAI8gV,IAAUhF,GAAYiE,SAA1B,CAGA,GAAI//U,IAAS87U,GAAYiE,SAGrB,OAFAgB,GAAaH,EAASC,QACtBD,EAAQ5gV,KAAO6gV,EAAQ7gV,MAG3B,GAAI8gV,IAAUhF,GAAYmE,YAMtB,OALAW,EAAQ9nN,SAAW+nN,EAAQ/nN,QAC3B8nN,EAAQ7nN,SAAW8nN,EAAQ9nN,aACvB/4H,IAAS87U,GAAYyE,UACrBK,EAAQ5gV,MAAQ87U,GAAYmE,cAIpC,GAAIjgV,IAAS87U,GAAYmE,YAAa,CAClC,IAAI9lT,EAAMn6B,GAAQ,EAAI8gV,EACtB,OAAQ3mT,GACJ,KAAK,GAGD,OAFAymT,EAAQlB,KAAOmB,EAAQnB,SACvBkB,EAAQf,KAAOgB,EAAQhB,KAE3B,KAAK,GAMD,OALAe,EAAQlB,KAAOmB,EAAQnB,IACvBkB,EAAQf,KAAOgB,EAAQhB,IACvBe,EAAQ9nN,QAAU+nN,EAAQ/nN,QAC1B8nN,EAAQ7nN,QAAU8nN,EAAQ9nN,aAC1B6nN,EAAQ5gV,KAAQ87U,GAAYmE,YAAcnE,GAAYoE,SAE1D,KAAK,GAAI,MACT,QAEQ,OAAQ/lT,GACJ,KAAK,GAKD,OAJAymT,EAAQlB,KAAOmB,EAAQnB,IACvBkB,EAAQf,KAAOgB,EAAQhB,IACvBe,EAAQ9nN,SAAW+nN,EAAQnB,SAC3BkB,EAAQ7nN,SAAW8nN,EAAQhB,KAE/B,KAAK,GAKD,OAJAe,EAAQlB,KAAOmB,EAAQnB,IACvBkB,EAAQf,KAAOgB,EAAQhB,IACvBe,EAAQ9nN,QAAU+nN,EAAQnB,IAAMkB,EAAQ9nN,QAAU+nN,EAAQ/nN,aAC1D8nN,EAAQ7nN,QAAU8nN,EAAQhB,IAAMe,EAAQ7nN,QAAU8nN,EAAQ9nN,SAE9D,KAAK,GAAI,MACT,QACI,OAAQ5+F,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GAAI,MACT,QAAS,SAOjC,IAAI3zB,EAASs5U,KAyBb,OAlBAU,GAAUh6U,EANGo6U,EAAQlB,IAAMmB,EAAQnB,IAAMkB,EAAQjB,IAAMkB,EAAQjB,IAClDgB,EAAQlB,IAAMmB,EAAQlB,IAAMiB,EAAQjB,IAAMkB,EAAQhB,IAClDe,EAAQhB,IAAMiB,EAAQnB,IAAMkB,EAAQf,IAAMgB,EAAQjB,IAClDgB,EAAQhB,IAAMiB,EAAQlB,IAAMiB,EAAQf,IAAMgB,EAAQhB,IAC/Ce,EAAQ9nN,QAAU+nN,EAAQnB,IAAMkB,EAAQ7nN,QAAU8nN,EAAQjB,IAAMiB,EAAQ/nN,QACxE8nN,EAAQ9nN,QAAU+nN,EAAQlB,IAAMiB,EAAQ7nN,QAAU8nN,EAAQhB,IAAMgB,EAAQ9nN,SAEpFvyH,EAAOo5U,KAAOp5U,EAAOm5U,IACrBn5U,EAAOxG,KAAO87U,GAAYyE,UAGtB/5U,EAAOk5U,KAAsB,IAAfl5U,EAAOk5U,KAAel5U,EAAOq5U,KAAsB,IAAfr5U,EAAOq5U,OACzDr5U,EAAOxG,KAAO87U,GAAYoE,UAE1B15U,EAAOsyH,SAAWtyH,EAAOuyH,WACzBvyH,EAAOxG,MAAQ87U,GAAYmE,cAE1Bz5U,EAAOxG,MAAQ87U,GAAYmE,YAAcnE,GAAYoE,YAAcpE,GAAYiE,WAChFv5U,EAAOxG,KAAO87U,GAAYiE,UAE9Bv5U,EAAOxG,KAAO87U,GAAYoE,QAAUpE,GAAYmE,aAEpDc,GAAaH,EAASp6U,QACtBo6U,EAAQ5gV,KAAOwG,EAAOxG,KAE1B,CACA,IAAI84H,EAAU8nN,EAAQ9nN,QAClBC,EAAU6nN,EAAQ7nN,QACtB6nN,EAAQ9nN,QAAUA,EAAU+nN,EAAQnB,IAAM3mN,EAAU8nN,EAAQjB,IAAMiB,EAAQ/nN,QAC1E8nN,EAAQ7nN,QAAUD,EAAU+nN,EAAQlB,IAAM5mN,EAAU8nN,EAAQhB,IAAMgB,EAAQ9nN,QACtE+nN,IAAUhF,GAAYyE,QAI1BK,EAAQ5gV,KAAQ87U,GAAYmE,YAAcnE,GAAYoE,QAHlDU,EAAQ5gV,KAAO87U,GAAYyE,OAzF/B,CA6FJ,CAEA,SAASC,GAAUQ,EAAKtB,EAAKC,EAAKC,EAAKC,EAAKh2U,EAAGC,GAC3Ck3U,EAAItB,IAAMA,EACVsB,EAAIrB,IAAMA,EACVqB,EAAIpB,IAAMA,EACVoB,EAAInB,IAAMA,EACVmB,EAAIloN,QAAUjvH,EACdm3U,EAAIjoN,QAAUjvH,CAClB,CAEA,SAASi3U,GAAaH,EAASC,GAC3BD,EAAQlB,IAAMmB,EAAQnB,IACtBkB,EAAQjB,IAAMkB,EAAQlB,IACtBiB,EAAQhB,IAAMiB,EAAQjB,IACtBgB,EAAQf,IAAMgB,EAAQhB,IACtBe,EAAQ9nN,QAAU+nN,EAAQ/nN,QAC1B8nN,EAAQ7nN,QAAU8nN,EAAQ9nN,QAC1B6nN,EAAQ5gV,KAAO6gV,EAAQ7gV,IAC3B,CEzOO,SAASihV,GAAa78U,GACzB,MAAgC,SAA5BA,EAAI88U,qBAA8D,uBAA5B98U,EAAI88U,qBACX,aAA5B98U,EAAI88U,qBAAkE,YAA5B98U,EAAI88U,mBAIzD,CAOO,SAASC,GAAgB/8U,EAAKstB,GACjC,GAAIttB,GAAOstB,EACP,GAAIttB,EAAIg9U,yBACsC,IAAtCh9U,EAAI4mB,GAAG/Y,QAAQ,mBACfyf,EAAQruB,MAAM8gH,KAAO,cACrBzyF,EAAQruB,MAAMqgC,YAAc,EAC5BhS,EAAQruB,MAAMg+U,gBAAkBj9U,EAAIk9U,kBAGpC5vT,EAAQruB,MAAM8gH,KAAO,cACrBzyF,EAAQruB,MAAMqgC,YAAc,OAG/B,CACD,IAAIgmH,EAA+B,cAAlBtlJ,EAAIslJ,UAA4B,cAAgBtlJ,EAAIslJ,UACrEh4H,EAAQruB,MAAM8gH,KAAOulC,GAAwB,QAE7Ch4H,EAAQruB,MAAMsmJ,YAAcvlJ,EAAIulJ,YAAcvlJ,EAAIulJ,YAAcvlJ,EAAIugL,YAEpEjzJ,EAAQruB,MAAMwxC,MAAQzwC,EAAIulJ,YAAcvlJ,EAAIulJ,YAAcvlJ,EAAIugL,YAC9DjzJ,EAAQruB,MAAMqgC,YAAct/B,EAAImzL,UACA,UAA5BnzL,EAAI88U,qBAA+D,kBAA5B98U,EAAI88U,qBAAuE,mBAA5B98U,EAAI88U,sBAC1FxvT,EAAQruB,MAAMqgC,YAAc,GAEhChS,EAAQruB,MAAMg+U,gBAAkBj9U,EAAIk9U,gBACpC5vT,EAAQruB,MAAMoP,QAAUrO,EAAIqO,OAChC,CAER,CAMO,SAAS8uU,GAAiBtkL,GAE7B,IADA,IAAI98J,EAAS,EACJ+B,EAAI,EAAGA,EAAI+6J,EAAO98J,OAAS,EAAG+B,IACnC/B,GAAU2+U,GAAMI,WAAWjiL,EAAOjwJ,SAAS9K,EAAEqL,WAAY,KAAM0vJ,EAAO/6J,EAAI,IAE9E,OAAO/B,CACX,CAgBO,SAASqhV,GAAuB9vT,EAAShX,GAC5C,IAAI+mU,EAAsB,CACtB11U,MAAO2lB,EAAQgwT,WAAW31U,MAAOmT,OAAQwS,EAAQgwT,WAAWxiU,OAC5DrV,EAAG6nB,EAAQonG,QAAUpnG,EAAQgwT,WAAW31U,MAAQ2lB,EAAQiwT,MAAM93U,EAAI,GAClEC,EAAG4nB,EAAQqnG,QAAUrnG,EAAQgwT,WAAWxiU,OAASwS,EAAQiwT,MAAM73U,EAAI,GACnE6iI,MAAOj7G,EAAQkwT,YAAclwT,EAAQmwT,gBAAiB19N,KAAMzyF,EAAQruB,MAAM8gH,KAAMF,OAAQvyF,EAAQruB,MAAMsmJ,YACtGm4L,OAAQpwT,EAAQiwT,MAAM93U,EAAGk4U,OAAQrwT,EAAQiwT,MAAM73U,EAAG45B,YAAa,EAC/DjxB,QAASif,EAAQruB,MAAMoP,QAASsiJ,UAAWrjI,EAAQruB,MAAMg+U,iBAAmB,GAC5ErjL,QAAStsI,EAAQssI,QAAShzI,GAAI0G,EAAQ1G,IAM1C,OAJItQ,IACA+mU,EAAoB53U,GAAK6Q,EAAUkxH,GACnC61M,EAAoB33U,GAAK4Q,EAAUmxH,IAEhC41M,CACX,CAwBO,SAASO,GAAY59U,EAAK69U,EAAgB9/U,GAE7C,IAlBwBuB,EAkBpBohB,EAAY,CAAC,EAGjB,GAAI1gB,EAAK,CACLjC,EAAMiC,EAAa,SACnB,IAAI89U,EAAe99U,EAAa,YAAKA,EACjCkhG,EAAa,GAEb68O,EAAmB,GAEvB,IAHA78O,EAAaA,EAAWvjG,OAAOZ,OAAOW,KAAKogV,KAEhC78U,KAAK,WACZlD,EAAK,CACL,IAAIigV,QA5BEv5U,KADUnF,EA6BiBu+U,IA3BhB,kBAAVv+U,IACPA,EAAQ86B,GAAS96B,EAAOsV,SAGzBtV,GAyBKy+U,EADAC,EACmBA,EAAejgV,GAGf,GAEvBmjG,EAAaA,EAAWvjG,OAAOogV,EACnC,CAGA,IAFA,IAAIE,EAmEL,SAA+BnoU,GAClC,OAAQA,GACJ,IAAK,QACL,IAAK,WACD,MAAO,CAAC,UAAW,WAAY,WAAY,YAAa,SAAU,WAAY,UAAW,UAC7F,IAAK,aACD,MAAO,CAAC,YACZ,IAAK,aAEL,IAAK,cACD,MAAO,CAAC,UACZ,IAAK,QACD,MAAO,CAAC,aAEhB,MAAO,EACX,CAlF2BooU,CAAsBngV,GAEhCg7D,EAAK,EAAGolR,EADjBj9O,EAAaA,EAAWvjG,OAAOsgV,GACallR,EAAKolR,EAAapiV,OAAQg9D,IAAM,CACxE,IAAI15D,EAAW8+U,EAAaplR,GAC5B,GAAiB,mBAAb15D,EACA,GAAiB,YAAbA,KAEsBW,EAAIX,KAAaW,EAAIS,eAAe,gBAElDT,EAAI,GAAKX,aAAqBiQ,MAC9BoR,EAAU,GAAKrhB,GAAY++U,IAAgD,IAApCH,EAAapwU,QAAQxO,IAAoBW,EAAI,GAAKjC,GAAQiC,EAAI,GAAKjC,GAAK,GAAKsB,GAAYW,EAAI,GAAKX,GAAWw+U,EAAgBx+U,GAE/JW,EAAI,GAAKX,aAAqBiQ,SAAU,GAAStP,EAAI,GAAKX,aAAqB0yB,YACpFrR,EAAU,GAAKrhB,GAAYW,EAAI,GAAKX,GAAUg9D,WAAU,GAAMgiR,UAEzDr+U,EAAI,GAAKX,aAAqBiQ,SAAU,GAAStP,EAAI,GAAKX,aAAqBtC,OACpF2jB,EAAU,GAAKrhB,GAAYu+U,IAAiD,IAApCK,EAAapwU,QAAQxO,IAAoBW,EAAI,GAAKjC,GAAQiC,EAAI,GAAKjC,GAAK,GAAKsB,GAAYW,EAAI,GAAKX,IAG1IqhB,EAAU,GAAKrhB,GAAYW,EAAI,GAAKX,SAKxCW,EAAI,GAAKX,KACTqhB,EAAU,GAAKrhB,GAAY,CACvBi+U,WAAY,CACR31U,MAAO3H,EAAI,GAAKX,GAAUi+U,WAAW31U,MAAOmT,OAAQ9a,EAAI,GAAKX,GAAUi+U,WAAWxiU,QACnF45G,QAAS10H,EAAI,GAAKX,GAAUq1H,QAASC,QAAS30H,EAAI,GAAKX,GAAUs1H,SAKxF,CACJ,CACA,OAAOj0G,CACX,CAQO,SAAS09T,GAAWE,EAAaT,EAAgB9/U,GACpD,IAAIwgV,EACJ,GAAID,EAAa,CACbC,EAAc,GACd,IAAK,IAAIzgV,EAAI,EAAGA,EAAIwgV,EAAYviV,OAAQ+B,IAChCwgV,EAAY11U,SAAS9K,EAAEqL,WAAY,eAAgBmG,MACnDivU,EAAYt9U,KAAKq9U,EAAY11U,SAAS9K,EAAEqL,WAAY,MAE/Cm1U,EAAY11U,SAAS9K,EAAEqL,WAAY,eAAgBpM,OACxDwhV,EAAYt9U,KAAK28U,GAAYU,EAAY11U,SAAS9K,EAAEqL,WAAY,KAAM00U,EAAgB9/U,IAGtFwgV,EAAYt9U,KAAKq9U,EAAY11U,SAAS9K,EAAEqL,WAAY,KAGhE,CACA,OAAOo1U,CACX,CCtMA,ICGWC,GACAA,GAUAC,GACAA,GAUAC,GACAA,GAeAC,GACAA,GAQAC,GACAA,GAOAC,GACAA,GAWAC,GACAA,GAgCAC,GACAA,GAWAC,GACAA,GAUAC,GACAA,GAiBAC,GACAA,GAWAC,GACAA,GAOAC,GACAA,GDrKPpjR,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAKIw+U,GAAQ,UACRC,GAAW,sBACXC,GAAQ,UACRC,GAAgB,SAChBC,GAAQ,UACRC,GAAS,qBACTC,GAAc,iBACdC,GAAsB,gBACtBrgB,GAAM,QACN7N,GAAU,qBACVkmB,GAAgB,CAAC,QAAS,QAAS,QAAS,WAAY,WAAY,OAAQ,SAY5EiI,GAA0B,SAAU97U,GASpC,SAAS87U,EAAS1hV,EAASmvB,GACvB,IAAItpB,EAAQD,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,KAKnD,OAJA4F,EAAMunN,WAAY,EAClBvnN,EAAM87U,cAAe,EACrB97U,EAAM+7U,gBAAiB,EACvB/7U,EAAMg8U,YAAa,EACZh8U,CACX,CA8hBA,OA7iBAg4D,GAAU6jR,EAAU97U,GAgBpB87U,EAAS7jV,UAAUikV,YAAc,SAAUp7U,EAAOq7U,GAC9C,IACInuB,EACAouB,EAAY/hV,KAAKgiV,aAAa9vO,uBAAuBivO,IAAO,GAC5DtpC,KACA8b,EAAa3zT,KAAKgiV,aAAa9vO,uBAAuBovO,IAAQ,IAEpD,UAAV76U,GACAs7U,EAAU/1T,UAAUG,OAAOi1T,IAC3BW,EAAU/1T,UAAUC,IAAIg1T,IACpBttB,IACAA,EAAW3nS,UAAUG,OAAOq1T,IAC5B7tB,EAAW3nS,UAAUC,IAAIs1T,KAG7BvhV,KAAKkvB,QAAQmN,SAAU,EACnBr8B,KAAKkvB,QAAQ8zJ,UAAYhjL,KAAK4hV,aAAeE,GAC7C9hV,KAAKkvB,QAAQmN,SAAU,EACvBr8B,KAAK4hV,YAAa,GAEb5hV,KAAKkvB,QAAQ8zJ,WAClBhjL,KAAK4hV,YAAa,IAGP,YAAVn7U,GACL2oS,GAAY,CAAC2yC,GAAY,CAACd,GAAOG,KAC7BztB,GACAvkB,GAAY,CAACukB,GAAa,CAAC4tB,GAAaC,KAG5CxhV,KAAKkvB,QAAQmN,SAAU,EACnBr8B,KAAKkvB,QAAQ8zJ,UAAYhjL,KAAK4hV,aAAeE,GAC7C9hV,KAAKkvB,QAAQmN,SAAU,EACvBr8B,KAAK4hV,YAAa,GAEb5hV,KAAKkvB,QAAQ8zJ,WAClBhjL,KAAK4hV,YAAa,KAItBG,EAAU/1T,UAAUG,OAAO80T,IAC3Bc,EAAU/1T,UAAUC,IAAIm1T,IACpBztB,IACAA,EAAW3nS,UAAUG,OAAOo1T,IAC5B5tB,EAAW3nS,UAAUC,IAAIu1T,KAG7BxhV,KAAKkvB,QAAQ+yT,eAAgB,EAErC,EACAR,EAAS7jV,UAAU00G,aAAe,SAAUl8F,GACxC,GAA6B,UAAzBA,EAAM1V,OAAOwjB,SAAuBlkB,KAAK2hV,eAKzC,OAJI3hV,KAAKgpU,OACLhpU,KAAK6hV,YAAY7hV,KAAKq8B,QAAU,QAAU,gBAE9Cr8B,KAAK2hV,gBAAiB,GAGG,SAAzBvrU,EAAM1V,OAAOwjB,SAA+C,UAAzB9N,EAAM1V,OAAOwjB,UAChDlkB,KAAK2hV,gBAAiB,GAEtB3hV,KAAK0hV,eACL1hV,KAAK07U,kBACL17U,KAAK0hV,cAAe,GAEpB1hV,KAAKiiV,eACLjiV,KAAK6hV,YAAY7hV,KAAKq8B,QAAU,QAAU,WAC1Cr8B,KAAKiiV,eAAgB,EACrBjiV,KAAKkvB,QAAQ+yT,eAAgB,GAExBjiV,KAAKq8B,SACVr8B,KAAK6hV,YAAY,WACjB7hV,KAAKq8B,SAAU,IAGfr8B,KAAK6hV,YAAY,SACjB7hV,KAAKq8B,SAAU,GAEnB,IAAI6lT,EAAkB,CAAE7lT,QAASr8B,KAAKmiV,qBAAoB,GAAQ/rU,MAAOA,GACzEpW,KAAK2sL,QAAQ,SAAUu1J,GACvB9rU,EAAM20B,iBACV,EAMA02S,EAAS7jV,UAAU4C,QAAU,WACzB,IAAIoF,EAAQ5F,KACR0a,EAAU1a,KAAKgiV,aACnBr8U,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,MAC1BA,KAAK0a,UACLA,EAAU1a,KAAK0a,QACV1a,KAAKuU,UACNvU,KAAK80T,eAEY,UAAjB90T,KAAKkkB,SACDlkB,KAAKgiV,cAAgBtnU,EAAQ4P,YAC7B5P,EAAQ4P,WAAW+lC,aAAarwD,KAAKkvB,QAASxU,GAElD8gK,GAAO9gK,GACP1a,KAAKkvB,QAAQmN,SAAU,EACnBr8B,KAAKiiV,gBACLjiV,KAAKkvB,QAAQ+yT,eAAgB,GAEjC,CAAC,OAAQ,QAAS,YAAYl/U,SAAQ,SAAUpD,GAC5CiG,EAAMspB,QAAQwK,gBAAgB/5B,EAClC,MAGA,CAAC,SAASoD,SAAQ,SAAUpD,GACxB+a,EAAQgf,gBAAgB/5B,EAC5B,IACA+a,EAAQ+N,UAAY,IAGhC,EACAg5T,EAAS7jV,UAAU69U,aAAe,WAC9Bz7U,KAAKmtN,WAAY,CACrB,EACAs0H,EAAS7jV,UAAU89U,gBAAkB,WACjC,IAAIhhU,EAAU1a,KAAKgiV,aACftnU,GACAA,EAAQsR,UAAUG,OAAO,WAE7BnsB,KAAKmtN,WAAY,CACrB,EAOAs0H,EAAS7jV,UAAU40S,cAAgB,WAC/B,MAAO,UACX,EAOAivC,EAAS7jV,UAAU6hT,eAAiB,WAChC,OAAOz/S,KAAK+/S,aAAa,CAAC,UAAW,iBACzC,EACA0hC,EAAS7jV,UAAUokV,WAAa,WAC5B,OAAIhiV,KAAKkvB,SAAWlvB,KAAKkvB,QAAQ65R,cACtB/oT,KAAKkvB,QAAQ65R,cAAcA,cAG3B,IAEf,EACA04B,EAAS7jV,UAAU2pI,WAAa,WACxBwrJ,GAAkB/yR,KAAKoiV,uBACvBpiV,KAAKoiV,oBAAsBpiV,KAAKq8B,SAEhCr8B,KAAKtC,MACLsC,KAAKkvB,QAAQyK,aAAa,OAAQ35B,KAAKtC,MAEvCsC,KAAKkB,QACLlB,KAAKkvB,QAAQyK,aAAa,QAAS35B,KAAKkB,OACpClB,KAAKgpU,OAA+B,mBAAfhpU,KAAKkB,QAAsC,IAAflB,KAAKkB,OACtDlB,KAAKwxS,cAAc,CAAE,SAAW,IAAQ,IAG5CxxS,KAAKq8B,SACLr8B,KAAK6hV,YAAY,SAAS,GAE1B7hV,KAAKiiV,eACLjiV,KAAK6hV,cAEL7hV,KAAKuU,UACLvU,KAAKqiV,aAEb,EACAZ,EAAS7jV,UAAU0kV,YAAc,WAC7B,IAAI5nU,EAAU1a,KAAKkvB,QAAQ65R,cACtBruS,EAAQsR,UAAU6oB,SAASy+Q,MAC5B54S,EAAU1a,KAAK2J,cAAc,MAAO,CAChCC,UAAW0pT,KAEftzT,KAAKkvB,QAAQ5E,WAAW+lC,aAAa31C,EAAS1a,KAAKkvB,UAEvD,IAAIw2K,EAAQ1lM,KAAK2J,cAAc,QAAS,CAAE4xD,MAAO,CAAE/9C,IAAKxd,KAAKkvB,QAAQ1G,MACjEu5T,EAAY/hV,KAAK2J,cAAc,OAAQ,CAAEC,UAAW,WAAau3U,KAYrE,GAXAzmU,EAAQsR,UAAUC,IAAI,aAClBjsB,KAAK49S,WACLljS,EAAQsR,UAAUC,IAAIk1S,IAEtBnhU,KAAKq0T,UACLtlB,GAAS,CAACr0R,GAAU1a,KAAKq0T,SAASzoT,QAAQ,OAAQ,KAAKjD,OAAOwwB,MAAM,MAExEze,EAAQiO,YAAY+8K,GACpBA,EAAM/8K,YAAY3oB,KAAKkvB,Sd/FxB,SAAwBopD,EAAOsvH,GAC9BtvH,EAAMppD,QAAQ6hD,aAAa,YAC3B62H,EAAKj/K,YAAY2vD,EAAM3uE,cAAc,QAAS,CAC1C4xD,MAAO,CAAE,KAAQ+c,EAAM56E,MAAQ46E,EAAMppD,QAAQxxB,KAAM,MAAS,QAAS,KAAQ,YAGzF,Cc0FQ6kV,CAAeviV,KAAM0lM,GACrBA,EAAM/8K,YAAYo5T,GACdlqC,GAAiB,CACjB,IAAI8b,EAAa3zT,KAAK2J,cAAc,OAAQ,CAAEC,UAAW03U,KAC9B,WAAvBthV,KAAKwiV,cACL98I,EAAM/8K,YAAYgrS,GAGlBjuH,EAAMr1I,aAAasjQ,EAAYouB,GAEnCxqC,GAAaoc,EAAY,CAAE7tP,SAAU,IAAK6xO,gBAAgB,GAC9D,CACI33S,KAAK0lM,OACL1lM,KAAKq9K,QAAQr9K,KAAK0lM,MAE1B,EACA+7I,EAAS7jV,UAAU6kV,aAAe,WAC1BziV,KAAKmtN,WACLntN,KAAKgiV,aAAah2T,UAAUC,IAAI,UAExC,EACAw1T,EAAS7jV,UAAU8kV,sBAAwB,SAAU7iV,GACjDG,KAAK0hV,cAAe,EAEpBhuB,GAAmB7zT,EADFG,KAAKgiV,aAAa9vO,uBAAuBovO,IAAQ,GAEtE,EACAG,EAAS7jV,UAAU+kV,oBAAsB,SAAU9iV,GAC/CG,KAAK0hV,cAAe,EACpB,IAAI/tB,EAAa3zT,KAAKgiV,aAAa9vO,uBAAuBovO,IAAQ,GAClE,GAAI3tB,EAAY,CAEZ,IADA,IAAIivB,EAAajvB,EAAWptS,iBAAiB,qBACpC7mB,EAAI,EAAGA,EAAIkjV,EAAWjlV,OAAS,EAAG+B,IACvCi0T,EAAWv1R,YAAYu1R,EAAW9rS,WAAWnoB,IAEjDg0T,GAAmB7zT,EAAG8zT,EAC1B,CACJ,EAUA8tB,EAAS7jV,UAAUs0S,kBAAoB,SAAUmF,EAASC,GAEtD,IADA,IAAI58R,EAAU1a,KAAKgiV,aACVrnR,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,UACD36D,KAAKiiV,eAAgB,EACrBjiV,KAAKkvB,QAAQ+yT,eAAgB,EAC7BjiV,KAAK6hV,YAAYxqC,EAAQh7Q,QAAU,QAAU,WAC7C,MACJ,IAAK,gBACGg7Q,EAAQ4qC,cACRjiV,KAAK6hV,eAGL7hV,KAAKkvB,QAAQ+yT,eAAgB,EAC7BjiV,KAAK6hV,YAAY7hV,KAAKq8B,QAAU,QAAU,YAE9C,MACJ,IAAK,WACGg7Q,EAAQ9iS,UACRvU,KAAKqiV,cACLriV,KAAK0a,QAAU1a,KAAKgiV,aACpBhiV,KAAK80T,iBAGL90T,KAAKkvB,QAAQ3a,UAAW,EACxBmG,EAAQsR,UAAUG,OAAO+0T,IACzBxmU,EAAQif,aAAa,gBAAiB,SACtC35B,KAAKqpT,cAET,MACJ,IAAK,WACG/R,EAAQ+c,UACRjlB,GAAY,CAAC10R,GAAU48R,EAAQ+c,SAASl7R,MAAM,MAE9Ck+Q,EAAQgd,UACRtlB,GAAS,CAACr0R,GAAU28R,EAAQgd,SAASzoT,QAAQ,OAAQ,KAAKjD,OAAOwwB,MAAM,MAE3E,MACJ,IAAK,YACGk+Q,EAAQuG,UACRljS,EAAQsR,UAAUC,IAAIk1S,IAGtBzmT,EAAQsR,UAAUG,OAAOg1S,IAE7B,MACJ,IAAK,QACDnhU,KAAKq9K,QAAQg6H,EAAQ3xG,OACrB,MACJ,IAAK,gBACD,IAAIA,EAAQhrL,EAAQw3F,uBAAuBmvO,IAAO,GAC9CwB,EAAYnoU,EAAQgO,qBAAqB,SAAS,GACtD8yJ,GAAOkqB,GACuB,UAA1B2xG,EAAQmrC,cACRK,EAAUl6T,YAAY+8K,GAGtBm9I,EAAUxyR,aAAaq1I,EAAOhrL,EAAQw3F,uBAAuBivO,IAAO,IAExE,MAEJ,IAAK,OACDnhV,KAAKkvB,QAAQyK,aAAa,OAAQ09Q,EAAQ35S,MAC1C,MACJ,IAAK,QACD,GAAIsC,KAAKgpU,OAAkC,kBAAlB3xB,EAAQn2S,MAC7B,MAEJlB,KAAKkvB,QAAQyK,aAAa,QAAS09Q,EAAQn2S,OAC3C,MACJ,IAAK,iBACDlB,KAAK8iV,+BAGjB,CACJ,EAOArB,EAAS7jV,UAAUugT,UAAY,WAC3B,IAAIjvR,EAAUlvB,KAAKkvB,QACnBlvB,KAAKkkB,QAAUlkB,KAAKkvB,QAAQhL,QAC5BgL,EAAUmkS,GAAkBrzT,KAAK2J,cAAe,eAAgB,WAAYulB,EAASokS,IACrFtzT,KAAKkvB,QAAUA,EAC2B,aAAtClvB,KAAKkvB,QAAQ6hD,aAAa,SAC1B/wE,KAAKkvB,QAAQyK,aAAa,OAAQ,YAEjC35B,KAAKkvB,QAAQ1G,KACdxoB,KAAKkvB,QAAQ1G,GAAKorQ,GAAY,KAAO5zR,KAAKwyS,iBAElD,EAOAivC,EAAS7jV,UAAUY,OAAS,WACxBwB,KAAKsiV,cACLtiV,KAAKunI,aACAvnI,KAAKuU,UACNvU,KAAKqpT,aAETrpT,KAAK8iV,+BACL9iV,KAAKmiV,qBAAoB,GACzBniV,KAAK++S,iBACL/+S,KAAK0a,QAAU1a,KAAKgiV,YACxB,EACAP,EAAS7jV,UAAUykV,YAAc,WAC7B,IAAI3nU,EAAU1a,KAAKgiV,aACnBhiV,KAAKkvB,QAAQ3a,UAAW,EACxBmG,EAAQsR,UAAUC,IAAIi1T,IACtBxmU,EAAQif,aAAa,gBAAiB,OAC1C,EACA8nT,EAAS7jV,UAAUy/K,QAAU,SAAUvqI,GACnC,IAAIp4B,EAAU1a,KAAKgiV,aACnB,GAAKtnU,EAAL,CAGA,IAAIgrL,EAAQhrL,EAAQw3F,uBAAuBmvO,IAAO,GAClD,GAAI37I,EACAA,EAAM7nK,YAAciV,MAEnB,CACDA,EAAQ9yC,KAAKu0T,oBAAuB9B,GAAmBG,SAAS9/Q,GAAQA,EACxE4yJ,EAAQ1lM,KAAK2J,cAAc,OAAQ,CAAEC,UAAWy3U,GAAO54T,UAAWqqB,IAClE,IAAI+vS,EAAYnoU,EAAQgO,qBAAqB,SAAS,GAC3B,WAAvB1oB,KAAKwiV,cACLK,EAAUxyR,aAAaq1I,EAAOhrL,EAAQw3F,uBAAuBivO,IAAO,IAGpE0B,EAAUl6T,YAAY+8K,EAE9B,CAfA,CAgBJ,EACA+7I,EAAS7jV,UAAUg+U,cAAgB,SAAU/7U,GACzCA,EAAEkrC,iBACN,EACA02S,EAAS7jV,UAAUmlV,iBAAmB,WAClC/iV,KAAKq8B,QAAUr8B,KAAKoiV,oBACpBpiV,KAAKkvB,QAAQmN,QAAUr8B,KAAKoiV,mBAChC,EACAX,EAAS7jV,UAAUk3T,aAAe,WAC9B,IAAIp6S,EAAU1a,KAAK0a,QACnBqzR,GAAa5hR,OAAOzR,EAAS,QAAS1a,KAAKsyG,cAC3Cy7L,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,QAASlvB,KAAKyiV,cAChD10C,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,QAASlvB,KAAKy7U,cAChD1tC,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,WAAYlvB,KAAK07U,iBACnD,IAAIh2I,EAAQhrL,EAAQgO,qBAAqB,SAAS,GAClDqlR,GAAa5hR,OAAOu5K,EAAO,YAAa1lM,KAAK0iV,uBAC7C30C,GAAa5hR,OAAOu5K,EAAO,UAAW1lM,KAAK2iV,qBAC3C,IAAIK,EAAWl6M,GAAQ9oI,KAAKkvB,QAAS,QACjC8zT,GACAj1C,GAAa5hR,OAAO62T,EAAU,QAAShjV,KAAK+iV,kBAE3B,iBAAjB/iV,KAAKkkB,SACL6pR,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,SAAUlvB,KAAK47U,cAEzD,EACA6F,EAAS7jV,UAAUyrT,WAAa,WAC5B,IAAI3uS,EAAU1a,KAAKgiV,aACnBj0C,GAAa9hR,IAAIvR,EAAS,QAAS1a,KAAKsyG,aAActyG,MACtD+tS,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,QAASlvB,KAAKyiV,aAAcziV,MAC3D+tS,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,QAASlvB,KAAKy7U,aAAcz7U,MAC3D+tS,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,WAAYlvB,KAAK07U,gBAAiB17U,MACjE,IAAI0lM,EAAQhrL,EAAQgO,qBAAqB,SAAS,GAClDqlR,GAAa9hR,IAAIy5K,EAAO,YAAa1lM,KAAK0iV,sBAAuB1iV,MACjE+tS,GAAa9hR,IAAIy5K,EAAO,UAAW1lM,KAAK2iV,oBAAqB3iV,MAC7D,IAAIgjV,EAAWl6M,GAAQ9oI,KAAKkvB,QAAS,QACjC8zT,GACAj1C,GAAa9hR,IAAI+2T,EAAU,QAAShjV,KAAK+iV,iBAAkB/iV,MAE1C,iBAAjBA,KAAKkkB,SACL6pR,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,SAAUlvB,KAAK47U,cAAe57U,KAErE,EACAyhV,EAAS7jV,UAAUukV,oBAAsB,SAAU1yO,GAC/C,GAAIzvG,KAAKgpU,OAA+B,kBAAfhpU,KAAKkB,MAAoB,CAC9C,IAAIA,EAAQlB,KAAKkvB,QAAQhuB,MACzB,GAAIA,GAASlB,KAAKkB,MAAO,CACrB,IAAIuuG,EAQC,CACD,IAAIloG,EAAQvH,KAAKkB,MAAMuO,QAAQvO,GAY/B,OAXIlB,KAAKq8B,QACD90B,EAAQ,GACRvH,KAAKkB,MAAM2B,KAAK3B,GAIhBqG,GAAS,GACTvH,KAAKkB,MAAM61D,OAAOxvD,EAAO,GAI1BvH,KAAKkB,KAChB,CArBI,IAAK,IAAIxB,EAAI,EAAGA,EAAIM,KAAKkB,MAAMvD,OAAQ+B,IAC/BwB,IAAUlB,KAAKkB,MAAMxB,KACrBM,KAAK6hV,YAAY,SACjB7hV,KAAKwxS,cAAc,CAAE,SAAW,IAAQ,GAmBxD,CACJ,CACA,OAAOxxS,KAAK4hV,WAAa5hV,KAAKkvB,QAAQmN,SAAWr8B,KAAKkvB,QAAQmN,OAClE,EACAolT,EAAS7jV,UAAUklV,6BAA+B,WAC9C,IAAK/vD,GAAkB/yR,KAAKi7U,gBACxB,IAAK,IAAItgR,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKU,KAAKi7U,gBAAiBtgR,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC1E,IAAIh7D,EAAM4a,EAAGogD,GACb,GAAI6+Q,GAAc/pU,QAAQ9P,IAAQ,EAAG,CACjC,IAAI+a,EAAU1a,KAAKgiV,aACnB,GAAY,UAARriV,EACAovS,GAAS,CAACr0R,GAAU1a,KAAKi7U,eAAe,GAAKt7U,GAAKw5B,MAAM,WAEvD,GAAY,UAARx5B,EACL+a,EAAQif,aAAah6B,EAAKK,KAAKi7U,eAAe,GAAKt7U,SAElD,GAAY,UAARA,EAAiB,CACNK,KAAKgiV,aAAa9vO,uBAAuBivO,IAAO,GACtDxnT,aAAah6B,EAAKK,KAAKi7U,eAAe,GAAKt7U,GACzD,KACiB,aAARA,GACiC,SAAlCK,KAAKi7U,eAAe,GAAKt7U,IACzBK,KAAKqiV,cAETriV,KAAKkvB,QAAQyK,aAAah6B,EAAKK,KAAKi7U,eAAe,GAAKt7U,KAGxDK,KAAKkvB,QAAQyK,aAAah6B,EAAKK,KAAKi7U,eAAe,GAAKt7U,GAEhE,CACJ,CAER,EAQA8hV,EAAS7jV,UAAUo6L,MAAQ,WACvBh4L,KAAKkvB,QAAQ8oK,OACjB,EAQAypJ,EAAS7jV,UAAUm3T,QAAU,WACzB/0T,KAAKkvB,QAAQmnB,OACjB,EACAs/P,GAAW,CACPxuH,MACDs6J,EAAS7jV,UAAW,cAAU,GACjC+3S,GAAW,CACPxuH,MACDs6J,EAAS7jV,UAAW,eAAW,GAClC+3S,GAAW,CACPnB,IAAS,IACVitC,EAAS7jV,UAAW,eAAW,GAClC+3S,GAAW,CACPnB,GAAS,KACVitC,EAAS7jV,UAAW,gBAAY,GACnC+3S,GAAW,CACPnB,IAAS,IACVitC,EAAS7jV,UAAW,gBAAY,GACnC+3S,GAAW,CACPnB,IAAS,IACVitC,EAAS7jV,UAAW,qBAAiB,GACxC+3S,GAAW,CACPnB,GAAS,KACVitC,EAAS7jV,UAAW,aAAS,GAChC+3S,GAAW,CACPnB,GAAS,UACVitC,EAAS7jV,UAAW,qBAAiB,GACxC+3S,GAAW,CACPnB,GAAS,KACVitC,EAAS7jV,UAAW,YAAQ,GAC/B+3S,GAAW,CACPnB,GAAS,KACVitC,EAAS7jV,UAAW,aAAS,GAChC+3S,GAAW,CACPnB,IAAS,IACVitC,EAAS7jV,UAAW,2BAAuB,GAC9C+3S,GAAW,CACPnB,GAAS,CAAC,IACXitC,EAAS7jV,UAAW,sBAAkB,GACzC6jV,EAAW9rC,GAAW,CAClBX,IACDysC,EAEP,CA/iB8B,CA+iB5Bv3U,IE5lBE0zD,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAKIwgV,GAAU,QACVC,GAAc,YAGdC,GAAe,cACfC,GAAoB,oBACpBC,GAAmB,mBACnBC,GAAiB,eACjBC,GAAsB,qBACtBC,GAAqB,oBACrBC,GAAa,kBACbC,GAAc,mBACdC,GAAmB,yBACnBC,GAAkB,wBAclBC,GAAyB,SAAUl+U,GAQnC,SAASk+U,EAAQ9jV,EAASmvB,GACtB,OAAOvpB,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,IAClD,CAmbA,OA5bA49D,GAAUimR,EAASl+U,GAgBnBk+U,EAAQjmV,UAAUugT,UAAY,WAC1Bn+S,KAAK8jV,QAAU13C,GAAQ3uK,KAAK//H,KAC5BsC,KAAK+jV,aAAgC,YAAjB/jV,KAAK8jV,QACzB9jV,KAAK6sS,SAAWT,GAAQS,SACxB7sS,KAAKgkV,YAAa,EAClB,IAAI90T,EAAUlvB,KAAKkvB,QACnBlvB,KAAKikV,QAA2B,SAAjBjkV,KAAK8jV,SAAuC,SAAjB9jV,KAAK8jV,QAC/C9jV,KAAKunI,aACc,KAAfr4G,EAAQ1G,KACR0G,EAAQ1G,GAAKorQ,GAAY,WACzB5zR,KAAKkkV,UAAW,GAEpBh1T,EAAQruB,MAAM6I,QAAU,QACpB1J,KAAK49S,WACL1uR,EAAQlD,UAAUC,IAAIg3T,GAE9B,EAOAY,EAAQjmV,UAAUY,OAAS,WACvBwB,KAAKmkV,YAAc,IAAI34B,GAAMxrT,KAAKkvB,QAAS,CAAEk1T,OAAQpkV,KAAKqkV,aAAaliV,KAAKnC,MAAOokB,MAAOpkB,KAAKskV,aAAaniV,KAAKnC,QACjH+tS,GAAa9hR,IAAIjsB,KAAKukV,UAAW,SAAUvkV,KAAKwkV,cAAexkV,MAC1DA,KAAK6sS,UAIN7sS,KAAKkvB,QAAQlD,UAAUC,IAAIw3T,IAC3BzjV,KAAKykV,cAAczkV,KAAKkvB,UAJxBlvB,KAAK0kV,cAAc1kV,KAAKkvB,SAM5BlvB,KAAK2kV,gBACT,EACAd,EAAQjmV,UAAU+mV,eAAiB,WAC3B5xD,GAAkB/yR,KAAK4kV,aAAe5kV,KAAK4kV,WAAa,GACxD5kV,KAAK4kV,WAAa5kV,KAAKukV,UAAUjjU,YACjCthB,KAAKgkV,YAAa,GAGlBhkV,KAAKgkV,YAAa,CAE1B,EACAH,EAAQjmV,UAAU2pI,WAAa,WAC3B,IAAIg9M,EAAYvkV,KAAK2J,cAAc,MAAO,CAAEC,UAtF/B,sBAuFT21P,EAAYv/P,KAAK2J,cAAc,MAAO,CAAEC,UAxF/B,kBAyFb21P,EAAU5lO,aAAa,WAAY,MAGnC,IAFA,IAAIs1Q,EAAMjvS,KAAKkvB,QAENyrC,EAAK,EAAGkqR,EADF,GAAGh9U,MAAMvF,KAAK2sS,EAAI1mS,UACOoyD,EAAKkqR,EAAWlnV,OAAQg9D,IAAM,CAClE,IAAImqR,EAAQD,EAAWlqR,GACvB4pR,EAAU57T,YAAYm8T,EAC1B,CACAvlF,EAAU52O,YAAY47T,GACtBt1C,EAAItmR,YAAY42O,GAChBA,EAAU1+P,MAAM6oL,UAAY,SAC5B1pL,KAAKukV,UAAYhlF,EACjBv/P,KAAK+kV,YAAcR,CACvB,EACAV,EAAQjmV,UAAU6hT,eAAiB,WAE/B,OAAOz/S,KAAK+/S,aADI,CAAC,cAErB,EAOA8jC,EAAQjmV,UAAU40S,cAAgB,WAC9B,MAAO,SACX,EAMAqxC,EAAQjmV,UAAU4C,QAAU,WACxB,IAAIyuS,EAAMjvS,KAAKkvB,QACf+/Q,EAAIpuS,MAAM6I,QAAU,GACpBulS,EAAIjjR,UAAUG,OA9HP,aA+HP8iR,EAAIjjR,UAAUG,OAAOs3T,IACrB,IAAIuB,EAAM/vM,GAAU,MAAQg6J,EAAIzmR,GAAK,QAAU86T,GAAgBr0C,GAC3Dg2C,EAAUhwM,GAAU,IAAMyuM,GAAaz0C,GAC3C,GAAGpnS,MAAMvF,KAAK2iV,GAASliV,SAAQ,SAAUksS,GACrCzzH,GAAOyzH,EACX,IACA,IAAK,IAAIt0O,EAAK,EAAGpgD,EAAK,GAAG1S,MAAMvF,KAAKtC,KAAK+kV,YAAYx8U,UAAWoyD,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAClF,IAAIvrD,EAAOmL,EAAGogD,GACds0O,EAAItmR,YAAYvZ,EACpB,CACIpP,KAAKkkV,UACLlkV,KAAKkvB,QAAQwK,gBAAgB,MAEjC8hJ,GAAOx7K,KAAKukV,WACRS,EAAIrnV,OAAS,IACb69K,GAAOwpK,EAAI,IACNjyD,GAAkBiyD,EAAI,KACvBxpK,GAAOwpK,EAAI,KAGnBj3C,GAAa5hR,OAAOnsB,KAAKukV,UAAW,SAAUvkV,KAAKwkV,eACnDxkV,KAAKmkV,YAAY3jV,UACjBR,KAAKmkV,YAAc,KACnBx+U,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,KAClC,EAQA6jV,EAAQjmV,UAAUk6I,QAAU,SAAU52I,GAClC,IAAIgkV,EAAUjwM,GAAU,sBAAwBiuM,GAAc,IAAKljV,KAAKkvB,SACpEhuB,EACAlB,KAAKkvB,QAAQlD,UAAUC,IAAIi3T,IAG3BljV,KAAKkvB,QAAQlD,UAAUG,OAAO+2T,IAElC,GAAGr7U,MAAMvF,KAAK4iV,GAASniV,SAAQ,SAAUmlB,GACrCA,EAAGyR,aAAa,WAAaz4B,EAAc,KAAN,IACzC,GACJ,EACA2iV,EAAQjmV,UAAU6mV,cAAgB,SAAUv1T,GACxC,IAAI1G,EAAK0G,EAAQ1G,GAAGjpB,OAAO,QACvB4lV,EAAkBnlV,KAAK2J,cAAc,MAAO,CAAEC,UAAW85U,GAAc,IAAMC,KAC7EyB,EAAW,KAAOl2T,EAAQ1G,GAAGjpB,OAAO,QAAU+jV,GAAiB,IAAMC,IACrE8B,EAAWrlV,KAAK2J,cAAc,MAAO,CAAE6e,GAAIA,EAAGjpB,OAAO,UAAWqK,UAAWw7U,IAC3EE,EAAUtlV,KAAK2J,cAAc,MAAO,CAAEC,UAAWw5U,GAAoB,IAAMD,GAAe,aAC9FkC,EAAS18T,YAAY28T,GACrB,IAAIC,EAAUvlV,KAAK2J,cAAc,MAAO,CAAEC,UAAW85U,GAAc,IAAME,KACrE5jV,KAAKikV,SACLoB,EAASr5T,UAAUC,IAAI,cAE3BiD,EAAQvG,YAAYw8T,GACpBj2T,EAAQvG,YAAY08T,GACpBn2T,EAAQmhC,aAAak1R,EAASr2T,EAAQiP,YACtCn+B,KAAKwlV,aAAa,CAACH,GACvB,EACAxB,EAAQjmV,UAAU8mV,cAAgB,SAAUx1T,GACxC,IAAI1G,EAAK0G,EAAQ1G,GAAGjpB,OAAO,QACvB6lV,EAAW,KAAOl2T,EAAQ1G,GAAGjpB,OAAO,QAAU+jV,GAAiB,IAAMC,IACrEkC,EAAkB,CAAE,KAAQ,SAAU,GAAMj9T,EAAGjpB,OAAO,UAAW,aAAc,gBAC/EylV,EAAMhlV,KAAK2J,cAAc,MAAO,CAAEC,UAAWw7U,EAAU7pR,MAAOkqR,IAClET,EAAIrrT,aAAa,gBAAiB,SAClC,IAAI2rT,EAAUtlV,KAAK2J,cAAc,MAAO,CAAEC,UAAWw5U,GAAoB,IAAMD,GAAe,aAC1FuC,EAAU,KAAOx2T,EAAQ1G,GAAGjpB,OAAO,QAAU+jV,GAAiB,IAAME,IACpEmC,EAAiB,CAAE,KAAQ,SAAU,GAAMn9T,EAAGjpB,OAAO,SAAU,aAAc,eAC7EqmV,EAAS5lV,KAAK2J,cAAc,MAAO,CAAEC,UAAW87U,EAAU,IAAMxC,GAAa3nR,MAAOoqR,IACxFC,EAAOjsT,aAAa,gBAAiB,QACrC,IAAIksT,EAAc7lV,KAAK2J,cAAc,MAAO,CAAEC,UAAWy5U,GAAmB,IAAMF,GAAe,aACjGyC,EAAOj9T,YAAYk9T,GACnBb,EAAIr8T,YAAY28T,GAChBp2T,EAAQvG,YAAYq8T,GACpB91T,EAAQmhC,aAAau1R,EAAQ12T,EAAQiP,YACjCn+B,KAAKikV,UACLe,EAAIh5T,UAAUC,IAAI,cAClB25T,EAAO55T,UAAUC,IAAI,eAEzBjsB,KAAKwlV,aAAa,CAACR,EAAKY,GAC5B,EACA/B,EAAQjmV,UAAUkoV,WAAa,SAAUjmV,GACrC,IAAI+F,EAAQ5F,KACZ,GAAc,UAAVH,EAAEF,IAAiB,CAKnBK,KAAK+lV,SAAWvvU,OAAOtJ,YAAW,WAH9BtH,EAAMogV,YAAa,EACnBpgV,EAAMqgV,aAAa,GAAIpmV,EAAEa,QAAQ,EAIrC,GAAG,IACP,CACJ,EACAmjV,EAAQjmV,UAAU2lR,QAAU,SAAU1jR,GACpB,UAAVA,EAAEF,MAGFK,KAAKgmV,WACLhmV,KAAKgmV,YAAa,EAGlBnmV,EAAEa,OAAOs3L,QAEbxqL,aAAaxN,KAAK+lV,UACtB,EACAlC,EAAQjmV,UAAU4nV,aAAe,SAAUv2C,GACvC,IAAIrpS,EAAQ5F,KACZ,GAAG6H,MAAMvF,KAAK2sS,GAAKlsS,SAAQ,SAAUmlB,GACjC,IAAIsjS,GAAMtjS,EAAI,CAAEg+T,QAAStgV,EAAMugV,eAAehkV,KAAKyD,GAAQi8S,iBAAkB,MAC7E35R,EAAGb,iBAAiB,UAAWzhB,EAAMkgV,WAAW3jV,KAAKyD,IACrDsiB,EAAGb,iBAAiB,QAASzhB,EAAM29Q,QAAQphR,KAAKyD,IAChDsiB,EAAGb,iBAAiB,UAAWzhB,EAAMwgV,aAAajkV,KAAKyD,IACvDsiB,EAAGb,iBAAiB,WAAYzhB,EAAMwgV,aAAajkV,KAAKyD,IACxDsiB,EAAGb,iBAAiB,eAAe,SAAUxnB,GACzCA,EAAE+U,gBACN,IACAm5R,GAAa9hR,IAAI/D,EAAI,QAAStiB,EAAMygV,kBAAmBzgV,EAC3D,GACJ,EACAi+U,EAAQjmV,UAAUwoV,aAAe,WAC7Bv2Q,cAAc7vE,KAAKm4M,QACvB,EACA0rI,EAAQjmV,UAAUuoV,eAAiB,SAAUtmV,GACzC,IAAI+F,EAAQ5F,KACRsmV,EAAOzmV,EAAEitT,cAAcpsT,OAC3B4lV,EAAOtmV,KAAK60C,SAASyxS,EAAMhD,IAAkBgD,EAAK32C,kBAAoB22C,EAKtEtmV,KAAKm4M,QAAU3hM,OAAOm5D,aAAY,WAF9B/pE,EAAMqgV,aAFM,GAEkBK,GAAM,EAIxC,GAAG,GACP,EACAzC,EAAQjmV,UAAUi3C,SAAW,SAAUo6P,EAAKrlS,GACxC,OAAOqlS,EAAIjjR,UAAU6oB,SAASjrC,EAClC,EACAi6U,EAAQjmV,UAAUqoV,aAAe,SAAUM,EAAWD,EAAME,GACxD,IAAIC,EAAUzmV,KAAKkvB,QACflD,EAAYs6T,EAAKt6T,UACjBA,EAAU6oB,SAASyuS,MACnBt3T,EAAYs6T,EAAKvjU,cAAc,IAAMogU,IAAcn3T,WAEnDhsB,KAAK60C,SAAS4xS,EAASxD,KAAYjjV,KAAK+jV,eACxCwC,GAAaA,IAEXvmV,KAAK60C,SAAS4xS,EAASxD,KAAYjjV,KAAK+jV,cAAiB/jV,KAAKikV,QAC5Dj4T,EAAU6oB,SAASuuS,IACnBpjV,KAAK0mV,mBAAmBH,EAAW,MAAOC,GAG1CxmV,KAAK0mV,mBAAmBH,EAAW,GAAIC,GAIvCx6T,EAAU6oB,SAASwuS,IACnBrjV,KAAK0mV,mBAAmBH,EAAW,MAAOC,GAG1CxmV,KAAK0mV,mBAAmBH,EAAW,GAAIC,EAGnD,EACA3C,EAAQjmV,UAAUyoV,kBAAoB,SAAUxmV,GAC5CG,KAAKimV,aAAajmV,KAAK4kV,WAAY/kV,EAAEa,QAAQ,EACjD,EACAmjV,EAAQjmV,UAAU0mV,aAAe,SAAUzkV,GACvC,IACI6jT,EADAijC,EAAW3mV,KAAKukV,UAGhB7gC,EADA7jT,EAAEqtT,UAAY,EACHrtT,EAAEktT,WAA0B,GAAbltT,EAAEqtT,UAGjBrtT,EAAEktT,UAAYltT,EAAEqtT,SAE/B,IAAI15S,EAAQ,GACRgjS,EAAU,WACV,IAAI5nO,EAAO3jE,KAAKstK,IAAI/kK,GAChBo7D,GAAQ,EACRp4D,OAAOs4P,qBAAqBlgM,IAGH,SAArB/uE,EAAE6lB,eACFihU,EAASh8T,YAAc+4R,EAAW90O,EAER,UAArB/uE,EAAE6lB,iBACPihU,EAASh8T,YAAc+4R,EAAW90O,GAEtCp7D,GAAS,GACTgD,OAAO+gE,sBAAsBi/N,GAErC,EACAA,GACJ,EACAqtC,EAAQjmV,UAAUgpV,eAAiB,SAAUC,EAAW1hS,GACrC,QAAXA,EACAnlD,KAAKukV,UAAU55T,YAAck8T,EAG7B7mV,KAAKukV,UAAU55T,YAAck8T,EAE7B7mV,KAAK49S,WAAa59S,KAAKukV,UAAU55T,WAAa,IAC9C3qB,KAAKukV,UAAU55T,WAAa,EAEpC,EACAk5T,EAAQjmV,UAAU8oV,mBAAqB,SAAUG,EAAW1hS,EAAQqhS,GAChE,IAAI5gV,EAAQ5F,KAEZ,GAAIwmV,EACAxmV,KAAK4mV,eAAeC,EAAW1hS,OADnC,CAIKnlD,KAAKgkV,YACN,GAAGn8U,MAAMvF,KAAK2yI,GAAU,IAAMyuM,GAAa1jV,KAAKkvB,UAAUnsB,SAAQ,SAAUmlB,GACxE2+T,GAAa3+T,EAAG5G,WACpB,IAEJ,IAAIk1R,EAAU,WACV,IAAIswC,EACAlC,EACAh/U,EAAMivC,SAASjvC,EAAMspB,QAAS+zT,KAAYr9U,EAAMm+U,cAChD+C,GAAeD,EACfjC,GAfG,KAkBHkC,EAAcD,EACdjC,EAnBG,IAqBHkC,EArBG,GAsBHtwU,OAAOs4P,qBAAqB81E,IAG5Bh/U,EAAMghV,eAAehC,EAAYz/R,GACjC0hS,GAAajC,EACbpuU,OAAO+gE,sBAAsBi/N,GAErC,EACAA,GA1BA,CA2BJ,EACAqtC,EAAQjmV,UAAUymV,aAAe,SAAUxkV,GACvC,IAAIovS,EAAMjvS,KAAKukV,UACX7gC,EAAW7jT,EAAEktT,UACZ/sT,KAAKikV,SAAYjkV,KAAK60C,SAAS70C,KAAKkvB,QAAS+zT,MAC9Cv/B,GAAYA,GAEU,SAAtB7jT,EAAEotT,gBACFhe,EAAItkR,WAAaskR,EAAItkR,WAAa+4R,EAEP,UAAtB7jT,EAAEotT,kBACPhe,EAAItkR,WAAaskR,EAAItkR,WAAa+4R,EAE1C,EACAmgC,EAAQjmV,UAAUmpV,eAAiB,SAAUC,EAAYC,GACrD,GAAIjnV,KAAK6sS,SAAU,CACf,IACIq6C,GADWn0D,GAAkBi0D,GAAcC,EAAgBD,GACtCjkU,cAAc,IAAMogU,IACzCpwD,GAAkBi0D,GAClBh7T,GAAUk7T,EAAW,CAAC9D,IAAoB,CAACC,KAG3Cr3T,GAAUk7T,EAAW,CAAC7D,IAAmB,CAACD,IAElD,MACS4D,GAAcC,IACnBD,EAAWh7T,UAAUC,IAAIi3T,IACzB8D,EAAWrtT,aAAa,gBAAiB,QACzCqtT,EAAWttT,gBAAgB,YAC3ButT,EAAcj7T,UAAUG,OAAO+2T,IAC/B+D,EAActtT,aAAa,gBAAiB,SAC5CstT,EAActtT,aAAa,WAAY,MAE3C35B,KAAKomV,cACT,EACAvC,EAAQjmV,UAAU4mV,cAAgB,SAAU3kV,GACxC,IAAIa,EAASb,EAAEa,OACX6I,EAAQ7I,EAAO4gB,YAEf6lU,GADUnnV,KAAKkvB,QACFlvB,KAAKkvB,QAAQnM,cAAc,IAAMygU,KAC9C4D,EAAcpnV,KAAKkvB,QAAQnM,cAAc,IAAMwgU,IAC/C8D,EAAcrnV,KAAKkvB,QAAQnM,cAAc,IAAM6gU,IAC/C0D,EAAetnV,KAAKkvB,QAAQnM,cAAc,IAAM4gU,IAChDh5T,EAAajqB,EAAOiqB,WAsBxB,GArBIA,GAAc,IACdA,GAAcA,GAEd3qB,KAAK6sS,YACD7sS,KAAK49S,WAAe59S,KAAK+jV,cAAgB/jV,KAAKikV,UAC9CoD,EAAcrnV,KAAKkvB,QAAQnM,cAAc,IAAM4gU,IAC/C2D,EAAetnV,KAAKkvB,QAAQnM,cAAc,IAAM6gU,KAGhDyD,EAAYxmV,MAAM0I,MADlBohB,EAnZK,GAoZqBA,EAAa,KAGb,OAEzBjqB,EAAOwhT,YAAcj3S,KAAKyX,KAAKnZ,EAAQohB,GAzZnC,GA0ZL28T,EAAazmV,MAAM0I,MAAS7I,EAAOwhT,YAAcj3S,KAAKyX,KAAKnZ,EAAQohB,GAAe,KAGlF28T,EAAazmV,MAAM0I,MAAQ,QAGhB,IAAfohB,EACA3qB,KAAK+mV,eAAeI,EAAYC,QAE/B,GAAIn8U,KAAKyX,KAAKnZ,EAAQohB,EAAa,KAAOjqB,EAAOwhT,YAClDliT,KAAK+mV,eAAeK,EAAaD,OAEhC,CACD,IAAII,EAASvnV,KAAKkvB,QAAQnM,cAAc,IAAMugU,GAAiB,IAAMJ,IACjEqE,IACAA,EAAOv7T,UAAUG,OAAO+2T,IACxBqE,EAAO5tT,aAAa,gBAAiB,SACrC4tT,EAAO5tT,aAAa,WAAY,KAExC,CACJ,EASAkqT,EAAQjmV,UAAUs0S,kBAAoB,SAAUmF,EAASC,GACrD,IAAK,IAAI38O,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,aACD36D,KAAK2kV,iBACL,MACJ,IAAK,YACDttC,EAAQuG,UAAY59S,KAAKkvB,QAAQlD,UAAUC,IAAIg3T,IAAWjjV,KAAKkvB,QAAQlD,UAAUG,OAAO82T,IAGpG,CACJ,EACAttC,GAAW,CACPnB,GAAS,OACVqvC,EAAQjmV,UAAW,kBAAc,GACpCimV,EAAUluC,GAAW,CACjBX,IACD6uC,EAEP,CA9b6B,CA8b3B35U,IChfE0zD,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAKIwgV,GAAU,QACVC,GAAc,YAGdC,GAAe,cACfqE,GAAiB,iBACjBC,GAAmB,mBACnBC,GAAiB,eACjBC,GAAmB,kBACnBC,GAAqB,oBACrBnE,GAAa,kBACbC,GAAc,mBACdmE,GAAgB,sBAChBC,GAAkB,wBAclBC,GAAyB,SAAUpiV,GAQnC,SAASoiV,EAAQhoV,EAASmvB,GACtB,OAAOvpB,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,IAClD,CAwZA,OAjaA49D,GAAUmqR,EAASpiV,GAgBnBoiV,EAAQnqV,UAAUugT,UAAY,WAC1Bn+S,KAAK8jV,QAAU13C,GAAQ3uK,KAAK//H,KAC5BsC,KAAK+jV,aAAgC,YAAjB/jV,KAAK8jV,QACzB9jV,KAAK6sS,SAAWT,GAAQS,SACxB7sS,KAAKgkV,YAAa,EAClB,IAAI/0C,EAAMjvS,KAAKkvB,QACflvB,KAAKikV,QAA2B,SAAjBjkV,KAAK8jV,SAAuC,SAAjB9jV,KAAK8jV,QAC/C9jV,KAAKunI,aACU,KAAX0nK,EAAIzmR,KACJymR,EAAIzmR,GAAKorQ,GAAY,WACrB5zR,KAAKkkV,UAAW,GAEpBj1C,EAAIpuS,MAAM6I,QAAU,QAChB1J,KAAK49S,WACL3O,EAAIjjR,UAAUC,IAAIg3T,GAE1B,EAOA8E,EAAQnqV,UAAUY,OAAS,WACvBwB,KAAKmkV,YAAc,IAAI34B,GAAMxrT,KAAKkvB,QAAS,CAAEk1T,OAAQpkV,KAAKqkV,aAAaliV,KAAKnC,MAAOokB,MAAOpkB,KAAKskV,aAAaniV,KAAKnC,QACjH+tS,GAAa9hR,IAAIjsB,KAAKukV,UAAW,SAAUvkV,KAAKgoV,mBAAoBhoV,MAC/DA,KAAK6sS,UAIN7sS,KAAKkvB,QAAQlD,UAAUC,IAAIw3T,IAC3BzjV,KAAKioV,qBAAqBjoV,KAAKkvB,UAJ/BlvB,KAAK0kV,cAAc1kV,KAAKkvB,SAM5BlvB,KAAK2kV,iBACL52C,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,QAASlvB,KAAKkoV,kBAAmBloV,KACpE,EACA+nV,EAAQnqV,UAAU+mV,eAAiB,WAC3B5xD,GAAkB/yR,KAAK4kV,aAAe5kV,KAAK4kV,WAAa,GACxD5kV,KAAK4kV,WAAa5kV,KAAKukV,UAAUhjU,aACjCvhB,KAAKgkV,YAAa,GAGlBhkV,KAAKgkV,YAAa,CAE1B,EACA+D,EAAQnqV,UAAU2pI,WAAa,WAC3B,IAAI4gN,EAAYC,GAAS,MAAO,CAAEx+U,UAvFrB,sBAwFTy+U,EAAYD,GAAS,MAAO,CAAEx+U,UAzFrB,kBA0Fby+U,EAAU1uT,aAAa,WAAY,MAGnC,IAFA,IAAIs1Q,EAAMjvS,KAAKkvB,QAENyrC,EAAK,EAAGkqR,EADF,GAAGh9U,MAAMvF,KAAK2sS,EAAI1mS,UACOoyD,EAAKkqR,EAAWlnV,OAAQg9D,IAAM,CAClE,IAAImqR,EAAQD,EAAWlqR,GACvBwtR,EAAUx/T,YAAYm8T,EAC1B,CACAuD,EAAU1/T,YAAYw/T,GACtBl5C,EAAItmR,YAAY0/T,GAChBA,EAAUxnV,MAAMs9C,SAAW,SAC3Bn+C,KAAKukV,UAAY8D,EACjBroV,KAAK+kV,YAAcoD,CACvB,EACAJ,EAAQnqV,UAAU6hT,eAAiB,WAE/B,OAAOz/S,KAAK+/S,aADI,CAAC,cAErB,EAOAgoC,EAAQnqV,UAAU40S,cAAgB,WAC9B,MAAO,SACX,EAMAu1C,EAAQnqV,UAAU4C,QAAU,WACxB,IAAI0nB,EAAKloB,KAAKkvB,QACdhH,EAAGrnB,MAAM6I,QAAU,GACnB0lS,GAAY,CAACpvS,KAAKkvB,SAAU,CA/HrB,YA+HgCu0T,KACvC,IAAI6E,EAAOrzM,GAAU,MAAQ/sH,EAAGM,GAAK,QAAUk/T,GAAgBx/T,GAC3DqgU,EAAWtzM,GAAU,IAAMyuM,GAAax7T,GAC5C,GAAGrgB,MAAMvF,KAAKimV,GAAUxlV,SAAQ,SAAUksS,GACtCzzH,GAAOyzH,EACX,IACA,IAAK,IAAIt0O,EAAK,EAAGpgD,EAAK,GAAG1S,MAAMvF,KAAKtC,KAAK+kV,YAAYx8U,UAAWoyD,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAClF,IAAIvrD,EAAOmL,EAAGogD,GACdzyC,EAAGS,YAAYvZ,EACnB,CACIpP,KAAKkkV,UACLlkV,KAAKkvB,QAAQwK,gBAAgB,MAEjC8hJ,GAAOx7K,KAAKukV,WACR+D,EAAK3qV,OAAS,IACd69K,GAAO8sK,EAAK,IACPv1D,GAAkBu1D,EAAK,KACxB9sK,GAAO8sK,EAAK,KAGpBv6C,GAAa5hR,OAAOnsB,KAAKukV,UAAW,SAAUvkV,KAAKgoV,oBACnDhoV,KAAKmkV,YAAY3jV,UACjBR,KAAKmkV,YAAc,KACnBx+U,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,KAClC,EAQA+nV,EAAQnqV,UAAUk6I,QAAU,SAAU52I,GAClC,IAAI0kV,EAAS3wM,GAAU,sBAAwBiuM,GAAc,IAAKljV,KAAKkvB,SACnEhuB,EACAlB,KAAKkvB,QAAQlD,UAAUC,IAAIi3T,IAG3BljV,KAAKkvB,QAAQlD,UAAUG,OAAO+2T,IAElC,GAAGr7U,MAAMvF,KAAKsjV,GAAQ7iV,SAAQ,SAAUmlB,GACpCA,EAAGyR,aAAa,WAAaz4B,EAAc,KAAN,IACzC,GACJ,EACA6mV,EAAQnqV,UAAUqqV,qBAAuB,SAAU/4T,GAC/C,IAAI1G,EAAK0G,EAAQ1G,GAAGjpB,OAAO,QACvBipV,EAAiBJ,GAAS,MAAO,CAAEx+U,UAAW85U,GAAc,IAAMoE,KAClEW,EAAU,KAAOv5T,EAAQ1G,GAAGjpB,OAAO,QAAUmoV,GAAiB,IAAME,IACpEc,EAAUN,GAAS,MAAO,CAAE5/T,GAAIA,EAAGjpB,OAAO,QAASqK,UAAW6+U,IAC9DnD,EAAU8C,GAAS,MAAO,CAAEx+U,UAAW69U,GAAmB,IAAMtE,GAAe,aACnFuF,EAAQ//T,YAAY28T,GACpB,IAAIqD,EAAQP,GAAS,MAAO,CAAEx+U,UAAW85U,GAAc,IAAMmE,KACzD7nV,KAAKikV,SACLyE,EAAQ18T,UAAUC,IAAI,cAE1BiD,EAAQvG,YAAY6/T,GACpBt5T,EAAQvG,YAAY+/T,GACpBx5T,EAAQmhC,aAAas4R,EAAOz5T,EAAQiP,YACpCn+B,KAAKwlV,aAAa,CAACkD,GACvB,EACAX,EAAQnqV,UAAU8mV,cAAgB,SAAUx1T,GACxC,IAAI1G,EAAK0G,EAAQ1G,GAAGjpB,OAAO,QACvBkpV,EAAU,KAAOv5T,EAAQ1G,GAAGjpB,OAAO,QAAUmoV,GAAiB,IAAME,IACpE5C,EAAMoD,GAAS,MAAO,CAAE5/T,GAAIA,EAAGjpB,OAAO,SAAUqK,UAAW6+U,IAC/DzD,EAAIrrT,aAAa,gBAAiB,SAClC,IAAI2rT,EAAU8C,GAAS,MAAO,CAAEx+U,UAAW69U,GAAmB,IAAMtE,GAAe,aAC/EyF,EAAQ,KAAO15T,EAAQ1G,GAAGjpB,OAAO,QAAUmoV,GAAiB,IAAMC,IAClEkB,EAAaT,GAAS,MAAO,CAAE5/T,GAAIA,EAAGjpB,OAAO,OAAQqK,UAAWg/U,EAAQ,IAAM1F,KAClF2F,EAAWlvT,aAAa,gBAAiB,QACzC,IAAImvT,EAAYV,GAAS,MAAO,CAAEx+U,UAAW49U,GAAiB,IAAMrE,GAAe,aACnF0F,EAAWlgU,YAAYmgU,GACvB9D,EAAIr8T,YAAY28T,GAChBN,EAAIrrT,aAAa,WAAY,KAC7BzK,EAAQvG,YAAYq8T,GACpB91T,EAAQmhC,aAAaw4R,EAAY35T,EAAQiP,YACrCn+B,KAAKikV,UACLe,EAAIh5T,UAAUC,IAAI,cAClB48T,EAAW78T,UAAUC,IAAI,eAE7BjsB,KAAKwlV,aAAa,CAACR,EAAK6D,GAC5B,EACAd,EAAQnqV,UAAUkoV,WAAa,SAAUnjE,GACrC,IAAI/8Q,EAAQ5F,KACZ,GAAe,UAAX2iR,EAAGhjR,IAAiB,CAKpBK,KAAK+lV,SAAWvvU,OAAOtJ,YAAW,WAH9BtH,EAAMogV,YAAa,EACnBpgV,EAAMqgV,aAAa,GAAItjE,EAAGjiR,QAAQ,EAItC,GAAG,IACP,CACJ,EACAqnV,EAAQnqV,UAAU2lR,QAAU,SAAUZ,GACnB,UAAXA,EAAGhjR,MAGHK,KAAKgmV,WACLhmV,KAAKgmV,YAAa,EAGlBrjE,EAAGjiR,OAAOs3L,QAEdxqL,aAAaxN,KAAK+lV,UACtB,EACAgC,EAAQnqV,UAAU4nV,aAAe,SAAUt2T,GACvC,IAAItpB,EAAQ5F,KACZ,GAAG6H,MAAMvF,KAAK4sB,GAASnsB,SAAQ,SAAUksS,GACrC,IAAIuc,GAAMvc,EAAK,CAAEi3C,QAAStgV,EAAMugV,eAAehkV,KAAKyD,GAAQi8S,iBAAkB,MAC9E5S,EAAI5nR,iBAAiB,UAAWzhB,EAAMkgV,WAAW3jV,KAAKyD,IACtDqpS,EAAI5nR,iBAAiB,QAASzhB,EAAM29Q,QAAQphR,KAAKyD,IACjDqpS,EAAI5nR,iBAAiB,UAAWzhB,EAAMwgV,aAAajkV,KAAKyD,IACxDqpS,EAAI5nR,iBAAiB,WAAYzhB,EAAMwgV,aAAajkV,KAAKyD,IACzDqpS,EAAI5nR,iBAAiB,eAAe,SAAUxnB,GAC1CA,EAAE+U,gBACN,IACAm5R,GAAa9hR,IAAIgjR,EAAK,QAASrpS,EAAMygV,kBAAmBzgV,EAC5D,GACJ,EACAmiV,EAAQnqV,UAAUwoV,aAAe,WAC7Bv2Q,cAAc7vE,KAAKm4M,QACvB,EACA4vI,EAAQnqV,UAAUuoV,eAAiB,SAAUxjE,GACzC,IAAI/8Q,EAAQ5F,KACRsmV,EAAO3jE,EAAGmqC,cAAcpsT,OAC5B4lV,EAAOtmV,KAAK60C,SAASyxS,EAAMoB,IAAkBpB,EAAK32C,kBAAoB22C,EAKtEtmV,KAAKm4M,QAAU3hM,OAAOm5D,aAAY,WAF9B/pE,EAAMqgV,aAFW,GAEkBK,GAAM,EAI7C,GAAG,GACP,EACAyB,EAAQnqV,UAAUi3C,SAAW,SAAU3lB,EAAStlB,GAC5C,OAAOslB,EAAQlD,UAAU6oB,SAASjrC,EACtC,EACAm+U,EAAQnqV,UAAUqoV,aAAe,SAAUM,EAAWD,EAAME,GACxD,IAAIx6T,EAAYs6T,EAAKt6T,UACjBA,EAAU6oB,SAAS6yS,MACnB17T,EAAYs6T,EAAKvjU,cAAc,IAAMogU,IAAcn3T,WAEnDA,EAAU6oB,SAAS4yS,IACnBznV,KAAK0mV,mBAAmBH,EAAW,MAAOC,GAErCx6T,EAAU6oB,SAAS2yS,KACxBxnV,KAAK0mV,mBAAmBH,EAAW,GAAIC,EAE/C,EACAuB,EAAQnqV,UAAUyoV,kBAAoB,SAAUjwU,GAC5CpW,KAAKimV,aAAajmV,KAAK4kV,WAAYxuU,EAAM1V,QAAQ,EACrD,EACAqnV,EAAQnqV,UAAUsqV,kBAAoB,SAAUroV,GAC5CA,EAAE+U,iBACF5U,KAAK0mV,mBAAmB1mV,KAAK4kV,WAAa/kV,EAAEkW,OAAS,EAAI,MAAQ,IAAK,EAC1E,EACAgyU,EAAQnqV,UAAU0mV,aAAe,SAAUzkV,GACvC,IACI6jT,EADAqlC,EAAe/oV,KAAKukV,UAGpB7gC,EADA7jT,EAAEqtT,UAAY,EACHrtT,EAAEmtT,WAA0B,GAAbntT,EAAEqtT,UAGjBrtT,EAAEmtT,UAAYntT,EAAEqtT,SAE/B,IAAI15S,EAAQ,GACRgjS,EAAU,WACV,IAAI5nO,EAAO3jE,KAAKstK,IAAI/kK,GAChBo7D,GAAQ,EACRp4D,OAAOs4P,qBAAqBlgM,IAGH,OAArB/uE,EAAE6lB,eACFqjU,EAAan+T,WAAa84R,EAAW90O,EAEX,SAArB/uE,EAAE6lB,iBACPqjU,EAAan+T,WAAa84R,EAAW90O,GAEzCp7D,GAAS,IACTgD,OAAO+gE,sBAAsBi/N,GAErC,EACAA,GACJ,EACAuxC,EAAQnqV,UAAUgpV,eAAiB,SAAUC,EAAW1hS,GACrC,QAAXA,EACAnlD,KAAKukV,UAAU35T,WAAai8T,EAG5B7mV,KAAKukV,UAAU35T,WAAai8T,CAEpC,EACAkB,EAAQnqV,UAAU8oV,mBAAqB,SAAUI,EAAa3hS,EAAQqhS,GAClE,IAAI5gV,EAAQ5F,KAEZ,GAAIwmV,EACAxmV,KAAK4mV,eAAeE,EAAa3hS,OADrC,CAIKnlD,KAAKgkV,YACN,GAAGn8U,MAAMvF,KAAK2yI,GAAU,IAAMyuM,GAAa1jV,KAAKkvB,UAAUnsB,SAAQ,SAAUmlB,GACxE4+T,GAAe5+T,EAAG3G,YACtB,IAEJ,IAAIi1R,EAAU,WACNswC,EAXG,GAYHtwU,OAAOs4P,qBAZJ,KAeHlpQ,EAAMghV,eAfH,GAewBzhS,GAC3B2hS,GAhBG,GAiBHtwU,OAAO+gE,sBAAsBi/N,GAErC,EACAA,GAhBA,CAiBJ,EACAuxC,EAAQnqV,UAAUymV,aAAe,SAAUxkV,GACvC,IAAIqoB,EAAKloB,KAAKukV,UACV7gC,EAAW7jT,EAAEmtT,UACS,OAAtBntT,EAAEotT,gBACF/kS,EAAG0C,UAAY1C,EAAG0C,UAAY84R,EAEH,SAAtB7jT,EAAEotT,kBACP/kS,EAAG0C,UAAY1C,EAAG0C,UAAY84R,EAEtC,EACAqkC,EAAQnqV,UAAUmpV,eAAiB,SAAUiC,EAAeC,GACxD,GAAIjpV,KAAK6sS,SAAU,CACf,IACIq6C,GADWn0D,GAAkBi2D,GAAiBC,EAAmBD,GAC5CjmU,cAAc,IAAMogU,IACzCpwD,GAAkBi2D,GAClBh9T,GAAUk7T,EAAW,CAACO,IAAmB,CAACD,KAG1Cx7T,GAAUk7T,EAAW,CAACM,IAAiB,CAACC,IAEhD,MAEIuB,EAAch9T,UAAUC,IAAIi3T,IAC5B8F,EAAcrvT,aAAa,gBAAiB,QAC5CqvT,EAActvT,gBAAgB,YAC9BuvT,EAAiBj9T,UAAUG,OAAO+2T,IAClC+F,EAAiBtvT,aAAa,gBAAiB,SAC/CsvT,EAAiBtvT,aAAa,WAAY,KAE9C35B,KAAKomV,cACT,EACA2B,EAAQnqV,UAAUoqV,mBAAqB,SAAUnoV,GAC7C,IAAIa,EAASb,EAAEa,OACXgc,EAAShc,EAAO6gB,aAChB2nU,EAAWlpV,KAAKkvB,QAAQnM,cAAc,IAAM4kU,IAC5CwB,EAAanpV,KAAKkvB,QAAQnM,cAAc,IAAM6kU,IAC9CwB,EAAYppV,KAAKkvB,QAAQnM,cAAc,IAAM8kU,IAC7CwB,EAAcrpV,KAAKkvB,QAAQnM,cAAc,IAAM+kU,IAC/Cl9T,EAAYlqB,EAAOkqB,UAkBvB,GAjBIA,GAAa,IACbA,GAAaA,GAEb5qB,KAAK6sS,WAEDu8C,EAAUvoV,MAAM6b,OADhBkO,EAnXK,GAoXoBA,EAAY,KAGZ,OAExBlqB,EAAOshT,aAAe/2S,KAAKyX,KAAKhG,EAASkO,GAzXrC,GA0XLy+T,EAAYxoV,MAAM6b,OAAUhc,EAAOshT,aAAe/2S,KAAKyX,KAAKhG,EAASkO,GAAc,KAGnFy+T,EAAYxoV,MAAM6b,OAAS,QAGjB,IAAdkO,EACA5qB,KAAK+mV,eAAemC,EAAUC,QAE7B,GAAIl+U,KAAKyX,KAAKhG,EAASkO,EAAY,KAAOlqB,EAAOshT,aAClDhiT,KAAK+mV,eAAeoC,EAAYD,OAE/B,CACD,IAAI3B,EAASvnV,KAAKkvB,QAAQnM,cAAc,IAAM2kU,GAAiB,IAAMxE,IACjEqE,IACAA,EAAOv7T,UAAUG,OAAO+2T,IACxBqE,EAAO5tT,aAAa,gBAAiB,SACrC4tT,EAAO5tT,aAAa,WAAY,KAExC,CACJ,EASAouT,EAAQnqV,UAAUs0S,kBAAoB,SAAUmF,EAASC,GACrD,IAAK,IAAI38O,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,aACD36D,KAAK2kV,iBACL,MACJ,IAAK,YACGttC,EAAQuG,UACR59S,KAAKkvB,QAAQlD,UAAUC,IAAIg3T,IAG3BjjV,KAAKkvB,QAAQlD,UAAUG,OAAO82T,IAI9C,CACJ,EACAttC,GAAW,CACPnB,GAAS,OACVuzC,EAAQnqV,UAAW,kBAAc,GACpCmqV,EAAUpyC,GAAW,CACjBX,IACD+yC,EAEP,CAna6B,CAma3B79U,ICrdE0zD,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAYI6mV,GAAe,aACfC,GAAY,kBACZC,GAAW,iBACXvG,GAAU,QACVwG,GAAgB,cAChBC,GAAgB,kBAChBC,GAAgB,oBAChBC,GAAgB,eAChBC,GAAe,aACf3G,GAAc,YACd4G,GAAgB,iBAChBC,GAAe,eACfC,GAAmB,kBACnBC,GAAkB,kBAElBC,GAAc,YACdC,GAAkB,eAGlBC,GAAiB,mBACjBC,GAAc,aAGdC,GAAiB,gBAEjBC,GAAiB,gBACjBC,GAAY,kBAEZC,GAAiB,eACjBC,GAAiB,WACjBC,GAAa,gBACbC,GAAa,WACbC,GAAe,qBACfC,GAAkB,iBAClBC,GAAyB,uBACzBC,GAA2B,uBAC3BC,GAA0B,qBAC1BC,GAAsB,qBAEtBC,GAAsB,kBAItBC,GAAsB,SAAUzlV,GAEhC,SAASylV,IACL,OAAkB,OAAXzlV,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAuDA,OA1DA49D,GAAUwtR,EAAMzlV,GAIhBgwS,GAAW,CACPnB,GAAS,KACV42C,EAAKxtV,UAAW,UAAM,GACzB+3S,GAAW,CACPnB,GAAS,KACV42C,EAAKxtV,UAAW,YAAQ,GAC3B+3S,GAAW,CACPnB,GAAS,SACV42C,EAAKxtV,UAAW,aAAS,GAC5B+3S,GAAW,CACPnB,GAAS,KACV42C,EAAKxtV,UAAW,gBAAY,GAC/B+3S,GAAW,CACPnB,IAAS,IACV42C,EAAKxtV,UAAW,yBAAqB,GACxC+3S,GAAW,CACPnB,IAAS,IACV42C,EAAKxtV,UAAW,gBAAY,GAC/B+3S,GAAW,CACPnB,GAAS,KACV42C,EAAKxtV,UAAW,kBAAc,GACjC+3S,GAAW,CACPnB,GAAS,KACV42C,EAAKxtV,UAAW,kBAAc,GACjC+3S,GAAW,CACPnB,IAAS,IACV42C,EAAKxtV,UAAW,eAAW,GAC9B+3S,GAAW,CACPnB,GAAS,SACV42C,EAAKxtV,UAAW,gBAAY,GAC/B+3S,GAAW,CACPnB,GAAS,KACV42C,EAAKxtV,UAAW,gBAAY,GAC/B+3S,GAAW,CACPnB,GAAS,WACV42C,EAAKxtV,UAAW,YAAQ,GAC3B+3S,GAAW,CACPnB,GAAS,SACV42C,EAAKxtV,UAAW,kBAAc,GACjC+3S,GAAW,CACPnB,GAAS,OACV42C,EAAKxtV,UAAW,sBAAkB,GACrC+3S,GAAW,CACPnB,GAAS,KACV42C,EAAKxtV,UAAW,mBAAe,GAClC+3S,GAAW,CACPnB,GAAS,SACV42C,EAAKxtV,UAAW,aAAS,GAC5B+3S,GAAW,CACPxuH,MACDikK,EAAKxtV,UAAW,aAAS,GAC5B+3S,GAAW,CACPnB,IAAU,IACX42C,EAAKxtV,UAAW,gBAAY,GACxBwtV,CACX,CA5D0B,CA4DxB1xC,IAYE2xC,GAAyB,SAAU1lV,GAQnC,SAAS0lV,EAAQtrV,EAASmvB,GACtB,IAAItpB,EAAQD,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,KAgBnD,OAfA4F,EAAM0lV,cAAgB1lV,EAAM24T,OAAOp8T,KAAKyD,GAIxCA,EAAMqkT,WAAa,CACfshC,SAAU,YACVC,UAAW,aACXC,OAAQ,UACRC,SAAU,YACVC,UAAW,QACXC,WAAY,SACZ/nE,IAAK,MACLgoE,KAAM,OACNr2S,IAAK,OAEF5vC,CACX,CAglEA,OAzmEAg4D,GAAUytR,EAAS1lV,GA+BnB0lV,EAAQztV,UAAU4C,QAAU,WACxB,IAAIoF,EAAQ5F,MACRA,KAAKyqU,SAAWzqU,KAAK25U,YACrB35U,KAAK2/S,gBAET,IAAImsC,EAAW9rV,KAAKkvB,QAAQ3I,iBAAiB,oBAa7C,IAZA,GAAG1e,MAAMvF,KAAKwpV,GAAU/oV,SAAQ,SAAUmlB,GACjC82S,GAAM92S,IAAQ82S,GAAM92S,EAAGuqR,gBAAmBusB,GAAM92S,EAAGuqR,cAAc,KAASvqR,EAAGuqR,cAAc,GAAGhB,aAC/FvpR,EAAGuqR,cAAc,GAAGjyS,SAE5B,IACAR,KAAKwqT,eACLxqT,KAAK+rV,OAAOhpV,SAAQ,SAAUksS,GACrB+vB,GAAMp5T,EAAMspB,QAAQnM,cAAcksR,MACnC54R,SAAShC,KAAKsU,YAAY/iB,EAAMspB,QAAQnM,cAAcksR,IAAMpuS,MAAM6I,QAAU,OAEpF,IACA1J,KAAKgsV,eACEhsV,KAAKkvB,QAAQ+8T,kBAChBjsV,KAAKkvB,QAAQkP,YAAYp+B,KAAKkvB,QAAQ+8T,kBAEtCjsV,KAAKksV,UACLlsV,KAAKkvB,QAAQvG,YAAY3oB,KAAKmsV,SAC9BnsV,KAAKksV,QAAU,KACflsV,KAAKmsV,QAAU,MAEfnsV,KAAKosV,SACLpsV,KAAKosV,OAAO5rV,UACZg7K,GAAOx7K,KAAKosV,OAAOl9T,UAEnBlvB,KAAKunU,YACLvnU,KAAKunU,UAAY,MAErBvnU,KAAKosV,OAAS,KACdpsV,KAAKqsV,UAAY,KACjBrsV,KAAKssV,aAAe,GACpBtsV,KAAKmsB,OAAOnsB,KAAKkvB,QAAS,aACtBlvB,KAAKq0T,UACLjlB,GAAY,CAACpvS,KAAKkvB,SAAUlvB,KAAKq0T,SAASl7R,MAAM,MAEpDn5B,KAAKkvB,QAAQwK,gBAAgB,SAC7B,CAAC,gBAAiB,mBAAoB,QAAQ32B,SAAQ,SAAUwpV,GAC5D,OAAO3mV,EAAMspB,QAAQwK,gBAAgB6yT,EACzC,IACA5mV,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,KAClC,EAOAqrV,EAAQztV,UAAUugT,UAAY,WAC1B,IAAIzT,EAAY,CAAE8hD,gBAAiBxsV,KAAKwsV,gBAAiB5H,WAAY5kV,KAAK4kV,YAC1E5kV,KAAK2sL,QAAQ,eAAgB+9G,GAC7B1qS,KAAKwsV,gBAAkB9hD,EAAU8hD,gBACjCxsV,KAAK4kV,WAAal6C,EAAUk6C,WAC5B5kV,KAAKysV,aAAe,KACpBzsV,KAAKosV,OAAS,KACdpsV,KAAK+rV,OAAS,GACd/rV,KAAKssV,aAAetsV,KAAK05H,MACzB15H,KAAK0sV,aAAa1sV,KAAKkvB,QAAQlD,UAAU6oB,SAASy0S,IAClDtpV,KAAK2sV,gBAAiB,EACtB3sV,KAAK4sV,cAAgB,EACjB5sV,KAAK49S,WACL59S,KAAKisB,IAAIjsB,KAAKkvB,QAAS+zT,GAE/B,EACAoI,EAAQztV,UAAUyrT,WAAa,WAC3Btb,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,QAASlvB,KAAKsyG,aAActyG,MAC3DwW,OAAO6Q,iBAAiB,SAAUrnB,KAAKsrV,eACnCtrV,KAAK6sV,eACL7sV,KAAK8sV,mBAEb,EACAzB,EAAQztV,UAAUkvV,kBAAoB,WAClC9sV,KAAK+sV,UAAY,IAAIpjC,GAAe3pT,KAAKkvB,QAAS,CAC9Cq7R,UAAWvqT,KAAKgtV,iBAAiB7qV,KAAKnC,MACtCiqT,WAAYjqT,KAAKiqT,aAErBlc,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,UAAWlvB,KAAKitV,WAAYjtV,MAC3DA,KAAKktV,eAAe,IACxB,EACA7B,EAAQztV,UAAUsvV,eAAiB,SAAUzjV,GACzC,IAAIwlS,EAAMjvS,KAAKkvB,QAAQnM,cAAc,IAAMymU,GAAW,SAAWtG,GAAc,WAAauG,GAAgB,WAAamB,GAAa,MACtI,IAAK5rB,GAAM/vB,KAAS+vB,GAAM/vB,EAAIU,mBAAoB,CAC9C,IAAIw9C,EAAel+C,EAAIU,kBAAkB5+N,aAAa,iBAClDo8Q,GAAiC,OAAjBA,GAA2D,UAAlCl+C,EAAIU,kBAAkBzrR,SAC/D+qR,EAAIU,kBAAkBh2Q,aAAa,WAAYlwB,EAEvD,CACJ,EACA4hV,EAAQztV,UAAUwvV,oBAAsB,WAChCptV,KAAK+sV,YACLh/C,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,UAAWlvB,KAAKitV,YAClDjtV,KAAK+sV,UAAUvsV,UACfR,KAAK+sV,UAAY,KAEzB,EACA1B,EAAQztV,UAAUqvV,WAAa,SAAUptV,GACrC,GAAyB,UAArBA,EAAEa,OAAOwjB,QAAb,CAGA,IAAImpU,GAAYruB,GAAMh/T,KAAKosV,SAAW3wL,GAAUz7J,KAAKosV,OAAOl9T,UAAkC,aAAtBlvB,KAAKstV,aAC3D,IAAdztV,EAAEskB,UAA8D,IAA7CtkB,EAAEa,OAAOsrB,UAAU6oB,SAAS,cAAyBw4S,GACxErtV,KAAKosV,OAAOjxK,KAAK,CAAEz9K,KAAM,UAAWooE,SAAU,OAEpB,KAAdjmE,EAAEskB,SAAgC,KAAdtkB,EAAEskB,SAAgC,KAAdtkB,EAAEskB,SAAgC,KAAdtkB,EAAEskB,UAE1EtkB,EAAE+U,gBAPN,CASJ,EACAy2U,EAAQztV,UAAU4sT,aAAe,WAC7Bzc,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,QAASlvB,KAAKsyG,cAChDtyG,KAAKutV,gBACLvtV,KAAKotV,sBACL52U,OAAO4U,oBAAoB,SAAUprB,KAAKsrV,eAC1Cv9C,GAAa5hR,OAAO9V,SAAU,SAAUrW,KAAKwtV,UAC7Cz/C,GAAa5hR,OAAO9V,SAAU,QAASrW,KAAKwtV,SAChD,EACAnC,EAAQztV,UAAU6vV,cAAgB,WAC9BztV,KAAK0tV,QAAU,GACf1tV,KAAK2tV,WAAa,CAAEC,MAAO,GAAIC,QAAS,GAAIC,OAAQ,GACxD,EACAzC,EAAQztV,UAAU4vV,SAAW,SAAU3tV,GACnC,IAAIkuV,EAASjlN,GAAQjpI,EAAEa,OAAQ,YAC3BV,KAAKosV,QAAU3wL,GAAUz7J,KAAKosV,OAAOl9T,WAAa6+T,GAAgC,UAAtB/tV,KAAKstV,cACjEttV,KAAKosV,OAAOjxK,KAAK,CAAEz9K,KAAM,UAAWooE,SAAU,KAEtD,EACAulR,EAAQztV,UAAU2vV,cAAgB,WAC1BvtV,KAAKysV,eACDzsV,KAAKqsV,WACLrsV,KAAKisB,IAAIjsB,KAAKysV,aAAav9T,QAASm7T,IAExCrqV,KAAKysV,aAAajsV,UAClBR,KAAKysV,aAAe,KAE5B,EACApB,EAAQztV,UAAUouV,aAAe,WAI7B,GAHIhsV,KAAKkvB,SACL,GAAGrnB,MAAMvF,KAAKtC,KAAKkvB,QAAQ3I,iBAAiB,IAAMijU,KAAWzmV,SAAQ,SAAUmlB,GAAMszJ,GAAOtzJ,EAAK,IAEjGloB,KAAKqsV,UAAW,CAChB,IAAI2B,EAAYhuV,KAAKkvB,QAAQnM,cAAc,IAAMwmU,IACjD,GAAG1hV,MAAMvF,KAAK0rV,EAAUzlV,UAAUxF,SAAQ,SAAUmlB,GAChDszJ,GAAOtzJ,EACX,IACAloB,KAAKqsV,WAAY,EACjBrsV,KAAKmsB,OAAO6hU,EAAW3D,GAC3B,CACArqV,KAAKytV,eACT,EACApC,EAAQztV,UAAUqwV,YAAc,WACxBjuV,KAAKysV,eACLzsV,KAAKmsB,OAAOnsB,KAAKysV,aAAav9T,QAAS+zT,IACvCjjV,KAAKutV,iBAETvtV,KAAKmsB,OAAOnsB,KAAKkvB,QAASi8T,IAC1BnrV,KAAKmsB,OAAOnsB,KAAKkvB,QAAS+7T,IAC1B,IAAIiD,EAAUluV,KAAKkvB,QAAQnM,cAAc,uBACrCmrU,GACAluV,KAAKmsB,OAAO+hU,EAASrD,IAErB7qV,KAAKosV,QACLpsV,KAAKmuV,aAAanuV,KAAKosV,OAAOl9T,SAAS,EAE/C,EACAm8T,EAAQztV,UAAUquB,IAAM,SAAUgjR,EAAK1rO,GACnC0rO,EAAIjjR,UAAUC,IAAIs3C,EACtB,EACA8nR,EAAQztV,UAAUuuB,OAAS,SAAU8iR,EAAK1rO,GACtC0rO,EAAIjjR,UAAUG,OAAOo3C,EACzB,EACA8nR,EAAQztV,UAAUwwV,aAAe,SAAUn/C,GACvC,IAAIo/C,EAASp/C,EAAIU,kBACb0+C,GACAA,EAAOh4S,QACPr2C,KAAKsuV,gBAAgBr/C,IAGrBA,EAAI54P,OAEZ,EACAg1S,EAAQztV,UAAU2wV,YAAc,SAAUC,EAAWlI,GAWjD,OATIkI,GAAaxuV,KAAKosV,QAAU3wL,GAAUz7J,KAAKosV,OAAOl9T,SAC3ClvB,KAAKosV,OAAOl9T,QAAQnM,cAAc,IAAMymU,IAE1CxpV,KAAKkvB,UAAYo3T,GAAQkI,EACvBxuV,KAAKkvB,QAAQnM,cAAc,IAAMymU,GAAW,SAAWtG,GAAc,WAAauG,GAAgB,WAAamB,GAAa,MAG5H9hN,GAAQw9M,EAAM,IAAMkD,GAGnC,EACA6B,EAAQztV,UAAU6wV,YAAc,SAAUC,EAAM7uV,EAAGymV,EAAMqI,EAAQC,GAC7D,IAII3/C,EACAvhR,EALA0+T,EAASpsV,KAAKosV,OACd3F,EAAUzmV,KAAKkvB,QACf2/T,EAAa,CAAEnxV,KAAM,UAAWooE,SAAU,KAC1C5kE,EAAqB,WAAbrB,EAAEslD,OAAsB,WAAa,OAGjD,OAAQtlD,EAAEslD,QACN,IAAK,YACD,GAAInlD,KAAK0sV,WACL,OAEAjG,IAAYH,EACZtmV,KAAKouV,aAAaM,GAEZC,GACN3uV,KAAK8uV,SAASJ,EAAM,QAExB,MACJ,IAAK,WACD,GAAI1uV,KAAK0sV,WACL,OAECiC,GACD3uV,KAAK8uV,SAASJ,EAAM,YAExB,MACJ,IAAK,OACL,IAAK,MACD,GAAIA,EAAM,CACN,IAAIK,EAAajmN,GAAQ4lN,EAAM,YAC3BM,EAAgBhvV,KAAKkvB,QAAQnM,cAAc,IAAMmoU,IAC3B,aAAtBlrV,KAAKstV,cAA+B0B,GAAiBA,EAAchjU,UAAU6oB,SAAS,kBACtFk6S,EAA0B,QAAblvV,EAAEslD,OAAmB6pS,EAAgB,MAElDD,EACItzL,GAAUz7J,KAAKosV,OAAOl9T,WACtBxB,EAAQ,GAAG7lB,MAAMvF,KAAKysV,EAAWxmV,UAE7B0mS,EADa,SAAbpvS,EAAEslD,OACIz3B,EAAM,GAGNA,EAAMA,EAAM/vB,OAAS,KAKnC+vB,EAAQ1tB,KAAKkvB,QAAQ3I,iBAAiB,IAAMgjU,GAAY,KAAOC,GAAW,SAAWC,GAAgB,KAEjGx6C,EADa,SAAbpvS,EAAEslD,OACIz3B,EAAM,GAGNA,EAAMA,EAAM/vB,OAAS,IAG/BsxS,GACAjvS,KAAKouV,aAAan/C,EAE1B,CACA,MACJ,IAAK,SACL,IAAK,WACD,GAAKjvS,KAAK0sV,WAmBW,WAAb7sV,EAAEslD,OACFnlD,KAAK8uV,SAASJ,EAAM,YAGpB1uV,KAAK8uV,SAASJ,EAAM,aAtBxB,GAAItC,GAAUtjN,GAAQw9M,EAAM,YAAa,CACrC,IAAIyH,EAAS3B,EAAOl9T,QAChB+/T,EAAalB,EAAOp+C,kBACT,aAAVzuS,GAAwB+tV,IAAeP,EACxCX,EAAO9B,iBAAiB9tT,WAAWkY,QAEpB,SAAVn1C,GAAoB6sV,EAAO9B,mBAAqByC,EACrDO,EAAW9wT,WAAWkY,QAGtBr2C,KAAK8uV,SAASJ,EAAMxtV,EAE5B,KACsB,aAAbrB,EAAEslD,QAAyBinS,GAAU3wL,GAAU2wL,EAAOl9T,UAC3DlvB,KAAKouV,aAAaM,GAW1B,MACJ,IAAK,MACD,IAAKE,IAAcD,EAAQ,CACvB,IAAI7J,EAAQ4J,EAAK/+C,kBACb82C,IAAYH,IACRtmV,KAAKunU,UACLvnU,KAAKunU,UAAUlxR,SAGfr2C,KAAKkvV,gBAAgBpK,GACrBA,EAAMzuS,SAGlB,CACA,MACJ,IAAK,aACG+1S,GAAgC,aAAtBpsV,KAAKstV,cACflB,EAAOjxK,KAAK0zK,GAEhB,MACJ,IAAK,YACD,IAAKF,EACD,OAEAvC,IAAW3wL,GAAU2wL,EAAOl9T,UAC5Bk9T,EAAOl9T,QAAQruB,MAAMiP,IAAM22U,EAAQllU,aAAe,KAClD6qU,EAAO9wK,KAAK,CAAE59K,KAAM,SAAUooE,SAAU,OAGxCsmR,EAAOjxK,KAAK0zK,GAI5B,EACAxD,EAAQztV,UAAUovV,iBAAmB,SAAUntV,GAC3C,IAAIymV,EAAOzmV,EAAEa,OACb,GAAqB,UAAjB4lV,EAAKpiU,SAAwC,aAAjBoiU,EAAKpiU,UAA0BlkB,KAAKkvB,QAAQlD,UAAU6oB,SAASquS,IAA/F,CAGArjV,EAAE+U,iBACF,IAAI45U,EAAYlI,EAAKt6T,UAAU6oB,SAASq1S,IACpCiF,EAAgB7I,EAAKt6T,UAAU6oB,SAASs1S,IACxCuE,EAAO1uV,KAAKuuV,YAAYC,EAAWlI,IACnCoI,GAAQS,IACRnvV,KAAKyuV,YAAYC,EAAM7uV,EAAGymV,EAAMkI,EAAWW,EAN/C,CAQJ,EAQA9D,EAAQztV,UAAUk6I,QAAU,SAAU52I,GAClC,IAAIulV,EAAUzmV,KAAKkvB,QACfhuB,EACAulV,EAAQz6T,UAAUC,IAAIi3T,IAGtBuD,EAAQz6T,UAAUG,OAAO+2T,IAEzBljV,KAAKunU,WACLvnU,KAAKunU,UAAU5tS,aAAa,WAAY35B,KAAKunU,UAAUx2P,aAAa,kBAEpE/wE,KAAKysV,cACLzsV,KAAKysV,aAAa30M,QAAQ52I,GAE1BlB,KAAKosV,SACD3wL,GAAUz7J,KAAKosV,OAAOl9T,UAAkC,aAAtBlvB,KAAKstV,cACvCttV,KAAKosV,OAAOjxK,OAEhBsrK,EAAQ1jU,cAAc,IAAM0jU,EAAQj+T,GAAK,QAAQmR,aAAa,WAAaz4B,EAAc,KAAN,KAE3F,EACAmqV,EAAQztV,UAAUwxV,YAAc,SAAUlnU,GACtC,OAAOA,EAAG8D,UAAU6oB,SAAS40S,KAAkBvhU,EAAG8D,UAAU6oB,SAASquS,KAAgBh7T,EAAG6oD,aAAa,aAAe7oD,EAAG8D,UAAU6oB,SAAS+1S,MAAgBnvL,GAAUvzI,KAAQA,EAAG8D,UAAU6oB,SAAS20S,GACtM,EACA6B,EAAQztV,UAAUkxV,SAAW,SAAUhmN,EAASxlE,GAC5C,IAAI+rR,EAAM1wV,OAAOmqI,GAASxlE,EAAM,kBAChC,GAAI+rR,EAAK,CAEL,GADcrvV,KAAKovV,YAAYC,GAG3B,YADArvV,KAAK8uV,SAASO,EAAK/rR,GAGvBtjE,KAAKouV,aAAaiB,EACtB,MACK,GAAIrvV,KAAKqsV,UAAW,CACrB,IAAIj9U,EAAOzQ,OAAOmqI,EAAQigL,eAAezlP,EAAM,kBAI/C,GAHK07P,GAAM5vT,IAAkC,IAAzBA,EAAK7G,SAAS5K,SAC9ByR,EAAOzQ,OAAOyQ,GAAMk0D,EAAM,oBAEzB07P,GAAM5vT,IAASA,EAAK7G,SAAS5K,OAAS,EACvC,GAAY,SAAR2lE,EAAgB,CAChB,IAAIp7C,EAAK9Y,EAAK2T,cAAc,IAAMymU,IAC9BxpV,KAAKovV,YAAYlnU,GACjBloB,KAAK8uV,SAAS5mU,EAAIo7C,IAGlBp7C,EAAGynR,kBAAkBt5P,QACrBr2C,KAAKsuV,gBAAgBpmU,GAE7B,KACK,CACGA,EAAK9Y,EAAK68U,iBACVjsV,KAAKovV,YAAYlnU,GACjBloB,KAAK8uV,SAAS5mU,EAAIo7C,GAGlBtjE,KAAKouV,aAAalmU,EAE1B,CAER,MACK,IAAK82S,GAAMl2L,GAAU,CACtB,IAAIwmN,EAAWtvV,KAAKkvB,QAAQ3I,iBAAiB,IAAMgjU,GAAY,KAAOC,GAAW,SAAWC,GAA/C,UAAgFvG,GAAhF,UAA+G0H,GAAa,KAC7J,SAARtnR,GAAkBgsR,EAClBtvV,KAAKouV,aAAakB,EAAS,IAEd,aAARhsR,GAAsBgsR,GAC3BtvV,KAAKouV,aAAakB,EAASA,EAAS3xV,OAAS,GAErD,CACJ,EACA0tV,EAAQztV,UAAU00G,aAAe,SAAUzyG,GACvC,IAgBI0vV,EAhBA3pV,EAAQ5F,KACRsmV,EAAOzmV,EAAEa,OACTuuS,EAAMjvS,KAAKkvB,QACXsgU,GAAkBxwB,GAAMl2L,GAAQw9M,EAAM,IAAMiE,KAC5CkF,EAAUnJ,EAAKt6T,UACf0jU,EAAW5mN,GAAQw9M,EAAO,IAAM4D,IAC/BwF,IACDA,EAAWpJ,GAEVr3C,EAAI1mS,SAAS,GAAGyjB,UAAU6oB,SAAS,cAAiBo6P,EAAI1mS,SAAS,GAAGyjB,UAAU6oB,SAAS,eACpF46S,EAAQ56S,SAASq1S,MACrBuF,EAAUnJ,EAAKvjU,cAAc,YAAYiJ,YAEzCyjU,EAAQ56S,SAAS60S,KAAkB+F,EAAQ56S,SAAS80S,MACpD3pV,KAAK2vV,kBAAkB1gD,EAAKygD,EAAUzM,IAG1C,IAAIyL,EAAO5lN,GAAQjpI,EAAEa,OAAQ,IAAM8oV,IACnC,IAAKxqB,GAAM0vB,KAASA,EAAK1iU,UAAU6oB,SAASquS,KAAkBwM,EAAS1jU,UAAU6oB,SAASq1S,IAA1F,CAGA,GAAIwE,EAEAa,EADevvV,KAAK05H,MAAM15H,KAAK0tV,QAAQj+U,QAAQi/U,IAGnD,IAAIhkD,EAAY,CAAEoiB,cAAejtT,EAAGoxB,KAAMs+T,GACtCA,IAAYvwB,GAAMuwB,EAAQv3J,QAC1Bh4L,KAAK2sL,QAAQ,SAAW3sL,KAAK0tV,QAAQj+U,QAAQi/U,GAAQ,UAAWhkD,GAE/DA,EAAUn9R,QACXvN,KAAK2sL,QAAQ,UAAW+9G,GAAW,SAAUklD,IACpC5wB,GAAMp5T,EAAMwmV,SAAWoD,IAAmBI,EAAYriV,QAAiC,UAAvB3H,EAAM0nV,cACvEsC,EAAY3+T,MAAkC,UAA1B2+T,EAAY3+T,KAAKzzB,MACrCoI,EAAMwmV,OAAOjxK,KAAK,CAAEz9K,KAAM,UAAWooE,SAAU,KAEvD,GAfJ,CAiBJ,EACAulR,EAAQztV,UAAU+xV,kBAAoB,SAAU1gD,EAAKygD,EAAUzM,GAC3D,IAAImJ,EAASpsV,KAAKosV,OACd3wL,GAAU2wL,EAAOl9T,UACjBwgU,EAAS1jU,UAAUG,OAAOs+T,IAC1B2B,EAAOjxK,KAAK,CAAEz9K,KAAM,UAAWooE,SAAU,QAGrCmpO,EAAIjjR,UAAU6oB,SAASouS,KACvBmJ,EAAOxuC,WAAY,EACnBwuC,EAAOx8U,SAAW,CAAE4gD,EAAG,OAAQuB,EAAG,QAEf,IAAnBq6R,EAAO91N,SAAkB24K,EAAIjjR,UAAU6oB,SAASouS,KAChDmJ,EAAOxuC,WAAY,EACnBwuC,EAAOx8U,SAAW,CAAE4gD,EAAG,QAASuB,EAAG,QAEvCq6R,EAAOx6C,WACPw6C,EAAO1yB,kBACP0yB,EAAOl9T,QAAQruB,MAAMiP,IAAM9P,KAAK6vV,oBAAsB,KAC5B,aAAtB7vV,KAAKstV,eACLlB,EAAOl9T,QAAQruB,MAAM0rI,UAAY,OAErCmjN,EAAS1jU,UAAUC,IAAIw+T,IACvB2B,EAAO9wK,KAAK,CAAE59K,KAAM,SAAUooE,SAAU,MAEhD,EAOAulR,EAAQztV,UAAUY,OAAS,WACvBwB,KAAKunI,aACLvnI,KAAK8vV,gBACL9vV,KAAKqpT,aACLrpT,KAAK++S,gBACT,EACAssC,EAAQztV,UAAU2pI,WAAa,WAC3B,IAAIh+H,EAAQwqR,GAAW/zR,KAAKuJ,OACxBmT,EAASq3Q,GAAW/zR,KAAK0c,QACH,SAAtB0vR,GAAQ3uK,KAAK//H,MAAmC,SAAhBsC,KAAK0c,QAA2C,aAAtB1c,KAAKstV,cAC/D/R,GAASv7U,KAAKkvB,QAAS,CAAE,OAAUxS,IAEvC6+T,GAASv7U,KAAKkvB,QAAS,CAAE,MAAS3lB,IAClC,IAAIwmV,EAAW,CACX,KAAQ,UAAW,gBAAiB,QACpC,mBAAqB/vV,KAAK0sV,WAA4B,WAAf,cAE3C7vU,GAAW7c,KAAKkvB,QAAS6gU,GACrB/vV,KAAKq0T,UACLtlB,GAAS,CAAC/uS,KAAKkvB,SAAUlvB,KAAKq0T,SAASl7R,MAAM,KAErD,EACAkyT,EAAQztV,UAAUkyV,cAAgB,WAC9B,IAAI7gD,EAAMjvS,KAAKkvB,QACflvB,KAAKksV,QAAWj9C,EAAI1mS,SAAS5K,OAAS,EAAKsxS,EAAIlsR,cAAc,OAAS,KACtE/iB,KAAK2tV,WAAa,CAAEC,MAAO,GAAIC,QAAS,GAAIC,OAAQ,IACpD9tV,KAAKgwV,cACLhwV,KAAKiwV,cACT,EACA5E,EAAQztV,UAAUqyV,aAAe,WAC7BjwV,KAAKkwV,qBACDlwV,KAAKqsV,WACLrsV,KAAKmwV,kBAELnwV,KAAKosV,QAAUpsV,KAAKosV,OAAOl9T,QAAQkhU,kBAAoB,GAAKpwV,KAAKqwV,kBAAkBrwV,KAAKkvB,QAASlvB,KAAKosV,OAAOl9T,UAC7GlvB,KAAKmuV,aAAanuV,KAAKosV,OAAOl9T,SAAS,GAE3ClvB,KAAK+/F,WACT,EACAsrP,EAAQztV,UAAU0yV,WAAa,SAAU52N,EAAO62N,GAC5C,IAAIC,EACAC,EACCzwV,KAAK0tV,UACN1tV,KAAK0tV,QAAU,IAEnB,IAAK,IAAIhuV,EAAI,EAAGA,EAAIg6H,EAAM/7H,OAAQ+B,IAC9B8wV,EAAYxwV,KAAK0wV,mBAAmBh3N,EAAMlvH,SAAS9K,EAAEqL,WAAY,KAAMrL,IAC9B,IAArCM,KAAK0tV,QAAQj+U,QAAQ+gV,IACrBxwV,KAAK0tV,QAAQ7qV,KAAK2tV,GAEjBxwV,KAAKqsV,WACNrsV,KAAK2wV,cAAcj3N,EAAMlvH,SAAS9K,EAAEqL,WAAY,KAAMwlV,EAAY7wV,IAEtE+wV,EAAWF,EAAWxtU,cAAc,cAAgB22G,EAAMlvH,SAAS9K,EAAEqL,WAAY,KAAK6lV,MAAMxjU,iBAElFssG,EAAMlvH,SAAS9K,EAAEqL,WAAY,KAAK8lV,mBAAoE,SAA/Cn3N,EAAMlvH,SAAS9K,EAAEqL,WAAY,KAAKozC,UAC3Fn+C,KAAK2tV,YAAYj0N,EAAMlvH,SAAS9K,EAAEqL,WAAY,KAAK6lV,MAAQ,KAAKxjU,eAAevqB,KAAK2tV,GAExFC,EAAS9nU,YAAY6nU,IAGrBD,EAAW5nU,YAAY6nU,GAG/B,GAAIxwV,KAAKyqU,QAAS,CAEdzqU,KAAK6xN,OAAO,gCAAiC7xN,KAAiB,SAC9DA,KAAK0/S,sBACT,CACJ,EAKA2rC,EAAQztV,UAAUkzV,kBAAoB,WAClC,IAAI7hD,EAAMjvS,KAAKkvB,QACXlvB,KAAK0sV,YACLz9C,EAAIjjR,UAAUG,OAAOm9T,IACrBtpV,KAAK0sV,YAAa,EACE,SAAhB1sV,KAAK0c,QAAqC,SAAhB1c,KAAK0c,SAC/BuyR,EAAIpuS,MAAM6b,OAAS1c,KAAK0c,QAE5BuyR,EAAIt1Q,aAAa,mBAAoB,gBAGrCs1Q,EAAIjjR,UAAUC,IAAIq9T,IAClBtpV,KAAK0sV,YAAa,EAClBz9C,EAAIt1Q,aAAa,mBAAoB,YACrC4hT,GAASv7U,KAAKkvB,QAAS,CAAE,OAAU6kQ,GAAW/zR,KAAK0c,QAAS,MAASq3Q,GAAW/zR,KAAKuJ,UAEzFvJ,KAAKiuV,cACLjuV,KAAK+wV,iBACT,EACA1F,EAAQztV,UAAUozV,WAAa,SAAU9hU,EAAS+hU,IACzCjxV,KAAKysV,cAAgBzsV,KAAKg5F,cAAc9pE,EAAS+hU,EAAW,MACzDjxV,KAAKqsV,WACLrsV,KAAKkvB,QAAQnM,cAAc,IAAMwmU,GAAY,KAAOa,IAAgB1wT,gBAAgB,SAEpF15B,KAAK0sV,WACL1sV,KAAKysV,aAAe,IAAI1E,GAAQ,CAAEnD,WAAY5kV,KAAK4kV,WAAYhnC,UAAW59S,KAAK49S,WAAaqzC,EAAW,IAGvGjxV,KAAKysV,aAAe,IAAI5I,GAAQ,CAAEe,WAAY5kV,KAAK4kV,WAAYhnC,UAAW59S,KAAK49S,WAAaqzC,EAAW,IAEvGjxV,KAAKq0T,UACLtlB,GAAS,CAACkiD,EAAW,IAAKjxV,KAAKq0T,SAASl7R,MAAM,MAElDn5B,KAAKmsB,OAAOnsB,KAAKysV,aAAav9T,QAASm7T,IACvC9O,GAASv7U,KAAKkvB,QAAS,CAAEivB,SAAU,WAE3C,EACAktS,EAAQztV,UAAUszV,aAAe,SAAUx3N,GACvC,IAEI74H,EAFA+E,EAAQ5F,KACRuJ,EAAQ,EAUZ,MARA,GAAG1B,MAAMvF,KAAK2yI,GAAU,IAAMu0M,GAAU9vN,IAAQ32H,SAAQ,SAAUmlB,GAC1DuzI,GAAUvzI,KACVrnB,EAAQ2V,OAAOmT,iBAAiBzB,GAChC3e,GAAS3D,EAAM8mV,WAAaxkU,EAAG3G,aAAe2G,EAAG5G,YACjD/X,GAASwwE,WAAWn0E,EAAM8mV,WAAa7rV,EAAM0mB,UAAY1mB,EAAMkzB,aAC/DxqB,GAASwwE,WAAWn0E,EAAM8mV,WAAa7rV,EAAMmzB,aAAenzB,EAAM2mB,YAE1E,IACOje,CACX,EACA8hV,EAAQztV,UAAUuzV,gBAAkB,SAAUX,GAC1C,IAAIY,EAAYpxV,KAAK0sV,WAAc,qBAAuB,qBAC1D,OAAO8D,EAAUztU,cAAcquU,EACnC,EACA/F,EAAQztV,UAAUo7F,cAAgB,SAAU9pE,EAASshU,GACjD,GAAIxxB,GAAM9vS,IAAY8vS,GAAMwxB,KAAe/0L,GAAUvsI,GACjD,OAAO,EAEX,IAAImiU,EAAWrxV,KAAK0sV,WAAax9T,EAAQ3N,aAAe2N,EAAQ5N,YAC5DgwU,EAAYtxV,KAAK0sV,WAAa8D,EAAUjvU,aAAeivU,EAAUlvU,aACjEthB,KAAKqsV,WAAarsV,KAAKysV,cAAiB4E,IAAaC,KACrDA,EAAYtxV,KAAKkxV,aAAalxV,KAAKysV,aAAezsV,KAAKmxV,gBAAgBX,GAAaA,IAExF,IAAIe,EAASriU,EAAQnM,cAAc,IAAMmnU,IACrCsH,EAAYtiU,EAAQnM,cAAc,IAAMonU,IACxCsH,EAAc,EAOlB,OANIF,EACAE,EAAczxV,KAAK0sV,WAAa6E,EAAOhwU,aAAegwU,EAAOjwU,YAExDkwU,IACLC,EAAczxV,KAAK0sV,WAAwC,EAA1B8E,EAAUjwU,aAA+C,EAAxBiwU,EAAUlwU,aAE5EgwU,EAAYD,EAAWI,CAM/B,EAQApG,EAAQztV,UAAUmzV,gBAAkB,WAChC/wV,KAAKu+T,QACT,EACA8sB,EAAQztV,UAAU8zV,aAAe,SAAUT,GACnCjxV,KAAKqsV,YACLrsV,KAAKisB,IAAIglU,EAAY5G,IACrBrqV,KAAKmwV,kBAEb,EACA9E,EAAQztV,UAAUsyV,mBAAqB,WACnC,IAAIjhD,EAAMjvS,KAAKkvB,QACX+hU,EAAahiD,EAAIlsR,cAAc,IAAMwmU,IACrCoI,EAAgB3xV,KAAK4sV,cAAgB,EACzC,GAAI39C,GAAOA,EAAI1mS,SAAS5K,OAAS,EAM7B,OALAqC,KAAK4xV,UAAY3iD,EAAI3tR,YACrBthB,KAAKmsB,OAAOnsB,KAAKkvB,QAAS,aACA,SAAtBk9Q,GAAQ3uK,KAAK//H,MAAmC,SAAhBsC,KAAK0c,SACrCuyR,EAAIpuS,MAAM6b,OAAS,IAEf1c,KAAKstV,cACT,IAAK,aACGtuB,GAAMh/T,KAAKysV,eACXzsV,KAAKgxV,WAAW/hD,EAAK,GAAGpnS,MAAMvF,KAAK2sS,EAAI/8L,uBAAuBq3O,MAElE,MACJ,IAAK,QACDvpV,KAAKisB,IAAIjsB,KAAKkvB,QAAS,aACnBlvB,KAAKqsV,WACLrsV,KAAK6xV,qBAEL7xV,KAAKg5F,cAAci2M,EAAKgiD,IAAeU,IACvC3xV,KAAK8xV,sBAAsB7iD,GAE/BjvS,KAAK0xV,aAAaT,GAClB,MACJ,IAAK,WACDjxV,KAAKisB,IAAIglU,EAAYpG,IACjB7qV,KAAKg5F,cAAci2M,EAAKgiD,IAAejxV,KAAKqsV,YAC5CrsV,KAAK6xV,oBACL7xV,KAAKisB,IAAIglU,EAAYnG,KAEE,WAAvB77C,EAAIpuS,MAAMs9C,WACV8wP,EAAIpuS,MAAMs9C,SAAW,IAEC,SAAtBiuP,GAAQ3uK,KAAK//H,MAAwC,SAArBuxS,EAAIpuS,MAAM6b,SAC1CuyR,EAAIpuS,MAAM6b,OAAS,QAEvB,MACJ,IAAK,WACD1c,KAAKisB,IAAIjsB,KAAKkvB,QAAS+7T,KACnBjrV,KAAKg5F,cAAci2M,EAAKgiD,IAAeU,KACnC3xV,KAAKqsV,WACLrsV,KAAK6xV,oBAET7xV,KAAK8xV,sBAAsB7iD,IAE/BjvS,KAAK0xV,aAAaT,GAGlC,EACA5F,EAAQztV,UAAUk0V,sBAAwB,SAAU7iD,GAChDjvS,KAAK+xV,eAAe9iD,EAAK,GAAGpnS,MAAMvF,KAAK2yI,GAAU,IAAMs0M,GAAY,KAAOC,GAAUv6C,KAKpFpyR,GAAW7c,KAAKkvB,QAAQnM,cAAc,IAAMmnU,IAJ7B,CACX,SAAY,IAAK,KAAQ,SAAU,gBAAiB,OACpD,aAAc,YAGtB,EACAmB,EAAQztV,UAAUmiG,UAAY,WAC1B,IAAI7wE,EAAUlvB,KAAKkvB,QACf8iU,EAAU,GAAGnqV,MAAMvF,KAAK4sB,EAAQ3I,iBAAiB,IAAMkjU,KACvDwI,EAAW/iU,EAAQnM,cAAc,IAAMgoU,IACvCmH,EAAYhjU,EAAQnM,cAAc,IAAMioU,IACxCmH,EAAsC,aAAtBnyV,KAAKstV,aAA8B2E,EAAWC,EAC5C,OAAlBC,IAC0B,aAAtBnyV,KAAKstV,aACL6E,EAAcnmU,UAAUG,OAAO4+T,IAEJ,aAAtB/qV,KAAKstV,cACV6E,EAAcnmU,UAAUG,OAAO6+T,KAGvC,IAAK,IAAItrV,EAAI,EAAGA,GAAKsyV,EAAQr0V,OAAS,EAAG+B,IACjCsyV,EAAQxnV,SAAS9K,EAAEqL,WAAY,KAAK2b,WAAa,IAAyD,IAAnDsrU,EAAQxnV,SAAS9K,EAAEqL,WAAY,KAAK2b,aACjE,aAAtB1mB,KAAKstV,aACL0E,EAAQxnV,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAUC,IAAI8+T,IAEvB,aAAtB/qV,KAAKstV,cACV0E,EAAQxnV,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAUC,IAAI++T,IAIlE,EACAK,EAAQztV,UAAUm0V,eAAiB,SAAU9iD,EAAKmjD,GAC9C,IAAIC,EAAWpjD,EAAIlsR,cAAc,IAAMmnU,IACnCr6U,EAAW7P,KAAK0sV,WACf2F,GACDryV,KAAKsyV,gBAAgBrjD,GAEzBojD,EAAWpjD,EAAIlsR,cAAc,IAAMmnU,IACnC,IAAIqI,EAAe1iV,EAAWwiV,EAAS9wU,aAAe8wU,EAAS/wU,YAC3D+vU,GAAaxhV,EAAWo/R,EAAI1tR,aAAe0tR,EAAI3tR,aAAgBixU,EACnEvyV,KAAKkvB,QAAQlD,UAAUG,OAAO,SAC9BovT,GAASv7U,KAAKkvB,QAAS,CAAElL,UAAW,YACpChkB,KAAKwyV,cAAcvjD,EAAKmjD,EAAUf,GAAU,GACxCrxV,KAAK49S,WACL59S,KAAKkvB,QAAQlD,UAAUC,IAAI,SAE/BjsB,KAAKkvB,QAAQruB,MAAM23T,eAAe,aAClCx4T,KAAKyyV,aACT,EACApH,EAAQztV,UAAU80V,iBAAmB,SAAUC,EAASC,EAAU3jD,EAAK4jD,EAAWC,GAC9E,IAAI5jU,EAAUyjU,EAAQzjU,QAClB6jU,EAAY,GAAGlrV,MAAMvF,KAAK2yI,GAAU,IAAMu1M,GAAWt7T,EAAQnM,cAAc,IAAMwmU,MACjF77T,EAAQunH,GAAU,IAAM+0M,GAAkB/6C,GAC1C+jD,EAAY,EACZC,EAAU,EACdF,EAAUhwV,SAAQ,SAAUmlB,EAAI3gB,GAC5BmmB,EAAQunH,GAAU,IAAM+0M,GAAkB/6C,GACtC/mR,EAAG8D,UAAU6oB,SAASm1S,KAAqBt8T,EAAM/vB,OAAS,EACtDg1V,EAAQO,UAAYxlU,EAAM/vB,OAAS4J,GACnC0nS,EAAI5+O,aAAanoC,EAAIwF,EAAMljB,SAASjD,EAAMwD,WAAY,QACpDkoV,IAGFhkD,EAAI5+O,aAAanoC,EAAI+mR,EAAI1mS,SAASmlB,EAAM/vB,WACtCs1V,GAGD/qU,EAAG8D,UAAU6oB,SAASm1S,KAItB2I,EAAQO,UAAYhrU,EAAG8D,UAAU6oB,SAASo1S,KAAoBh7C,EAAI1mS,SAAS5K,OAAS,GAAsB,IAAjB+vB,EAAM/vB,QAHpGsxS,EAAI5+O,aAAanoC,EAAI+mR,EAAI9wQ,cACvB80T,GAMG/qU,EAAG8D,UAAU6oB,SAASo1S,IAC3B2I,EAAS/vV,KAAKqlB,GAETyqU,EAAQO,UACbjkD,EAAI5+O,aAAanoC,EAAI+mR,EAAIpnR,WAAWmrU,EAAYC,MAC9CD,GAGF/jD,EAAItmR,YAAYT,GAEhBA,EAAG8D,UAAU6oB,SAAS40S,IACtBlO,GAASrzT,EAAI,CAAExe,QAAS,GAAIgT,OAAQo2U,EAAY,OAGhDvX,GAASrzT,EAAI,CAAExe,QAAS,GAAIgT,OAAQm2U,EAAY,MAExD,IACAD,EAAS7vV,SAAQ,SAAUmlB,GACvB+mR,EAAItmR,YAAYT,EACpB,IAEA,IADA,IAAIwlU,EAAUz4M,GAAU,IAAMu0M,GAAUt6T,EAAQnM,cAAc,IAAMwmU,KAC3D7pV,EAAIguV,EAAQ/vV,OAAS,EAAG+B,GAAK,EAAGA,IAAK,CAC1C,IAAIyzV,EAAczF,EAAQljV,SAAS9K,EAAEqL,WAAY,KACjD,IAAIooV,EAAYnnU,UAAU6oB,SAAS40S,KAAwC,aAAtBzpV,KAAKstV,aAItD,MAHA/R,GAAS4X,EAAa,CAAEzpV,QAAS,QAKzC,CACJ,EACA2hV,EAAQztV,UAAU60V,YAAc,WAC5B,IACIK,EACAM,EAFAlkU,EAAUlvB,KAAKkvB,QAGO,aAAtBlvB,KAAKstV,eACL8F,EAAUlkU,EAAQnM,cAAc,IAAM0mU,GAAgB,SAAWe,GAAY,KAC7EsI,EAAsC,SAAzB5jU,EAAQruB,MAAM6b,QAA8C,KAAzBwS,EAAQruB,MAAM6b,OAAiB,KAAO02U,EAAQ7xU,cAElG,IAEI0tR,EAFA+iD,EAAU9iU,EAAQnM,cAAc,IAAMymU,GAAW,SAAWC,GAAgB,UAAYe,GAAY,KACpGqI,EAAsC,SAAzB3jU,EAAQruB,MAAM6b,QAA8C,KAAzBwS,EAAQruB,MAAM6b,OAAiB,KAAQs1U,GAAWA,EAAQzwU,aAG9G,GAAIyuH,GAAO,IAAM9gH,EAAQ1G,GAAK,UAAY+hU,GAAgBr7T,GACtD+/Q,EAAMj/J,GAAO,IAAM9gH,EAAQ1G,GAAK,UAAY+hU,GAAgBr7T,OAE3D,CACD,IAAImkU,EAAYrzV,KAAK2J,cAAc,MAAO,CACtC6e,GAAI0G,EAAQ1G,GAAK,SAAU5e,UAAW2gV,GAAiB,IAAMW,KAE7DoI,EAAWtzV,KAAK2J,cAAc,MAAO,CAAE6e,GAAI0G,EAAQ1G,GAAK,SAAU5e,UAAW2gV,KACjFt7C,EAA4B,aAAtBjvS,KAAKstV,aAA8B+F,EAAYC,CACzD,CACAtzV,KAAK0yV,iBAAiB1yV,KAXP,GAWuBivS,EAAK4jD,EAAWC,GACtD9yV,KAAKuzV,UAAUrkU,EAAS+/Q,EAC5B,EACAo8C,EAAQztV,UAAUiyV,kBAAoB,WAClC,MAA8B,aAAtB7vV,KAAKstV,cAAwG,eAAzE92U,OAAOmT,iBAAiB3pB,KAAKkvB,SAASy4G,iBAAiB,cAC/F3nI,KAAKkvB,QAAQzF,aAAezpB,KAAKkvB,QAAQ3N,YACjD,EACA8pU,EAAQztV,UAAU21V,UAAY,SAAUrkU,EAAS+/Q,GAC7C,GAAKjvS,KAAKosV,OAsCL,CACD,IAAIkH,EAAWtzV,KAAKosV,OAAOl9T,QAC3BqsT,GAAS+X,EAAU,CAAEjlN,UAAW,GAAI3kI,QAAS,UAC7C6xU,GAAS+X,EAAU,CAAEjlN,UAAWilN,EAAS/xU,aAAe,KAAM7X,QAAS,IAC3E,KA1CkB,CACdwlB,EAAQvG,YAAYsmR,GAChBjvS,KAAKq0T,UACLtlB,GAAS,CAACE,GAAMjvS,KAAKq0T,SAASl7R,MAAM,MAExCoiT,GAASv7U,KAAKkvB,QAAS,CAAEivB,SAAU,KACnC,IAAIq1S,EAAYh9U,OAAOmT,iBAAiB3pB,KAAKkvB,SACzCq1J,EAAQ,IAAIi1I,GAAM,KAAM,CACxBc,SAAUt6T,KAAKkvB,QACfqnG,QAAUv2H,KAAK0sV,WAAc,EAAI1sV,KAAK6vV,oBACtCjyC,UAAW59S,KAAK49S,UAChB3sO,KAAMjxE,KAAK2rV,UAAUxpV,KAAKnC,MAC1BgwG,MAAOhwG,KAAK4rV,WAAWzpV,KAAKnC,MAC5Bq7T,UAAW,CAAEtpQ,EAAG/xD,KAAKwsV,gBAAkB,OAAS,QAChD58U,SAAU5P,KAAK49S,UAAY,CAAEptP,EAAG,OAAQuB,EAAG,OAAU,CAAEvB,EAAG,QAASuB,EAAG,SAa1E,GAX0B,aAAtB/xD,KAAKstV,eACL/oK,EAAMh7K,MAAQwwE,WAAWy5Q,EAAUjqV,OAAqD,EAA1CwwE,WAAWy5Q,EAAUtoU,kBACnEq5J,EAAMjuD,QAAU,GAEpBiuD,EAAMy5H,SAAS/O,GACflB,GAAa9hR,IAAI5V,SAAU,SAAUrW,KAAKwtV,SAASrrV,KAAKnC,OACxD+tS,GAAa9hR,IAAI5V,SAAU,SAAUrW,KAAKwtV,SAASrrV,KAAKnC,OACxDukL,EAAMr1J,QAAQruB,MAAMwtI,UAAYk2C,EAAMr1J,QAAQ3N,aAAe,KACzDvhB,KAAK0sV,aACLnoK,EAAMr1J,QAAQruB,MAAM04I,WAAa,UAEjCv5I,KAAK2sV,eAAgB,CACrB,IAAI+C,EAAW1vV,KAAKkvB,QAAQnM,cAAc,IAAMmnU,IAChDwF,EAAS1jU,UAAUC,IAAIw+T,IACvBz+T,GAAU0jU,EAAS//C,kBAAmB,CAAC+5C,IAAgB,CAACC,KACxD3pV,KAAKkvB,QAAQnM,cAAc,IAAMmoU,IAAqBl/T,UAAUC,IAAI29T,GACxE,MAEIrlK,EAAMpJ,OAEVn7K,KAAKosV,OAAS7nK,CAClB,CAMJ,EACA8mK,EAAQztV,UAAU61V,iBAAmB,SAAUjiR,GACjB,aAAtBxxE,KAAKstV,eACD97Q,EACAxxE,KAAKisB,IAAIjsB,KAAKkvB,QAASi8T,IAGvBnrV,KAAKmsB,OAAOnsB,KAAKkvB,QAASi8T,IAGtC,EAEAE,EAAQztV,UAAU+tV,UAAY,SAAU9rV,GACpC,IAAIusV,EAASpsV,KAAKosV,OACbpsV,KAAK0sV,aACNN,EAAO71N,QAAUv2H,KAAK6vV,oBACtBzD,EAAOx6C,YAEX,IAAI0hD,EAAWtzV,KAAKosV,OAAOl9T,QACvBwkU,EAAU1zV,KAAKosV,OAAOl9T,QAAQ65R,cAC9B2mC,EAAWgE,EAAQ3wU,cAAc,IAAMmnU,IAC3CwF,EAAS/1T,aAAa,gBAAiB,QACvC4hT,GAAS6Q,EAAOl9T,QAAS,CAAExS,OAAQ,OAAQ2xH,UAAW,KACtD+9M,EAAOl9T,QAAQruB,MAAMwtI,UAAY+9M,EAAOl9T,QAAQ3N,aAAe,KACrC,aAAtBvhB,KAAKstV,eACLlB,EAAOl9T,QAAQruB,MAAM0rI,UAAY,IAErC,IAAIonN,EAAcL,EAAS7sU,UAAY6sU,EAAS/xU,aAAe0zS,GAAkBy+B,GAAS5jV,IACtF8jV,EAAUlE,EAAS//C,kBACvB+/C,EAAS1jU,UAAUC,IAAIw+T,IACvBz+T,GAAU4nU,EAAS,CAAClK,IAAgB,CAACC,KACrC3pV,KAAKyzV,kBAAiB,GACtB,IAAI5M,EAAY7nB,GAAMxoT,OAAOwkT,SAAW,EAAIxkT,OAAOwkT,QACnD,IAAKh7T,KAAK0sV,YAAgBl2U,OAAOgT,YAAcq9T,EAAa8M,GAAiB3zV,KAAKkvB,QAAQzI,UAAY6sU,EAAS/xU,aAAe,CAC1H,IAAIsyU,EAAkBP,EAAS/xU,cAAiBoyU,EAAcn9U,OAAOgT,YAAcq9T,EAAa,GAChGuF,EAAO1vU,OAASm3U,EAAiB,KACjC,IAAK,IAAIn0V,EAAI,EAAGA,GAAK4zV,EAASlD,kBAAmB1wV,IAAK,CAClD,IAAIuvS,EAAMqkD,EAAS/qV,SAASiC,SAAS9K,EAAEqL,WAAY,KACnD,GAAIkkS,EAAIxoR,UAAYwoR,EAAI1tR,aAAesyU,EAAgB,CACnDA,EAAiB5kD,EAAIxoR,UACrB,KACJ,CACJ,CACA80T,GAAS6Q,EAAOl9T,QAAS,CAAEm/G,UAAWwlN,EAAiB,MAC3D,MACK,GAAI7zV,KAAK0sV,WAAY,CACtB,IAAIoH,EAAY9zV,KAAKkvB,QAAQxE,wBAC7B6wT,GAAS6Q,EAAOl9T,QAAS,CAAEm/G,UAAYylN,EAAUhkV,IAAM9P,KAAKkvB,QAAQ3N,aAAgB,KAAMgS,OAAQ,EAAGgmH,WAAY,IACrH,CACA,GAAI6yM,EAAQ,CACR,IAAI2H,EAAcT,EAAS5oU,wBACvBqpU,EAAYhsU,MAAQ1R,SAASmc,gBAAgBxI,aAAe+pU,EAAYxqV,MAAQmqV,EAAQhpU,wBAAwBnhB,QAChH6iV,EAAO/wB,UAAY,CAAEtpQ,EAAG,QACxBq6R,EAAOx6C,YAEXw6C,EAAO1yB,iBACX,CACJ,EAEA2xB,EAAQztV,UAAUguV,WAAa,SAAU/rV,GACrC,IACI6vV,EADU1vV,KAAKkvB,QACInM,cAAc,IAAMmnU,IAC3CwF,EAAS/1T,aAAa,gBAAiB,SACvC,IAAIi6T,EAAUlE,EAAS//C,kBACvB+/C,EAAS1jU,UAAUG,OAAOs+T,IAC1Bz+T,GAAU4nU,EAAS,CAACjK,IAAgB,CAACD,KACrC1pV,KAAKyzV,kBAAiB,EAC1B,EACApI,EAAQztV,UAAU40V,cAAgB,SAAUvjD,EAAK+kD,EAAO3C,EAAU4C,GAkB9D,IAjBA,IAGIC,EAHAC,EAAcn0V,KAAK4sV,cAAgB,EAEnCwH,EAAS/C,EAGTgD,EAAW,EACXC,EAAY,EACZC,EAAe,EACfC,EAAa,SAAUvlD,EAAK1rO,GAC5B,IAAIkxR,GAAO,EAMX,OALAlxR,EAAIxgE,SAAQ,SAAU2xV,GACdzlD,EAAIjjR,UAAU6oB,SAAS6/S,KACvBD,GAAO,EAEf,IACOA,CACX,EACS/0V,EAhBCs0V,EAAMr2V,OAgBG,EAAG+B,GAAK,EAAGA,IAAK,CAC/B,IAAIi1V,OAAO,EACPC,EAAap+U,OAAOmT,iBAAiBqqU,EAAMxpV,SAAS9K,EAAEqL,WAAY,MAClE/K,KAAK0sV,YACLiI,EAAO56Q,WAAY66Q,EAAYrtU,WAC/BotU,GAAQ56Q,WAAY66Q,EAAY5gU,gBAGhC2gU,EAAO56Q,WAAY66Q,EAAY7gU,aAC/B4gU,GAAQ56Q,WAAY66Q,EAAYptU,aAEpC,IAAIqtU,EAAcb,EAAMxpV,SAAS9K,EAAEqL,WAAY,OAAS/K,KAAK0tV,QAAQ,GACjEmH,IACA70V,KAAK80V,YAAcH,GAEvBT,EAAYl0V,KAAK0sV,WAAasH,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKwW,aAAeyyU,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKuW,YACjH,IAAIyzU,EAAWF,EAAeX,EAAYS,EAAQT,EAmBlD,GAlBIM,EAAWR,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAM,CAAC4/U,MAAgBwJ,IAC/DH,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAUC,IAAIu+T,IAC5CxqV,KAAK0sV,WACLnR,GAASyY,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAM,CAAErB,QAAS,OAAQ6iI,UAAWwoN,EAAW,OAGrFxZ,GAASyY,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAM,CAAErB,QAAS,OAAQjC,SAAUstV,EAAW,OAExFR,KAEAv0V,KAAK0sV,WAEAsH,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAK0b,UAAYutU,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKwW,aAAeozU,EAAQtD,EAIvG2C,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAK2b,WAAastU,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKuW,YAAcqzU,EAAQtD,EAE/F,CACb,GAAI2C,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAU6oB,SAAS40S,KACrD,GAA0B,aAAtBzpV,KAAKstV,aAA6B,CAClC,GAAIgH,IAAcC,EAEVC,EADAQ,EAAShB,EAAMxpV,SAAS9K,EAAEqL,WAAY,KACnB,CAAC0+U,GAAeiB,OACnCsJ,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAUC,IAAIu+T,IAChD+J,KAGRD,GACJ,MACK,GAA0B,UAAtBt0V,KAAKstV,aAA0B,CAEhC,IAAI0H,EADR,GAAIX,EAAW,GAAKC,IAAcC,EAE1BC,EADAQ,EAAShB,EAAMt0V,EAAI40V,GAAaD,EAAW,IACxB,CAAC5K,GAAeiB,MACnCnP,GAASyZ,EAAQ,CAAEtrV,QAAS,SAGpC2qV,IACAC,EAAY,EACZC,EAAe,CACnB,OAGAD,IAEAN,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAU6oB,SAASm1S,KAAqBiK,GAIpEO,EAAWR,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAM,CAAC0+U,GAAeiB,KAHpE2G,IAAcrxV,KAAK0sV,WAAasH,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKwW,aAC9DyyU,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKuW,aAAgBqzU,GAGtDX,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAUC,IAAIu+T,IAC5CxqV,KAAK0sV,WACLnR,GAASyY,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAM,CAAErB,QAAS,OAAQ6iI,UAAWwoN,EAAW,OAGrFxZ,GAASyY,EAAMxpV,SAAS9K,EAAEqL,WAAY,KAAM,CAAErB,QAAS,OAAQjC,SAAUstV,EAAW,OAExFR,IAMR,CACJ,CACA,GAAIN,EAAK,CACL,IAAIgB,EAAWhgN,GAAU,IAAMu0M,GAAW,SAAWgB,GAAY,IAAKxqV,KAAKkvB,SAC3ElvB,KAAKwyV,cAAcvjD,EAAKgmD,EAAUb,GAAQ,EAC9C,CACJ,EACA/I,EAAQztV,UAAU00V,gBAAkB,SAAUpjU,GAC1C,IAAI1G,EAAK0G,EAAQ1G,GAAGjpB,OAAO,QACvBqK,EAAY,KAAOslB,EAAQ1G,GAAGjpB,OAAO,kBACzCqK,EAAkC,aAAtB5J,KAAKstV,aAA8B1jV,oBAAoCA,EACnF,IAAIo7U,EAAMhlV,KAAK2J,cAAc,MAAO,CAAE6e,GAAIA,EAAI5e,UAAWA,IAC/B,SAAtBwiS,GAAQ3uK,KAAK//H,MAAyC,SAAtB0uS,GAAQ3uK,KAAK//H,MAC7CsnV,EAAIh5T,UAAUC,IAAI,cAEtB,IAAIq5T,EAAUtlV,KAAK2J,cAAc,MAAO,CAAEC,UAAW+/U,GAAgB,aACrE3E,EAAIr8T,YAAY28T,GAChBN,EAAIrrT,aAAa,WAAY,KAC7BqrT,EAAIrrT,aAAa,OAAQ,UACzBzK,EAAQvG,YAAYq8T,EACxB,EACAqG,EAAQztV,UAAUs3V,WAAa,SAAUlB,EAAOmB,EAAMC,EAAQltU,EAAImtU,EAAKC,EAAOC,EAAKjiS,GAC/E,IAAIkiS,EAAcliS,EACdy6R,EAAS/tV,KAAKosV,OAAOl9T,QACrBtoB,EAAQ,IAAM4iV,GAAW,SAAWC,GAAgB,UAAYO,GAAmB,IACnFyL,EAAYxgN,GAAU,IAAMu1M,GAAY,SAAWR,GAAmB,IAAK+D,GAAQpwV,OACnF62V,EAAa,SAAUvlD,EAAK1rO,GAC5B,OAAO0rO,EAAIjjR,UAAU6oB,SAAS0uB,EAClC,EACA,GAAuC,IAAnC0xE,GAAUruI,EAAOotV,GAAOr2V,OAAc,CACtC,IAAI+3V,EAAS1B,EAAMzrV,SAAS4sV,GAAQA,EAAOC,GAAU,GACjDO,GAAgB32B,GAAM02B,IAAWlB,EAAWkB,EAAQhL,IACxD,IAAM1rB,GAAM02B,IAAWlB,EAAWkB,EAAQjM,MAAmBhuL,GAAUi6L,IAAYC,EAAa,CAE5FD,EAAO70V,MAAM6I,QAAU,UACvB,IAAIksV,EAAcF,EAAOp0U,YAAyE,EAA1Dy4D,WAAWvjE,OAAOmT,iBAAiB+rU,GAAQ3hU,aAC/E8hU,EAAUH,EAAOI,uBAChBR,EAAQM,EAAeL,GAAOF,GAC/BrB,EAAM3jS,aAAanoC,EAAI8rU,EAAMzrV,SAAU4sV,EAAOK,GAAgBL,EAAOC,KAChEp2B,GAAM62B,KACPA,EAAQh1V,MAAM6I,QAAU,KAIxBmsV,EAAQ7pU,UAAU6oB,SAAS40S,MAC3BoM,EAAQh1V,MAAM6I,QAZL,QAejBgsV,EAAO70V,MAAM6I,QAAU,EAC3B,MAEIsqV,EAAM3jS,aAAanoC,EAAI8rU,EAAMzrV,SAAU4sV,EAAOK,GAAgBL,EAAOC,IAE7E,MAEIpB,EAAM3jS,aAAanoC,EAAI8rU,EAAMzrV,SAAU4sV,EAAOK,EAAeC,GAErE,EACApK,EAAQztV,UAAUuwV,aAAe,SAAUmF,EAAU9yV,GACjD,IAAIoF,EAAQ5F,KACRivS,EAAMjvS,KAAKkvB,QACX6mU,EAAQ/1V,KAAK0sV,WACb0F,EAAWnjD,EAAIlsR,cAAc,IAAMwmU,IACnCgI,EAAStiD,EAAIlsR,cAAc,IAAMmnU,IACrC,IAAIlrB,GAAMuyB,GAAV,CAKA,IAAIyE,EAFJ5D,EAAS14T,gBAAgB,SACzB45T,EAASzyV,MAAM6I,QAAU,QAGrBssV,EADAD,EACY9mD,EAAI1tR,cAAgBgwU,EAAOhwU,aAAe6wU,EAAS7wU,cAGnD0tR,EAAI3tR,aAAeiwU,EAAOjwU,YAAc8wU,EAAS9wU,aAEjE,IAAI20U,EAAgB,EACpB,GAAGpuV,MAAMvF,KAAKgxV,EAAS/qV,UAAUxF,SAAQ,SAAUmlB,GAC/C+tU,GAAiBrwV,EAAMqwV,cAAc/tU,GACrCqzT,GAASrzT,EAAI,CAAE,SAAY,IAC/B,IACK8tU,GAAaD,EAAQxE,EAAOhwU,aAAegwU,EAAOjwU,aAAiB20U,GAAyC,IAAvBj2V,KAAK4sV,gBAC3FpsV,GAAU,GAEdR,KAAKk2V,gBAAgBF,EAAW1C,EAAU9yV,GAC1C8yV,EAASzyV,MAAM6I,QAAU,GACQ,IAA7B4pV,EAAS/qV,SAAS5K,QAAgB4zV,GAAUvxV,KAAKosV,SACjD5wK,GAAO+1K,GACPA,EAAS,KACTvxV,KAAKosV,OAAO5rV,UACZg7K,GAAOx7K,KAAKosV,OAAOl9T,SACnBlvB,KAAKosV,OAAS,KAzBlB,CA2BJ,EACAf,EAAQztV,UAAUu4V,eAAiB,SAAU5uV,EAAO6qV,GAChD,IAAIgE,EAAY,GAAGvuV,MAAMvF,KAAK8vV,EAAS7rU,iBAAiB,IAAMmkU,KAC1D2L,EAAY,GACZtnV,EAAQ,EACZ,OAAIqnV,EAAUz4V,OAAS,GACnBy4V,EAAUrzV,SAAQ,SAAUksS,GACxBonD,EAAUxzV,KAAK,GAAGgF,MAAMvF,KAAK8vV,EAAS7pV,UAAUkH,QAAQw/R,GAC5D,IAKJonD,EAAUtzV,SAAQ,SAAUwgE,GACpBA,GAAOh8D,GACPwH,GAER,IACOA,GAPI,CAQf,EACAs8U,EAAQztV,UAAUyyV,kBAAoB,SAAUzlV,EAAMmjV,GAClDA,EAAOltV,MAAM6I,QAAU,QACvB,IAAI4rV,EAAQt1V,KAAKi2V,cAAclI,EAAOp+C,mBACtCo+C,EAAOp+C,kBAAkB9uS,MAAM23T,eAAe,YAC9C,IAAI89B,EAAY1rV,EAAK0W,YAAc1W,EAAKmY,cAAc,IAAMmnU,IAAa5oU,YACrEi1U,EAAe3rV,EAAKmY,cAAc,IAAMwmU,IAAWjoU,YAEvD,OADAysU,EAAOltV,MAAM23T,eAAe,WACxB89B,EAAahB,EAAQiB,CAI7B,EACAlL,EAAQztV,UAAUq4V,cAAgB,SAAU/tU,GACxCA,EAAGrnB,MAAM+O,SAAW,WACpB,IAAI4mV,EAAUx2V,KAAK0sV,WAAaxkU,EAAG3G,aAAe2G,EAAG5G,YACjDm1U,EAAUvuU,EAAGnF,cAAc,oBAC/B,GAAImF,EAAG8D,UAAU6oB,SAAS,iBAAmB3sB,EAAG8D,UAAU6oB,SAASk1S,IAAe,CAC9E,IAAI1hB,EAAMngT,EAAG3f,SAAS,IACjBy2T,GAAMy3B,IAAYvuU,EAAG8D,UAAU6oB,SAASk1S,IACzC0M,EAAQ51V,MAAM6I,QAAU,QAElBs1T,GAAMy3B,IAAYvuU,EAAG8D,UAAU6oB,SAASi1S,MAC9C2M,EAAQ51V,MAAM6I,QAAU,SAE5B2+T,EAAIxnU,MAAM4G,SAAW,KACrB+uV,EAAUz8Q,WAAY/5E,KAAK0sV,WAAiCxkU,EAAGrnB,MAAM0rI,UAA7BrkH,EAAGrnB,MAAM4G,UACjD4gU,EAAIxnU,MAAM4G,SAAW,GACrB4gU,EAAIxnU,MAAM0rI,UAAY,GACjByyL,GAAMy3B,KACPA,EAAQ51V,MAAM6I,QAAU,GAEhC,CACA,OAAO8sV,CACX,EACAnL,EAAQztV,UAAUs4V,gBAAkB,SAAU3sV,EAAO+pV,EAAU9yV,GA6D3D,IA5DA,IAEIi1V,EACAluV,EAHA4sV,EAAcn0V,KAAK4sV,cAAgB,EACnC8J,EAAY12V,KAAK0tV,QAGjB0E,EAAWpyV,KAAKkvB,QAAQnM,cAAc,IAAMwmU,IAC5CiM,EAAc,EACdliE,EAAU,SAAUprQ,GACpB,GAAIA,EAAG8D,UAAU6oB,SAAS81S,KAAewJ,IAAgB3zV,EACrD,MAAO,WAEX,IAAIg2V,EAAUj2C,EAAO01C,cAAc/tU,GAKnC,GAJIA,IAAOq4R,EAAOmtC,QAAQ,KACtB8I,GAAWj2C,EAAOu0C,aAEtB5sU,EAAGrnB,MAAM+O,SAAW,KAChB4mV,EAAUjtV,GAAS/I,GAyCnB,MAAO,QAnCP,GALA+6U,GAASrzT,EAAI,CAAEzgB,SAAU,GAAIiV,OAAQ,GAAI6vH,UAAW,KAC/CrkH,EAAG8D,UAAU6oB,SAASo1S,KACvB/hU,EAAG8D,UAAUG,OAAOq+T,IAExBjjV,EAAQg5S,EAAOmtC,QAAQj+U,QAAQyY,GAC3Bq4R,EAAO8rC,UAAW,CAClB,IAAI/oR,EAAMi9O,EAAO7mL,MAAMlvH,SAASjD,EAAMwD,WAAY,KAAK6lV,MACvDrpV,EAAQg5S,EAAOotC,YAAYrqR,EAAM,KAAKl2C,eAAe3d,QAAQyY,GAC7DwuU,EAAYn2C,EAAOotC,YAAYrqR,EAAM,KAAKl2C,eAC1CglU,EAAW7xC,EAAOrxR,QAAQnM,cAAc,IAAMwmU,GAAN,eAAwCjmR,EAAIl2C,cACxF,CACA,IAAIupU,EAAiB,EACO,aAAxBp2C,EAAO+sC,cACPoJ,EAAU7uV,MAAM,EAAGN,GAAOxE,SAAQ,SAAUmlB,IACpCA,EAAG8D,UAAU6oB,SAASm1S,KAAqB9hU,EAAG8D,UAAU6oB,SAAS40S,OAC7DvhU,EAAG8D,UAAU6oB,SAAS40S,MACtBvhU,EAAGrnB,MAAM6I,QAAU,GACnBH,GAAS2e,EAAG5G,aAEhBq1U,IAER,IAEJnB,EAAcj1C,EAAO41C,eAAe5uV,EAAO6qV,GACvClqU,EAAG8D,UAAU6oB,SAASm1S,KACtBzpC,EAAO20C,WAAW9C,EAAU7qV,EAAOovV,EAAgBzuU,EAAI1nB,EAASg2V,EAASjtV,EAAOisV,GAChFjsV,GAAS2e,EAAG5G,aAEG,IAAV/Z,GACL6qV,EAAS/hS,aAAanoC,EAAIkqU,EAASj0T,YACnC50B,GAAS2e,EAAG5G,cAGZm0U,EAAYxgN,GAAU,IAAM+0M,GAAkBzpC,EAAO6rC,OAAOl9T,SAASvxB,OACrEy0V,EAAS/hS,aAAanoC,EAAIkqU,EAAS7pV,SAAUhB,EAAQiuV,EAAeC,IACpElsV,GAAS2e,EAAG5G,aAEhB4G,EAAGrnB,MAAM6b,OAAS,EAK1B,EACI6jS,EAASvgT,KACJ26D,EAAK,EAAGpgD,EAAK,GAAG1S,MAAMvF,KAAKgxV,EAAS/qV,UAAWoyD,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAG1E,GAAgB,UADF24N,EADL/4Q,EAAGogD,IAGR,KACR,CACoB36D,KAAKg5F,cAAch5F,KAAKkvB,QAASlvB,KAAKkvB,QAAQgjF,uBAAuBq3O,IAAW,MAC9E/oV,GAClBR,KAAKkwV,oBAEb,EACA7E,EAAQztV,UAAUi0V,kBAAoB,WAClC,IAAI5gU,EAAOjxB,KAAKkvB,QAAQnM,cAAc,IAAMwmU,IAC5C,IAAIvqB,GAAM/tS,IAAUA,EAAKjF,UAAU6oB,SAASw1S,IAA5C,CAGArqV,KAAKmsB,OAAO8E,EAAMo5T,IAClB,IAAImG,EAAY,GAAG3oV,MAAMvF,KAAK2uB,EAAKpJ,YACnC2oU,EAAU,GAAG92T,gBAAgB,SAC7B82T,EAAU,GAAG92T,gBAAgB,QAJ7B,CAKJ,EACA2xT,EAAQztV,UAAUg5V,mBAAqB,WACnC,IAAI3lU,EAAOjxB,KAAKkvB,QAAQnM,cAAc,IAAMwmU,IAC5CvpV,KAAKisB,IAAIgF,EAAMo5T,IACfrqV,KAAKmwV,iBACT,EACA9E,EAAQztV,UAAUuyV,gBAAkB,WAChC,IACIx7E,EADA1jP,EAAOjxB,KAAKkvB,QAAQnM,cAAc,IAAMwmU,IAE5C,IAAIvqB,GAAM/tS,IAAUA,EAAKjF,UAAU6oB,SAASw1S,IAA5C,CAGA,IACImG,EADAd,EAAW1vV,KAAKkvB,QAAQnM,cAAc,IAAMmnU,IAEhD,GAAIlqV,KAAKysV,aAAc,CACnB,IAAI2E,EAAYpxV,KAAK0sV,WAx4CZ,oBADA,oBA04CT8D,EAAY,GAAG3oV,MAAMvF,KAAK2uB,EAAKlO,cAAc,IAAMquU,GAAU7oV,SACjE,MAEIioV,EAAY,GAAG3oV,MAAMvF,KAAK2uB,EAAKpJ,YAG/B8sP,EADA30Q,KAAK0sV,WACI8D,EAAU,GAAGjvU,aAAeivU,EAAU,GAAGjvU,aAGzCivU,EAAU,GAAGlvU,YAAckvU,EAAU,GAAGlvU,YAErD,IAAIu1U,EAAU72V,KAAK0sV,WAAa1sV,KAAKkvB,QAAQ3N,aAAevhB,KAAKkvB,QAAQ5N,YACzE,GAAIouU,EAAU,CACVmH,GAAY72V,KAAK0sV,WAAagD,EAASnuU,aAAemuU,EAASpuU,YAC/D,IAAIw1U,GAAU92V,KAAK0sV,WAAagD,EAASnuU,aAAemuU,EAASpuU,aAAe,KAChFkvU,EAAU,GAAG92T,gBAAgB,SACzB15B,KAAK0sV,WACD1sV,KAAK49S,UACL4yC,EAAU,GAAG3vV,MAAMiP,IAAMgnV,EAGzBtG,EAAU,GAAG3vV,MAAM0yB,OAASujU,EAI5B92V,KAAK49S,UACL4yC,EAAU,GAAG3vV,MAAMmP,KAAO8mV,EAG1BtG,EAAU,GAAG3vV,MAAMknB,MAAQ+uU,CAGvC,CACA,KAAID,GAAWliF,GAAf,CAGA,IAAIzzQ,GAAW21V,EAAUliF,GAAa30Q,KAAK0sV,WAAwC8D,EAAU,GAAGjvU,aAAxCivU,EAAU,GAAGlvU,cAA4C,EACjHkvU,EAAU,GAAG92T,gBAAgB,SAC7B,IAAIi7T,GAAU30V,KAAK0sV,WAAwC8D,EAAU,GAAGjvU,aAAxCivU,EAAU,GAAGlvU,aAA2CpgB,EAAS,KAC7FlB,KAAK0sV,WACD1sV,KAAK49S,UACL4yC,EAAU,GAAG3vV,MAAMmzB,aAAe2gU,EAGlCnE,EAAU,GAAG3vV,MAAM0mB,UAAYotU,EAI/B30V,KAAK49S,UACL4yC,EAAU,GAAG3vV,MAAMkzB,YAAc4gU,EAGjCnE,EAAU,GAAG3vV,MAAM2mB,WAAamtU,CAjBxC,CAxCA,CA4DJ,EACAtJ,EAAQztV,UAAU+yV,cAAgB,SAAU1/T,EAAM8lU,EAASzzR,GACvD,IAAI19D,EAAQ5F,KACZ,IAAIixB,EAAK4/T,mBAAuC,SAAlB5/T,EAAKktB,SAAnC,CAGA,IAAI64S,EAAW,GAIf,GAHAA,EAASn0V,KAAK7C,KAAK2J,cAAc,MAAO,CAAEC,UA38C/B,oBA48CXotV,EAASn0V,KAAK7C,KAAK2J,cAAc,MAAO,CAAEC,UAAWwgV,MACrD4M,EAASn0V,KAAK7C,KAAK2J,cAAc,MAAO,CAAEC,UA98C9B,qBA+8CA,IAAR05D,GAA4B,SAAfryC,EAAK2/T,MAClBoG,EAASj0V,SAAQ,SAAUksS,GACvB8nD,EAAQpuU,YAAYsmR,EACxB,IACAjvS,KAAKqsV,WAAY,EACjBrsV,KAAKisB,IAAI8qU,EAAS1M,SAEjB,GAAmB,SAAfp5T,EAAK2/T,MAAkB,CAC5B,IAAIqG,EAAWF,EAAQlvU,WACnBqvU,EAAcF,EAAS,GAC3B,GAAGnvV,MAAMvF,KAAK20V,GAAUl0V,SAAQ,SAAUmlB,GACtCtiB,EAAM+nV,WAAWC,MAAM/qV,KAAKqlB,GAC5BgvU,EAAYvuU,YAAYT,EAC5B,IACA6uU,EAAQpuU,YAAYuuU,GACpBH,EAAQpuU,YAAYquU,EAAS,IAC7BD,EAAQpuU,YAAYquU,EAAS,IAC7Bh3V,KAAKqsV,WAAY,EACjBrsV,KAAKisB,IAAI8qU,EAAS1M,GACtB,CAxBA,CAyBJ,EACAgB,EAAQztV,UAAUu5V,aAAe,WAC7B,IAAIvxV,EAAQ5F,KACZA,KAAKmsV,QAAUnsV,KAAKksV,QAAQjuR,WAAU,GACtCj+D,KAAKisB,IAAIjsB,KAAKksV,QAAS3C,IACvBvpV,KAAK0tV,QAAU,GACA,GAAG7lV,MAAMvF,KAAKtC,KAAKksV,QAAQ3jV,UACjCxF,SAAQ,SAAUksS,GACH,QAAhBA,EAAI/qR,UACJte,EAAM8nV,QAAQ7qV,KAAKosS,GACnBA,EAAIt1Q,aAAa,gBAAiB,SAClC/zB,EAAMqmB,IAAIgjR,EAAKu6C,IAEvB,GACJ,EACA6B,EAAQztV,UAAUoyV,YAAc,WAC5B,IAAI/gD,EAAMjvS,KAAKkvB,QACXwqG,EAAQ15H,KAAK05H,MACjB,GAAoB,MAAhB15H,KAAKksV,QACLlsV,KAAKm3V,oBAEJ,GAAIloD,GAAOv1K,EAAM/7H,OAAS,EAAG,CAC9B,IAAI4yV,OAAa,EACbthD,GAAOA,EAAI1mS,SAAS5K,OAAS,IAC7B4yV,EAAathD,EAAIlsR,cAAc,IAAMwmU,KAEpCgH,IACDA,EAAavwV,KAAK2J,cAAc,MAAO,CAAEC,UAAW2/U,MAExDvpV,KAAKswV,WAAW52N,EAAO62N,GACvBthD,EAAItmR,YAAY4nU,EACpB,CACJ,EACAlF,EAAQztV,UAAUw5V,QAAU,SAAU57R,EAAMtsC,GAGxC,IAFA,IACI07R,EADAjrT,EAAMhB,OAAOW,KAAKk8D,GAEb97D,EAAI,EAAGA,EAAIC,EAAIhC,OAAQ+B,IAEb,WADfkrT,EAASjrT,EAAI6K,SAAS9K,EAAEqL,WAAY,MAEhC/K,KAAKisB,IAAIiD,EAASssC,EAAK,GAAKovP,IAG5B17R,EAAQyK,aAAaixR,EAAQpvP,EAAK,GAAKovP,GAGnD,EASAygC,EAAQztV,UAAUy5V,YAAc,SAAU39N,EAAOm9M,GAC7C,IAEI5nC,EAFArtO,EAAW83D,EACXr4H,EAAMugE,EAASjkE,OAEfqhU,GAAM6X,KACNA,GAAW,GAEf,IAAIh/L,EAAS,SAAUg/L,EAAU5nC,GACzB4nC,GACA5nC,EAAIjjR,UAAUG,OAAO+2T,IACrBj0C,EAAIt1Q,aAAa,gBAAiB,WAGlCs1Q,EAAIjjR,UAAUC,IAAIi3T,IAClBj0C,EAAIt1Q,aAAa,gBAAiB,QAE1C,EACA,IAAKqlS,GAAM39T,IAAQA,GAAO,EAAG,CACzB,IAAK,IAAI6c,EAAI,EAAGgR,EAAU,GAAGrnB,MAAMvF,KAAKs/D,GAAW1jD,EAAI7c,EAAK6c,IAAK,CAC7D,IAAIo5U,EAAcpoU,EAAQ1kB,SAAS0T,EAAEnT,WAAY,KACjD,GAA6B,kBAAjBusV,EAA2B,CAEnC,GAAIt4B,GADJ/vB,EAAMjvS,KAAKu3V,kBAAkBD,IAEzB,OAGA11R,EAASp3D,SAAS0T,EAAEnT,WAAY,KAAOkkS,CAE/C,MAEIA,EAAMqoD,EAEVz/M,EAAOg/L,EAAU5nC,EACrB,CACI4nC,EACAznC,GAAYxtO,EAAUshR,IAGtBn0C,GAASntO,EAAUshR,GAE3B,KACK,CACD,GAA0B,kBAAdthR,GAER,GAAIo9P,GADJ/vB,EAAMjvS,KAAKu3V,kBAAkB31R,IAEzB,YAIJqtO,EAAMv1K,EAEVme,EAAOg/L,EAAU5nC,EACrB,CACJ,EACAo8C,EAAQztV,UAAU25V,kBAAoB,SAAUhwV,GAC5C,OAAIvH,KAAK0tV,QAAQljV,SAASjD,EAAMwD,WAAY,KACjC/K,KAAK0tV,QAAQljV,SAASjD,EAAMwD,WAAY,KAE5C,IACX,EAQAsgV,EAAQztV,UAAU45V,SAAW,SAAU99N,EAAOnyH,GAC1C,IAAI0pV,EACJjxV,KAAKy3V,eACL,IAAIC,EAAW13V,KAAKkvB,QAAQnM,cAAc,IAAMwmU,IAChD,GAAIvqB,GAAM04B,GACN13V,KAAK23V,cAAcj+N,OADvB,CAIA,IAAI04N,EACAwF,EAAU,OACV54B,GAAMz3T,KACNA,EAAQ,GAEZmyH,EAAM32H,SAAQ,SAAUlD,GACfm/T,GAAMn/T,EAAE+wV,QAAsB,SAAZ/wV,EAAE+wV,OAAgC,SAAZgH,IACzCA,EAAU/3V,EAAE+wV,MAEpB,IACA,IAAK,IAAIj2R,EAAK,EAAGk9R,EAAUn+N,EAAO/+D,EAAKk9R,EAAQl6V,OAAQg9D,IAAM,CACzD,IAAI1pC,EAAO4mU,EAAQl9R,GAOnB,GANIqkQ,GAAM/tS,EAAKzzB,QACXyzB,EAAKzzB,KAAO,UAEhByzV,EAAah8M,GAAU,IAAMu0M,GAAUxpV,KAAKkvB,SAC5C+B,EAAK2/T,MAAQgH,EACbxF,EAAWpyV,KAAK0wV,mBAAmBz/T,EAAM1pB,GACrCvH,KAAK0tV,QAAQ/vV,QAAU4J,GAAS0pV,EAAWtzV,QAAU,EAAG,CACpDqhU,GAAMh/T,KAAKysV,eACXzsV,KAAKiuV,cAET,IAAI6J,EAA6B,MAAlB7mU,EAAK2/T,MAAM,GAAa,EAAsB,MAAlB3/T,EAAK2/T,MAAM,GAAa,EAAI,EACnE3hD,OAAM,EACLjvS,KAAKqsV,WAAyB,SAAZuL,EAQd53V,KAAKqsV,YACVp9C,EAAMnmK,GAAQmoN,EAAW,GAAI,IAAM1H,IAAWhhV,SAASiC,SAASstV,EAAS/sV,WAAY,MACjFslD,aAAa+hS,EAAUnjD,EAAI1mS,SAASiC,SAASjD,EAAMwD,WAAY,MACnE/K,KAAK2tV,YAAY18T,EAAK2/T,MAAQ,KAAKxjU,eAAe2pC,OAAOxvD,EAAO,EAAG6qV,GACnEpyV,KAAK42V,sBAEsB,IAAtB3F,EAAWtzV,QAChBszV,EAAah8M,GAAU,IAAMs0M,GAAWvpV,KAAKkvB,UAClC,GAAGvG,YAAYypU,GAG1BnB,EAAW,GAAG3mU,WAAW+lC,aAAa+hS,EAAUnB,EAAWzmV,SAASjD,EAAMwD,WAAY,OAlBtF/K,KAAK2wV,cAAc1/T,EAAMymU,EAAU,GACnC13V,KAAKqsV,WAAY,GACjBp9C,EAAMnmK,GAAQmoN,EAAW,GAAI,IAAM1H,IAAWhhV,SAASiC,SAASstV,EAAS/sV,WAAY,MACjF4d,YAAYypU,GAChBpyV,KAAK2tV,YAAY18T,EAAK2/T,MAAQ,KAAKxjU,eAAevqB,KAAKuvV,GACvDpyV,KAAK42V,sBAeT52V,KAAK05H,MAAM3iE,OAAOxvD,EAAO,EAAG0pB,GACxBA,EAAKywC,UACL1hE,KAAK0tV,QAAQ32R,OAAO/2D,KAAK0tV,QAAQ/vV,OAAS,EAAG,GAEjDqC,KAAK0tV,QAAQ32R,OAAOxvD,EAAO,EAAG6qV,GAC9B7qV,IACAvH,KAAK4xV,UAAY8F,EAASp2U,WAC9B,CACJ,CACAo2U,EAAS72V,MAAM0I,MAAQ,GACvBvJ,KAAKkwV,qBACDlwV,KAAKyqU,SACLzqU,KAAK0/S,sBA1DT,CA4DJ,EAQA2rC,EAAQztV,UAAUm6V,YAAc,SAAUnrV,GACtC,IACIrF,EADAq6D,EAAWh1D,EAEXqkV,EAAa,GAAGppV,MAAMvF,KAAK2yI,GAAU,IAAMu0M,GAAUxpV,KAAKkvB,UAC9D,GAA0B,kBAAd0yC,EACRr6D,EAAQiD,SAASoC,EAAK7B,WAAY,IAClC/K,KAAKg4V,kBAAkBzwV,EAAO0pV,QAG9B,GAAIrvR,GAAYA,EAASjkE,OAAS,EAC9B,IAAK,IAAIg9D,EAAK,EAAGpgD,EAAK,GAAG1S,MAAMvF,KAAKs/D,GAAWjH,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CACjE,IAAIs0O,EAAM10R,EAAGogD,GACbpzD,EAAQvH,KAAK0tV,QAAQj+U,QAAQw/R,GAC7BjvS,KAAKg4V,kBAAkBzwV,EAAO0pV,GAC9BA,EAAah8M,GAAU,IAAMu0M,GAAUxpV,KAAKkvB,QAChD,KAEC,CACG+/Q,EAAOrtO,GAAYA,EAASjkE,QAA8B,IAApBikE,EAASjkE,OAAgBikE,EAAS,GAAKh1D,EACjFrF,EAAQ0pV,EAAWxhV,QAAQw/R,GAC3BjvS,KAAKg4V,kBAAkBzwV,EAAO0pV,EAClC,CAEJjxV,KAAKu+T,QACT,EACA8sB,EAAQztV,UAAUo6V,kBAAoB,SAAUzwV,EAAO0pV,GACnD,GAAIjxV,KAAK0tV,QAAQljV,SAASjD,EAAMwD,WAAY,MAAQkmV,EAAWzmV,SAASjD,EAAMwD,WAAY,KAAM,CAC5F,IAAIktV,EAASj4V,KAAK0tV,QAAQj+U,QAAQwhV,EAAWzmV,SAASjD,EAAMwD,WAAY,MACxE,GAAI/K,KAAKqsV,UAAW,CAChB,IAAI6L,EAAWl4V,KAAK2tV,YAAY3tV,KAAK05H,MAAMlvH,SAASytV,EAAOltV,WAAY,KAAK6lV,MAAQ,KAAKxjU,eAAe3d,QAAQzP,KAAK0tV,QAAQljV,SAASytV,EAAOltV,WAAY,MACzJ/K,KAAK2tV,YAAY3tV,KAAK05H,MAAMlvH,SAASytV,EAAOltV,WAAY,KAAK6lV,MAAQ,KAAKxjU,eAAe2pC,OAAOvsD,SAAS0tV,EAASntV,WAAY,IAAK,EACvI,CACI/K,KAAKyqU,SACLzqU,KAAK2/S,gBAET,IAAIw4C,EAAUlH,EAAWzmV,SAASjD,EAAMwD,WAAY,KAAKgY,cAAc,oBAClEi8S,GAAMm5B,IAAan5B,GAAMm5B,EAAQ1lD,cAAc,KAAS0lD,EAAQ1lD,cAAc,GAAGhB,aAClF0mD,EAAQ1lD,cAAc,GAAGjyS,UAE7Bg7K,GAAOy1K,EAAWzmV,SAASjD,EAAMwD,WAAY,MAC7C/K,KAAK05H,MAAM3iE,OAAOkhS,EAAQ,GAC1Bj4V,KAAK0tV,QAAQ32R,OAAOkhS,EAAQ,EAChC,CACJ,EACA5M,EAAQztV,UAAUw6V,eAAiB,SAAUC,EAAcjG,EAAUnhU,EAAM1pB,GACvE,IAEI+wV,EAFA/yJ,EAAWt0K,EAAKzzB,KAChB6nT,EAASgzC,EAKb,GAH8B,kBAAlBA,IACRC,EAA2C,oBAArBjzC,EAAOrH,UAEH,kBAAlBq6C,GAA+BC,GA0CtC,GAAiB,UAAb/yJ,EAAsB,CACvB0pG,EAAMjvS,KAAK2J,cAAc,SACzBsnB,EAAKzI,GACLymR,EAAIzmR,GAAKyI,EAAKzI,GAGdymR,EAAIzmR,GAAKorQ,GAAY,WAEzBw+D,EAASzpU,YAAYsmR,GACrBoW,EAAOrH,SAAS/O,EACpB,MApDwD,CACpD,IACI1rO,EADAqlQ,OAAa,EAEb2vB,EAAQ,IAAIrsU,OAAO,uEACvBq3C,EAAiC,kBAAlB80R,EAA8BA,EAAa1vV,OAAS0vV,EACnE,IACI,GAA8B,kBAAlBA,GAA+Br5B,GAAMq5B,EAAan0U,SAGzD,GAA8B,kBAAlBm0U,GAA8BE,EAAMzsV,KAAKy3D,GACtD6uR,EAAS3pU,UAAY86C,OAEpB,GAAIltD,SAASkQ,iBAAiBg9C,GAAK5lE,OAAQ,CAC5C,IAAIsxS,EACAsiB,GADAtiB,EAAM54R,SAAS0M,cAAcwgD,IACf+kQ,UAAU3/T,OAC5BypV,EAASzpU,YAAYsmR,GACrBA,EAAIpuS,MAAM6I,QAAU,GACfs1T,GAAMzN,IACPvxT,KAAK+rV,OAAOlpV,KAAK0gE,EAEzB,MAEIqlQ,EAAa4vB,GAAiBj1R,QAf9B6uR,EAASzpU,YAAY0vU,EAiB7B,CACA,MAAOx4V,IACH+oU,EAAa4vB,GAAiBj1R,EAClC,CACA,IAAIk1R,OAAY,EAChB,IAAKz5B,GAAM4J,GAEP6vB,EAAY7vB,EAAW,CAAC,EAAG5oU,KAAM,WADTA,KAAKkvB,QAAQ1G,GAAKjhB,EAAQ,YACcvH,KAAKy9S,mBAEpEuhB,GAAMy5B,IAAcA,EAAU96V,OAAS,GACxC,GAAGkK,MAAMvF,KAAKm2V,GAAW11V,SAAQ,SAAUksS,GAClC+vB,GAAM/vB,EAAI/qR,WACX+qR,EAAIpuS,MAAM6I,QAAU,IAExB0oV,EAASzpU,YAAYsmR,EACzB,GAER,CAYAjvS,KAAKisB,IAAImmU,EAAUvI,IACnB7pV,KAAK0tV,QAAQ7qV,KAAKuvV,EACtB,EACA/G,EAAQztV,UAAU86V,gBAAkB,SAAUznU,EAAMmhU,GAChD,IAAI/1R,EAAMr8D,KAAK2J,cAAc,SAAU,CAAEC,UAtxD/B,eAuxDVyyD,EAAI1iC,aAAa,OAAQ,UACzB,IACI+6R,EACAikC,EAFAC,EAAU3nU,EAAK6hB,KAGf7hB,EAAKzI,GACL6zC,EAAI7zC,GAAKyI,EAAKzI,GAGd6zC,EAAI7zC,GAAKorQ,GAAY,aAEzB,IAAIilE,EAAS74V,KAAK2J,cAAc,OAAQ,CAAEC,UAAW,oBACjDgvV,GACAC,EAAOpwU,UAAYzoB,KAAKu0T,oBAAsB9B,GAAmBG,SAASgmC,GAAWA,EACrFv8R,EAAI1zC,YAAYkwU,GAChBx8R,EAAIrwC,UAAUC,IAAI,eAGlBjsB,KAAKisB,IAAImmU,EAAU,iBAEnBnhU,EAAK6nU,YAAc7nU,EAAK8nU,cACnB9nU,EAAK6nU,YAAc7nU,EAAK8nU,YAAe9nU,EAAK6nU,YAC7CpkC,EAAUzjS,EAAK6nU,WAAa,WAC5BH,EAAU,SAGVjkC,EAAUzjS,EAAK8nU,WAAa,WAC5BJ,EAAU,UAGlB,IAAInzB,EAAS,IAAIrR,GAAO,CAAEO,QAASA,EAASC,aAAcgkC,IAM1D,OALAnzB,EAAO77T,cAAgB3J,KAAK2J,cAC5B67T,EAAOxnB,SAAS3hP,GACZprC,EAAK1nB,OACLgyU,GAASl/Q,EAAK,CAAE,MAAS03N,GAAW9iQ,EAAK1nB,SAEtC8yD,CACX,EACAgvR,EAAQztV,UAAU8yV,mBAAqB,SAAUz/T,EAAM1pB,GACnD,IAAI80D,EACA+1R,EAAWpyV,KAAK2J,cAAc,MAAO,CAAEC,UAAW4/U,KACtD4I,EAASz4T,aAAa,gBAAiB,SACvC,IAAIq/T,EAAUh5V,KAAK2J,cAAc,MAAO,CACpC8e,UAAWzoB,KAAKu0T,oBAAsB9B,GAAmBG,SAAS3hS,EAAKgoU,aAAehoU,EAAKgoU,cAc/F,GAZKj5V,KAAK0tV,UACN1tV,KAAK0tV,QAAU,IAEfz8T,EAAKgqT,gBACLj7U,KAAKo3V,QAAQnmU,EAAKgqT,eAAgBmX,GAElCnhU,EAAKgoU,aACL7G,EAASz4T,aAAa,QAASq/T,EAAQn7T,aAEvC5M,EAAKojS,WACL+9B,EAASxoV,UAAYwoV,EAASxoV,UAAY,IAAMqnB,EAAKojS,UAErDpjS,EAAKywC,SACL1hE,KAAKo4V,eAAennU,EAAKywC,SAAU0wR,EAAUnhU,EAAM1pB,QAGnD,OAAQ0pB,EAAKzzB,MACT,IAAK,UACD6+D,EAAMr8D,KAAK04V,gBAAgBznU,EAAMmhU,IAC7Bz4T,aAAa,WAAYqlS,GAAM/tS,EAAKxnB,UAAY,KAAOwnB,EAAKxnB,SAASsB,YACzEsxD,EAAI1iC,aAAa,gBAAiBqlS,GAAM/tS,EAAKxnB,UAAY,KAAOwnB,EAAKxnB,SAASsB,YAC9EsxD,EAAI1iC,aAAa,aAAe1I,EAAK6hB,MAAQ7hB,EAAKgoU,aAClD7G,EAASzpU,YAAY0zC,GACrB+1R,EAAS/qU,iBAAiB,QAASrnB,KAAKk5V,UAAU/2V,KAAKnC,OACvD,MACJ,IAAK,YACDA,KAAKisB,IAAImmU,EAAU3I,IAI/B,GAAIx4T,EAAKkoU,WAAY,CACjB,IAAIC,EAAOnoU,EAAKkoU,WACH,YAATC,GACAp5V,KAAKisB,IAAImmU,EAAUtI,IACnB9pV,KAAKisB,IAAImmU,EAAU,iBAEL,aAATgH,GACLp5V,KAAKisB,IAAImmU,EAAUrI,GAE3B,CACA,GAAI94T,EAAKktB,SAAU,CACf,IAAIA,EAAWltB,EAAKktB,SACH,SAAbA,EACAn+C,KAAKisB,IAAImmU,EAAUpI,IAED,SAAb7rS,IACAi0S,EAASpmU,UAAU6oB,SAAS40S,KAC7BzpV,KAAKisB,IAAImmU,EAAUnI,IAG/B,CAWA,MAVsB,SAAlBh5T,EAAKktB,UAAuBltB,EAAK4/T,oBAAsBuB,EAASpmU,UAAU6oB,SAAS40S,MACnFzpV,KAAKisB,IAAImmU,EAAUzH,IACnB3qV,KAAK4sV,iBAEL37T,EAAK1c,UACLvU,KAAKisB,IAAImmU,EAAUlP,KAEF,IAAjBjyT,EAAKuqI,SACLx7J,KAAKisB,IAAImmU,EAAUxH,IAEhBwH,CACX,EACA/G,EAAQztV,UAAUy7V,gBAAkB,SAAUpqD,GAC1C,OAAO+vB,GAAM/vB,EAAIl+N,aAAa,kBAAoB,KAAOk+N,EAAIl+N,aAAa,gBAC9E,EACAs6Q,EAAQztV,UAAUs7V,UAAY,SAAUr5V,GACpCG,KAAKsuV,gBAAgBzuV,EAAE8rC,cAC3B,EACA0/S,EAAQztV,UAAU0wV,gBAAkB,SAAUr/C,GAC1CjvS,KAAKkvV,gBAAgBjgD,EAAIU,mBACzB3vS,KAAKunU,UAAUlxR,OACnB,EACAg1S,EAAQztV,UAAUsxV,gBAAkB,SAAUoK,GACrCt6B,GAAMh/T,KAAKunU,YACZvnU,KAAKunU,UAAU5tS,aAAa,WAAY35B,KAAKq5V,gBAAgBr5V,KAAKunU,YAEtEvnU,KAAKunU,UAAY+xB,EAC4B,OAAzCt5V,KAAKq5V,gBAAgBr5V,KAAKunU,aACtBvI,GAAMh/T,KAAKksV,WAAaoN,EAAOvwC,cAAc/8R,UAAU6oB,SAASg1S,KAChE7pV,KAAKktV,eAAe,MACpBoM,EAAO5/T,gBAAgB,aAGvB15B,KAAKunU,UAAU5tS,aAAa,WAAY35B,KAAKq5V,gBAAgBr5V,KAAKunU,YAG9E,EACA8jB,EAAQztV,UAAU6hT,eAAiB,WAC/B,OAAOz/S,KAAK+/S,aAAa,GAC7B,EAOAsrC,EAAQztV,UAAU40S,cAAgB,WAC9B,MAAO,SACX,EACA64C,EAAQztV,UAAU+5V,cAAgB,SAAUtgD,GACxCr3S,KAAK05H,MAAQ15H,KAAKssV,cACdtsV,KAAKyqU,SAAWzqU,KAAK25U,YACrB35U,KAAK2/S,gBAET3/S,KAAKiuV,cACLjuV,KAAKgsV,eACLhsV,KAAK05H,MAAQ29K,EACbr3S,KAAKssV,aAAetsV,KAAK05H,MACzB15H,KAAKgwV,cACLhwV,KAAKkwV,qBACDlwV,KAAKyqU,SACLzqU,KAAK0/S,sBAEb,EACA2rC,EAAQztV,UAAU2gU,OAAS,WACvB,IAAItvB,EAAMjvS,KAAKkvB,QACflvB,KAAKkzV,UAAW,EACZlzV,KAAKqsV,WACLrsV,KAAKmwV,kBAELnwV,KAAKosV,QAAgC,UAAtBpsV,KAAKstV,cACpBttV,KAAKosV,OAAOjxK,OAEhB,IAAIniF,EAAgBh5F,KAAKg5F,cAAci2M,EAAKA,EAAI/8L,uBAAuBq3O,IAAW,IAClF,IAAKvwP,EAAe,CAChBh5F,KAAKutV,gBACL,IAAIgM,EAActqD,EAAIlsR,cAAc,IAAMwmU,IACrCvqB,GAAMu6B,KACPv5V,KAAKmsB,OAAOotU,EAAazO,IACrB9qV,KAAKqsV,WACLrsV,KAAKisB,IAAIstU,EAAalP,IAGlC,CACA,IAAIrxP,IAAiBh5F,KAAKysV,cAAiBzsV,KAAK4xV,YAAc3iD,EAAI3tR,YAAlE,CAMA,IAHIthB,KAAK4xV,UAAY3iD,EAAI3tR,aAAe03E,IACpCh5F,KAAKkwV,qBAELlwV,KAAKosV,OAAQ,CACb,GAA0B,aAAtBpsV,KAAKstV,aAA6B,CAClC,IAAIkG,EAAYh9U,OAAOmT,iBAAiB3pB,KAAKkvB,SAC7ClvB,KAAKosV,OAAO7iV,MAAQwwE,WAAWy5Q,EAAUjqV,OAAqD,EAA1CwwE,WAAWy5Q,EAAUtoU,iBAC7E,CACIlrB,KAAKqsV,WACLrsV,KAAK6xV,oBAET7xV,KAAKmuV,aAAanuV,KAAKosV,OAAOl9T,SAAS,GACnClvB,KAAKqsV,WACLrsV,KAAK42V,oBAEb,CACI52V,KAAKkvB,QAAQnM,cAAc,IAAMunU,MACjCtqV,KAAK4kV,WAAa5kV,KAAKkvB,QAAQnM,cAAc,IAAMunU,IAAgBhpU,aAEvEthB,KAAK4xV,UAAY3iD,EAAI3tR,YACrBthB,KAAKkzV,UAAW,EAChBlzV,KAAK+/F,WAtBL,CAuBJ,EACAsrP,EAAQztV,UAAU65V,aAAe,WAC7B,IAAIpI,EAAMrvV,KAAKkvB,QAAQnM,cAAc,IAAMmoU,IACjB,aAAtBlrV,KAAKstV,cAA+B+B,IACpCrvV,KAAK2sV,eAAiB0C,EAAIrjU,UAAU6oB,SAAS+0S,IAErD,EACAyB,EAAQztV,UAAU47V,sBAAwB,SAAUvqD,EAAK/9O,EAAUuY,EAAWgwR,EAAUxI,GAChFxnR,IACAgwR,EAAWxI,EAAWxhV,QAAQw/R,IAGlC,IADA,IAAIyqD,EAAUzI,IAAawI,GACpBC,GAAS,CAEZ,IADc15V,KAAKovV,YAAYsK,GACjB,CACV,IAAIvM,EAAeuM,EAAQ/pD,kBAAkB5+N,aAAa,iBACtD7f,GAA6B,OAAjBi8R,EACZuM,EAAQ/pD,kBAAkBh2Q,aAAa,WAAY,KAE9CwzT,IAAiBuM,EAAQ/pD,kBAAkB5+N,aAAa,aAC7D2oR,EAAQ/pD,kBAAkBh2Q,aAAa,WAAYwzT,GAEvD,KACJ,CACAuM,EAAUzI,IAAawI,EAC3B,CACJ,EASApO,EAAQztV,UAAUs0S,kBAAoB,SAAUmF,EAASC,GACrD,IAAIqiD,EAAO35V,KAAKkvB,QACZqmU,EAAMoE,EAAKr4U,YACfthB,KAAKy3V,eACL,IAAK,IAAI98R,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,QACD,GAAM08O,EAAQ39K,iBAAiBxoH,OAASomS,EAAQ59K,iBAAiBxoH,MAmC7DlR,KAAK23V,cAActgD,EAAQ39K,YAjC3B,IADA,IAAIkgO,EAAcj7V,OAAOW,KAAK+3S,EAAQ39K,OAC7Bh6H,EAAI,EAAGA,EAAIk6V,EAAYj8V,OAAQ+B,IAAK,CACzC,IAAI6H,EAAQiD,SAAS7L,OAAOW,KAAK+3S,EAAQ39K,OAAOlvH,SAAS9K,EAAEqL,WAAY,KAAM,IACzE9J,EAAWtC,OAAOW,KAAK+3S,EAAQ39K,MAAMlvH,SAASjD,EAAMwD,WAAY,MAAM,GACtE8uV,EAAcl7V,OAAO04S,EAAQ39K,MAAMlvH,SAASjD,EAAMwD,WAAY,MAAM,GAAK9J,GAC7E,GAA2B,oBAAhB44V,EAA4B,CACnC,GAAI75V,KAAKqsV,WAA0B,UAAbprV,EAAsB,CACxCjB,KAAKi4E,UACLj4E,KAAK2sL,QAAQ,WACb,KACJ,CACA,IAAImtK,EAA6B,sBAAb74V,IAAqC44V,EACrDE,EAA4B,aAAb94V,GAAkD,IAAvBjB,KAAK4sV,eAC9CkN,GAAmB95V,KAAK05H,MAAMlvH,SAASjD,EAAMwD,WAAY,KAAK8lV,mBAAsBkJ,MACnF/5V,KAAK4sV,cAEP5tB,GAAMh/T,KAAKysV,eACXzsV,KAAKiuV,cAET,IAAI+L,EAAU,GAAGnyV,MAAMvF,KAAK2yI,GAAU,IAAMs0M,GAAY,KAAOC,GAAUmQ,IACrE35V,KAAKyqU,SAAWzqU,KAAK05H,MAAMlvH,SAASjD,EAAMwD,WAAY,KAAK22D,UAC3D1hE,KAAK2/S,gBAETnkI,GAAOw+K,EAAQxvV,SAASjD,EAAMwD,WAAY,MAC1C/K,KAAK0tV,QAAQ32R,OAAOxvD,EAAO,GAC3BvH,KAAKw3V,SAAS,CAACx3V,KAAK05H,MAAMlvH,SAASjD,EAAMwD,WAAY,MAAOxD,GAC5DvH,KAAK05H,MAAM3iE,OAAOxvD,EAAO,GACrBvH,KAAK05H,MAAMlvH,SAASjD,EAAMwD,WAAY,KAAK22D,UAC3C1hE,KAAK0tV,QAAQ32R,OAAO/2D,KAAK05H,MAAM/7H,OAAQ,EAE/C,CACJ,CAKJ,MACJ,IAAK,QACD49U,GAASoe,EAAM,CAAE,MAAS5lE,GAAWsjB,EAAQ9tS,SAC7CvJ,KAAKkwV,qBACDlwV,KAAKosV,QAAUmJ,EAAMoE,EAAKr4U,aAC1BthB,KAAKmuV,aAAanuV,KAAKosV,OAAOl9T,SAAS,GAE3C,MACJ,IAAK,SACDqsT,GAASv7U,KAAKkvB,QAAS,CAAE,OAAU6kQ,GAAWsjB,EAAQ36R,UACtD,MACJ,IAAK,eACD1c,KAAKiuV,cACLjuV,KAAKkwV,qBACDlwV,KAAK49S,WACL59S,KAAKisB,IAAI0tU,EAAM1W,IAEnBjjV,KAAK+wV,kBACL,MACJ,IAAK,YACG15C,EAAQuG,UACR59S,KAAKisB,IAAI0tU,EAAM1W,IAGfjjV,KAAKmsB,OAAOwtU,EAAM1W,IAEjBjkB,GAAMh/T,KAAKysV,gBACRp1C,EAAQuG,UACR59S,KAAKisB,IAAIjsB,KAAKysV,aAAav9T,QAAS+zT,IAGpCjjV,KAAKmsB,OAAOnsB,KAAKysV,aAAav9T,QAAS+zT,KAG1CjkB,GAAMh/T,KAAKosV,UACR/0C,EAAQuG,UACR59S,KAAKisB,IAAIjsB,KAAKosV,OAAOl9T,QAAS+zT,IAG9BjjV,KAAKmsB,OAAOnsB,KAAKosV,OAAOl9T,QAAS+zT,KAGrCjjV,KAAKqsV,WACLrsV,KAAKmwV,kBAET,MACJ,IAAK,aACGnwV,KAAKysV,eACLzsV,KAAKysV,aAAa7H,WAAa5kV,KAAK4kV,YAExC,MACJ,IAAK,kBACG5kV,KAAKosV,SACLpsV,KAAKosV,OAAO/wB,UAAY,CAAEtpQ,EAAG/xD,KAAKwsV,gBAAkB,OAAS,SAEjE,MACJ,IAAK,WACGl1C,EAAQ+c,UACRjlB,GAAY,CAACpvS,KAAKkvB,SAAUooR,EAAQ+c,SAASl7R,MAAM,MAEnDk+Q,EAAQgd,UACRtlB,GAAS,CAAC/uS,KAAKkvB,SAAUmoR,EAAQgd,SAASl7R,MAAM,MAEpD,MACJ,IAAK,gBACDn5B,KAAKotV,sBACD/1C,EAAQw1C,eACR7sV,KAAK8sV,oBAIrB,CACJ,EAQAzB,EAAQztV,UAAUq8V,SAAW,SAAU1yV,EAAOrG,GAC1C,IAEI+tS,EAFAxlO,EAAgC,kBAAXliE,EACrBkyV,EAAWlyV,EAEf,GAAKkiE,IAAau1P,GAAMy6B,GAAxB,CAGA,IAAIxI,EAAa,GAAGppV,MAAMvF,KAAK2yI,GAAU,IAAMu0M,GAAUxpV,KAAKkvB,UAC9D,GAAIu6C,EACAwlO,EAAM1nS,OAEL,GAAIvH,KAAK0tV,QAAQljV,SAASivV,EAAS1uV,WAAY,KAAM,CAEtDkkS,EADmB,GAAGpnS,MAAMvF,KAAK2yI,GAAU,IAAMu0M,GAAUxpV,KAAKkvB,UAC7C1kB,SAASivV,EAAS1uV,WAAY,IACrD,CACIkkS,IACI/tS,GACA+tS,EAAIjjR,UAAUC,IAAI2+T,IACb37C,EAAIjjR,UAAU6oB,SAAS40S,MACpBzqB,GAAM/vB,EAAIU,kBAAkB5+N,aAAa,cACU,OAAnDk+N,EAAIU,kBAAkB5+N,aAAa,cACnC/wE,KAAKw5V,sBAAsBvqD,EAAK/tS,EAAOuoE,EAAWgwR,EAAUxI,KAKpEhiD,EAAIjjR,UAAUG,OAAOy+T,IAChB37C,EAAIjjR,UAAU6oB,SAAS40S,KACxBzpV,KAAKw5V,sBAAsBvqD,EAAK/tS,EAAOuoE,EAAWgwR,EAAUxI,IAGpEjxV,KAAK+wV,kBAzBT,CA2BJ,EACAp7C,GAAW,CACPf,GAAW,GAAIw2C,KAChBC,EAAQztV,UAAW,aAAS,GAC/B+3S,GAAW,CACPnB,GAAS,SACV62C,EAAQztV,UAAW,aAAS,GAC/B+3S,GAAW,CACPnB,GAAS,SACV62C,EAAQztV,UAAW,cAAU,GAChC+3S,GAAW,CACPnB,GAAS,KACV62C,EAAQztV,UAAW,gBAAY,GAClC+3S,GAAW,CACPnB,GAAS,eACV62C,EAAQztV,UAAW,oBAAgB,GACtC+3S,GAAW,CACPnB,MACD62C,EAAQztV,UAAW,kBAAc,GACpC+3S,GAAW,CACPnB,IAAS,IACV62C,EAAQztV,UAAW,uBAAmB,GACzC+3S,GAAW,CACPnB,IAAS,IACV62C,EAAQztV,UAAW,2BAAuB,GAC7C+3S,GAAW,CACPnB,IAAS,IACV62C,EAAQztV,UAAW,qBAAiB,GACvC+3S,GAAW,CACPxuH,MACDkkK,EAAQztV,UAAW,eAAW,GACjC+3S,GAAW,CACPxuH,MACDkkK,EAAQztV,UAAW,eAAW,GACjC+3S,GAAW,CACPxuH,MACDkkK,EAAQztV,UAAW,iBAAa,GACnC+3S,GAAW,CACPxuH,MACDkkK,EAAQztV,UAAW,oBAAgB,GACtCytV,EAAU11C,GAAW,CACjBX,IACDq2C,EAEP,CA3mE6B,CA2mE3BnhV,IC5vEE0zD,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAazC63O,GAA0C,SAAUC,EAAYl1S,EAAQf,EAAK2S,GAC7E,IAA2H+L,EAAvHJ,EAAIlgB,UAAUJ,OAAQ8E,EAAIwb,EAAI,EAAIvd,EAAkB,OAAT4R,EAAgBA,EAAO3T,OAAOG,yBAAyB4B,EAAQf,GAAO2S,EACrH,GAAuB,kBAAZlO,SAAoD,oBAArBA,QAAQyxS,SAAyBpzS,EAAI2B,QAAQyxS,SAASD,EAAYl1S,EAAQf,EAAK2S,QACpH,IAAK,IAAI5S,EAAIk2S,EAAWj4S,OAAS,EAAG+B,GAAK,EAAGA,KAAS2e,EAAIu3R,EAAWl2S,MAAI+C,GAAKwb,EAAI,EAAII,EAAE5b,GAAKwb,EAAI,EAAII,EAAE3d,EAAQf,EAAK8C,GAAK4b,EAAE3d,EAAQf,KAAS8C,GAChJ,OAAOwb,EAAI,GAAKxb,GAAK9D,OAAOD,eAAegC,EAAQf,EAAK8C,GAAIA,CAChE,EAQIy3V,GAAU,QACVC,GAAa,eAEbC,GAAc,YACdC,GAAW,WAEX7Q,GAAW,SACXK,GAAe,aACf5G,GAAU,QACVqX,GAAa,WACbpX,GAAc,YACd0H,GAAa,WACb2P,GAAY,YACZC,GAAY,UACZC,GAAW,SACXC,GAAe,aACfC,GAAiB,eACjBC,GAAiB,eACjBC,GAAW,aACXC,GAAgB,cAChBC,GAAW,aACXC,GAAgB,cAChBC,GAAe,aACfC,GAAe,kBACfC,GAAc,iBACdC,GAAa,gBACbC,GAAe,kBAIfC,GAAe,aAEf5X,GAAc,YAGd6X,GAAW,iBACXjS,GAAe,aACfkS,GAAY,kBACZC,GAAa,mBACbC,GAAc,sBACdC,GAAW,cACXC,GAAgB,WAChBC,GAA0B,wBAI1BC,GAAmC,SAAUn2V,GAE7C,SAASm2V,IACL,OAAkB,OAAXn2V,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAUA,OAbA49D,GAAUk+R,EAAmBn2V,GAI7BgwS,GAAW,CACPnB,GAAS,gBACVsnD,EAAkBl+V,UAAW,cAAU,GAC1C+3S,GAAW,CACPnB,GAAS,MACVsnD,EAAkBl+V,UAAW,gBAAY,GAC5C+3S,GAAW,CACPnB,GAAS,SACVsnD,EAAkBl+V,UAAW,cAAU,GACnCk+V,CACX,CAfuC,CAerCpiD,IAKEqiD,GAAsC,SAAUp2V,GAEhD,SAASo2V,IACL,OAAkB,OAAXp2V,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAOA,OAVA49D,GAAUm+R,EAAsBp2V,GAIhCgwS,GAAW,CACPhB,GAAQ,CAAEiuB,OAAQ,cAAe98P,SAAU,IAAK8E,OAAQ,QAAUkxR,KACnEC,EAAqBn+V,UAAW,gBAAY,GAC/C+3S,GAAW,CACPhB,GAAQ,CAAEiuB,OAAQ,eAAgB98P,SAAU,IAAK8E,OAAQ,QAAUkxR,KACpEC,EAAqBn+V,UAAW,YAAQ,GACpCm+V,CACX,CAZ0C,CAYxCriD,IAKEsiD,GAAwB,SAAUr2V,GAElC,SAASq2V,IACL,OAAkB,OAAXr2V,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAUA,OAbA49D,GAAUo+R,EAAQr2V,GAIlBgwS,GAAW,CACPnB,GAAS,KACVwnD,EAAOp+V,UAAW,YAAQ,GAC7B+3S,GAAW,CACPnB,GAAS,KACVwnD,EAAOp+V,UAAW,eAAW,GAChC+3S,GAAW,CACPnB,GAAS,SACVwnD,EAAOp+V,UAAW,oBAAgB,GAC9Bo+V,CACX,CAf4B,CAe1BtiD,IAKEuiD,GAAyB,SAAUt2V,GAEnC,SAASs2V,IACL,OAAkB,OAAXt2V,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAyBA,OA5BA49D,GAAUq+R,EAASt2V,GAInBgwS,GAAW,CACPhB,GAAQ,CAAC,EAAGqnD,KACbC,EAAQr+V,UAAW,cAAU,GAChC+3S,GAAW,CACPnB,GAAS,OACVynD,EAAQr+V,UAAW,sBAAkB,GACxC+3S,GAAW,CACPnB,GAAS,KACVynD,EAAQr+V,UAAW,eAAW,GACjC+3S,GAAW,CACPnB,GAAS,KACVynD,EAAQr+V,UAAW,gBAAY,GAClC+3S,GAAW,CACPnB,IAAS,IACVynD,EAAQr+V,UAAW,gBAAY,GAClC+3S,GAAW,CACPnB,IAAS,IACVynD,EAAQr+V,UAAW,eAAW,GACjC+3S,GAAW,CACPnB,MACDynD,EAAQr+V,UAAW,UAAM,GAC5B+3S,GAAW,CACPnB,IAAU,IACXynD,EAAQr+V,UAAW,gBAAY,GAC3Bq+V,CACX,CA9B6B,CA8B3BviD,IAaEwiD,GAAqB,SAAUv2V,GAQ/B,SAASu2V,EAAIn8V,EAASmvB,GAClB,IAAItpB,EAAQD,EAAOrD,KAAKtC,KAAMD,EAASmvB,IAAYlvB,KA0BnD,OAzBA4F,EAAM01K,KAAO,CAAC,EACd11K,EAAMu1K,KAAO,CAAC,EACdv1K,EAAMyoI,UAAY,EAClBzoI,EAAM63E,MAAQ,QACd73E,EAAMqlU,cAAe,EACrBrlU,EAAMqgF,UAAY,EAClBrgF,EAAMgsU,OAAQ,EACdhsU,EAAMu2V,aAAc,EACpBv2V,EAAMw2V,eAAiB,GACvBx2V,EAAM0lV,cAAgB1lV,EAAMy2V,uBAAuBl6V,KAAKyD,GAIxDA,EAAMqkT,WAAa,CACfpmC,IAAK,MACLgoE,KAAM,OACNr2S,IAAK,MACLwnO,MAAO,QACPs/E,MAAO,QACPpzT,OAAQ,SACRqiT,SAAU,YACVC,UAAW,aACXC,OAAQ,UACRC,SAAU,aAEP9lV,CACX,CA8pEA,OAjsEAg4D,GAAUs+R,EAAKv2V,GAyCfu2V,EAAIt+V,UAAU4C,QAAU,WAWpB,IAVIR,KAAKyqU,SAAWzqU,KAAK25U,YACrB35U,KAAK2/S,gBAEJqf,GAAMh/T,KAAKu8V,SACZv8V,KAAKu8V,MAAM/7V,UACXR,KAAKu8V,MAAQ,MAEjBv8V,KAAK80T,eACL90T,KAAKkvB,QAAQwK,gBAAgB,iBAC7B15B,KAAKw8V,qBACAx8V,KAAKy8V,WAKL,CACD,IAAIC,EAAS1sN,GAAO,aAAyBoqN,GAAap6V,KAAKkvB,SAC/DlvB,KAAKkvB,QAAQlD,UAAUG,OAAO09T,IACzB7qB,GAAM09B,KACPA,EAAOj0U,UAAYzoB,KAAKqwT,IAEhC,MAVI,KAAOrwT,KAAKkvB,QAAQygR,mBAChBxjR,GAAOnsB,KAAKkvB,QAAQygR,mBAyB5B,GAfI3vS,KAAK28V,SACL38V,KAAK28V,OAAS,MAElB38V,KAAK48V,OAAS,KACd58V,KAAK08V,OAAS,KACd18V,KAAK68V,QAAU,KACf78V,KAAK88V,OAAS,KACd98V,KAAK+8V,MAAQ,KACb/8V,KAAKg9V,SAAW,KAChBh9V,KAAK+tV,OAAS,KACd/tV,KAAKi9V,QAAU,KACfj9V,KAAK6tB,QAAU,KACf7tB,KAAKk9V,SAAW,KAChBl9V,KAAKwJ,aAAe,KACpBxJ,KAAKm9V,cAAgB,GACjBn9V,KAAKo8V,gBAAkBp8V,KAAKo8V,eAAez+V,OAAS,EAAG,CACvD,IAAK,IAAI+B,EAAI,EAAGA,EAAIM,KAAKo8V,eAAez+V,OAAQ+B,IAC5CM,KAAKo8V,eAAe18V,GAAGc,UACvBR,KAAKo8V,eAAe18V,GAAK,KAE7BM,KAAKo8V,eAAiB,EAC1B,CACAz2V,EAAO/H,UAAU4C,QAAQ8B,KAAKtC,MAC9BA,KAAK2sL,QAAQ,YACjB,EAMAuvK,EAAIt+V,UAAUq6E,QAAU,WAChBj4E,KAAKyqU,SACLzqU,KAAK2/S,gBAETh6S,EAAO/H,UAAUq6E,QAAQ31E,KAAKtC,MAC1BA,KAAKyqU,SACLzqU,KAAK0/S,sBAEb,EAOAw8C,EAAIt+V,UAAUugT,UAAY,WACtB,IAAIi/C,EAASt0N,GAAQ9oI,KAAKkvB,QAAS,IAAMkrU,IACzCp6V,KAAKq9V,UAAY,EACjBr9V,KAAKs9V,UAAW,EAChBt9V,KAAKu9V,SAAU,EACfv9V,KAAKwiU,YAAa,EAClBxiU,KAAKw9V,WAAY,EACjBx9V,KAAKy9V,eAAiB,GACtBz9V,KAAK09V,YAAc,GACf19V,KAAK29V,mBACL39V,KAAKmkT,SAAY6a,GAAMh/T,KAAKmkT,UAA4B,IAAMnkT,KAAKkvB,QAAQ1G,GAAnB,KAAqC2xU,GAArDn6V,KAAKmkT,UAE5C6a,GAAMo+B,KACPA,EAAOr0C,cAAc/8R,UAAUC,IAAIouU,IACnCr6V,KAAKs9V,UAAW,GAEpB,IAAI5/V,EAAO0uS,GAAQ3uK,KAAK//H,KACpBqmJ,EAAgB,SAATrmJ,EAAmB,OAAmB,SAATA,EAAmB,SAAqB,WAATA,EAAqB,WAAa,GACzG69U,GAASv7U,KAAKkvB,QAAS,CAAE,MAAS6kQ,GAAW/zR,KAAKuJ,OAAQ,OAAUwqR,GAAW/zR,KAAK0c,UACpF1c,KAAKq2U,YAAYr2U,KAAKkvB,QAASlvB,KAAKq0T,UAAU,GAC9Cx3S,GAAW7c,KAAKkvB,QAAS,CAAE,gBAAiB,UAC5ClvB,KAAKq2U,YAAYr2U,KAAKkvB,QAAS60H,GAAK,GACpC/jJ,KAAK49V,0BACT,EAOA1B,EAAIt+V,UAAUY,OAAS,WACnBwB,KAAK28V,OAAS38V,KAAK2J,cAAc,OAAQ,CAAEC,UAAW4wV,GAAY,IAAMG,GAAgBp/R,MAAO,CAAEkiB,MAAOz9E,KAAKy9E,SAC7Gz9E,KAAK69V,MAAQ79V,KAAKkvB,QAAQ1G,GAAG7qB,OAAS,EAAK,IAAMqC,KAAKkvB,QAAQ1G,GAAMspS,KACpE9xT,KAAK89V,kBACL99V,KAAKqpT,aACLrpT,KAAKwiU,YAAa,CACtB,EACA05B,EAAIt+V,UAAUkgW,gBAAkB,WAC5B,IAAI7uD,EAAMjvS,KAAKkvB,QAMf,GALAlvB,KAAK05H,MAAM32H,SAAQ,SAAUkuB,EAAM1pB,GAC3By3T,GAAM/tS,EAAKzI,MAAQw2S,GAAM/tS,EAAKugR,gBAC9BvgR,EAAKugR,cAAc,CAAEhpR,GAAIozU,GAAgBr0V,EAAMwD,aAAc,EAErE,IACI/K,KAAK05H,MAAM/7H,OAAS,GAA6B,IAAxBsxS,EAAI1mS,SAAS5K,OACtCsxS,EAAItmR,YAAY3oB,KAAK2J,cAAc,MAAO,CAAEC,UAAWwwV,MACvDp6V,KAAK+9V,eAAe/9V,KAAKg+V,gBAAiBh+V,KAAK2J,cAAc,MAAO,CAAEC,UAAWuwV,MACjFn6V,KAAKy8V,YAAa,OAEjB,GAAIz8V,KAAKkvB,QAAQ3mB,SAAS5K,OAAS,EAAG,CACvCqC,KAAKy8V,YAAa,EAClBxtD,EAAIjjR,UAAUC,IAAI49T,IAClB,IAAI78J,EAASiiH,EAAIlsR,cAAc,IAAMo3U,IACjCntK,GAAmC,WAAzBhtL,KAAKg+V,iBACfh+V,KAAK+9V,eAAe/9V,KAAKg+V,gBAAiBhxK,EAElD,CACA,IAAKgyI,GAAMhvL,GAAO,IAAMmqN,GAAYn6V,KAAKkvB,YAAc8vS,GAAMhvL,GAAO,IAAMoqN,GAAap6V,KAAKkvB,UAAW,CAOnG,GANAlvB,KAAKovE,eACLpvE,KAAK68V,QAAU7sN,GAAO,IAAMmqN,GAAa,KAAOe,GAAcl7V,KAAKkvB,SAC9D8vS,GAAMh/T,KAAK68V,UACZtlD,GAAav3S,KAAK68V,QAAS,CAAEzyU,SAAU,gBAE3CpqB,KAAK2xR,gBACD18I,GAAU,IAAMkmN,GAAan7V,KAAKkvB,SAASvxB,OAAS,EAAG,CACvDqC,KAAK68V,QAAU7sN,GAAO,IAAMmqN,GAAa,KAAOe,GAAcl7V,KAAKkvB,SACnElvB,KAAKi9V,QAAUj9V,KAAK2J,cAAc,MAAO,CAAEC,UAAWkxV,GAAgB,IAAMlQ,GAAtBkQ,cACtD,IAAImD,EAASjuN,GAAO,IAAMhwI,KAAKk+V,YAAal+V,KAAK68V,SAC5C79B,GAAMi/B,GAIPj+V,KAAK68V,QAAQxsS,aAAarwD,KAAKi9V,QAASj9V,KAAK68V,QAAQ1+T,YAHrD8/T,EAAO5tS,aAAarwD,KAAKi9V,QAASgB,EAAO9/T,YAK7Cn+B,KAAKm+V,kBAAiB,GACtBn+V,KAAKgwI,OAAOhwI,KAAKo+V,aACrB,CAEA,GADAp+V,KAAK88V,OAAS7nN,GAAU,IAAMkmN,GAAan7V,KAAK48V,SAC3C59B,GAAMh/T,KAAK88V,QACZ,IAAK,IAAIp9V,EAAI,EAAGA,EAAIM,KAAK05H,MAAM/7H,OAAQ+B,IACnC,GAAIM,KAAK88V,OAAOp9V,GAAI,CAChB,IAAI2+V,EAAQr+V,KAAK05H,MAAMh6H,GAAG8oB,GAC1BxoB,KAAK88V,OAAOp9V,GAAGi6B,aAAa,UAAW0kU,EAC3C,CAGRr+V,KAAKs+V,OAAOt+V,KAAK49S,UACrB,CACJ,EACAs+C,EAAIt+V,UAAUwxE,aAAe,WACzB,IAAIxpE,EAAQ5F,KACRu+V,EAAWv+V,KAAKg+V,gBAChBQ,EAAW,GAGf,GAFAx+V,KAAK48V,OAAS58V,KAAKy+V,eACnBz+V,KAAK0+V,mBACA1+V,KAAKy8V,WAGL,CACGz8V,KAAKkvB,QAAQ3mB,SAAS5K,OAAS,GAAKqC,KAAKkvB,QAAQ3mB,SAAS,GAAGyjB,UAAU6oB,SAASslT,KAChFn6V,KAAKwxS,cAAc,CAAEwsD,gBAAiB,WAAY,GAItD,IAFA,IAAIjvV,EAAQ/O,KAAK48V,OAAOr0V,SAAS5K,OAC7BghW,EAAW,GACNj/V,EAAI,EAAGA,EAAIqP,EAAOrP,IACvBi/V,EAAS97V,KAAK7C,KAAK48V,OAAOr0V,SAAS0oB,KAAKvxB,GAAG+oB,WAE/C,GAAI1Z,EAAQ,EAAG,CACX,KAAO/O,KAAK48V,OAAOjtD,mBACfn0H,GAAOx7K,KAAK48V,OAAOjtD,mBAEvB,IAAIivD,EAAa5+V,KAAK2J,cAAc,MAAO,CAAEC,UA1W7C,YA2WA5J,KAAK48V,OAAOj0U,YAAYi2U,GACxBD,EAAS57V,SAAQ,SAAUkuB,EAAM1pB,GAC7B3B,EAAMqgF,UAAY1+E,EAClB,IAAIi0D,EAAO,CACP5xD,UAAW4/U,GAAUhhU,GAAIghU,GAAW5jV,EAAMi4V,MAAQ,IAAMt2V,GAExDs3V,EAAMj5V,EAAM+D,cAAc,OAAQ,CAClCC,UAAWixV,GAAUpyU,UAAWwI,EAAMsqC,MAAO,CAAE,KAAQ,kBACxD+sQ,UACCw2B,EAAOl5V,EAAM+D,cAAc,MAAO,CAClCC,UAAWoxV,GAAevyU,UAAWo2U,EAAMj5V,EAAM+2V,OAAOr0B,YACzDA,UACC1gI,EAAOhiM,EAAM+D,cAAc,MAAO,CAClCC,UAAWmxV,GAAUtyU,UAAWq2U,EAChCvjS,MAAO,CAAEurI,KAAM,MAAOr9L,SAAU,KAAM,gBAAiB,QAAS,gBAAiB2wV,GAAcx0V,EAAMi4V,MAAQ,IAAMt2V,KAEvHq3V,EAAWj2U,YAAY/iB,EAAM+D,cAAc,MAAO6xD,IAClDy5E,GAAU,IAAMu0M,GAAUoV,GAAYr3V,GAAOohB,YAAYi/K,EAC7D,GACJ,CACJ,MApCI42J,EAAWx+V,KAAK++V,YAAY/+V,KAAK05H,MAAO,GAqC5C15H,KAAKu8V,MAAQ,IAAIlR,GAAQ,CACrB9hV,MAAqB,SAAbg1V,GAAoC,UAAbA,EAAwB,OAAS,OAChE7hV,OAAsB,SAAb6hV,GAAoC,UAAbA,EAAwB,OAAS,OACjEjR,aAActtV,KAAKstV,aACnB5zN,MAA4B,IAApB8kO,EAAS7gW,OAAgB6gW,EAAW,GAC5CQ,QAASh/V,KAAKsyG,aAAanwG,KAAKnC,MAChC4kV,WAAY5kV,KAAK4kV,WACjBrwB,oBAAqBv0T,KAAKu0T,oBAC1BF,SAAUr0T,KAAKq0T,WAEnBr0T,KAAKu8V,MAAM9+C,kBAAmB,EAC9Bz9S,KAAKu8V,MAAM5yV,cAAgB3J,KAAK2J,cAChC3J,KAAKu8V,MAAMv+C,SAASh+S,KAAK48V,QACzB//U,GAAW7c,KAAK48V,OAAQ,CAAE91J,KAAM,YAC3Bk4H,GAAMh/T,KAAKkvB,QAAQ6hD,aAAa,eAI3BiuP,GAAMh/T,KAAKkvB,QAAQ6hD,aAAa,sBACtC/wE,KAAK48V,OAAOjjU,aAAa,kBAAmB35B,KAAKkvB,QAAQ6hD,aAAa,oBACtE/wE,KAAKkvB,QAAQwK,gBAAgB,qBAL7B15B,KAAK48V,OAAOjjU,aAAa,aAAc35B,KAAKkvB,QAAQ6hD,aAAa,eACjE/wE,KAAKkvB,QAAQwK,gBAAgB,eAMjC15B,KAAKi/V,eAAej/V,KAAKk/V,iBACzB,IAAIC,EAAgBn/V,KAAKu8V,MAAMrtU,QAAQnM,cAAc,IAAMm4U,IACtDl8B,GAAMmgC,KACHngC,GAAMmgC,EAAc32U,KAA4B,KAArB22U,EAAc32U,MACzC22U,EAAc32U,GAAKxoB,KAAKkvB,QAAQ1G,GAAbxoB,oBAG/B,EACAk8V,EAAIt+V,UAAU+zR,cAAgB,WAC1B3xR,KAAK08V,OAAS1sN,GAAO,IAAMoqN,GAAap6V,KAAKkvB,SAC7C,IAAIkwU,EAAUnqN,GAAU,IAAMkmN,GAAan7V,KAAKkvB,SAChD,GAAIlvB,KAAKy8V,WAAY,CACjBz8V,KAAKqwT,IAAOrwT,KAAK08V,OAAOn0V,SAAS5K,OAAS,EAAKqC,KAAK08V,OAAOj0U,UAAY,GAEvE,IADA,IAAIykK,EAAWltL,KAAK08V,OAAOn0V,SAClB7I,EAAI,EAAGA,EAAI0/V,EAAQzhW,OAAQ+B,IAC5BwtL,EAASvvL,OAAS,GAAK+B,IACvBqvS,GAAS,CAAC7hH,EAASj8J,KAAKvxB,IAAK8pV,IAC7B3sU,GAAWqwK,EAASj8J,KAAKvxB,GAAI,CAAE,KAAQ,WAAY,kBAAmB8pV,GAAWxpV,KAAK69V,MAAQ,IAAMn+V,IACpGwtL,EAASj8J,KAAKvxB,GAAG8oB,GAAK4xU,GAAcp6V,KAAK69V,MAAQ,IAAMn+V,EAGnE,CACJ,EACAw8V,EAAIt+V,UAAUyhW,cAAgB,WAC1Br/V,KAAK89V,kBACA9+B,GAAMh/T,KAAK08V,UACZ18V,KAAKmkV,YAAc,IAAI34B,GAAMxrT,KAAK08V,OAAQ,CAAEt4U,MAAOpkB,KAAKskV,aAAaniV,KAAKnC,QAElF,EACAk8V,EAAIt+V,UAAUmhW,YAAc,SAAUrlO,EAAOnyH,GACzC,IAAI3B,EAAQ5F,KACR68V,EAAU5nN,GAAU,kBAAoBkmN,GAAan7V,KAAKkvB,SAC1DowU,EAAQt/V,KAAKimF,UACjB,IAAKjmF,KAAKu/V,WAAa1C,EAAQl/V,OAAS,EAAG,CACvC,IAAI6hW,EAAW,GACf3C,EAAQ95V,SAAQ,SAAUkuB,GACtBuuU,EAAS38V,KAAK+C,EAAM65V,gBAAgBxuU,EAAKzI,IAC7C,IACA82U,EAAQr0V,KAAKC,IAAI3I,MAAM0I,KAAMu0V,EACjC,CACA,IACIE,EADAC,EAAS,GAETC,EAAc,GA4FlB,OA1FAlmO,EAAM32H,SAAQ,SAAUkuB,EAAMvxB,GAC1B,IAAI4jE,EAAO07P,GAAM/tS,EAAK+7J,SAAWgyI,GAAM/tS,EAAK+7J,OAAO2nI,cAAiB,GAAK1jS,EAAK+7J,OAAO2nI,aACjF5wK,EAAOi7K,GAAM/tS,EAAK+7J,SAAWgyI,GAAM/tS,EAAK+7J,OAAO0nI,SAAY,GAAKzjS,EAAK+7J,OAAO0nI,QAChF,GAAKsK,GAAM/tS,EAAK4uU,kBAAqB7gC,GAAM/tS,EAAK+7J,SAAWgyI,GAAM/tS,EAAK+7J,OAAOl6I,OAC3C,IAA5B7hB,EAAK+7J,OAAOl6I,KAAKn1C,QAA2B,KAARomJ,GACtC67M,EAAY/8V,KAAKnD,OAFrB,CAKA,IAIIogW,EAJAjB,EAAM5tU,EAAK4uU,gBAAkB5uU,EAAK+7J,OAAOl6I,KAC1B,kBAAR+rT,GAAoBj5V,EAAM2uT,sBACjCsqC,EAAMpsC,GAAmBG,SAASisC,IAGlCj5V,EAAM25V,YAAcvgC,GAAMp5T,EAAMm6V,OAAwB,KAAfn6V,EAAMm6V,MAC/CD,EAAYt1V,SAAS5E,EAAMm6V,KAAK9xU,UAAUroB,EAAMm6V,KAAKr9R,YAAY,KAAO,GAAI,IAC5E98D,EAAMm6V,KAAO,IAGbD,EAAYv4V,EAAQ7H,EAExBkG,EAAMqgF,UAAiC,IAAnB42Q,EAAQl/V,OAAgB+B,EAAMkG,EAAM25V,UAAcO,EAAcR,EAAQ,EAAI5/V,EAChG,IAAI6U,EAAY0c,EAAK1c,SAAY,IAAM2uU,GAAc,IAAMQ,GAAc,GACrEtzM,GAA2B,IAAjBn/G,EAAKuqI,QAAqB,IAAMovL,GAAa,GAC3D8U,EAAa95V,EAAM+D,cAAc,MAAO,CAAEC,UAAWixV,GAAUt/R,MAAO,CAAE,KAAQ,kBAChF,IAAIykS,EAAUnB,aAAelgW,OAAUkgW,EAAIv2B,UAAYu2B,EACnDoB,GAAajhC,GAAMghC,IAAoB,KAAVA,EAC5BhhC,GAAM6/B,EAAI36U,SAIXte,EAAMs6V,kBAAkBR,EAAYb,EAAKn/V,GAHzCggW,EAAW/2U,YAAYk2U,GAM3B,IAAI75J,EAAOp/L,EAAM+D,cAAc,OAAQ,CACnCC,UAAW4wV,GAAY,IAAMS,GAAe,IAAMR,GAAW,IAAMn3R,EAAM,IAAMygF,IAE/Eo8M,EAAQv6V,EAAM+D,cAAc,MAAO,CAAEC,UAAWoxV,KACpDmF,EAAMx3U,YAAY+2U,GACL,KAARb,QAAsBx4V,IAARw4V,GAA8B,KAAR96M,GACxB,SAARzgF,GAA0B,QAARA,EACnB68R,EAAM9vS,aAAa20I,EAAMm7J,EAAMxwD,mBAG/BwwD,EAAMx3U,YAAYq8K,GAGtBp/L,EAAMu2V,aAAc,IAGH,KAARp4M,EAAc27M,EAAa16J,KACvBA,IACTxpB,GAAOkkL,GACPS,EAAMx3U,YAAYq8K,GAClBp/L,EAAMu2V,aAAc,GAG5B,IAAI1yV,EAAWu1T,GAAM/tS,EAAKxnB,UAAY,KAAOwnB,EAAKxnB,SAASsB,WACvDq1V,EAAanvU,EAAK1c,SAAY,CAAC,EAAI,CAAE9K,SAAUA,EAAU,gBAAiBA,EAAUq9L,KAAM,MAAO,gBAAiB,SACtHq5J,EAAMx3U,YAAY/iB,EAAM+2V,OAAO1+R,WAAU,IACzC,IAAI2pI,EAAOhiM,EAAM+D,cAAc,MAAO,CAAEC,UAAWmxV,GAAUx/R,MAAO6kS,IACpEx4J,EAAKj/K,YAAYw3U,GACbv6V,EAAM63V,iBAAmB,GACzB73V,EAAM63V,eAAe56V,KAAK2mV,GAAW5jV,EAAMi4V,MAAQ,IAAMj4V,EAAMqgF,WAG/DrgF,EAAM63V,eAAe1mS,OAAQxvD,EAAQ7H,EAAI,EAAG8pV,GAAW5jV,EAAMi4V,MAAQ,IAAMj4V,EAAMqgF,WAErF,IAGIo6Q,EAAQ,CAAEplB,eAHA,CACVzyT,GAAIghU,GAAW5jV,EAAMi4V,MAAQ,IAAMj4V,EAAMqgF,WAENvkB,SAAUkmI,GACjDy4J,EAAMhsC,eAA+BhuT,IAAlB4qB,EAAKojS,SAA0BpjS,EAAKojS,SAAW,KAAO,IAAM9/S,EAAW,IAAM67H,EAAS,KACzF,KAAR2T,EAAc,MAAQzgF,EAAM,IAAM,KAAS28R,EAAuB,GAAXxF,IACnD,QAARn3R,GAAyB,WAARA,GACjB19D,EAAMspB,QAAQlD,UAAUC,IAAI,mBAEhC0zU,EAAO98V,KAAKw9V,GACZ3gW,GAtEA,CAuEJ,IACKM,KAAK4xU,OACNguB,EAAY78V,SAAQ,SAAUu9V,GAC1B16V,EAAM8zH,MAAM3iE,OAAOupS,EAAiB,EACxC,IAEAtgW,KAAKm8V,YACLn8V,KAAKkvB,QAAQlD,UAAUC,IAAIyuU,IAG3B16V,KAAKkvB,QAAQlD,UAAUG,OAAOuuU,IAE3BiF,CACX,EACAzD,EAAIt+V,UAAU2iW,kBAAoB,WAC9B,IAAIC,EAAYxgW,KAAKy+V,eACrB,GAAI+B,EAAW,CACX,IAAIhC,EAAWvpN,GAAU,IAAMkmN,GAAc,IAAMb,GAAYkG,GAC/D,GAAG34V,MAAMvF,KAAKk8V,GAAUz7V,SAAQ,SAAUqO,GAAQ,OAAOA,EAAK4a,UAAUG,OAAOmuU,GAAa,IAC5F,GAAGzyV,MAAMvF,KAAKk8V,GAAUz7V,SAAQ,SAAUqO,GAAQ,OAAOA,EAAKu+R,kBAAkBh2Q,aAAa,gBAAiB,QAAU,GAC5H,CACJ,EACAuiU,EAAIt+V,UAAU6iW,mBAAqB,SAAUxxD,GACzCjvS,KAAK+8V,MAAQ/sN,GAAO,IAAMorN,GAAYp7V,KAAKkvB,SAC3C,IAAI0kU,EAAU5jN,GAAO,aAAchwI,KAAKkvB,SACpCogU,EAAWt/M,GAAO,IAAMkrN,GAAcl7V,KAAKkvB,SAC3CsP,EAAY8wT,EAAS9wT,UACrBkiU,GAAa,EAYjB,QAXK1gW,KAAK0sV,eAAkB1sV,KAAK49S,WAAeg2C,EAAQltU,WAAaktU,EAAQtyU,YAAeguU,EAAS5oU,aAC5F1mB,KAAK49S,WAAag2C,EAAQltU,WAAa4oU,EAAShuU,cAGhDthB,KAAK0sV,cAAiBkH,EAAQntU,UAAY+X,EAAU/X,UAAY+X,EAAUjd,gBAF/Em/U,GAAa,GAKbA,IACAzxD,EAAIjjR,UAAUC,IAAIovU,IAClBr7V,KAAK+8V,MAAM1sS,aAAa4+O,EAAKh6J,GAAU,IAAMomN,GAAcr7V,KAAK+8V,OAAO,MAEpE,CACX,EACAb,EAAIt+V,UAAU+iW,aAAe,SAAUjgW,GACnC,IAAIkgW,EAASlgW,EAAOqiB,cAAc,qBAC7Bi8S,GAAM4hC,KACPA,EAAOt4B,UAAY,GACnB5nU,EAAOqiB,cAAc,IAAMg4U,IAAU/uU,UAAUG,OAAO,aAE1DnsB,KAAK88V,OAAS7nN,GAAU,IAAMimN,GAAe,KAAOC,GAAan7V,KAAK48V,QACtE,IAAIp+T,EAAYx+B,KAAK88V,OAAO98V,KAAK88V,OAAOn/V,OAAS,GACjD,GAA2B,IAAvBqC,KAAK88V,OAAOn/V,OAAc,CAK1B,GAJA+C,EAAOsrB,UAAUG,OAAOkvU,IACxB36V,EAAOg5B,gBAAgB,SACvB15B,KAAK68V,QAAQl0U,YAAYjoB,GACzBV,KAAK6gW,SAAWngW,EAAO8nB,GACnBxoB,KAAKygW,mBAAmBjiU,GAAY,CACpC,IAAIsiU,EAAU9gW,KAAK68V,QAAQr+T,UAAUs3T,uBACrC91V,KAAKygW,mBAAmBK,EAC5B,CACA9gW,KAAKu9V,SAAU,CACnB,CACA,OAAOtoN,GAAU,IAAMkmN,GAAan7V,KAAK68V,SAASl/V,OAAS,CAC/D,EACAu+V,EAAIt+V,UAAUqhW,eAAiB,SAAU17R,GACrC,IAAIw9R,EAAM/wN,GAAO,IAAMmqN,GAAYn6V,KAAKkvB,UAC5B,IAARq0C,EACAw9R,EAAI/0U,UAAUC,IAAI2uU,IAGlBmG,EAAI/0U,UAAUG,OAAOyuU,IAEzB56V,KAAKu8V,MAAMxL,kBACX/wV,KAAKq8V,wBACT,EACAH,EAAIt+V,UAAUojW,iBAAmB,SAAUjzU,EAAM5W,GAE9BnX,KAAK49S,WAAa59S,KAAKkvB,QAAQlD,UAAU6oB,SAASouS,IAuBjE,OAtBIjjV,KAAKu9V,SAAWxvU,GAAQ5W,EACe,gBAAnCnX,KAAKq3C,UAAUw9K,SAAS+tG,OACZ,CACRllU,KAAM,eACNooE,SAAU9lE,KAAKq3C,UAAUw9K,SAAS/uJ,SAAUqxO,eAAgBn3S,KAAKq3C,UAAUw9K,SAASjqJ,QAI5E,KAImB,iBAA/B5qE,KAAKq3C,UAAUrpB,KAAK40S,OACR,CACRllU,KAAM,gBACNooE,SAAU9lE,KAAKq3C,UAAUrpB,KAAK83C,SAAUqxO,eAAgBn3S,KAAKq3C,UAAUrpB,KAAK48C,QAIpE,IAIxB,EACAsxR,EAAIt+V,UAAUqjW,qBAAuB,SAAUC,EAAQ7D,GACnD,IAAIz3V,EAAQ5F,KACRmhW,EAAanhW,KAAKghW,iBAAiB3D,EAAWr9V,KAAKo+V,cAClDp/B,GAAMmiC,GAmBPD,EAAOl1U,UAAUG,OAAOmuU,KAlBxB6G,EAAW/uO,MAAQ,WACfmpN,GAAS2lB,EAAQ,CAAE,SAAY,aAC/BA,EAAOl1U,UAAUC,IAAIqvU,IACrB4F,EAAOl1U,UAAUC,IAAI,SACzB,EACAk1U,EAAW3rT,IAAM,WACb0rT,EAAOrgW,MAAM6I,QAAU,OACvBw3V,EAAOl1U,UAAUG,OAAOmuU,IACxB4G,EAAOl1U,UAAUG,OAAOmvU,IACxB4F,EAAOl1U,UAAUG,OAAO,UACxBovT,GAAS2lB,EAAQ,CAAE,QAAW,GAAI,SAAY,KACb,IAA7BA,EAAOr5U,WAAWlqB,QAAiBiI,EAAM62V,YACzCjhL,GAAO0lL,EAEf,EACA,IAAIprD,GAAUqrD,GAAY3qD,QAAQ0qD,GAK1C,EACAhF,EAAIt+V,UAAUwjW,iBAAmB,SAAU54U,EAAItnB,GAC3C,IAEIggW,EAFAt7V,EAAQ5F,KACRq9V,EAAYr9V,KAAKq9V,UAEA,GAAGx1V,MAAMvF,KAAKtC,KAAKkvB,QAAQnM,cAAc,IAAMq3U,IAAa7xV,UAClExF,SAAQ,SAAUkuB,GACzBA,EAAKzI,KAAO5iB,EAAMy7V,gBAClBH,EAASjwU,EAEjB,IACA,IAAI6vU,EAAU9gW,KAAK88V,OAAOO,GACtBiE,EAASthW,KAAKuhW,cAAcvhW,KAAK08V,OAAQ18V,KAAKwhW,SAASh5U,IAC3D,GAAIw2S,GAAMkiC,KAAYliC,GAAM8hC,GAAU,CAClC,IAAIW,EAAOzhW,KAAKwhW,SAASV,EAAQt4U,IACjC04U,EAASlhW,KAAKuhW,cAAcvhW,KAAK08V,OAAQ+E,EAC7C,CACKziC,GAAMsiC,KACPthW,KAAKqhW,cAAgBC,EAAO94U,IAEhC,IAAIk5U,EAAY1iC,GAAMh/T,KAAKq3C,YAAcr3C,KAAKq3C,UAAUrpB,OAAS,CAAC,GAAKhuB,KAAKq3C,UAAUw9K,WAAa,CAAC,GAC7FmqG,GAAMh/T,KAAKq3C,UAAUrpB,KAAK40S,SAAW5D,GAAMh/T,KAAKq3C,UAAUw9K,SAAS+tG,SACjC,QAAlC5iU,KAAKq3C,UAAUw9K,SAAS+tG,QAAkD,QAA9B5iU,KAAKq3C,UAAUrpB,KAAK40S,OACvE,GAAI5iU,KAAKwiU,aAAwB,IAAVthU,GAAmBlB,KAAKq3C,YAAc,CAAC,GAAKqqT,EAC3DR,GAAUA,IAAWI,GACrBJ,EAAOl1U,UAAUG,OAAOmuU,QAFhC,CAMA,IACI6G,EADA9wC,EAAMrgL,GAAO,IAAMoqN,GAAap6V,KAAKkvB,SAEzC,GAAIlvB,KAAKq9V,UAAYr9V,KAAKo+V,eAAiBp+V,KAAKu9V,QAAS,CACrD,IAAIoE,EAAU3hW,KAAKq3C,UAAUw9K,SAAS+tG,OACtCu+B,EAAa,CACTzjW,KAAoB,SAAZikW,EAAsB,GAAmB,gBAAZA,EAA6BA,EAAU,cAC5E77R,SAAU9lE,KAAKq3C,UAAUw9K,SAAS/uJ,SAClCqxO,eAAgBn3S,KAAKq3C,UAAUw9K,SAASjqJ,OAEhD,MACK,GAAI5qE,KAAKu9V,SAAWv9V,KAAKq9V,UAAYr9V,KAAKo+V,cAAgBp+V,KAAKq9V,YAAcr9V,KAAKo+V,aAAc,CACjG,IAAIwD,EAAS5hW,KAAKq3C,UAAUrpB,KAAK40S,OACjCu+B,EAAa,CACTzjW,KAAmB,SAAXkkW,EAAqB,GAAkB,iBAAXA,EAA6BA,EAAS,eAC1E97R,SAAU9lE,KAAKq3C,UAAUrpB,KAAK83C,SAC9BqxO,eAAgBn3S,KAAKq3C,UAAUrpB,KAAK48C,OAE5C,CACAu2R,EAAWz7R,SAAW,WAClB2qP,EAAIrkS,UAAUC,IAAIqvU,IAClB11V,EAAMi8V,iBACV,EACAV,EAAW3rT,IAAM,WACb66Q,EAAIrkS,UAAUG,OAAOmvU,IACrBgG,EAAOt1U,UAAUC,IAAIquU,GACzB,EACKt6V,KAAKwiU,YAAexD,GAAMkiC,IAC3BlhW,KAAKihW,qBAAqBC,EAAQ7D,GAEtCr9V,KAAKu9V,SAAU,EACS,KAApB4D,EAAWzjW,KACX4jW,EAAOt1U,UAAUC,IAAIquU,IAGrB,IAAIxkD,GAAUqrD,GAAY3qD,QAAQ8qD,EAnCtC,CAqCJ,EACApF,EAAIt+V,UAAUkkW,WAAa,SAAUf,GACjC,IAAIgB,EAAYj5N,GAAQi4N,EAAK,IAAM5G,GAAa,KAAOgB,IACnD6G,EAAWhiW,KAAKiiW,YAAYF,IAC3B/iC,GAAMh/T,KAAK+tV,SAAWgT,EAAI/0U,UAAU6oB,SAAS,aAC7C70C,KAAK+tV,OAAO/hU,UAAU6oB,SA3rBd,gBA2rB0C70C,KAAKosV,OAAOjxK,KAAKn7K,KAAKm7K,MAAQn7K,KAAKosV,OAAO9wK,KAAKt7K,KAAKs7K,MAElGylL,EAAI/0U,UAAU6oB,SAAS,gBAC5BksT,EAAI/oK,QAGCgnI,GAAM+iC,KAA2D,IAA7CA,EAAU/1U,UAAU6oB,SAASylT,MAClDt6V,KAAKkiW,UAAUF,EAAU,MAAM,GAC1BhjC,GAAMh/T,KAAK+tV,SACZ/tV,KAAKosV,OAAOjxK,KAAKn7K,KAAKm7K,MAItC,EACA+gL,EAAIt+V,UAAU6gW,aAAe,WACzB,IAAIz/B,GAAMh/T,KAAKkvB,SAAf,CAGA,IAAIg5I,EAAU,GAAGrgK,MAAMvF,KAAKtC,KAAKkvB,QAAQ3mB,UAAU5F,QAAO,SAAU9C,GAAK,OAAOA,EAAEmsB,UAAU6oB,SAASslT,GAAa,IAClH,GAAIjyL,EAAQvqK,OAAS,EACjB,OAAOuqK,EAAQ,GAGf,IAAI0/B,EAAO,GAAG//L,MAAMvF,KAAKtC,KAAKkvB,QAAQ3mB,UAAU5F,QAAO,SAAU9C,GAAK,OAAQA,EAAEmsB,UAAU6oB,SA5uBpF,kBA4uB2G,IAAG,GACpH,GAAK+yJ,EAGL,MAAO,GAAG//L,MAAMvF,KAAKslM,EAAKr/L,UAAU5F,QAAO,SAAU9C,GAAK,OAAOA,EAAEmsB,UAAU6oB,SAASslT,GAAa,IAAG,EAV1G,CAYJ,EACA+B,EAAIt+V,UAAUqkW,YAAc,SAAUhxU,GAClC,OAAO/f,MAAMtT,UAAU6R,QAAQnN,KAAK2yI,GAAU,IAAMkmN,GAAan7V,KAAKy+V,gBAAiBxtU,EAC3F,EACAirU,EAAIt+V,UAAU4jW,SAAW,SAAUh5U,GAC/B,OAAOA,EAAG5c,QAAQ49U,GAAWxpV,KAAK69V,MAAQ,IAAK,GACnD,EACA3B,EAAIt+V,UAAU4+V,mBAAqB,WAC/B,IAAI52V,EAAQ5F,KACZA,KAAK09V,YAAY36V,SAAQ,SAAUo/V,GAC1BnjC,GAAMp5T,EAAMspB,QAAQnM,cAAco/U,MACnC9rV,SAAShC,KAAKsU,YAAY/iB,EAAMspB,QAAQnM,cAAco/U,IAASthW,MAAM6I,QAAU,OAEvF,GACJ,EACAwyV,EAAIt+V,UAAUwkW,gBAAkB,SAAUnzD,EAAKohB,EAAK9oT,GAChD,IAAI2mV,EAAUluV,KAAK2J,cAAc,OACjC3J,KAAKqiW,eAAenU,EAAS79B,EAAK,UAAW9oT,GACX,IAA9B2mV,EAAQrmU,WAAWlqB,QACnBsxS,EAAItmR,YAAYulU,GAEhBluV,KAAKyqU,SACLzqU,KAAK0/S,sBAEb,EACAw8C,EAAIt+V,UAAUykW,eAAiB,SAAUpzD,EAAK1rO,EAAKpxC,EAAM5qB,GACrD,IAAIqhU,EAaA05B,EAZe,kBAAR/+R,GACPA,EAAMA,EAAI56D,OACN3I,KAAKgpU,MACLJ,EAAa7jE,GAAQ0tD,GAAmBG,SAASrvP,IAGjD0rO,EAAIxmR,UAAYgqS,GAAmBG,SAASrvP,IAIhDqlQ,EAAa7jE,GAAQxhM,GAGpBy7P,GAAM4J,KACP05B,EAAc15B,EAAW,CAAC,EAAG5oU,KAAMmyB,KAElC6sS,GAAM4J,IAAe05B,EAAY3kW,OAAS,GAC3C,GAAGkK,MAAMvF,KAAKggW,GAAav/V,SAAQ,SAAUmlB,GACzC+mR,EAAItmR,YAAYT,EACpB,GAER,EACAg0U,EAAIt+V,UAAUsiW,kBAAoB,SAAUhxU,EAAS4jB,EAAMvrC,GACvDvH,KAAKqiW,eAAenzU,EAAS4jB,EAAM,iBAAkBvrC,EACzD,EACA20V,EAAIt+V,UAAU2kW,WAAa,SAAUtzD,EAAKohB,EAAKmyC,EAAUj7V,GACrD,IAAI46V,EAEJ,GAAmB,kBADnB9xC,EAAM2O,GAAM3O,GAAO,GAAKA,IACO2O,GAAM3O,EAAI5nS,WAIrC,GAHmB,kBAAR4nS,GAAoBrwT,KAAKu0T,sBAChClE,EAAMoC,GAAmBG,SAASvC,IAEvB,MAAXA,EAAI,IAAyB,MAAXA,EAAI,GACtB,GAAIh6S,SAASkQ,iBAAiB8pS,GAAK1yT,OAAQ,CACvC,IAAI8kW,EAASpsV,SAAS0M,cAAcstS,GACpC8xC,EAASM,EAAOn6B,UAAU3/T,OACT,UAAb65V,EACAvzD,EAAItmR,YAAY85U,EAAOxkS,WAAU,KAGjCgxO,EAAItmR,YAAY85U,GAChBA,EAAO5hW,MAAM6I,QAAU,GAE/B,MAEI1J,KAAKoiW,gBAAgBnzD,EAAKohB,EAAK9oT,QAInCvH,KAAKoiW,gBAAgBnzD,EAAKohB,EAAK9oT,QAInC0nS,EAAItmR,YAAY0nS,GAEf2O,GAAMmjC,KAC2C,IAA9CniW,KAAK09V,YAAYjuV,QAAQ4gT,EAAItlT,aAC7B/K,KAAK09V,YAAY76V,KAAKwtT,EAAItlT,WAGtC,EACAmxV,EAAIt+V,UAAU2jW,cAAgB,SAAU7E,EAAQrhE,GAQ5C,OANIr7R,KAAKkvB,QAAQlD,UAAU6oB,SAASwlT,IAC1BrqN,GAAO,IAAMqqN,GAAW,MAAQD,GAAc,OAASA,GAAcp6V,KAAK69V,MAAQ,IAAMxiE,EAAIr7R,KAAKkvB,SAGjGlvB,KAAK0iW,QAAQhG,EAAOn0V,SAAU6xV,GAAcp6V,KAAK69V,MAAQ,IAAMxiE,EAG7E,EACA6gE,EAAIt+V,UAAU8kW,QAAU,SAAUhpO,EAAO/5H,GAErC,IADA,IAAIsvS,EACKvvS,EAAI,EAAGA,EAAIg6H,EAAM/7H,OAAQ+B,IAC9B,GAAIg6H,EAAMh6H,GAAG8oB,KAAO7oB,EAAK,CACrBsvS,EAAMv1K,EAAMh6H,GACZ,KACJ,CAEJ,OAAOuvS,CACX,EACAitD,EAAIt+V,UAAU8uV,WAAa,WACvB,IAAIA,EAAuC,SAAzB1sV,KAAKg+V,iBAAuD,UAAzBh+V,KAAKg+V,gBAE1D,OADAh+V,KAAKk+V,YAAexR,EAh0BV,oBADA,oBAk0BHA,CACX,EACAwP,EAAIt+V,UAAU8gW,iBAAmB,WAC7B,GAAI1+V,KAAK0sV,aAAc,CACnB,IAAIiW,EAAkC,SAAzB3iW,KAAKg+V,gBAA8BxC,GAAYC,GAC5D1sD,GAAS,CAAC/uS,KAAK48V,QAAS,CAACtT,GAAcqZ,IAClC3iW,KAAKkvB,QAAQlD,UAAU6oB,SAASwlT,IAIjCtrD,GAAS,CAAC/uS,KAAK48V,QAAS,CAACrB,GAAUoH,IAHnC5zD,GAAS,CAAC/uS,KAAKkvB,SAAU,CAACqsU,GAAUoH,GAK5C,CAC6B,WAAzB3iW,KAAKg+V,iBACLjvD,GAAS,CAAC/uS,KAAK48V,QAAS,CAAClB,IAEjC,EACAQ,EAAIt+V,UAAUggW,yBAA2B,WACrC59V,KAAKs7K,KAAO,CAAE59K,KAAOsC,KAAK0sV,aAAe,SAAW,YAAc5mR,SAAU,KAC5E9lE,KAAKm7K,KAAO,CAAEz9K,KAAOsC,KAAK0sV,aAAe,UAAY,UAAY5mR,SAAU,IAC/E,EACAo2R,EAAIt+V,UAAUkzV,kBAAoB,SAAU8R,GACxC5iW,KAAK+9V,eAAe6E,EAAO5iW,KAAK48V,QAChC,IAAIiG,EAAY7iW,KAAK48V,OAAO75U,cAAc,IAAMu3U,IAC5C5N,IAAa1sV,KAAK48V,OAAO5wU,UAAU6oB,SAASy0S,IAChDl6C,GAAY,CAACpvS,KAAKkvB,SAAU,CAACqsU,KAC7BnsD,GAAY,CAACpvS,KAAK48V,QAAS,CAACtT,GAAckS,GAAWC,KACjD/O,IAAe1sV,KAAK0sV,eACpB1sV,KAAK8iW,4BACA9jC,GAAM6jC,IAAcA,EAAU72U,UAAU6oB,SAASwmT,KAClDr7V,KAAK2gW,aAAakC,IAG1B7iW,KAAK0+V,mBACL1+V,KAAK6hW,kBACL7hW,KAAK+iW,WACT,EACA7G,EAAIt+V,UAAUmlW,UAAY,WACtB,IAAIC,EAAahzN,GAAO,KAAOw5M,GAAWxpV,KAAK69V,MAAQ,IAAM79V,KAAKo+V,aAAcp+V,KAAK48V,QAChF59B,GAAMgkC,IACPA,EAAWrzD,kBAAkBt5P,OAErC,EACA6lT,EAAIt+V,UAAUklW,yBAA2B,WACrC9iW,KAAKu8V,MAAM/qD,cAAc,CAAE90R,OAAS1c,KAAK0sV,aAAe,OAAS,OAASnjV,MAAQvJ,KAAK0sV,aAAe,OAAS,SAAW,GAC1H1sV,KAAKu8V,MAAMzL,oBACX9wV,KAAK49V,0BACT,EACA1B,EAAIt+V,UAAUmgW,eAAiB,SAAU6E,EAAO3zD,GAC5C,IAAIg0D,EAAY/xV,MAAMtT,UAAU6R,QAAQnN,KAAKtC,KAAKkvB,QAAQ3mB,SAAU0mS,GAChEi0D,EAAahyV,MAAMtT,UAAU6R,QAAQnN,KAAKtC,KAAKkvB,QAAQ3mB,SAAUvI,KAAKkvB,QAAQnM,cAAc,IAAMq3U,KACxF,WAAVwI,GAAuBM,EAAaD,EACpCjjW,KAAKkvB,QAAQvG,YAAYsmR,IAGzBG,GAAY,CAACH,GAAM,CAACysD,KACpB17V,KAAKkvB,QAAQmhC,aAAa4+O,EAAKj/J,GAAO,IAAMoqN,GAAap6V,KAAKkvB,UAEtE,EACAgtU,EAAIt+V,UAAUy4U,YAAc,SAAUpnC,EAAKylD,EAAKnxR,GAC5C,GAAY,KAARmxR,EAIJ,IADA,IAAI/uJ,EAAO+uJ,EAAIv7T,MAAM,KACZz5B,EAAI,EAAGA,EAAIimM,EAAKhoM,OAAQ+B,IACzB6jE,EACA0rO,EAAIjjR,UAAUC,IAAI05K,EAAKjmM,IAGvBuvS,EAAIjjR,UAAUG,OAAOw5K,EAAKjmM,GAGtC,EACAw8V,EAAIt+V,UAAUugW,iBAAmB,SAAU56R,GAIvC,GAHIvjE,KAAKkvB,QAAQlD,UAAU6oB,SAAS8mT,KAChCvsD,GAAY,CAACpvS,KAAKkvB,SAAU,CAACysU,MAE7B38B,GAAMh/T,KAAK08V,QAAf,CAGA,IAAIE,EAAS58V,KAAKy+V,eAClB,GAA8B,SAA1Bz+V,KAAKmjW,iBAA6B,CAClC,GAAoB,SAAhBnjW,KAAK0c,OACL,OAGK1c,KAAK0sV,cACNnR,GAASv7U,KAAK08V,OAAQ,CAAE,OAAW18V,KAAKkvB,QAAQzF,aAAemzU,EAAOr7U,aAAgB,MAGlG,MACK,GAA8B,SAA1BvhB,KAAKmjW,iBACVp0D,GAAS,CAAC/uS,KAAKkvB,SAAU,CAACysU,KAC1BpgB,GAASv7U,KAAKkvB,QAAS,CAAE,OAAU,SACnClvB,KAAK08V,OAAO77V,MAAM6b,OAAS,eAAiB1c,KAAK48V,OAAOr7U,aAAe,WAEtE,GAA8B,SAA1BvhB,KAAKmjW,iBAA6B,CACvC,IAAwB,IAApBnjW,KAAKy8V,WAEL,IADA,IAAIpsC,EAAMp7K,GAAU,IAAMmlN,GAAc,OAAS5Q,GAAUxpV,KAAKkvB,SACvDxvB,EAAI,EAAGA,EAAI2wT,EAAI1yT,OAAQ+B,IAC5B2wT,EAAI3wT,GAAGi6B,aAAa,QAAS,sCAC7B35B,KAAKquI,UAAYpjI,KAAKC,IAAIlL,KAAKquI,UAAWruI,KAAK6gB,UAAUwvS,EAAI3wT,KAC7D2wT,EAAI3wT,GAAGmB,MAAM23T,eAAe,WAC5BnI,EAAI3wT,GAAGmB,MAAM23T,eAAe,kBAG/B,CACDx4T,KAAK08V,OAAS1sN,GAAO,IAAMoqN,GAAap6V,KAAKkvB,UACjC,IAARq0C,GACAvjE,KAAK08V,OAAO/zU,YAAY3oB,KAAK2J,cAAc,MAAO,CAC9C6e,GAAK4xU,GAAcp6V,KAAK69V,MAAnBzD,KAAqCxwV,UAAW4/U,GAAW,IAAM8Q,GACtE/+R,MAAO,CAAE,KAAQ,WAAY,kBAAmBiuR,GAAWxpV,KAAK69V,MAAhBrU,SAGxD,IAAIv6C,EAAMjvS,KAAK08V,OAAOn0V,SAAS0oB,KAAK,GACpC,IAASvxB,EAAI,EAAGA,EAAIM,KAAK05H,MAAM/7H,OAAQ+B,IAGnC,IAFAM,KAAKuiW,WAAWtzD,EAAKjvS,KAAK05H,MAAMh6H,GAAGmuB,QAAS,QAASnuB,GACrDM,KAAKquI,UAAYpjI,KAAKC,IAAIlL,KAAKquI,UAAWruI,KAAK6gB,UAAUouR,IAClDA,EAAI9wQ,YACP8wQ,EAAI7wQ,YAAY6wQ,EAAI9wQ,YAGxBn+B,KAAKyqU,SACLzqU,KAAK2/S,cAAc,CAAC,YAExB3/S,KAAK09V,YAAc,GACnB19V,KAAKuiW,WAAWtzD,EAAKjvS,KAAK05H,MAAM,GAAG7rG,QAAS,SAAU,GAClD7tB,KAAKq9V,YAAcr9V,KAAKo+V,cACxBnvD,EAAIjjR,UAAUG,OAAOmuU,GAE7B,CACA/e,GAASv7U,KAAK08V,OAAQ,CAAE,OAAU18V,KAAKquI,UAAY,MACvD,MAEIktM,GAASv7U,KAAK08V,OAAQ,CAAE,OAAU,QAvDtC,CAyDJ,EACAR,EAAIt+V,UAAUijB,UAAY,SAAUouR,GAChC,IAAI1vI,EAAK/oJ,OAAOmT,iBAAiBslR,GACjC,OAAOA,EAAI1tR,aAAew4D,WAAWwlF,EAAG53B,iBAAiB,gBAAkB5tD,WAAWwlF,EAAG53B,iBAAiB,mBACtG5tD,WAAWwlF,EAAG53B,iBAAiB,eAAiB5tD,WAAWwlF,EAAG53B,iBAAiB,iBACvF,EACAu0N,EAAIt+V,UAAUikW,gBAAkB,WAC5B,IAAIuB,EAAYpjW,KAAKy+V,eACjBsC,EAAM/wN,GAAO,IAAMmrN,GAAc,IAAMb,GAAY8I,GACvD,IAAIpkC,GAAM+hC,GAAV,CAGK/gW,KAAKqjW,iBAQDD,GACLA,EAAUp3U,UAAUG,OAAO0vU,KARvBkF,EAAI/0U,UAAU6oB,SAASwmT,MAAkBr7V,KAAKi9V,QAAQjxU,UAAU6oB,SAAS+1S,KACzE5qV,KAAKi9V,QAAQjxU,UAAUC,IAAI2+T,IAE3BwY,IAAcA,EAAUp3U,UAAU6oB,SAASgnT,KAC3CuH,EAAUp3U,UAAUC,IAAI4vU,KAMhC,IAAIjxV,EAAOk+H,GAAQi4N,EAAK,IAAM7G,IAC9B,GAAIl6V,KAAKkvB,UAAYtkB,EAArB,CAGA5K,KAAK68V,QAAU7sN,GAAO,IAAMkrN,GAAckI,GAC1C,IAAIE,EAAMtzN,GAAO,IAAM8qN,GAAesI,GAClCjb,EAAYn4M,GAAO,IAAMkrN,GAAe,KAAOl7V,KAAKk+V,YAAakF,GACrE,GAAIpjW,KAAK0sV,aAAc,CACnBnR,GAAS+nB,EAAK,CAAE,KAAQ,GAAI,MAAS,KAGjC/nB,GAAS+nB,EADI,KADDtkC,GAAMmpB,GAAcnoV,KAAK68V,QAAQt7U,aAAe4mU,EAAU5mU,cAExD,CAAE,IAAOw/U,EAAIt6U,UAAY,KAAM,OAAUs6U,EAAIx/U,aAAe,MAG5D,CAAE,IAAO,EAAG,OAAU,GAE5C,KACK,CACD,GAA0B,aAAtBvhB,KAAKstV,aAEL/R,GAAS+nB,EAAK,CAAE,KADqB,WAAzBtjW,KAAKg+V,gBAA+B+C,EAAIt6U,UAAYs6U,EAAIx/U,aAAew/U,EAAIt6U,WACxD,KAAM,OAAU,UAG/C80T,GAAS+nB,EAAK,CAAE,IAAO,GAAI,OAAU,KAEzC,IAAIC,EAAWvkC,GAAMmpB,GAAcnoV,KAAK68V,QAAQv7U,YAAc6mU,EAAU7mU,YAEpEi6T,GAAS+nB,EADG,IAAZC,EACc,CAAE,KAAQxC,EAAIr6U,WAAa,KAAM,MAAS68U,GAAWxC,EAAIr6U,WAAaq6U,EAAIz/U,aAAe,MAGzF,CAAE,KAAQ,OAAQ,MAAS,QAEjD,CACK09S,GAAMh/T,KAAKi9V,UAAa8D,EAAI/0U,UAAU6oB,SAASwmT,KAChDr7V,KAAKi9V,QAAQjxU,UAAUG,OAAOy+T,GA/BlC,CAfA,CAgDJ,EACAsR,EAAIt+V,UAAU4lW,UAAY,SAAUtiW,EAAOuiW,EAAcx4B,QAChC,IAAjBw4B,IAA2BA,GAAe,QACzB,IAAjBx4B,IAA2BA,GAAe,GAC9CjrU,KAAK88V,OAAS7nN,GAAU,IAAMkmN,GAAan7V,KAAKy+V,gBAChD,IAAIsC,EAAM/gW,KAAK88V,OAAO57V,GACtB,KAAIA,EAAQ,GAAK02B,MAAM12B,IAAiC,IAAvBlB,KAAK88V,OAAOn/V,QAW7C,GARIuD,GAAS,IAAMuiW,IACfzjW,KAAK6wS,wBAAyB,EAC9B7wS,KAAKwxS,cAAc,CAAE4sD,aAAcl9V,IAAS,GAC5ClB,KAAK6wS,wBAAyB,EACzB7wS,KAAKwiU,YACNxiU,KAAK6xS,kBAGTkvD,EAAI/0U,UAAU6oB,SAASylT,IACvBt6V,KAAK6hW,sBADT,CAIK7hW,KAAKy8V,YACN5/U,GAAWkkV,EAAIpxD,kBAAmB,CAAE,gBAAiByqD,GAAcp6V,KAAK69V,MAAQ,IAAM38V,IAE1F,IAAIsnB,EAAKu4U,EAAIv4U,GACbxoB,KAAKugW,oBACLQ,EAAI/0U,UAAUC,IAAIquU,IAClByG,EAAIpxD,kBAAkBh2Q,aAAa,gBAAiB,QACpD,IAAI0hQ,EAAKv2R,OAAO9E,KAAKwhW,SAASh5U,IAI9B,GAHIw2S,GAAMh/T,KAAKqhW,iBACXrhW,KAAKqhW,cAAgBjH,GAAcp6V,KAAK69V,MAAQ,IAAMxiE,GAEtDr7R,KAAKy8V,YACL,GAAIzsN,GAAO,IAAMoqN,GAAap6V,KAAKkvB,SAAS3mB,SAAS5K,OAAS,EAAG,CAC7D,IAAI+lW,EAAQ1jW,KAAK0iW,QAAQ1yN,GAAO,IAAMoqN,GAAap6V,KAAKkvB,SAAS3mB,SAAU6xV,GAAcp6V,KAAK69V,MAAQ,IAAMxiE,GACvG2jC,GAAM0kC,IACPA,EAAM13U,UAAUC,IAAIquU,IAExBt6V,KAAKohW,iBAAiB54U,EAAIxoB,KAAK2jW,gBACnC,MAEC,CACD3jW,KAAK08V,OAAS1sN,GAAO,aAAyBoqN,GAAap6V,KAAKkvB,SAChE,IAAI+B,EAAOjxB,KAAKuhW,cAAcvhW,KAAK08V,OAAQ18V,KAAKwhW,SAASh5U,IACzD,GAAIw2S,GAAM/tS,GAAO,CACbjxB,KAAK08V,OAAO/zU,YAAY3oB,KAAK2J,cAAc,MAAO,CAC9C6e,GAAI4xU,GAAcp6V,KAAK69V,MAAQ,IAAM79V,KAAKwhW,SAASh5U,GAAK5e,UAAW4/U,GAAW,IAAM8Q,GACpF/+R,MAAO,CAAEurI,KAAM,WAAY,kBAAmB0iJ,GAAWxpV,KAAK69V,MAAQ,IAAM79V,KAAKwhW,SAASh5U,OAE9F,IAAIo7U,EAAS5jW,KAAKuhW,cAAcvhW,KAAK08V,OAAQ18V,KAAKwhW,SAASh5U,IACvDs3U,EAAY5uV,MAAMtT,UAAU6R,QAAQnN,KAAKtC,KAAKy9V,eAAgBj1U,GAClExoB,KAAKuiW,WAAWqB,EAAQ5jW,KAAK05H,MAAMomO,GAAWjyU,QAAS,SAAUiyU,EACrE,MAEI7uU,EAAKjF,UAAUC,IAAIquU,IAEvBt6V,KAAKohW,iBAAiB54U,EAAIxoB,KAAK2jW,gBACnC,CAGA,GAFA3jW,KAAK6hW,kBACL7hW,KAAK6jW,sBAAsB9C,IACtB/gW,KAAKwiU,aAAeihC,EAAc,CACnC1C,EAAIpxD,kBAAkBt5P,QACtB,IAAIytT,EAAW,CACXC,aAAc/jW,KAAKg9V,SACnBgH,cAAehkW,KAAKq9V,UACpBe,aAAc2C,EACdp1K,cAAezqL,EACf+iW,gBAAiBj0N,GAAO,IAAMoqN,GAAcp6V,KAAK69V,MAAQ,IAAM79V,KAAKkkW,YAAalkW,KAAK6tB,SACtFs2U,SAAUnkW,KAAKw9V,UACfvyB,aAAcA,GAElBjrU,KAAK2sL,QAAQ,WAAYm3K,EAC7B,CApDA,CAqDJ,EACA5H,EAAIt+V,UAAUwmW,SAAW,SAAU1qO,GAC/B15H,KAAKu/V,WAAY,EACjBv/V,KAAK68V,QAAU7sN,GAAO,IAAMkrN,GAAcl7V,KAAKy+V,gBAC/Cz+V,KAAKu8V,MAAM7iO,MAAQ15H,KAAK++V,YAAYrlO,EAAO,GAC3C15H,KAAKu8V,MAAM3qD,WACX5xS,KAAKu/V,WAAY,CACrB,EACArD,EAAIt+V,UAAU0gW,OAAS,SAAUp9V,GAC7BlB,KAAKu8V,MAAM3+C,UAAY18S,EACvBlB,KAAKu8V,MAAM3qD,WACX5xS,KAAKq2U,YAAYr2U,KAAKkvB,QAAS+zT,GAAS/hV,GACxClB,KAAKqkW,qBACT,EACAnI,EAAIt+V,UAAUymW,oBAAsB,WAC3BrlC,GAAMh/T,KAAKi9V,UACZj9V,KAAKi9V,QAAQjxU,UAAUC,IAAI2+T,IAE/B5qV,KAAK6hW,iBACT,EACA3F,EAAIt+V,UAAU0mW,UAAY,SAAU/oV,GAChC,IAAIwhV,EAAQ/sN,GAAO,yBAA0BhwI,KAAK48V,QAClD,GAAIG,EAAM/wU,UAAU6oB,SAAS,iBAAkB,CAC3C,IAAI0vT,EAAYxH,GAASA,EAAMtqD,cAAc,GAC7C8xD,EAAS30V,SAAS4gD,EAA8B,SAAzBxwD,KAAKg+V,gBAA8B,OAAS,QACnEuG,EAAS3yD,WACT2yD,EAASjpL,KAAK//J,EAClB,CACJ,EACA2gV,EAAIt+V,UAAU4mW,cAAgB,WAC1B,IAAI5+V,EAAQ5F,KACZ,GAAIA,KAAK29V,iBAAkB,CACvB,IAAI6C,EAAYxgW,KAAKkvB,QAAQnM,cAAc,IAAMo3U,IACjD,GAAIqG,EACYA,EAAUj6U,iBAAiB,IAAM40U,IACvCp4V,SAAQ,SAAUmsB,GACpBtpB,EAAM6+V,eAAev1U,EACzB,GAER,CACJ,EACAgtU,EAAIt+V,UAAUyrT,WAAa,WACvBrpT,KAAKwkW,gBACLhuV,OAAO6Q,iBAAiB,SAAUrnB,KAAKsrV,eACvCv9C,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,YAAalvB,KAAK0kW,aAAc1kW,MAC/D+tS,GAAa9hR,IAAIjsB,KAAKkvB,QAAS,UAAWlvB,KAAK2kW,aAAc3kW,MACxDg/T,GAAMh/T,KAAK08V,UACZ18V,KAAKmkV,YAAc,IAAI34B,GAAMxrT,KAAK08V,OAAQ,CAAEt4U,MAAOpkB,KAAKskV,aAAaniV,KAAKnC,SAE9EA,KAAK+sV,UAAY,IAAIpjC,GAAe3pT,KAAKkvB,QAAS,CAAEq7R,UAAWvqT,KAAKggB,WAAW7d,KAAKnC,MAAOiqT,WAAYjqT,KAAKiqT,aAC5GjqT,KAAK4kW,aAAe,IAAIj7C,GAAe3pT,KAAKkvB,QAAS,CACjDq7R,UAAWvqT,KAAKggB,WAAW7d,KAAKnC,MAChCiqT,WAAY,CAAE46C,UAAW,YAAahhF,IAAK,MAAOihF,SAAU,aAC5Dj9K,UAAW,WAEnB,EACAq0K,EAAIt+V,UAAUk3T,aAAe,WACpBkK,GAAMh/T,KAAK+sV,YACZ/sV,KAAK+sV,UAAUvsV,UAEdw+T,GAAMh/T,KAAK4kW,eACZ5kW,KAAK4kW,aAAapkW,UAEjBw+T,GAAMh/T,KAAK08V,SAAY19B,GAAMh/T,KAAKmkV,eACnCnkV,KAAKmkV,YAAY3jV,UACjBR,KAAKmkV,YAAc,MAEvB3tU,OAAO4U,oBAAoB,SAAUprB,KAAKsrV,eAC1Cv9C,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,YAAalvB,KAAK0kW,cACpD32D,GAAa5hR,OAAOnsB,KAAKkvB,QAAS,UAAWlvB,KAAK2kW,cAClD3kW,KAAKkvB,QAAQlD,UAAUG,OAAO82T,IAC9BjjV,KAAKkvB,QAAQlD,UAAUG,OAAOouU,GAClC,EACA2B,EAAIt+V,UAAU00G,aAAe,SAAU1lG,GACnC5M,KAAKkvB,QAAQlD,UAAUG,OAAOouU,IAC9B,IAAIwG,EAAMn0V,EAAKkgT,cAAcpsT,OACzBqhW,EAAYj5N,GAAQi4N,EAAK,IAAM5F,IAC/B6G,EAAWhiW,KAAKiiW,YAAYF,GAC5BhB,EAAI/0U,UAAU6oB,SAAS8lT,IACvB36V,KAAK+kW,UAAU/C,GAEVhiW,KAAK0sV,cAAgB5jN,GAAQi4N,EAAK,cACvC/gW,KAAKskW,UAAUtkW,KAAKs7K,OAGpBt7K,KAAKu9V,SAAU,EACVv+B,GAAM+iC,IAAeC,IAAahiW,KAAKo+V,cAAgB4D,IAAahiW,KAAKq9V,WAC1Er9V,KAAKkiW,UAAUF,EAAUp1V,EAAKkgT,eAAe,GAGzD,EACAovC,EAAIt+V,UAAU0mV,aAAe,SAAUzkV,GACnC,KAAIA,EAAEqtT,SAAW,GAAK8R,GAAMn/T,EAAEitT,cAAcvjS,iBAA5C,CAGIvpB,KAAKs9V,UACLt9V,KAAKkvB,QAAQyK,aAAa,aAAc,QAE5C,IAAIqrU,EAAYhlW,KAAKkvB,QAAQnM,cAAc,uBAC3C,GAAIiiV,EACAA,EAAUtrU,gBAAgB,kBAD9B,CAKA,GADA15B,KAAKw9V,WAAY,EACQ,UAArB39V,EAAE6lB,gBAAoD,IAAtB1lB,KAAKo+V,cACrC,IAAK,IAAI90V,EAAItJ,KAAKo+V,aAAe,EAAG90V,GAAK,EAAGA,IACxC,IAAKtJ,KAAK88V,OAAOxzV,GAAG0iB,UAAU6oB,SAAS+1S,IAAa,CAChD5qV,KAAKkiW,UAAU54V,EAAG,MAAM,GACxB,KACJ,OAGH,GAAyB,SAArBzJ,EAAE6lB,gBAA8B1lB,KAAKo+V,eAAiBnpN,GAAU,IAAMkmN,GAAan7V,KAAKkvB,SAASvxB,OAAS,EAC/G,IAAK,IAAI+B,EAAIM,KAAKo+V,aAAe,EAAG1+V,EAAIM,KAAK88V,OAAOn/V,OAAQ+B,IACxD,IAAKM,KAAK88V,OAAOp9V,GAAGssB,UAAU6oB,SAAS+1S,IAAa,CAChD5qV,KAAKkiW,UAAUxiW,EAAG,MAAM,GACxB,KACJ,CAGRM,KAAKw9V,WAAY,CAlBjB,CARA,CA2BJ,EACAtB,EAAIt+V,UAAU+mW,aAAe,SAAU9kW,IAChB,KAAdA,EAAEskB,SAA8B,KAAZtkB,EAAEywC,OAAgC,KAAdzwC,EAAEskB,SAA8B,KAAZtkB,EAAEywC,SAE1D0uR,GADUl2L,GAAQjpI,EAAEa,OAAQ,IAAMy5V,MAEnCt6V,EAAE+U,iBAGd,EACAsnV,EAAIt+V,UAAUoiB,WAAa,SAAUngB,GACjC,IAAIG,KAAKkvB,QAAQlD,UAAU6oB,SAASquS,IAApC,CAGAljV,KAAKkvB,QAAQlD,UAAUC,IAAIsuU,IAC3B,IAAIwG,EAAMlhW,EAAEa,OACR8/V,EAAYxgW,KAAKy+V,eACjBwG,EAASj1N,GAAO,IAAMsqN,GAAYkG,GACtCxgW,KAAK+tV,OAAS/9M,GAAO,IAAMorN,GAAYoF,GAClCxhC,GAAMh/T,KAAK+tV,UACZ/tV,KAAKosV,OAASpsV,KAAK+tV,OAAOt7C,cAAc,IAE5C,IAAIxhR,EAAO63G,GAAQzyH,SAASkmB,cAAe,IAAM4+T,IAC7C4G,EAAYj5N,GAAQi4N,EAAK,IAAM5F,IACnC,OAAQt7V,EAAEslD,QACN,IAAK,QACL,IAAK,QACD,GAAI47S,EAAIh4C,cAAc/8R,UAAU6oB,SAASquS,IACrC,OAEJ,GAAiB,UAAbrjV,EAAEslD,QAAsB47S,EAAI/0U,UAAU6oB,SAAS,aAAc,CAC7D70C,KAAKskW,UAAUtkW,KAAKs7K,MACpB,KACJ,CACAt7K,KAAK8hW,WAAWf,GAChB,MACJ,IAAK,MACL,IAAK,WACGA,EAAI/0U,UAAU6oB,SAASkmT,MAC+C,IAAnEjyN,GAAQi4N,EAAK,IAAM5F,IAAanvU,UAAU6oB,SAASylT,KACtDyG,EAAIpnU,aAAa,WAAYonU,EAAIhwR,aAAa,kBAE9C/wE,KAAKosV,QAAU3wL,GAAUz7J,KAAKosV,OAAOl9T,UACrClvB,KAAKosV,OAAOjxK,KAAKn7K,KAAKm7K,MAErB6jJ,GAAMimC,IAAgE,OAArDA,EAAO18V,SAAS0oB,KAAK,GAAG8/C,aAAa,aACvDk0R,EAAO18V,SAAS0oB,KAAK,GAAG0I,aAAa,WAAY,KAErD,MACJ,IAAK,WACL,IAAK,YACIqlS,GAAM/tS,IACPjxB,KAAK6jW,sBAAsB5yU,GAE/B,MACJ,IAAK,YACDpxB,EAAE+U,kBACGoqT,GAAMh/T,KAAK+tV,SAAW/tV,KAAK+tV,OAAO/hU,UAAU6oB,SAnwC3C,kBAowCF70C,KAAKosV,OAAO9wK,KAAKt7K,KAAKs7K,MAE1B,MACJ,IAAK,SACD,IAA6B,IAAzBt7K,KAAKk/V,kBAA6BlgC,GAAM+iC,GAAY,CACpD,IAAImD,EAASnD,EAAUptT,aAClBqqR,GAAMkmC,IAAWA,EAAOl5U,UAAU6oB,SAASsmT,KAC5C+J,EAAOv1D,kBAAkBt5P,QAE7Br2C,KAAK+kW,UAAU/kW,KAAKiiW,YAAYF,GACpC,CACA/hW,KAAK6hW,kBAxDb,CA2DJ,EACA3F,EAAIt+V,UAAUimW,sBAAwB,SAAUnjW,GAC5C,IAAIu9V,EAASjuN,GAAO,IAAMhwI,KAAKk+V,YAAal+V,KAAK68V,SACjD,IAAK78V,KAAK0sV,eAAiB1tB,GAAMi/B,GAAjC,CACI,IAAIkH,EAASn1N,GAAO,iBAAkBhwI,KAAK68V,SACvCuI,EAAWD,EAAOx6U,WAClB06U,EAASD,EAAWD,EAAO7jV,YAC3BgkV,EAAW5kW,EAAOgmB,WAClB2qU,EAAW3wV,EAAO4gB,YAClBikV,EAAS7kW,EAAOgmB,WAAahmB,EAAO4gB,YACxC,GAAK8jV,EAAWE,GAAcD,EAASE,EAAS,CAC5C,IAAIC,EAAeH,EAASC,EAC5BH,EAAOx6U,WAAay6U,GAAY/T,EAAWmU,EAC/C,MAEI,GAAKJ,EAAWE,GAAcD,EAASE,EAAS,CACxCC,EAAeD,EAASH,EAC5BD,EAAOx6U,WAAay6U,GAAY/T,EAAWmU,EAC/C,CAKR,CACJ,EACAtJ,EAAIt+V,UAAU6hW,gBAAkB,SAAUj3U,GACtC,OAAOhe,SAASge,EAAGyF,UAAUzF,EAAGk6C,YAAY,KAAO,GAAI,GAC3D,EACAw5R,EAAIt+V,UAAU8mW,aAAe,SAAU7kW,GACnC,IAAIkhW,EAAMlhW,EAAEa,QACPs+T,GAAM+hC,EAAI/0U,YAAc+0U,EAAI/0U,UAAU6oB,SAAS8lT,KAChDoG,EAAIpnU,aAAa,QAAS,IAAIkxR,GAAK,MAAO,CAAE46C,iBAAkBzlW,KAAKy9E,OAASz9E,KAAKqwC,QAAQg7Q,YAAY,oBAE7G,EACA6wC,EAAIt+V,UAAU8nW,0BAA4B,SAAUruD,EAASC,GACzD,GAAMD,EAAQ39K,iBAAiBxoH,OAASomS,EAAQ59K,iBAAiBxoH,MAkF7D,GADAlR,KAAKimF,UAAY,EACb+4O,GAAMh/T,KAAKu8V,OACXv8V,KAAKq/V,oBAEJ,EACGr/V,KAAKyqU,SAAWzqU,KAAK25U,YACrB35U,KAAK2/S,gBAET3/S,KAAKokW,SAAS/sD,EAAQ39K,OAClB15H,KAAK09V,YAAY//V,OAAS,GAC1BqC,KAAKw8V,qBAETx8V,KAAK09V,YAAc,GAEnB,IADA,IAAIzyK,EAAgBj7C,GAAO,aAAyBoqN,GAAap6V,KAAKkvB,SAC/D+7J,EAAc0kH,mBACjBn0H,GAAOyP,EAAc0kH,mBAEzB3vS,KAAKgwI,OAAOhwI,KAAKo+V,cACjBp+V,KAAKo8V,eAAiB,GACtBp8V,KAAKwkW,eACT,MAnGA,IADA,IAAImB,EAAchnW,OAAOW,KAAK+3S,EAAQ39K,OAC7Bh6H,EAAI,EAAGA,EAAIimW,EAAYhoW,OAAQ+B,IAGpC,IAFA,IAAI6H,EAAQiD,SAAS7L,OAAOW,KAAK+3S,EAAQ39K,OAAOh6H,GAAI,IAChDojG,EAAankG,OAAOW,KAAK+3S,EAAQ39K,MAAMnyH,IAClC6B,EAAI,EAAGA,EAAI05F,EAAWnlG,OAAQyL,IAAK,CACxC,IAAI+pS,EAASx0S,OAAO24S,EAAQ59K,MAAMnyH,IAAQu7F,EAAW15F,IACjDw8V,EAASjnW,OAAO04S,EAAQ39K,MAAMnyH,IAAQu7F,EAAW15F,IACjDy8V,EAAM7lW,KAAKkvB,QAAQ3I,iBAAiB,IAAM40U,IAAa5zV,GACvDu4V,OAAY,EAEZA,EADA+F,IAAQ7mC,GAAM6mC,EAAIr9U,KAAkB,KAAXq9U,EAAIr9U,GACjBxoB,KAAKy/V,gBAAgBoG,EAAIr9U,IAGzBjhB,EAEhB,IAAI63V,EAAUpvN,GAAO,IAAMkrN,GAAe,KAAO1R,GAAWxpV,KAAK69V,MAAQ,IAAMiC,EAAW9/V,KAAKkvB,SAC3F42U,EAAU91N,GAAO,IAAMoqN,GAAc,KAAOA,GAAcp6V,KAAK69V,MAAQ,IAAMiC,EAAW9/V,KAAKkvB,SACjG,GAAsB,WAAlB4zE,EAAW15F,IAAqC,mBAAlB05F,EAAW15F,GAAyB,CAClE,IAAI47L,EAAQg6H,GAAMh/T,KAAK05H,MAAMnyH,GAAOylL,SAChCgyI,GAAMh/T,KAAK05H,MAAMnyH,GAAOylL,OAAO0nI,SAAY,GAAK10T,KAAK05H,MAAMnyH,GAAOylL,OAAO0nI,QAE7E,GAAiB,MADH10T,KAAK05H,MAAMnyH,GAAOs4V,gBAAkB7/V,KAAK05H,MAAMnyH,GAAOylL,OAAOl6I,OACzC,KAATkyJ,EACrBhlM,KAAK+kW,UAAUx9V,OAEd,CACDvH,KAAK+/V,KAAO8F,EAAIr9U,GAChB,IAAIquD,EAAM,GACVA,EAAIh0E,KAAK7C,KAAK05H,MAAMnyH,IACpBvH,KAAK05H,MAAM3iE,OAAOxvD,EAAO,GACzBvH,KAAKy9V,eAAe1mS,OAAOxvD,EAAO,GAClCvH,KAAKu8V,MAAM7iO,MAAM3iE,OAAOxvD,EAAO,GAC/B,IAAIw+V,EAAc3G,EAAQpzU,UAAU6oB,SAAS+1S,IAC7CpvK,GAAO4jL,GACPp/V,KAAKu/V,WAAY,EACjBv/V,KAAKgmW,OAAOnvR,EAAKtvE,GACbw+V,GACA/lW,KAAKimW,QAAQ1+V,GAEjBvH,KAAKu/V,WAAY,CACrB,CACJ,CACA,GAAsB,YAAlBz8P,EAAW15F,KAAqB41T,GAAM8mC,GAEtC,IAD+B,kBAAXF,GAAuB5mC,GAAM4mC,EAAOn9U,cAC3B,MAAdm9U,EAAO,IAA4B,MAAdA,EAAO,KAAeA,EAAOjoW,OAAQ,CACrE,IAAI8kW,EAASpsV,SAAS0M,cAAc6iV,GACpCE,EAAQn9U,YAAY85U,GACpBA,EAAO5hW,MAAM6I,QAAU,EAC3B,KACoB,KAAXk8V,GAA+B,MAAdzyD,EAAO,IAC7B98R,SAAShC,KAAKsU,YAAY3oB,KAAKkvB,QAAQnM,cAAcowR,IAAStyS,MAAM6I,QAAU,OAC9Eo8V,EAAQr9U,UAAYm9U,GAEf5lW,KAAKyqU,SACVq7B,EAAQr9U,UAAY,GACpBzoB,KAAKoiW,gBAAgB0D,EAASF,EAAQr+V,IAEf,oBAAXq+V,IACZE,EAAQr9U,UAAYm9U,GAGN,aAAlB9iQ,EAAW15F,KACN41T,GAAMogC,KACPA,EAAQpzU,UAAUG,OAAOgnR,GACzBisD,EAAQpzU,UAAUC,IAAI25U,IAErB5mC,GAAM8mC,KACPA,EAAQ95U,UAAUG,OAAOgnR,GACzB2yD,EAAQ95U,UAAUC,IAAI25U,KAGR,aAAlB9iQ,EAAW15F,IACXpJ,KAAKkmW,UAAU3+V,GAAoB,IAAXq+V,GAEN,YAAlB9iQ,EAAW15F,IACXpJ,KAAKimW,QAAQ1+V,GAAoB,IAAXq+V,EAE9B,CA0BZ,EACA1J,EAAIt+V,UAAU6mW,eAAiB,SAAU/jW,GACrC,IAAIkF,EAAQ5F,KACRioU,EAAU,IAAI5zS,GAAU3zB,EAAQ,CAChCyjT,SAAUnkT,KAAKmkT,SACfhB,WAAY,IAAMg4C,GAClBvuR,OAAO,EACP+4O,OAAQ3lT,KAAK2lT,OAAOxjT,KAAKnC,MACzB+jT,UAAW/jT,KAAKmmW,cAAchkW,KAAKnC,MACnC4pI,KAAM,SAAU/pI,GACZ,IACIumW,EACAC,EAFAC,EAAY1gW,EAAMq8V,YAAYr8V,EAAMs3V,UAGpCqJ,EAAW,CACXC,YAAa5gW,EAAMs3V,SACnB9mV,MAAOvW,EAAEuW,MACT1V,OAAQb,EAAEa,OACV+lW,YAAa5mW,EAAEa,OAAOooI,QAAQ,IAAMqyN,IACpCuL,cAAe9gW,EAAM4D,aACrBjC,MAAO++V,GAEX,GAAKtnC,GAAMn/T,EAAEa,OAAOooI,QAAQ,IAAMoxN,MAAcr6V,EAAEa,OAAOooI,QAAQ,IAAMoxN,IAASh9B,YAAYt3T,EAAMspB,UAC9FtpB,EAAMu+S,WAAa,IAAMg2C,GAGxB,CAgBD,GAfMt6V,EAAEa,OAAOooI,QAAQljI,EAAMu+S,WAAqC,UAAvBv+S,EAAM0nV,cAS7Cj3U,SAAShC,KAAKxT,MAAM+qI,OAAS,GAC7BhmI,EAAMs3V,SAASn6U,cAAc,IAAMg4U,IAAUl6V,MAAM04I,WAAa,SAC5D3zI,EAAM4D,aAAawiB,UAAU6oB,SAAS+1S,KACtCx7C,GAAY,CAACxpS,EAAM4D,cAAeohV,MAXtCv0U,SAAShC,KAAKxT,MAAM+qI,OAAS,cAC7BmjK,GAAS,CAACnpS,EAAM4D,cAAeohV,IAC3BhlV,EAAMs3V,SAASlxU,UAAU6oB,SAAS+1S,KAClCx7C,GAAY,CAACxpS,EAAMs3V,UAAWtS,IAElChlV,EAAMs3V,SAASn6U,cAAc,IAAMg4U,IAAUl6V,MAAM04I,WAAa,WASzC,eAAvB3zI,EAAM0nV,eAAkCtuB,GAAMp5T,EAAMspB,QAAQnM,cAAc,eAAgB,CAC1F,IAAI4jV,EAAoB/gW,EAAMspB,QAAQnM,cAAc,uBAChD6jV,EAAmBhhW,EAAMspB,QAAQnM,cAAc,sBAC/C8jV,EAAajhW,EAAMspB,QAAQnM,cAAc,mBACxCi8S,GAAM2nC,IAAsB17V,KAAKmX,IAAKukV,EAAkBrlV,YAAc,EACvEqlV,EAAkBjgV,YAAc9gB,EAAM4D,aAAakd,WAAa9gB,EAAM4D,aAAa8X,cACnFulV,EAAWl8U,YAAc,KAExBq0S,GAAM4nC,IAAqB37V,KAAKmX,IAAKwkV,EAAiBlgV,WAAakgV,EAAiBtlV,YACrF1b,EAAM4D,aAAakd,YAAekgV,EAAiBtlV,YAAc,IACjEulV,EAAWl8U,YAAc,GAEjC,CACA/kB,EAAM4D,aAAa3I,MAAMi6K,cAAgB,OACzCurL,EAAWv9N,GAAQjpI,EAAEa,OAAQ,IAAMy6V,GAAc,gBACjD,IAAI2L,EAAqB,EACE,eAAvBlhW,EAAM0nV,cAAkCtuB,GAAMp5T,EAAMspB,QAAQnM,cAAc,iBAC1E+jV,EAAqBlhW,EAAMspB,QAAQnM,cAAc,sBAAsBzB,aAE3D,MAAZ+kV,IAAqBA,EAASU,WAAWnhW,EAAMs3V,WAC/CmJ,EAASv9N,QAAQ,IAAMoxN,IAAS6M,WAAWnhW,EAAMs3V,SAASp0N,QAAQ,IAAMoxN,QACxEkM,EAAYxgW,EAAMq8V,YAAYoE,IACdC,GACXr7V,KAAKmX,IAAKikV,EAAS3/U,WAAa2/U,EAAS/kV,YACtC1b,EAAM4D,aAAakd,YAAe2/U,EAAS/kV,YAAc,GAC7D1b,EAAMohW,WAAWX,EAAUC,EAAWF,GAEtCA,EAAYE,GACXr7V,KAAKmX,IAAIikV,EAAS/kV,YAAc,GAAK+kV,EAAS3/U,WAC3CogV,EAAsBlhW,EAAM4D,aAAakd,WAAa9gB,EAAM4D,aAAa8X,aAC7E1b,EAAMohW,WAAWX,EAAUC,EAAWF,IAG9CxgW,EAAMqhW,aAAerhW,EAAMq8V,YAAYr8V,EAAMs3V,UAC7Ct3V,EAAM+mL,QAAQ,WAAY45K,EAC9B,MArDI3gW,EAAM+mL,QAAQ,WAAY45K,EAsDlC,EACA7+C,SAAU1nT,KAAKknW,aAAa/kW,KAAKnC,QAErCA,KAAKo8V,eAAev5V,KAAKolU,EAC7B,EACAi0B,EAAIt+V,UAAU+nT,OAAS,SAAU9lT,GAc7B,OAbAG,KAAKwJ,aAAexJ,KAAK2J,cAAc,OACnC9J,EAAEqvB,UACFlvB,KAAKwJ,aAAgB3J,EAAEqvB,QAAQ+uC,WAAU,GACzC8wO,GAAS,CAAC/uS,KAAKwJ,cAAe,uBAC1BxJ,KAAKkvB,QAAQnM,cAAc,IAAMo3U,IAAYnuU,UAAU6oB,SAAS+lT,KAChE7rD,GAAS,CAAC/uS,KAAKwJ,cAAeoxV,IAElCxrD,GAAY,CAACpvS,KAAKwJ,aAAauZ,cAAc,IAAMg4U,KAAY,YAC1D/7B,GAAMh/T,KAAKwJ,aAAauZ,cAAc,uBACvCoJ,GAAOnsB,KAAKwJ,aAAauZ,cAAc,sBAE3C1M,SAAShC,KAAKsU,YAAY3oB,KAAKwJ,eAE5BxJ,KAAKwJ,YAChB,EACA0yV,EAAIt+V,UAAUuoW,cAAgB,SAAUtmW,GACpC,IAAI+F,EAAQ5F,KACZA,KAAKm9V,cAAgBn9V,KAAK05H,MAAMxyH,KAAI,SAAUG,GAAK,OAAOA,CAAG,IAC7DrH,KAAKk9V,SAAWr9V,EAAEqvB,QAClB,IAAIq3U,EAAW,CACXC,YAAa3mW,EAAEqvB,QACf9Y,MAAOvW,EAAEuW,MACT1V,OAAQb,EAAEa,OACV+lW,YAAa,KACbl/V,MAAOvH,KAAKiiW,YAAYjiW,KAAKk9V,UAC7BwJ,cAAe1mW,KAAKwJ,aACpB+D,QAAQ,GAEZvN,KAAK2sL,QAAQ,cAAe45K,GAAU,SAAUY,GACxCA,EAAgB55V,OAChBiuK,GAAO51K,EAAM4D,eAGb5D,EAAM26V,oBACNxxD,GAAS,CAACnpS,EAAMi3V,QAAQ95U,cAAc,IAAM+3U,KAAiBlQ,IAC7DhlV,EAAMs3V,SAASn6U,cAAc,IAAMg4U,IAAUl6V,MAAM04I,WAAa,SAExE,GACJ,EACA2iN,EAAIt+V,UAAUopW,WAAa,SAAUX,EAAUe,EAAYhB,GACvD,GAAIpmW,KAAK05H,MAAM/7H,OAAS,EAAG,CACvB,IAAIszB,EAAOjxB,KAAKm9V,cAAciK,GAC9BpnW,KAAKm9V,cAAcpmS,OAAOqwS,EAAY,GACtCpnW,KAAKm9V,cAAcpmS,OAAOqvS,EAAW,EAAGn1U,EAC5C,CAIA,GAH0B,aAAtBjxB,KAAKstV,cACL+Y,EAAS/7U,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,EAASgB,oBAEzDD,EAAahB,EACb,GAAMpmW,KAAKk9V,SAASn0C,cAAeg+C,WAAWV,EAASt9C,eA0BnD/oT,KAAKk9V,SAAS5yU,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,QAzBrD,GAA0B,aAAtBrmW,KAAKstV,aACL,GAAI+Y,EAASU,WAAWV,EAASt9C,cAAcvqR,WAAY,CACvD,IAAI8oU,EAAiBtnW,KAAKk9V,SAAS5yU,WACnC+7U,EAAS/7U,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,GAChDiB,EAAej3S,aAAag2S,EAASt9C,cAAcvqR,UAAW8oU,EAAez/U,WAAW,GAC5F,MAEI7nB,KAAKk9V,SAAS5yU,WAAW+lC,aAAcg2S,EAASt9C,cAAcvqR,UAAYx+B,KAAKk9V,SAASn0C,cAAclhS,WAAW,IACjHw+U,EAAS/7U,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,OAGnD,CACD,IAAIkB,EAAWlB,EAASt9C,cAAevqR,UACvC,GAAI6nU,EAASU,WAAWQ,GAAU,CAC1BD,EAAiBtnW,KAAKk9V,SAAS5yU,WACnC+7U,EAAS/7U,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,GAChDiB,EAAej3S,aAAak3S,EAASD,EAAez/U,WAAW,GACnE,MAEI7nB,KAAKk9V,SAAS5yU,WAAW+lC,aAAcg2S,EAASt9C,cAAevqR,UAAWx+B,KAAKk9V,SAASn0C,cAAclhS,WAAW,IACjHw+U,EAAS/7U,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,EAExD,CAMJe,EAAahB,IACPpmW,KAAKk9V,SAASn0C,cAAeg+C,WAAWV,EAASt9C,eAWnD/oT,KAAKk9V,SAAS5yU,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,EAASgB,oBAVpC,aAAtBrnW,KAAKstV,cACLttV,KAAKk9V,SAASn0C,cAAcpgS,YAAY09U,EAASt9C,cAAcpZ,mBAC/D02D,EAAS/7U,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,EAAS1xT,eAGzD30C,KAAKk9V,SAAS5yU,WAAW+lC,aAAcg2S,EAASt9C,cAAevqR,UAAWx+B,KAAKk9V,SAASn0C,cAAclhS,WAAW,IACjHw+U,EAAS/7U,WAAW+lC,aAAarwD,KAAKk9V,SAAUmJ,IAOhE,EACAnK,EAAIt+V,UAAUspW,aAAe,SAAUrnW,GACnC,IAAI+F,EAAQ5F,KACZw7K,GAAOx7K,KAAKwJ,cACZxJ,KAAKwJ,aAAe,KACpBxJ,KAAKk9V,SAASn6U,cAAc,IAAMg4U,IAAUl6V,MAAM04I,WAAa,UAC/DljI,SAAShC,KAAKxT,MAAM+qI,OAAS,GAC7B,IAAI47N,EAAe,CACfhB,YAAaxmW,KAAKk9V,SAClB9mV,MAAOvW,EAAEuW,MACT1V,OAAQb,EAAEa,OACV+lW,YAAazmW,KAAK88V,OAAO98V,KAAKinW,cAC9BP,cAAe,KACfn/V,MAAOvH,KAAKinW,aACZ15V,QAAQ,GAEZvN,KAAK2sL,QAAQ,UAAW66K,GAAc,SAAUC,GACxCA,EAAgBl6V,OAChB3H,EAAMqyE,UAGFryE,EAAM8zH,MAAM/7H,OAAS,GAAKiI,EAAMu3V,cAAcx/V,OAAS,GACvDiI,EAAM8zH,MAAQ9zH,EAAMu3V,cACpBv3V,EAAMw4V,aAAex4V,EAAMqhW,aAC3BrhW,EAAMqyE,YAGNryE,EAAMs3V,SAASn6U,cAAc,IAAMg4U,IAAUl6V,MAAM04I,WAAa,GAChE61J,GAAY,CAACxpS,EAAMi3V,QAAQ95U,cAAc,IAAM+3U,KAAiBlQ,IAChEhlV,EAAMs8V,UAAUt8V,EAAMqhW,aAAc,MAAM,GAGtD,IACAjnW,KAAKk9V,SAAW,IACpB,EASAhB,EAAIt+V,UAAUsoW,UAAY,SAAU3+V,EAAOrG,GACvC,IAAI27V,EAAU5nN,GAAU,IAAMkmN,GAAan7V,KAAKkvB,SAAS3nB,GACrDy3T,GAAM69B,MAGI,IAAV37V,GACA27V,EAAQ7wU,UAAUG,OAAO+2T,GAAaQ,IACtCmZ,EAAQltD,kBAAkBh2Q,aAAa,WAAYkjU,EAAQltD,kBAAkB5+N,aAAa,oBAG1F8rR,EAAQ7wU,UAAUC,IAAIi3T,GAAaQ,IACnCmZ,EAAQltD,kBAAkBj2Q,gBAAgB,YACtCmjU,EAAQ7wU,UAAU6oB,SAASylT,KAC3Bt6V,KAAKgwI,OAAOzoI,EAAQ,IAGvBy3T,GAAMh/T,KAAK05H,MAAMnyH,MAClBvH,KAAK05H,MAAMnyH,GAAOgN,UAAYrT,EAC9BlB,KAAK4xS,YAETirD,EAAQljU,aAAa,iBAA4B,IAAVz4B,EAAkB,QAAU,QACvE,EAQAg7V,EAAIt+V,UAAUooW,OAAS,SAAUtsO,EAAOnyH,GACpC,IAAI3B,EAAQ5F,KACR0nW,EAAU,CAAEC,WAAYjuO,EAAOnsH,QAAQ,GACtCvN,KAAKu/V,UAQNv/V,KAAK4nW,iBAAiBluO,EAAOnyH,GAP7BvH,KAAK2sL,QAAQ,SAAU+6K,GAAS,SAAUG,GACjCA,EAAct6V,QACf3H,EAAMgiW,iBAAiBluO,EAAOnyH,EAEtC,IAKAvH,KAAKyqU,SACLzqU,KAAK0/S,sBAEb,EACAw8C,EAAIt+V,UAAUgqW,iBAAmB,SAAUluO,EAAOnyH,GAC9C,IAAI3B,EAAQ5F,KACR8nW,EAAe,EAEnB,GADA9nW,KAAK48V,OAAS5sN,GAAO,IAAMmqN,GAAYn6V,KAAKkvB,SACxC8vS,GAAMh/T,KAAK48V,QACX58V,KAAK05H,MAAQA,EACb15H,KAAKq/V,gBACLr/V,KAAKwkW,oBAEJ,CACD,IAAIuD,EAAa9yN,GAAU,kBAAoBkmN,GAAan7V,KAAKkvB,SAASvxB,OAO1E,GANmB,IAAfoqW,IACAD,EAAe9nW,KAAKimF,UAAY,GAEhC+4O,GAAMz3T,KACNA,EAAQwgW,EAAa,GAErBA,EAAaxgW,GAASA,EAAQ,GAAKqwB,MAAMrwB,GACzC,OAEe,IAAfwgW,GAAqB/oC,GAAMh/T,KAAK48V,UAChC58V,KAAK48V,OAAO/7V,MAAM6I,QAAU,IAE3Bs1T,GAAMh/T,KAAKi9V,UACZj9V,KAAKi9V,QAAQjxU,UAAUC,IAAI2+T,IAE/B5qV,KAAK68V,QAAU7sN,GAAO,IAAMkrN,GAAcl7V,KAAKy+V,gBAC/Cz+V,KAAK4xU,OAAQ,EACb,IAAIo2B,EAAahoW,KAAK++V,YAAYrlO,EAAOnyH,GACzCvH,KAAK4xU,OAAQ,EACb,IACIq2B,EADAC,EAAM,EAEVxuO,EAAM32H,SAAQ,SAAUkuB,EAAM2xU,GAa1B,GAZAqF,EAAch3U,EAAK4uU,gBAAkB5uU,EAAK+7J,OAAOl6I,KAC3CksR,GAAM/tS,EAAK4uU,gBAAkB5uU,EAAK+7J,SAAWgyI,GAAMipC,IAC7B,IAAvBA,EAAYtqW,SAAkBqhU,GAAM/tS,EAAK+7J,SAAWgyI,GAAM/tS,EAAK+7J,OAAO0nI,WACnEszC,EAAWpF,KACP5jC,GAAM/tS,EAAKzI,MACXyI,EAAKzI,GAAKghU,GAAW5jV,EAAMi4V,MAAQ,IAAMjC,IAAiBkM,EAAelF,GAAO73V,YAEpFi9V,EAAWpF,GAAO3nB,eAAe,WAAahqT,EAAKzI,IAEvD5iB,EAAM8zH,MAAM3iE,OAAQxvD,EAAQ2gW,EAAM,EAAGj3U,GACrCi3U,KAEAtiW,EAAM62V,aAAez9B,GAAM/tS,EAAK+7J,UAAYgyI,GAAM/tS,EAAK+7J,OAAOl6I,MAAO,CACrE,IAAIuoP,EAAKysE,EAAelF,EACpB3zD,EAAMrpS,EAAM+D,cAAc,MAAO,CACjC6e,GAAI4xU,GAAcx0V,EAAMi4V,MAAQ,IAAMxiE,EAAIzxR,UAAW4/U,GACrDjuR,MAAO,CAAEurI,KAAM,WAAY,kBAAmB0iJ,GAAW,IAAMnuD,KAEnEz1R,EAAM82V,OAAOrsS,aAAa4+O,EAAKrpS,EAAM82V,OAAOn0V,SAAUhB,EAAQq7V,IAC9D,IAAIgB,EAASh+V,EAAM27V,cAAc37V,EAAM82V,OAAQrhE,EAAGtwR,YAClDnF,EAAM28V,WAAWqB,EAAQ3yU,EAAKpD,QAAS,SAAUtmB,EACrD,CACJ,IACAvH,KAAKu8V,MAAM/E,SAASwQ,EAAYzgW,GAC3BvH,KAAKu/V,WACNv/V,KAAK2sL,QAAQ,QAAS,CAAEg7K,WAAYjuO,IAEpC15H,KAAKo+V,eAAiB72V,EACtBvH,KAAKgwI,OAAOzoI,IAGZvH,KAAK6hW,kBACL7hW,KAAK88V,OAAS7nN,GAAU,IAAMkmN,GAAan7V,KAAKy+V,iBAEpDz+V,KAAKwkW,eACT,CACJ,EAOAtI,EAAIt+V,UAAUmnW,UAAY,SAAUx9V,GAChC,IAAI3B,EAAQ5F,KACR+gW,EAAM9rN,GAAU,IAAMkmN,GAAan7V,KAAKkvB,SAAS3nB,GACrD,IAAIy3T,GAAM+hC,GAAV,CAGA,IAAIoH,EAAa,CAAEC,YAAarH,EAAKsH,aAAc9gW,EAAOgG,QAAQ,GAClEvN,KAAK2sL,QAAQ,WAAYw7K,GAAY,SAAUG,GAC3C,IAAKA,EAAgB/6V,OAAQ,CACzB3H,EAAM22V,MAAMxE,YAAYxwV,GACpB3B,EAAM+3V,kBAAqBp2V,IAAU2J,MAAMtT,UAAU6R,QAAQnN,KAAKsD,EAAM63V,eAAgBsD,EAAIv4U,MAC5FjhB,EAAQ2J,MAAMtT,UAAU6R,QAAQnN,KAAKsD,EAAM63V,eAAgBsD,EAAIv4U,KAEnE,IAAI+/U,EAAiB3iW,EAAM63V,eAAehuV,QAAQsxV,EAAIv4U,IACtD5iB,EAAM8zH,MAAM3iE,OAAOwxS,EAAgB,GACnC3iW,EAAM63V,eAAe1mS,OAAOwxS,EAAgB,GAC5C3iW,EAAMy+V,sBACN,IAAImE,EAASx4N,GAAO,IAAMoqN,GAAcx0V,EAAMi4V,MAAQ,IAAMj4V,EAAM47V,SAAST,EAAIv4U,IAAKwnH,GAAO,IAAMoqN,GAAax0V,EAAMspB,UACpH,IAAK8vS,GAAMwpC,GAAS,CAChB,IAAIC,EAAqB7iW,EAAM6iW,mBAC/B,GAAIA,GAAsBA,EAAmB56U,QAAS,CAElD,IADA,IAAI66U,EAAkB,GACbhpW,EAAI,EAAGA,EAAI+oW,EAAmB56U,QAAQlwB,OAAQ+B,IAAK,CACxD,IAAIipW,EAAiBF,EAAmB56U,QAAQnuB,GAAGkpW,UAAU,GACzDC,EAAc//N,GAAQ6/N,EAAgB,IAAMnf,IAChD,IAAKz2D,GAAkB41E,IAAmBE,IAAgBL,EAAQ,CAC9DE,EAAgB7lW,KAAK4lW,EAAmB56U,QAAQnuB,IAChD,KACJ,CACJ,CACIgpW,EAAgB/qW,OAAS,GACzBiI,EAAM+5S,cAAc,CAAC,WAAY+oD,EAEzC,CACAltL,GAAOgtL,EACX,CACA5iW,EAAM+mL,QAAQ,UAAW27K,GACrB1iW,EAAMw2V,gBAAkBx2V,EAAMw2V,eAAez+V,OAAS,IACtDiI,EAAMw2V,eAAe70V,GAAO/G,UAC5BoF,EAAMw2V,eAAe70V,GAAS,KAC9B3B,EAAMw2V,eAAerlS,OAAOxvD,EAAO,IAEnCw5V,EAAI/0U,UAAU6oB,SAASylT,KACvB/yV,EAASA,EAAQ0tI,GAAU,IAAMkmN,GAAc,SAAWE,GAAe,IAAKz1V,EAAMspB,SAASvxB,OAAS,EAAK4J,EAAQ,EAAIA,EACvH3B,EAAM+9V,iBAAkB,EACxB/9V,EAAMw4V,aAAe72V,EACrB3B,EAAMoqI,OAAOzoI,IAERA,IAAU3B,EAAMw4V,eACjB72V,EAAQ3B,EAAMw4V,eACd72V,EAAQ3B,EAAM63V,eAAehuV,QAAQ7J,EAAMk3V,OAAOl3V,EAAMw4V,cAAc51U,IACtE5iB,EAAM4rS,cAAc,CAAE4sD,aAAc72V,GAAS,EAAIA,EAAQ3B,EAAMw4V,eAAgB,GAC/Ex4V,EAAMy3V,UAAYz3V,EAAMw4V,cAE5Bx4V,EAAMk3V,OAAS7nN,GAAU,IAAMkmN,GAAav1V,EAAM64V,iBAEK,IAAvDxpN,GAAU,IAAMkmN,GAAav1V,EAAMspB,SAASvxB,SAC5CiI,EAAMg3V,OAAO/7V,MAAM6I,QAAU,QAEjC9D,EAAM+9V,iBAAkB,CAC5B,CACJ,GAxDA,CAyDJ,EAQAzH,EAAIt+V,UAAUqoW,QAAU,SAAU1+V,EAAOrG,GACrC,IAAIw4H,EACAzoG,EAAOgkH,GAAU,IAAMkmN,GAAan7V,KAAKkvB,SAAS3nB,GACtD,IAAIy3T,GAAM/tS,GAAV,CAOA,GAJI+tS,GAAM99T,KACNA,GAAQ,GAEZlB,KAAKi9V,QAAQjxU,UAAUC,IAAI2+T,KACb,IAAV1pV,EAGA,GAFA+vB,EAAKjF,UAAUC,IAAI2+T,IAEE,KADrBlxN,EAAQub,GAAU,IAAMkmN,GAAc,SAAWvQ,GAAa,IAAK5qV,KAAK68V,UAC9Dl/V,QAAgBszB,EAAKjF,UAAU6oB,SAASylT,KAC9C,GAAc,IAAV/yV,EACA,IAAK,IAAI7H,EAAI6H,EAAQ,EAAG7H,GAAK,EAAGA,IAAK,CACjC,IAAKM,KAAK88V,OAAOp9V,GAAGssB,UAAU6oB,SAAS+1S,IAAa,CAChD5qV,KAAKgwI,OAAOtwI,GACZ,KACJ,CACK,GAAU,IAANA,EACL,IAAK,IAAI4J,EAAI/B,EAAQ,EAAG+B,EAAItJ,KAAK88V,OAAOn/V,OAAQ2L,IAC5C,IAAKtJ,KAAK88V,OAAOxzV,GAAG0iB,UAAU6oB,SAAS+1S,IAAa,CAChD5qV,KAAKgwI,OAAO1mI,GACZ,KACJ,CAGZ,MAGA,IAASA,EAAI/B,EAAQ,EAAG+B,EAAItJ,KAAK88V,OAAOn/V,OAAQ2L,IAC5C,IAAKtJ,KAAK88V,OAAOxzV,GAAG0iB,UAAU6oB,SAAS+1S,IAAa,CAChD5qV,KAAKgwI,OAAO1mI,GACZ,KACJ,OAIc,IAAjBowH,EAAM/7H,QACXqC,KAAKkvB,QAAQlD,UAAUC,IAAI2+T,SAI/B5qV,KAAKkvB,QAAQlD,UAAUG,OAAOy+T,IAC9BlxN,EAAQub,GAAU,IAAMkmN,GAAc,SAAWvQ,GAAa,IAAK5qV,KAAK68V,SACxE5rU,EAAKjF,UAAUG,OAAOy+T,IACD,IAAjBlxN,EAAM/7H,QACNqC,KAAKgwI,OAAOzoI,GAGpBvH,KAAK6hW,kBACL5wU,EAAK0I,aAAa,cAAe,GAAKz4B,GACZ,UAAtBlB,KAAKstV,cAA4BttV,KAAKu8V,OACtCv8V,KAAKu8V,MAAMxL,iBAjDf,CAmDJ,EACAmL,EAAIt+V,UAAUskW,UAAY,SAAUt1V,EAAMwJ,EAAO60T,QAC/B,IAAV70T,IAAoBA,EAAQ,WACX,IAAjB60T,IAA2BA,GAAe,GAC9CjrU,KAAKirU,aAAeA,EACpBjrU,KAAKgwI,OAAOpjI,EAAMwJ,EACtB,EAQA8lV,EAAIt+V,UAAUoyI,OAAS,SAAUpjI,EAAMwJ,GACnC,IAAIxQ,EAAQ5F,KACRwgW,EAAYxgW,KAAKy+V,eACrBz+V,KAAK68V,QAAU7sN,GAAO,IAAMkrN,GAAcsF,GAC1CxgW,KAAK88V,OAAS7nN,GAAU,IAAMkmN,GAAaqF,GAC3CxgW,KAAK6tB,QAAUmiH,GAAO,IAAMoqN,GAAap6V,KAAKkvB,SAC9ClvB,KAAKg9V,SAAWh9V,KAAK88V,OAAO98V,KAAKq9V,WAC7Br+B,GAAMh/T,KAAKo+V,eAAkBp+V,KAAKo+V,aAAe,GAAOp+V,KAAK88V,OAAOn/V,QAAUqC,KAAKo+V,cAAiBxmU,MAAM53B,KAAKo+V,cAC/Gp+V,KAAKo+V,aAAe,EAGpBp+V,KAAK8oW,WAAa9oW,KAAKwhW,SAASxhW,KAAK88V,OAAO98V,KAAKo+V,cAAc51U,IAEnE,IAAIu4U,EAAM/gW,KAAK88V,OAAOlwV,GAClBoyT,GAAM+hC,GACN/gW,KAAK8oW,WAAa,IAGlB9oW,KAAKkkW,YAAclkW,KAAKwhW,SAAST,EAAIv4U,IAEpCw2S,GAAMh/T,KAAKg9V,WAAch9V,KAAKg9V,SAAShxU,UAAU6oB,SAASquS,KAC3DljV,KAAKg9V,SAASz0V,SAAS0oB,KAAK,GAAG0I,aAAa,WAAY35B,KAAKg9V,SAASrtD,kBAAkB5+N,aAAa,aAEzG,IAAI+yR,EAAW,CACX1tV,MAAOA,EACP2tV,aAAc/jW,KAAKg9V,SACnBgH,cAAehkW,KAAKq9V,UACpBe,aAAcp+V,KAAK88V,OAAO98V,KAAKo+V,cAC/BzyK,cAAe3rL,KAAKo+V,aACpB6F,gBAAkBjlC,GAAMh/T,KAAK6tB,SACsD,KAA/EmiH,GAAO,IAAMoqN,GAAcp6V,KAAK69V,MAAQ,IAAM79V,KAAK8oW,WAAY9oW,KAAK6tB,SACxEk7U,cAAehI,EACfiI,eAAgBp8V,EAChBq8V,iBAAmBjqC,GAAMh/T,KAAK6tB,SACsD,KAAhFmiH,GAAO,IAAMoqN,GAAcp6V,KAAK69V,MAAQ,IAAM79V,KAAKkkW,YAAalkW,KAAK6tB,SACzEs2U,SAAUnkW,KAAKw9V,UACfvyB,aAAcjrU,KAAKirU,aACnB19T,QAAQ,GAEPvN,KAAKwiU,WAQNxiU,KAAKipW,iBAAiBr8V,EAAM5M,KAAKirU,cAPjCjrU,KAAK2sL,QAAQ,YAAam3K,GAAU,SAAUoF,GACrCA,EAAW37V,QACZ3H,EAAMqjW,iBAAiBr8V,EAAMhH,EAAMqlU,aAE3C,IAKJjrU,KAAKirU,cAAe,CACxB,EACAixB,EAAIt+V,UAAUqrW,iBAAmB,SAAUr8V,EAAMq+T,GAC7C,GAAoB,kBAATr+T,EAAmB,CAC1B,IAAKoyT,GAAMh/T,KAAK88V,OAAOlwV,MAAW5M,KAAK88V,OAAOlwV,GAAMof,UAAU6oB,SAASquS,KACnEljV,KAAK88V,OAAOlwV,GAAMof,UAAU6oB,SAAS+1S,KACrC,IAAK,IAAIlrV,EAAIkN,EAAO,EAAGlN,EAAIM,KAAK05H,MAAM/7H,OAAQ+B,IAAK,CAC/C,IAA+B,IAA3BM,KAAK05H,MAAMh6H,GAAG6U,WAAgD,IAA1BvU,KAAK05H,MAAMh6H,GAAG87J,QAAkB,CACpE5uJ,EAAOlN,EACP,KACJ,CAEIkN,EAAO,CAEf,CAEJ,GAAI5M,KAAK88V,OAAOn/V,OAASiP,GAAQA,GAAQ,IAAMgrB,MAAMhrB,GAGjD,GAFA5M,KAAKq9V,UAAYr9V,KAAKo+V,aACtBp+V,KAAKg9V,SAAWh9V,KAAK88V,OAAO98V,KAAKq9V,WAC7Br9V,KAAK88V,OAAOlwV,GAAMof,UAAU6oB,SAASwmT,KAAiBr7V,KAAKqjW,kBAE3D,GADArjW,KAAKwjW,UAAUxjW,KAAK2gW,aAAa3gW,KAAK88V,OAAOlwV,IAAQ,KAAMq+T,IACrDjM,GAAMh/T,KAAK05H,QAAU15H,KAAK05H,MAAM/7H,OAAS,GAAMqC,KAAK29V,iBAAkB,CACxE39V,KAAK88V,OAAS7nN,GAAU,IAAMimN,GAAe,KAAOC,GAAan7V,KAAK48V,QACtE,IAAI3rU,EAAOjxB,KAAK05H,MAAM9sH,GACtB5M,KAAK05H,MAAM3iE,OAAOnqD,EAAM,GACxB5M,KAAK05H,MAAM3iE,OAAO/2D,KAAK88V,OAAOn/V,OAAS,EAAG,EAAGszB,GAC7C,IAAIk4U,EAASnpW,KAAKy9V,eAAe7wV,GACjC5M,KAAKy9V,eAAe1mS,OAAOnqD,EAAM,GACjC5M,KAAKy9V,eAAe1mS,OAAO/2D,KAAK88V,OAAOn/V,OAAS,EAAG,EAAGwrW,EAC1D,OAGAnpW,KAAKwjW,UAAU52V,EAAM,KAAMq+T,QAI/BjrU,KAAKwjW,UAAU,EAAG,KAAMv4B,EAEhC,MACSr+T,aAAiB+mB,aACtB3zB,KAAKwjW,UAAUxjW,KAAKiiW,YAAYr1V,GAAO,KAAMq+T,EAErD,EAOAixB,EAAIt+V,UAAUwrW,aAAe,SAAUC,GAEnC,IADA,IAAI5/V,EACK/J,EAAI,EAAGA,EAAIM,KAAK88V,OAAOn/V,OAAQ+B,IAAK,CAEzC,GAAI2pW,IADQrpW,KAAK88V,OAAOp9V,GAAGqxE,aAAa,WACf,CACrBtnE,EAAW/J,EACX,KACJ,CACJ,CACA,OAAO+J,CACX,EAQAyyV,EAAIt+V,UAAUk6I,QAAU,SAAU52I,GAC9BlB,KAAKq2U,YAAYr2U,KAAKkvB,QAASg0T,GAAahiV,GAC5ClB,KAAKkvB,QAAQyK,aAAa,gBAAiB,GAAKz4B,EACpD,EAMAg7V,EAAIt+V,UAAU6hT,eAAiB,WAC3B,OAAOz/S,KAAK+/S,aAAa,CAAC,eAAgB,YAC9C,EAOAm8C,EAAIt+V,UAAU40S,cAAgB,WAC1B,MAAO,KACX,EASA0pD,EAAIt+V,UAAUs0S,kBAAoB,SAAUmF,EAASC,GAEjD,IADA,IAAI1xS,EAAQ5F,KACH26D,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAK+3S,GAAU18O,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAE9D,OADWpgD,EAAGogD,IAEV,IAAK,QACD4gR,GAASv7U,KAAKkvB,QAAS,CAAE3lB,MAAOwqR,GAAWsjB,EAAQ9tS,SACnD,MACJ,IAAK,SACDgyU,GAASv7U,KAAKkvB,QAAS,CAAExS,OAAQq3Q,GAAWsjB,EAAQ36R,UACpD1c,KAAKm+V,kBAAiB,GACtB,MACJ,IAAK,WACD,IAAIh1B,EAAYnpU,KAAKkvB,QAAQnM,cAAc,IAAMo3U,IACxB,KAArB7iD,EAAQ+c,UAAoBthC,GAAkBukB,EAAQ+c,WAStDr0T,KAAKq2U,YAAYr2U,KAAKkvB,QAASmoR,EAAQgd,UAAU,GAC5CthC,GAAkBo2C,IACnBnpU,KAAKq2U,YAAYlN,EAAW9xB,EAAQgd,UAAU,KAVlDr0T,KAAKq2U,YAAYr2U,KAAKkvB,QAASooR,EAAQ+c,UAAU,GACjDr0T,KAAKq2U,YAAYr2U,KAAKkvB,QAASmoR,EAAQgd,UAAU,GAC5CthC,GAAkBo2C,KACnBnpU,KAAKq2U,YAAYlN,EAAW7xB,EAAQ+c,UAAU,GAC9Cr0T,KAAKq2U,YAAYlN,EAAW9xB,EAAQgd,UAAU,KAStD,MACJ,IAAK,QACDr0T,KAAK0lW,0BAA0BruD,EAASC,GACxC,MACJ,IAAK,kBACDt3S,KAAKi/V,eAAe5nD,EAAQ6nD,iBAC5B,MACJ,IAAK,mBACDl/V,KAAKq8V,yBACL,MACJ,IAAK,eACDr8V,KAAKo+V,aAAe9mD,EAAQ8mD,aAC5Bp+V,KAAKgwI,OAAOqnK,EAAQ+mD,cACpB,MACJ,IAAK,kBACDp+V,KAAK8wV,kBAAkBz5C,EAAQ2mD,iBAC/B,MACJ,IAAK,YACDh+V,KAAKs+V,OAAOjnD,EAAQuG,WACpB,MACJ,IAAK,eACD59S,KAAKu8V,MAAMjP,aAAej2C,EAAQi2C,aAClCttV,KAAKu8V,MAAM3qD,WACX5xS,KAAKq8V,yBACL,MACJ,IAAK,mBACDr8V,KAAKm+V,kBAAiB,GACtBn+V,KAAKgwI,OAAOhwI,KAAKo+V,cACjB,MACJ,IAAK,aACGp+V,KAAKu8V,QACLv8V,KAAKu8V,MAAM3X,WAAa5kV,KAAK4kV,YAEjC,MACJ,IAAK,mBACD5kV,KAAKwkW,gBACL,MACJ,IAAK,WACGxkW,KAAK29V,mBACL39V,KAAKo8V,eAAer5V,SAAQ,SAAUkuB,GAClCA,EAAKkzR,SAAWv+S,EAAMu+S,QAC1B,IACAnkT,KAAKi4E,WAIrB,CACJ,EAMAikR,EAAIt+V,UAAU0rW,iBAAmB,WAI7B,GAHItpW,KAAKyqU,SAAWzqU,KAAKy8V,YACrBz8V,KAAK2/S,gBAEJ3/S,KAAKy8V,WAiFL,CACD,IAAI+B,EAAWx+V,KAAKkvB,QAAQnM,cAAc,IAAMm4U,IAC5ChsU,EAAUlvB,KAAKkvB,QAAQnM,cAAc,IAAMo4U,GAAc,IAAMb,IAC/D/yV,EAAQvH,KAAKy/V,gBAAgBvwU,EAAQ1G,IACrCwkK,EAAS99J,EAAQ4hF,UACjBy4P,EAAgBvpW,KAAKkvB,QAAQnM,cAAc,IAAMq3U,IAAar3U,cAAc,IAAMu3U,IAAY/xV,SAAS,GACvGihW,EAAeD,EAAc9gV,UACjC+yJ,GAAOtsJ,GACPssJ,GAAO+tL,GACP,IAAI/tS,EAAO,CACP5xD,UAAWuxV,GAAc,IAAMtR,GAAe,IAAMyQ,GAAY9xU,GAAIghU,GAAWxpV,KAAK69V,MAAQ,IAAMt2V,GAElGkiW,EAAYzpW,KAAK2J,cAAc,OAAQ,CACvCC,UAAWixV,GAAUpyU,UAAWukK,EAAQzxH,MAAO,CAAE,KAAQ,kBAC1D+sQ,UACCohC,EAAQ1pW,KAAK2J,cAAc,MAAO,CAClCC,UAAWoxV,GAAevyU,UAAWghV,EAAYzpW,KAAK28V,OAAOr0B,YAC9DA,UAEC1gI,GADAn+L,EAAWylB,EAAQygR,kBAAkB5+N,aAAa,iBAC3C/wE,KAAK2J,cAAc,MAAO,CACjCC,UAAWmxV,GAAUtyU,UAAWihV,EAChCnuS,MAAO,CAAE9xD,SAAUA,EAAU,gBAAiBA,EAAUq9L,KAAM,MAAO,gBAAiBszJ,GAAcp6V,KAAK69V,MAAQ,IAAMt2V,EAAO,gBAAiB,WAEnJi3V,EAASnuS,aAAarwD,KAAK2J,cAAc,MAAO6xD,GAAOgjS,EAASj2V,SAAShB,EAAQ,IACjFvH,KAAKkvB,QAAQnM,cAAc,IAAMo4U,GAAc,IAAMb,IAAY3xU,YAAYi/K,GACzE+hK,EAAS3pW,KAAK2J,cAAc,MAAO,CAAE8e,UAAW+gV,IACpDxpW,KAAKkvB,QAAQnM,cAAc,IAAMq3U,IAAar3U,cAAc,IAAMu3U,IAAY3xU,YAAYghV,EAC9F,MA3GI,GAAI3pW,KAAKkvB,QAAQnM,cAAc,IAAMo4U,GAAc,IAAMb,IAAa,CAClE9+K,GAAOx7K,KAAKkvB,QAAQnM,cAAc,IAAMo4U,GAAc,IAAMb,IAAY/xV,SAAS,IACjFizK,GAAOx7K,KAAKkvB,QAAQnM,cAAc,IAAMq3U,IAAar3U,cAAc,IAAMu3U,IAAY/xV,SAAS,IAC9F,IAAI0oB,EAAOjxB,KAAK05H,MAAM15H,KAAKo+V,cACvB96R,EAAO07P,GAAM/tS,EAAK+7J,SAAWgyI,GAAM/tS,EAAK+7J,OAAO2nI,cAAiB,GAAK1jS,EAAK+7J,OAAO2nI,aACjF5wK,EAAOi7K,GAAM/tS,EAAK+7J,SAAWgyI,GAAM/tS,EAAK+7J,OAAO0nI,SAAY,GAAKzjS,EAAK+7J,OAAO0nI,QAC5E5hR,EAAO7hB,EAAK4uU,gBAAkB5uU,EAAK+7J,OAAOl6I,KAC1C82T,EAAU5pW,KAAK2J,cAAc,MAAO,CAAEC,UAAWixV,GAAUt/R,MAAO,CAAE,KAAQ,kBAC3EyjQ,GAAMlsR,EAAK5uB,SAIZlkB,KAAKkgW,kBAAkB0J,EAAS92T,EAAM9yC,KAAKo+V,cAH3CwL,EAAQjhV,YAAYmqB,GAKxB,IACIkyJ,EAAOhlM,KAAK2J,cAAc,OAAQ,CAClCC,UAAW4wV,GAAY,IAAMS,GAAe,IAAMR,GAAW,IAAMn3R,EAAM,IAAMygF,IAE/E8lN,EAAS7pW,KAAK2J,cAAc,MAAO,CAAEC,UAAWoxV,KACpD6O,EAAOlhV,YAAYihV,GACL,KAAT92T,QAAwBzsC,IAATysC,GAA+B,KAARixG,GAC1B,SAARzgF,GAA0B,QAARA,EACnBumS,EAAOx5S,aAAa20I,EAAM6kK,EAAOl6D,mBAGjCk6D,EAAOlhV,YAAYq8K,GAGvBhlM,KAAKm8V,aAAc,IAGF,KAARp4M,EAAc6lN,EAAU5kK,KACpBA,IACTxpB,GAAOouL,GACPC,EAAOlhV,YAAYq8K,GACnBhlM,KAAKm8V,aAAc,GAG3B,IAAI1yV,EAAWu1T,GAAM/tS,EAAKxnB,UAAY,KAAOwnB,EAAKxnB,SAASsB,WACvD++V,EAAW74U,EAAK1c,SAAY,CAAC,EAAI,CAAE9K,SAAUA,EAAU,gBAAiBA,EAAUq9L,KAAM,MAAO,gBAAiB,QACpH+iK,EAAOlhV,YAAY3oB,KAAK28V,OAAO1+R,WAAU,IACzC,IAAI8rS,EAAS/pW,KAAK2J,cAAc,MAAO,CAAEC,UAAWmxV,GAAUx/R,MAAOuuS,IACrEC,EAAOphV,YAAYkhV,GACP,QAARvmS,GAAyB,WAARA,GACjBtjE,KAAKkvB,QAAQlD,UAAUC,IAAI,mBAE/BjsB,KAAKkvB,QAAQnM,cAAc,IAAMo4U,GAAc,IAAMb,IAAY3xU,YAAYohV,GAC7E,IAAIJ,EAAS3pW,KAAK2J,cAAc,OAC5B0mT,EAAMp/R,EAAKpD,QACXs0U,OAAS,EACb,GAAmB,kBAAR9xC,GAAoB2O,GAAM3O,EAAI5nS,WAIrC,GAHmB,kBAAR4nS,GAAoBrwT,KAAKu0T,sBAChClE,EAAMoC,GAAmBG,SAASvC,IAEvB,MAAXA,EAAI,IAAyB,MAAXA,EAAI,GACtB,GAAIh6S,SAASkQ,iBAAiB8pS,GAAK1yT,OAAQ,CACvC,IAAI8kW,EAASpsV,SAAS0M,cAAcstS,GACpC8xC,EAASM,EAAOn6B,UAAU3/T,OAC1BghW,EAAOhhV,YAAY85U,GACnBA,EAAO5hW,MAAM6I,QAAU,EAC3B,MAEI1J,KAAKqiW,eAAesH,EAAQt5C,EAAK,UAAWrwT,KAAKo+V,mBAIrDp+V,KAAKqiW,eAAesH,EAAQt5C,EAAK,UAAWrwT,KAAKo+V,mBAIrDuL,EAAOhhV,YAAY0nS,GAElB2O,GAAMmjC,KAC2C,IAA9CniW,KAAK09V,YAAYjuV,QAAQ4gT,EAAItlT,aAC7B/K,KAAK09V,YAAY76V,KAAKwtT,EAAItlT,YAGlC/K,KAAKkvB,QAAQnM,cAAc,IAAMymU,GAAW,IAAM8Q,IAAY3xU,YAAYghV,EAC9E,CA8BA3pW,KAAKyqU,SACLzqU,KAAK0/S,sBAEb,EAMAw8C,EAAIt+V,UAAUy+V,uBAAyB,WACnC,IAAI90B,EAAYv3L,GAAO,IAAMmrN,GAAc,IAAME,GAAe,IAAMf,GAAYt6V,KAAKkvB,UAClF8vS,GAAMuI,IAAcvnU,KAAKqjW,kBAC1BrjW,KAAKgwI,OAAOhwI,KAAKiiW,YAAY16B,IAEjCvnU,KAAKqkW,qBACT,EACA1uD,GAAW,CACPf,GAAW,GAAIqnD,KAChBC,EAAIt+V,UAAW,aAAS,GAC3B+3S,GAAW,CACPnB,GAAS,SACV0nD,EAAIt+V,UAAW,aAAS,GAC3B+3S,GAAW,CACPnB,GAAS,SACV0nD,EAAIt+V,UAAW,cAAU,GAC5B+3S,GAAW,CACPnB,GAAS,KACV0nD,EAAIt+V,UAAW,gBAAY,GAC9B+3S,GAAW,CACPnB,GAAS,IACV0nD,EAAIt+V,UAAW,oBAAgB,GAClC+3S,GAAW,CACPnB,GAAS,QACV0nD,EAAIt+V,UAAW,uBAAmB,GACrC+3S,GAAW,CACPnB,GAAS,YACV0nD,EAAIt+V,UAAW,wBAAoB,GACtC+3S,GAAW,CACPnB,GAAS,eACV0nD,EAAIt+V,UAAW,oBAAgB,GAClC+3S,GAAW,CACPnB,GAAS,YACV0nD,EAAIt+V,UAAW,cAAU,GAC5B+3S,GAAW,CACPnB,IAAS,IACV0nD,EAAIt+V,UAAW,yBAAqB,GACvC+3S,GAAW,CACPnB,IAAS,IACV0nD,EAAIt+V,UAAW,2BAAuB,GACzC+3S,GAAW,CACPnB,IAAS,IACV0nD,EAAIt+V,UAAW,uBAAmB,GACrC+3S,GAAW,CACPnB,IAAS,IACV0nD,EAAIt+V,UAAW,wBAAoB,GACtC+3S,GAAW,CACPnB,MACD0nD,EAAIt+V,UAAW,kBAAc,GAChC+3S,GAAW,CACPnB,MACD0nD,EAAIt+V,UAAW,gBAAY,GAC9B+3S,GAAW,CACPnB,IAAS,IACV0nD,EAAIt+V,UAAW,wBAAoB,GACtC+3S,GAAW,CACPhB,GAAQ,CAAC,EAAGonD,KACbG,EAAIt+V,UAAW,iBAAa,GAC/B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,eAAW,GAC7B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,cAAU,GAC5B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,aAAS,GAC3B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,iBAAa,GAC/B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,gBAAY,GAC9B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,gBAAY,GAC9B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,eAAW,GAC7B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,mBAAe,GACjC+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,gBAAY,GAC9B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,eAAW,GAC7B+3S,GAAW,CACPxuH,MACD+0K,EAAIt+V,UAAW,iBAAa,GAC/Bs+V,EAAMvmD,GAAW,CACbX,IACDknD,EAEP,CAnsEyB,CAmsEvBhyV,KJ32ESk2U,GAMRA,KAAkBA,GAAgB,CAAC,IALpBA,GAAoB,KAAI,GAAK,OAC3CA,GAAcA,GAAwB,SAAI,GAAK,WAC/CA,GAAcA,GAAwB,SAAI,GAAK,WAC/CA,GAAcA,GAAyB,UAAI,GAAK,YAChDA,GAAcA,GAAwB,SAAI,GAAK,YAMxCC,GAMRA,KAAcA,GAAY,CAAC,IALhBA,GAAgB,KAAI,GAAK,OACnCA,GAAUA,GAAgB,KAAI,GAAK,OACnCA,GAAUA,GAAkB,OAAI,GAAK,SACrCA,GAAUA,GAAqB,UAAI,GAAK,YACxCA,GAAUA,GAAyB,cAAI,GAAK,iBAMrCC,GAWRA,KAAoBA,GAAkB,CAAC,IAVtBA,GAAsB,KAAI,GAAK,OAC/CA,GAAgBA,GAA2B,UAAI,GAAK,YACpDA,GAAgBA,GAAqB,IAAI,GAAK,MAC9CA,GAAgBA,GAA2B,UAAI,GAAK,YACpDA,GAAgBA,GAAuB,MAAI,GAAK,QAChDA,GAAgBA,GAAwB,OAAI,IAAM,SAClDA,GAAgBA,GAA4B,WAAI,IAAM,aACtDA,GAAgBA,GAA+B,cAAI,IAAM,gBACzDA,GAAgBA,GAA4B,WAAI,KAAO,aACvDA,GAAgBA,GAAyB,QAAI,KAAO,WAM7CC,GAIRA,KAAkBA,GAAgB,CAAC,IAHd,KAAI,OACxBA,GAAoB,KAAI,OACxBA,GAAqB,MAAI,SAMlBC,GAGRA,KAA8BA,GAA4B,CAAC,IAFhCA,GAAmC,QAAI,GAAK,UACtEA,GAA0BA,GAAiC,MAAI,GAAK,SAM7DC,GAORA,KAAgBA,GAAc,CAAC,IALlBA,GAAkB,KAAI,GAAK,OAEvCA,GAAYA,GAAkB,KAAI,GAAK,OAEvCA,GAAYA,GAAoB,OAAI,GAAK,UAMlCC,GA4BRA,KAAeA,GAAa,CAAC,IA3BX,KAAI,OACrBA,GAAsB,UAAI,YAE1BA,GAAqB,SAAI,WAEzBA,GAAsB,UAAI,YAC1BA,GAAiB,KAAI,OACrBA,GAAqB,SAAI,WACzBA,GAAiB,KAAI,OAErBA,GAAqB,SAAI,WAEzBA,GAAsB,UAAI,YAE1BA,GAAsB,UAAI,YAE1BA,GAAsB,UAAI,YAC1BA,GAAoB,QAAI,UAExBA,GAAqB,SAAI,WAEzBA,GAAsB,UAAI,YAE1BA,GAAsB,UAAI,YAC1BA,GAAiB,KAAI,OAErBA,GAAqB,SAAI,YAMlBC,GAORA,KAAqBA,GAAmB,CAAC,IANd,QAAI,UAC9BA,GAA2B,SAAI,WAC/BA,GAA2B,SAAI,WAC/BA,GAA2B,SAAI,WAC/BA,GAA+B,aAAI,eACnCA,GAA8B,YAAI,eAM3BC,GAMRA,KAAkBA,GAAgB,CAAC,IALX,QAAI,UAC3BA,GAA2B,YAAI,cAC/BA,GAAwB,SAAI,WAC5BA,GAAwB,SAAI,WAC5BA,GAAwB,SAAI,YAMrBC,GAaRA,KAA8BA,GAA4B,CAAC,IAZtB,SAAI,WACxCA,GAAuC,YAAI,cAC3CA,GAAiC,MAAI,QACrCA,GAAiC,MAAI,QACrCA,GAAqC,UAAI,YACzCA,GAAwC,aAAI,eAC5CA,GAA4C,iBAAI,mBAChDA,GAA+C,oBAAI,sBACnDA,GAAsC,WAAI,aAC1CA,GAAgC,KAAI,OACpCA,GAA8C,mBAAI,qBAClDA,GAA2C,gBAAI,mBAMxCC,GAORA,KAAuBA,GAAqB,CAAC,IANjB,OAAI,SAC/BA,GAAyB,KAAI,OAC7BA,GAA2B,OAAI,SAC/BA,GAA2B,OAAI,SAC/BA,GAAyB,KAAI,OAC7BA,GAAmC,eAAI,kBAMhCC,GAGRA,KAAyBA,GAAuB,CAAC,IAFrB,KAAI,OAC/BA,GAA2B,KAAI,QAMxBC,GAKRA,KAAwBA,GAAsB,CAAC,IAJrB,IAAI,MAC7BA,GAAyB,IAAI,MAC7BA,GAA0B,KAAI,OAC9BA,GAA0B,KAAI,OK7JlC,ICkBWgpB,GDlBPC,GAA2B,WAO3B,SAASA,EAAUt9B,EAAWC,GAC1B,IAAIhnU,EAAQ5F,KACZA,KAAKkqW,aAAc,EACnBlqW,KAAKmqW,eAAgB,EACrBnqW,KAAKoqW,sBAAwB,GAC7BpqW,KAAKqqW,qBAAuB,GAE5BrqW,KAAKsiB,UAAY,GAIjBtiB,KAAKsqW,aAAe,GAIpBtqW,KAAKuqW,iBAAmB,GAIxBvqW,KAAKwqW,kBAAoB,GAKzBxqW,KAAKyqW,oBAAsB,GAK3BzqW,KAAK0qW,iBAAmB,GAKxB1qW,KAAK2qW,oBAAsB,GAE3B3qW,KAAK4qW,SAAW,GAEhB5qW,KAAK6qW,cAAgB,GACrB7qW,KAAK8qW,iBAAkB,EACvB9qW,KAAK+qW,eAAgB,EACrB/qW,KAAKgrW,6BAA8B,EACnChrW,KAAKirW,gCAAiC,EAEtCjrW,KAAKkrW,oBAAsB,GAE3BlrW,KAAKmrW,kBAAoB,GAKzBnrW,KAAKorW,gBAAkB,GACvBprW,KAAKqrW,qBAAuB,GAC5BrrW,KAAKsrW,mBAAqB,GAK1BtrW,KAAKurW,aAAe,EACpBvrW,KAAKgwI,OAAS,SAAUnwI,GAChBG,KAAKmqW,gBACLnqW,KAAKkqW,aAAc,EACnBlqW,KAAKmqW,eAAgB,GAErBtqW,EAAEskW,UAAkC,QAAtBnkW,KAAKwrW,eAA2BxrW,KAAKkqW,cACnDrqW,EAAE0N,QAAS,EACXvN,KAAKkqW,aAAc,EAE3B,EAEAlqW,KAAKyrW,cAAgB,SAAU7+V,GAE3B,IAEI8+V,EAAe9+V,EAAKlM,OAAOq3L,MAC/B,GAA6B,OAAzBnrL,EAAKlM,OAAOq3L,MAAM,GAAa,CAC/B,IAAI4zK,EAAeD,EAAa,GAChC,GAAwC,UAApCC,EAAanuW,KAAK27B,MAAM,KAAK,GAAgB,CAC7C,IAAI4gG,EAAS,IAAI8X,WAEjB9X,EAAOh/D,OAAS,SAAUl7D,GAEtB,IAAIuiI,EAAS/rH,SAASkS,eAAe3iB,EAAM+mU,UAAUz9S,QAAQ1G,GAAK,2BAE9Ds4B,EAAUshF,EAAO4O,WAAW,MAE5BC,EAAQ,IAAIC,MAEZ54D,EAAQ1yE,EACZqrI,EAAMl2E,OAAS,WAEM1kD,SAASkS,eAAe3iB,EAAM+mU,UAAUz9S,QAAQ1G,GAAK,uBAC3D3nB,MAAM04I,WAAa,SAC9Bz4F,EAAQqwF,UAAUF,EAAO,EAAG,EAAG7O,EAAO74H,MAAO64H,EAAO1lH,QACpD47D,EAAMszR,oBAAmB,GACzBtzR,EAAMgyR,aAAer5N,EAAM//G,IAC3BonD,EAAMuzR,qBAAuB56N,EAAM66N,cACnCxzR,EAAMyzR,oBAAsB96N,EAAM+6N,YACtC,EACA/6N,EAAM//G,IAAMrxB,EAAE8rC,cAAc3nC,OAC5Bs0E,EAAMgyR,aAAezqW,EAAE8rC,cAAc3nC,OACrCs0E,EAAM2zR,wBAA0BpsW,EAAE8rC,cAAc3nC,MACpD,EACA+1H,EAAOkY,cAAc05N,EACzB,CACJ,CACA/+V,EAAKlM,OAAOQ,MAAQ,GACpB0L,EAAK++B,cAAczqC,MAAQ,EAC/B,EACAlB,KAAK2sU,UAAYA,EACjB3sU,KAAK4sU,cAAgBA,CACzB,CAo9DA,OA/8DAq9B,EAAUrsW,UAAUsuW,qBAAuB,WACvC,IAAItmW,EAAQ5F,KAIZ,GAFAA,KAAKoqW,sBAAwB,GAC7BpqW,KAAKqqW,qBAAuB,GACvB12E,KAiFA,CAED,IAAIvxJ,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjE,GAAI45G,EAAQ,CACR,IAAKpiI,KAAK4sU,cAAcu/B,cAAcppV,cAAc,2BAG5CqpV,EAAYziW,GAAc,MAAO,CAAE6e,GAFvBxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAEgB,oBAAqB5e,UAAW,2BAC7E/I,MAAM6I,QAAU,QAC1B1J,KAAK4sU,cAAcu/B,cAAcxjV,YAAYyjV,GAEjDhqO,EAAO/6G,iBAAiB,YAAarnB,KAAKqsW,wBAAwBlqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,YAAarnB,KAAKssW,wBAAwBnqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,UAAWrnB,KAAKusW,sBAAsBpqW,KAAKnC,OACnEoiI,EAAO/6G,iBAAiB,aAAcrnB,KAAKusW,sBAAsBpqW,KAAKnC,OACtEoiI,EAAO/6G,iBAAiB,aAAcrnB,KAAKqsW,wBAAwBlqW,KAAKnC,OACxEoiI,EAAO/6G,iBAAiB,YAAarnB,KAAKssW,wBAAwBnqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,WAAYrnB,KAAKusW,sBAAsBpqW,KAAKnC,OACpEA,KAAKwsW,sBACT,CACAxsW,KAAK2sU,UAAU+F,gBAAgBC,kBAAkB,qBAAsB3yU,KAAK4sU,cAAc6/B,qBAC9F,KAtGiB,CACb,IACIL,KAAYziW,GAAc,MAAO,CAAE6e,GADvBxoB,KAAK2sU,UAAUz9S,QAAQ1G,GACgB,oBAAqB5e,UAAW,2BAC7E/I,MAAM6I,QAAU,QAC1B1J,KAAK4sU,cAAcu/B,cAAcxjV,YAAYyjV,GAC7C,IAAIM,EAAgB1sW,KAAK2sW,wBACrBC,OAAuB,EAWnBA,EAVH5sW,KAAK4sU,cAAc6/B,qBAShBzsW,KAAK4sU,cAAcigC,eACI7sW,KAAK2sU,UAAUmG,UAAUznB,YAAY,gCAGrCrrT,KAAK2sU,UAAUmG,UAAUznB,YAAY,kCAZ5DrrT,KAAK4sU,cAAcigC,eACI7sW,KAAK2sU,UAAUmG,UAAUznB,YAAY,sCAGrCrrT,KAAK2sU,UAAUmG,UAAUznB,YAAY,wCAWhErrT,KAAK8sW,gBACL9sW,KAAK8sW,gBAAgBj/U,QAAU6+U,GAG/B1sW,KAAK8sW,gBAAkB,IAAIvqC,GAAO,CAE9B8G,eAAe,EAAMvD,eAAe,EAAOlB,SAAS,EAAM53I,OAAQ4/K,EAAsBv4C,SAAU,+BAClG3zT,OAAQV,KAAK2sU,UAAUz9S,QAASrB,QAAS6+U,EAAenjW,MAAO,QAASiyJ,SAAS,EAAMmrK,eAAe,EACtGoM,YAAa,WACTntU,EAAM4mW,uBACN5mW,EAAMknW,gBAAgBtsW,UACtBoF,EAAMknW,gBAAkB,KACpBlnW,EAAMmnW,QACNnnW,EAAMmnW,OAAOvsW,UAGjB,IAAIwsW,EAAkB32V,SAASkS,eAAe3iB,EAAM+mU,UAAUz9S,QAAQ1G,GAAK,qBACvEwkV,IAEAA,EAAgB1iV,WAAa0iV,EAAgB1iV,WAAW8T,YAAY4uU,GAAmBA,EAAgBjkD,cAAc3qR,YAAY4uU,IAGhIpnW,EAAMgnU,cAAc6/B,sBAAyB7mW,EAAMgnU,cAAcqgC,uBAA0Bl6E,GAAkBntR,EAAM+mU,UAAUugC,iBAAiBvhU,gBAC/I/lC,EAAM+mU,UAAUwgC,sBAAsBvnW,EAAM+mU,UAAUugC,iBAAiBvhU,cAAcjuC,KAAM,IAE/FkI,EAAMgnU,cAAc6/B,sBAAuB,EAC3C7mW,EAAM+mU,UAAUugC,iBAAiBprF,UACrC,IAEJ9hR,KAAK8sW,gBAAgBp/T,QAAU,CAE3B,CAAEs4R,YAAa,CAAEn4S,QAAS7tB,KAAK2sU,UAAUmG,UAAUznB,YAAY,SAAU92S,UAAU,EAAM8/S,SAAU,iBAAmBr8H,MAAOh4L,KAAKwsW,qBAAqBrqW,KAAKnC,OAE5J,CAAEgmU,YAAa,CAAEn4S,QAAS7tB,KAAK2sU,UAAUmG,UAAUznB,YAAY,UAAWgJ,SAAU,kBAAoBr8H,MAAOh4L,KAAKotW,oBAAoBjrW,KAAKnC,OAE7I,CAAEgmU,YAAa,CAAEn4S,QAAS7tB,KAAK2sU,UAAUmG,UAAUznB,YAAY,UAAWt6Q,WAAW,EAAMx8B,UAAU,EAAM8/S,SAAU,kBAAoBr8H,MAAOh4L,KAAKqtW,mBAAmBlrW,KAAKnC,QAEjLA,KAAK8sW,gBAAgB9uD,SAASouD,IAE9BpsW,KAAK2sU,UAAUz9S,QAAQ5N,YAjEZ,KAkEXthB,KAAKstW,mBACLttW,KAAK2sU,UAAU/uB,YACf59S,KAAK8sW,gBAAgBlvD,UAAY59S,KAAK2sU,UAAU/uB,WAEpD,IAAI2vD,EAAevtW,KAAK8sW,gBAAgBj/U,QAAQ4kR,cAAc,GAAG/4K,MAAM,GACvE,GAAkC,SAA9B6zO,EAAavgL,OAAO0Y,MAAkB,CACtC,IAAI8nK,EAAen3V,SAASkS,eAAe,YAC3CvoB,KAAKytW,sBAAsBD,EAC/B,MACK,GAAkC,SAA9BD,EAAavgL,OAAO0Y,MAAkB,CAC3C,IAAIgoK,EAAer3V,SAASkS,eAAe,aAC3CvoB,KAAKytW,sBAAsBC,EAC/B,KACK,CACD,IAAIC,EAAgBt3V,SAASkS,eAAe,aAC5CvoB,KAAKytW,sBAAsBE,EAC/B,CACJ,CAuBA3tW,KAAK4tW,oBACT,EACA3D,EAAUrsW,UAAUgwW,mBAAqB,WACrC,IAAK5tW,KAAK4sU,cAAc6/B,uBAAyBzsW,KAAK8qW,iBAAmB9qW,KAAK+qW,eAAgB,EACrF/qW,KAAK4sU,cAAcigC,gBAAkB7sW,KAAK8qW,gBAC3C9qW,KAAKsqW,aAAetqW,KAAKkrW,oBAEpBlrW,KAAK4sU,cAAcigC,gBAAkB7sW,KAAK+qW,gBAC/C/qW,KAAKsqW,aAAetqW,KAAKmrW,mBAG7B,IAEI0C,EAFSx3V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBAE1CwoH,WAAW,MAE9B88N,EAAU,IAAI58N,MAClB48N,EAAQ/yS,OAAS,WACb8yS,EAAU18N,UAAU28N,EAAS,EAAG,EACpC,GACK9tW,KAAK4sU,cAAcigC,gBAAkB7sW,KAAK8qW,gBAC3CgD,EAAQ58U,IAAMlxB,KAAKqrW,qBAEdrrW,KAAK4sU,cAAcigC,gBAAkB7sW,KAAK+qW,gBAC/C+C,EAAQ58U,IAAMlxB,KAAKsrW,oBAGvB,IAAI3gL,EAAWt0K,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBAC/DmiK,IACAA,EAAStuJ,SAAU,GAEvBr8B,KAAK4rW,oBAAmB,GACxB5rW,KAAK+tW,mBAAkB,EAC3B,CACJ,EACA9D,EAAUrsW,UAAU6vW,sBAAwB,SAAU9iL,GAC9C3qL,KAAK4sU,cAAc6/B,qBACfzsW,KAAK4sU,cAAcigC,eACf7sW,KAAK2sU,UAAUqhC,6BAA6BC,uBAAyBjuW,KAAK2sU,UAAUqhC,6BAA6BC,sBAAsBC,mBACvIluW,KAAKmuW,mBAAmBxjL,GAGvB3qL,KAAK2sU,UAAUqhC,6BAA6BI,yBAA2BpuW,KAAK2sU,UAAUqhC,6BAA6BI,wBAAwBF,mBAChJluW,KAAKmuW,mBAAmBxjL,GAIxB3qL,KAAK4sU,cAAcigC,eACf7sW,KAAK2sU,UAAU0hC,qBAAqBJ,uBAAyBjuW,KAAK2sU,UAAU0hC,qBAAqBJ,sBAAsBC,mBACvHluW,KAAKmuW,mBAAmBxjL,GAIxB3qL,KAAK2sU,UAAU2hC,uBAAuBF,yBAA2BpuW,KAAK2sU,UAAU2hC,uBAAuBF,wBAAwBF,mBAC/HluW,KAAKmuW,mBAAmBxjL,EAIxC,EACAs/K,EAAUrsW,UAAU2wW,sBAAwB,WACxC,OAAIvuW,KAAK4sU,cAAc6/B,uBAIfzsW,KAAK4sU,cAAcigC,iBACf7sW,KAAK2sU,UAAU0hC,qBAAqBJ,wBAAyBjuW,KAAK2sU,UAAU0hC,qBAAqBJ,sBAAsBC,oBAIhHluW,KAAKgrW,8BAIZhrW,KAAK2sU,UAAU2hC,uBAAuBF,0BAA2BpuW,KAAK2sU,UAAU2hC,uBAAuBF,wBAAwBF,oBAIxHluW,KAAKirW,+BAI5B,EACAhB,EAAUrsW,UAAUuwW,mBAAqB,SAAUxjL,GAC3CA,IACAA,EAASo+H,cAAcloT,MAAM6I,QAAU,OAE/C,EACAugW,EAAUrsW,UAAU4wW,mBAAqB,WAErC,IAAI7jL,EAAWt0K,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBACnE,GAAImiK,GAAYA,EAAStuJ,SACrB,GAA0B,KAAtBr8B,KAAKsqW,aAAqB,CACrBtqW,KAAK4sU,cAAcigC,gBAKpB7sW,KAAK+qW,eAAgB,EACrB/qW,KAAKmrW,kBAAoBnrW,KAAKsqW,eAL9BtqW,KAAK8qW,iBAAkB,EACvB9qW,KAAKkrW,oBAAsBlrW,KAAKsqW,cAOpC,IAAIloO,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjExoB,KAAKorW,gBAAkBhpO,EAAOs2D,YACzB14L,KAAK4sU,cAAcigC,eAIpB7sW,KAAKsrW,mBAAqBtrW,KAAKorW,gBAH/BprW,KAAKqrW,qBAAuBrrW,KAAKorW,eAKzC,OAGIprW,KAAK8qW,kBAAoB9qW,KAAK4sU,cAAcigC,gBAC5C7sW,KAAK8qW,iBAAkB,EACvB9qW,KAAKkrW,oBAAsB,GAC3BlrW,KAAKorW,gBAAkB,GACvBprW,KAAKqrW,qBAAuB,IAEvBrrW,KAAK+qW,eAAiB/qW,KAAK4sU,cAAcigC,iBAC9C7sW,KAAK+qW,eAAgB,EACrB/qW,KAAKmrW,kBAAoB,GACzBnrW,KAAKorW,gBAAkB,GACvBprW,KAAKsrW,mBAAqB,IAE9BtrW,KAAKwsW,sBAEb,EAMAvC,EAAUrsW,UAAU6wW,aAAe,SAAUjxW,GACzC,IAAIkxW,EACJ,GAAI1uW,KAAK4sU,cAAc6/B,qBAAsB,CACzC,IAAIkC,EAAiB3uW,KAAK2sU,UAAUiiC,WAAWC,aAC/C7uW,KAAK4sU,cAAckiC,sBAAwB,KAC3C9uW,KAAK4sU,cAAcmiC,kBAAmB,EACtC,IAAIz5O,EAAYt1H,KAAK4sU,cAAckD,kBAAoB,EAEnD/6I,EAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY,EAE5H9kL,EAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAU,EAEtHk3I,EAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAc,UAGlI6nN,EAAkBhvW,KAAK2sU,UAAUugC,iBAAiB+B,2BAA2BjvW,KAAKsqW,cAAc,GAEhGloO,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjExoB,KAAKorW,gBAAkBhpO,EAAOs2D,YACzB14L,KAAK4sU,cAAcigC,eAIpB7sW,KAAKsrW,mBAAqBtrW,KAAKorW,gBAH/BprW,KAAKqrW,qBAAuBrrW,KAAKorW,gBAKrCsD,EAAQ,CAEJlmV,GAAI,OAASxoB,KAAK4sU,cAAcsiC,eAAgB57U,OAAQ07U,EAAiB15O,UAAWA,EAAW1mF,KAAM5uC,KAAKsqW,aAAc/mN,WAb3G,YAamI+C,SAdrI,GAeXo4L,oBAAqB,uBAAwBzuU,QAASA,EAASk3I,YAAaA,EAAa4tC,UAAWA,EAAWo6K,cAAeR,GAElI3uW,KAAK4sU,cAAckiC,sBAAwBJ,EAE3C,IAAI/jL,OAAW,GAEXA,EADAgpG,KACWt9Q,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBAGpDnS,SAASkS,eAAe,cAEvBoiK,EAAStuJ,SACrBr8B,KAAKovW,yBAETpvW,KAAKqvW,qBACLrvW,KAAK4sU,cAAc6/B,sBAAuB,CAC9C,KACK,CAEG9hL,OAAW,EAEXA,EADAgpG,KACWt9Q,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBAGpDnS,SAASkS,eAAe,YAEvC,IAAIwmV,GAAmB,EAavB,GAZIp7E,MAAcn2R,IACE,UAAZA,EAAK,IACLwC,KAAKsvW,oBACLP,GAAmB,EACnB/uW,KAAKsqW,aAAe,IAEH,SAAZ9sW,EAAK,KACVwC,KAAKuvW,mBACLR,GAAmB,EACnB/uW,KAAKsqW,aAAe,MAGvByE,EAAkB,CAEf3sO,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjExoB,KAAKorW,gBAAkBhpO,EAAOs2D,YAC1B/N,GAAYA,EAAStuJ,SAChBr8B,KAAK4sU,cAAcigC,gBAMpB7sW,KAAK+qW,eAAgB,EACrB/qW,KAAKsrW,mBAAqBtrW,KAAKorW,gBAC/BprW,KAAKmrW,kBAAoBnrW,KAAKsqW,eAP9BtqW,KAAK8qW,iBAAkB,EACvB9qW,KAAKqrW,qBAAuBrrW,KAAKorW,gBACjCprW,KAAKkrW,oBAAsBlrW,KAAKsqW,cAOpCtqW,KAAKwvW,mBAAmBxvW,KAAK4sU,cAAcigC,gBAAgB,KAGtD7sW,KAAK4sU,cAAcigC,gBAKpB7sW,KAAK+qW,eAAgB,EACrB/qW,KAAKmrW,kBAAoB,KALzBnrW,KAAK8qW,iBAAkB,EACvB9qW,KAAKkrW,oBAAsB,IAM/BlrW,KAAKwvW,mBAAmBxvW,KAAK4sU,cAAcigC,gBAAgB,IAE1D7sW,KAAK4sU,cAAcigC,eAIpB7sW,KAAKsrW,mBAAqBtrW,KAAKorW,gBAH/BprW,KAAKqrW,qBAAuBrrW,KAAKorW,gBAKrCprW,KAAK2sU,UAAUugC,iBAAiBuC,cAAc,KAAM,KAAMzvW,KAAK4sU,cAAcjhS,cAAe,MAC5FojU,GAAmB,CACvB,CACJ,CACJ,EACA9E,EAAUrsW,UAAU4xW,mBAAqB,SAAUE,EAAcC,GACzDD,EACA1vW,KAAKgrW,4BAA8B2E,EAGnC3vW,KAAKirW,+BAAiC0E,CAE9C,EACA1F,EAAUrsW,UAAUyvW,mBAAqB,WACV,SAAvBrtW,KAAKwrW,cACLxrW,KAAKyuW,eAEuB,SAAvBzuW,KAAKwrW,cACVxrW,KAAKuvW,mBAGLvvW,KAAKsvW,oBAETtvW,KAAKuqW,iBAAmB,GACxBvqW,KAAKwqW,kBAAoB,EAC7B,EACAP,EAAUrsW,UAAU2xW,iBAAmB,WACnC,GAAIvvW,KAAK4sU,cAAc6/B,qBAAsB,CACzC,IAEIiC,EAFAkB,EAAY5vW,KAAK4sU,cAAcyB,gBAG/BsgC,EAAiB3uW,KAAK2sU,UAAUiiC,WAAWC,aAC/C7uW,KAAK4sU,cAAckiC,sBAAwB,KAC3C9uW,KAAK4sU,cAAcmiC,kBAAmB,EACtC,IAMI/oV,EACA6pV,EAPAv6O,EAAYt1H,KAAK4sU,cAAckD,kBAAoB,EACnD7C,EAAU52T,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,YAAc8sG,GAC5Ey/D,EAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY,EAC5H9kL,EAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAU,EACtHk3I,EAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAc,UAMtInhI,GAAgB+zD,WAAWkzP,EAAQpsU,MAAM0I,OAAS,EAAML,KAAqB0mW,EAC7EC,GAAe91R,WAAWkzP,EAAQpsU,MAAM6b,QAAU,EAAM8jT,MAAsBovC,EAC9E,IAAIE,EAAa9vW,KAAK4sU,cAAcyB,gBAC/BruU,KAAK+vW,eACN/vW,KAAKgwW,0BAAyB,GAElC,IAAIh/R,EAAahxE,KAAK+vW,cACtBrB,EAAQ,CAEJlmV,GAAI,WAAaxoB,KAAK4sU,cAAcsiC,eAAgB57U,OAAQ,CACxDtjB,KAAMgW,EAAc8pV,EAAYhgW,IAAK+/V,EAAaC,EAAYzoW,EAAG2e,EAAc8pV,EAE/ExoW,EAAGuoW,EAAaC,EAAYvmW,MAbjB,IAasCmT,OAdrC,IAeb44G,UAAWA,EAAW26O,YAAaj/R,EAAYpiC,KAAM5uC,KAAK4sU,cAAcsjC,gBAAgB5F,aAAc5rB,oBAAqB,gBAC9HzuU,QAASA,EAASk3I,YAAaA,EAAa4tC,UAAWA,EAAWzuC,SAnBvD,GAmB2E/C,WAAYvjJ,KAAK03K,SAAUy3L,cAAeR,GAEpI3uW,KAAK4sU,cAAckiC,sBAAwBJ,EAE3C,IAAI/jL,OAAW,GAEXA,EADAgpG,KACWt9Q,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBAGpDnS,SAASkS,eAAe,eAEvBoiK,EAAStuJ,SACrBr8B,KAAKovW,yBAETpvW,KAAK+vW,cAAgB,GACrB/vW,KAAKqvW,qBACLrvW,KAAK4sU,cAAc6/B,sBAAuB,CAC9C,KAE8B,KAAtBzsW,KAAKsqW,cACLtqW,KAAKgwW,2BAEThwW,KAAK2sU,UAAUugC,iBAAiBuC,cAAc,OAAQ,GAAIzvW,KAAK4sU,cAAcjhS,eAC7E3rC,KAAKqvW,oBAEb,EACApF,EAAUrsW,UAAU0xW,kBAAoB,WACpC,GAAItvW,KAAK4sU,cAAc6/B,qBAAsB,CACzC,IAEIiC,EAFAkB,EAAY5vW,KAAK4sU,cAAcyB,gBAG/BsgC,EAAiB3uW,KAAK2sU,UAAUiiC,WAAWC,aAC/C7uW,KAAK4sU,cAAckiC,sBAAwB,KAC3C9uW,KAAK4sU,cAAcmiC,kBAAmB,EACtC,IAMI/oV,EACA6pV,EAPAv6O,EAAYt1H,KAAK4sU,cAAckD,kBAAoB,EACnD7C,EAAU52T,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,YAAc8sG,GAC5Ey/D,EAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY,EAC5H9kL,EAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAU,EACtHk3I,EAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAc,UAIlIgpN,EAAqB,IACrB3vC,EAAgB,EAChBt3T,EAAe,EAEflJ,KAAK6rW,sBAAwB7rW,KAAK+rW,qBAClCvrC,EAAkBxgU,KAAK6rW,qBAAuB7rW,KAAK6rW,qBAAwBsE,EAC3EjnW,EAAiBlJ,KAAK+rW,oBAAsB/rW,KAAK6rW,qBAAwBsE,IAGzE3vC,EAAkBxgU,KAAK6rW,qBAAuB7rW,KAAK+rW,oBAAuBoE,EAC1EjnW,EAAiBlJ,KAAK+rW,oBAAsB/rW,KAAK+rW,oBAAuBoE,GAE5EnqV,GAAgB+zD,WAAWkzP,EAAQpsU,MAAM0I,OAAS,EAAML,EAAe,GAAM0mW,EAC7EC,GAAe91R,WAAWkzP,EAAQpsU,MAAM6b,QAAU,EAAM8jT,EAAgB,GAAMovC,EAC9E,IAAIE,EAAa9vW,KAAK4sU,cAAcyB,gBAChCr9P,EAAahxE,KAAK+vW,cACtBrB,EAAQ,CAEJlmV,GAAI,WAAaxoB,KAAK4sU,cAAcsiC,eAAgB57U,OAAQ,CACxDtjB,KAAMgW,EAAc8pV,EAAYhgW,IAAK+/V,EAAaC,EAAYzoW,EAAG2e,EAAc8pV,EAE/ExoW,EAAGuoW,EAAaC,EAAYvmW,MAAOL,EAAcwT,OAAQ8jT,GAC1DlrM,UAAWA,EAAW26O,YAAaj/R,EAAYpiC,KAAM5uC,KAAK4sU,cAAcsjC,gBAAgB5F,aAAc5rB,oBAAqB,iBAC9HzuU,QAASA,EAASk3I,YAAaA,EAAa4tC,UAAWA,EAAWzuC,SA1BvD,GA0B2E/C,WAAYvjJ,KAAK03K,SAAUy3L,cAAeR,GAEpI3uW,KAAK4sU,cAAckiC,sBAAwBJ,EAE3C,IAAI/jL,OAAW,GAEXA,EADAgpG,KACWt9Q,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBAGpDnS,SAASkS,eAAe,eAEvBoiK,EAAStuJ,SACrBr8B,KAAKovW,yBAETpvW,KAAKqvW,qBACLrvW,KAAK4sU,cAAc6/B,sBAAuB,CAC9C,MAEIzsW,KAAK2sU,UAAUugC,iBAAiBuC,cAAc,QAAS,GAAIzvW,KAAK4sU,cAAcjhS,eAC9E3rC,KAAKqvW,oBAEb,EACApF,EAAUrsW,UAAUoyW,yBAA2B,SAAUI,GAErD,IAAIC,EAAeh6V,SAASkQ,iBAAiB,mBAC7C,GAAI8pV,EACA,IAAK,IAAIjnW,EAAI,EAAGA,EAAIinW,EAAa1yW,OAAQyL,IACrC,GAAIinW,EAAa7lW,SAASpB,EAAE2B,WAAY,MAAuE,QAA/DslW,EAAa7lW,SAASpB,EAAE2B,WAAY,KAAKlK,MAAMshL,YAAuB,CAC9GiuL,GACApwW,KAAK+vW,cAAgBM,EAAa7lW,SAASpB,EAAE2B,WAAY,KAAK8yB,YAC9D79B,KAAKsqW,aAAe+F,EAAa7lW,SAASpB,EAAE2B,WAAY,KAAK8yB,aAG7D79B,KAAKsqW,aAAe+F,EAAa7lW,SAASpB,EAAE2B,WAAY,KAAK8yB,YAEjE,IACI79B,KAAK03K,SAAW1gH,KAAKr2D,MAAM0vW,EAAa7lW,SAASpB,EAAE2B,WAAY,KAAKlK,MAAM0iJ,WAC9E,CACA,MAAO1jJ,IACHG,KAAK03K,SAAW24L,EAAa7lW,SAASpB,EAAE2B,WAAY,KAAKlK,MAAM0iJ,UACnE,CACJ,CAGZ,EAKA0mN,EAAUrsW,UAAUyxW,mBAAqB,WACjCrvW,KAAK8sW,iBACL9sW,KAAK8sW,gBAAgB3xL,MAE7B,EACA8uL,EAAUrsW,UAAU0yW,4BAA8B,WAC9C,GAAI38E,KACA,IAAK,IAAIj0R,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI6wW,EAAcl6V,SAAS0M,cAAc,IAAM/iB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,kBAAoB9oB,GAC3F6wW,GACAA,EAAYlpV,iBAAiB,QAASrnB,KAAKwwW,qBAAqBruW,KAAKnC,MAE7E,CAER,EACAiqW,EAAUrsW,UAAU6yW,4BAA8B,WAE9C,IAAIruO,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBAC7D45G,IACAA,EAAO/6G,iBAAiB,YAAarnB,KAAKqsW,wBAAwBlqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,YAAarnB,KAAKssW,wBAAwBnqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,UAAWrnB,KAAKusW,sBAAsBpqW,KAAKnC,OACnEoiI,EAAO/6G,iBAAiB,aAAcrnB,KAAKusW,sBAAsBpqW,KAAKnC,OACtEoiI,EAAO/6G,iBAAiB,aAAcrnB,KAAKqsW,wBAAwBlqW,KAAKnC,OACxEoiI,EAAO/6G,iBAAiB,YAAarnB,KAAKssW,wBAAwBnqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,WAAYrnB,KAAKusW,sBAAsBpqW,KAAKnC,OAE5E,EAEAiqW,EAAUrsW,UAAU4yW,qBAAuB,SAAUp6V,GACjD,IAAIs6V,EAAct6V,EAAM1V,OACxB,GAAIgwW,EAAa,CACb,IAAK,IAAIhxW,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI6wW,EAAcl6V,SAAS0M,cAAc,IAAM/iB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,kBAAoB9oB,GAC3F6wW,IACAA,EAAY1vW,MAAMshL,YAAc,GAExC,CACAuuL,EAAY7vW,MAAMshL,YAAc,MAChCniL,KAAKsqW,aAAeoG,EAAY7yU,YAChC,IACI79B,KAAK03K,SAAW1gH,KAAKr2D,MAAM+vW,EAAY7vW,MAAM0iJ,WACjD,CACA,MAAO1jJ,IACHG,KAAK03K,SAAWg5L,EAAY7vW,MAAM0iJ,UACtC,CACAvjJ,KAAK4rW,oBAAmB,EAC5B,CACJ,EAEA3B,EAAUrsW,UAAU+uW,sBAAwB,WAExC,IAAIgE,EAAgBt6V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBAEpE0iF,EAAQ70F,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,wBAC5DmoV,GACAA,EAAcxkV,SAEd++E,GACAA,EAAM/+E,SAGV,IAyBIykV,EAEAz9V,EACA09V,EA5BAC,EAAgBnnW,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,uBAAwB5e,UAAW,2BAA4BqwE,OAAQ,oBAE9ImoD,EAASz4H,GAAc,SAAU,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,oBAAqB5e,UAAW,0BACnG5J,KAAK2sU,UAAUz9S,QAAQ5N,YAAc,IACrC8gH,EAAO74H,MAAQ,IAGf64H,EAAO74H,MAAQvJ,KAAK2sU,UAAUz9S,QAAQ5N,YAAc,GAExD8gH,EAAOp2G,UAAUC,IAAI,yBACrBm2G,EAAO1lH,OAAS,IAChB0lH,EAAOvhI,MAAM6b,OAAS,QACtB0lH,EAAOvhI,MAAMkwW,OAAS,qBACtB3uO,EAAOvhI,MAAMsvG,gBAAkB,QAC/BiyB,EAAOvhI,MAAM45E,UAAY,aACzB2nD,EAAOvhI,MAAMohL,aAAe,MAC5B7/C,EAAO/6G,iBAAiB,YAAarnB,KAAKqsW,wBAAwBlqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,YAAarnB,KAAKssW,wBAAwBnqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,UAAWrnB,KAAKusW,sBAAsBpqW,KAAKnC,OACnEoiI,EAAO/6G,iBAAiB,aAAcrnB,KAAKgxW,yBAAyB7uW,KAAKnC,OACzEoiI,EAAO/6G,iBAAiB,aAAcrnB,KAAKqsW,wBAAwBlqW,KAAKnC,OACxEoiI,EAAO/6G,iBAAiB,YAAarnB,KAAKssW,wBAAwBnqW,KAAKnC,OACvEoiI,EAAO/6G,iBAAiB,WAAYrnB,KAAKusW,sBAAsBpqW,KAAKnC,OACpE8wW,EAAcnoV,YAAYy5G,GAOtByuO,EADA7wW,KAAK4sU,cAAc6/B,uBAAyBzsW,KAAK4sU,cAAcigC,eACzC7sW,KAAK2sU,UAAUmG,UAAUznB,YAAY,kBAGrCrrT,KAAK4sU,cAAcigC,eAAiB7sW,KAAK2sU,UAAUmG,UAAUznB,YAAY,gBAAkBrrT,KAAK2sU,UAAUmG,UAAUznB,YAAY,kBAErJrrT,KAAK2sU,UAAUuhC,qBAEhB/6V,EAAQkD,SAAS1M,cAAc,UACzBnM,KAAO,WACb2V,EAAMqV,GAAK,WACXsoV,EAAcnoV,YAAYxV,IAC1By9V,EAAc,IAAInvB,GAAS,CAAE/7I,MAAOmrK,EAAqBt8V,UAAU,EAAO8nB,SAAS,KACvE2hR,SAAS7qS,IAEpBnT,KAAK4sU,cAAcigC,eAIpB7sW,KAAK+qW,cAAgB/qW,KAAKuuW,wBAH1BvuW,KAAK8qW,gBAAkB9qW,KAAKuuW,yBAK5BvuW,KAAK8qW,kBAAoB9qW,KAAK4sU,cAAcigC,gBAGvC7sW,KAAK+qW,eAAiB/qW,KAAK4sU,cAAcigC,kBAF9C+D,EAAYv0U,SAAU,GAO1B,IAAI40U,EAAUtnW,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,kBAAmB5e,UAAW,2BAA4BqwE,OAAQ,mBAEnIi3R,EAAY76V,SAAS1M,cAAc,SACvCunW,EAAU1zW,KAAO,OACjB0zW,EAAU1oV,GAAKxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBAC3CyoV,EAAQtoV,YAAYuoV,GAEpB,IAAIC,EAAW,IAAI13B,GAAQ,CACvBnzI,YAAatmM,KAAK2sU,UAAUmG,UAAUznB,YAAY,2BAClD2pB,eAAgB,SAEpBm8B,EAASnzD,SAASkzD,GAElB,IAAIE,EAAUznW,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,mBAAoB5e,UAAW,+BACpGwnW,EAAQplV,UAAUC,IAAI,yBACtBmlV,EAAQvwW,MAAM6b,OAAS,QACvB00V,EAAQvwW,MAAMkwW,OAAS,qBACvBK,EAAQvwW,MAAM45E,UAAY,aAC1B22R,EAAQvwW,MAAMohL,aAAe,MAC7BmvL,EAAQvwW,MAAMsvG,gBAAkB,QAChCihQ,EAAQvwW,MAAMwxC,MAAQ,QACtB++T,EAAQvwW,MAAM0mB,UAAY,MAC1B0pV,EAAQtoV,YAAYyoV,IACpBj+V,EAAQkD,SAAS1M,cAAc,UACzBnM,KAAO,WACb2V,EAAMqV,GAAK,YACXyoV,EAAQtoV,YAAYxV,IACpBy9V,EAAc,IAAInvB,GAAS,CAAE/7I,MAAOmrK,EAAqBt8V,UAAU,EAAO8nB,SAAS,KACvE2hR,SAAS7qS,GACrBg+V,EAAS9pV,iBAAiB,QAASrnB,KAAKqxW,oBAAoBlvW,KAAKnC,OACjEA,KAAK4rW,oBAAmB,GAExB,IAAI/nF,EAAMl6Q,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,kBAC7D8oV,EAAY3nW,GAAc,MAAO,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,oBAAqB5e,UAAW,2BAA4BqwE,OAAQ,qBAEvIhmE,EAASoC,SAAS1M,cAAc,OACpCsK,EAAOuU,GAAKxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBACxC8oV,EAAU3oV,YAAY1U,GAEtB,IAAIs9V,EAAe,IAAIp9C,GAAO,CAAEE,SAAU,mBAAoBxmS,QAAS7tB,KAAK2sU,UAAUmG,UAAUznB,YAAY,4BAC5GkmD,EAAavzD,SAAS/pS,GACtBs9V,EAAariV,QAAQruB,MAAM+O,SAAW,WAEtC,IAAI4hW,EAAe7nW,GAAc,SAAU,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,0BAA2B5e,UAAW,gCAC/G5J,KAAK2sU,UAAUz9S,QAAQ5N,YAAc,IACrCkwV,EAAajoW,MAAQ,IAGrBioW,EAAajoW,MAAQvJ,KAAK2sU,UAAUz9S,QAAQ5N,YAAc,GAE9DkwV,EAAaxlV,UAAUC,IAAI,yBAC3BulV,EAAa90V,OAAS,IACtB80V,EAAa3wW,MAAM6b,OAAS,QAC5B60V,EAAariV,QAAQruB,MAAMmP,KAASwhW,EAAajoW,MAAQ,EAAK,GAAM,KACpEgoW,EAAariV,QAAQruB,MAAMiP,IAAQiqE,WAAWy3R,EAAa3wW,MAAM6b,QAAU,EAAK,GAAM,KACtF80V,EAAa3wW,MAAMkwW,OAAS,qBAC5BS,EAAa3wW,MAAMsvG,gBAAkB,QACrCqhQ,EAAa3wW,MAAM45E,UAAY,aAC/B+2R,EAAa3wW,MAAMohL,aAAe,MAClCuvL,EAAa3wW,MAAMqP,OAAS,IAC5BohW,EAAU3oV,YAAY6oV,IACtBr+V,EAAQkD,SAAS1M,cAAc,UACzBnM,KAAO,WACb2V,EAAMqV,GAAK,YACX8oV,EAAU3oV,YAAYxV,IACtBy9V,EAAc,IAAInvB,GAAS,CAAE/7I,MAAOmrK,EAAqBt8V,UAAU,EAAO8nB,SAAS,KACvE2hR,SAAS7qS,GACrBc,EAAOoT,iBAAiB,QAASrnB,KAAKyxW,qBAAqBtvW,KAAKnC,OAEhEA,KAAK6qW,cAAgB,CAAC,CAAE6G,SAAU,aAAe,CAAEA,SAAU,mBAAqB,CAAEA,SAAU,WAAa,CAAEA,SAAU,WAEvH,IAAIC,EAAgB,GACpB,GAAI3xW,KAAK4sU,cAAc6/B,uBAAyB15E,GAAkB/yR,KAAK2sU,UAAUqhC,6BAA6B4D,oBAC1G,IAAK,IAAIxoW,EAAI,EAAGA,EAAI,EAAGA,IACd2pR,GAAkB/yR,KAAK2sU,UAAUqhC,6BAA6B4D,mBAAmBpnW,SAASpB,EAAE2B,WAAY,QACzG/K,KAAK6qW,cAAcrgW,SAASpB,EAAE2B,WAAY,KAAK2mW,SAAW1xW,KAAK2sU,UAAUqhC,6BAA6B4D,mBAAmBpnW,SAASpB,EAAE2B,WAAY,MAI5J,IAAK,IAAIrL,EAAI,EAAGA,EAAIM,KAAK6qW,cAAcltW,OAAQ+B,IAC3CiyW,EAAcnnW,SAAS9K,EAAEqL,WAAY,KAAOsL,SAAS1M,cAAc,OACnEgoW,EAAcnnW,SAAS9K,EAAEqL,WAAY,KAAKyd,GAAK,kBAAoB9oB,EACnEiyW,EAAcnnW,SAAS9K,EAAEqL,WAAY,KAAKihB,UAAUC,IAAI,kBAE5DjsB,KAAK4qW,SAAW+G,EAEhB,IAAIr5R,EAAQt4E,KACR05H,EAAQ,GAwCZ,OArCQA,EAFJ15H,KAAK4sU,cAAc6/B,qBACfzsW,KAAK4sU,cAAcigC,eACX7sW,KAAK6xW,qBAAqB7xW,KAAK2sU,UAAUqhC,6BAA6BC,uBAAyBjuW,KAAK2sU,UAAUqhC,6BAA6BC,sBAAsB6D,YAAahB,EAAeG,EAASK,GAGtMtxW,KAAK6xW,qBAAqB7xW,KAAK2sU,UAAUqhC,6BAA6BI,yBAA2BpuW,KAAK2sU,UAAUqhC,6BAA6BI,wBAAwB0D,YAAahB,EAAeG,EAASK,GAIlNtxW,KAAK4sU,cAAcigC,eACX7sW,KAAK6xW,qBAAsB7xW,KAAK2sU,UAAU0hC,qBAAqBJ,sBAAwBjuW,KAAK2sU,UAAU0hC,qBAAqBJ,sBAAsB6D,YAAc,EAAIhB,EAAeG,EAASK,GAG3LtxW,KAAK6xW,qBAAsB7xW,KAAK2sU,UAAU2hC,uBAAuBF,wBAA0BpuW,KAAK2sU,UAAU2hC,uBAAuBF,wBAAwB0D,YAAc,EAAIhB,EAAeG,EAASK,GAInNtxW,KAAK+sW,OAAS,IAAI7Q,GAAI,CAClB5+T,SAAU,SAAU1wB,GAChB0rE,EAAMy5R,kBAAkBnlW,EAC5B,EACAolW,UAAW,SAAUplW,GACjB0rE,EAAM03D,OAAOpjI,EACjB,EACA8sH,MAAOA,IAEX15H,KAAK+sW,OAAO/uD,SAASn6B,GACjBA,GAAOA,EAAIooE,mBACXpoE,EAAIooE,iBAAiBprV,MAAMs9C,SAAW,UAEZ,SAA1Bu7E,EAAM,GAAGszD,OAAO0Y,MAChB1lM,KAAKwrW,cAAgB,OAEU,SAA1B9xO,EAAM,GAAGszD,OAAO0Y,MACrB1lM,KAAKwrW,cAAgB,OAGrBxrW,KAAKwrW,cAAgB,QAElB3nF,CAIX,EACAomF,EAAUrsW,UAAUm0W,kBAAoB,SAAUlyW,GAE9C,IAAIoyW,EAAa,GAEbC,EAAc77V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,iBAAiBiqR,cAAc,GACrG,GAAIy/D,GACIA,EAAYx4O,MAAM/7H,OAAS,EAC3B,IAAK,IAAI+B,EAAI,EAAGA,EAAIwyW,EAAYx4O,MAAM/7H,OAAQ+B,IAAK,CAC7BwyW,EAAYx4O,MAAMlvH,SAAS9K,EAAEqL,WAAY,KAAKiiL,OAAOl6I,OACnDjzC,EAAEu+V,aAAavgU,cAC/Bo0U,EAAaC,EAAYx4O,MAAMlvH,SAAS9K,EAAEqL,WAAY,KAAKiiL,OAAO0Y,MAE1E,CAGR,IAAI/a,EAAWt0K,SAASkS,eAAe,YACvC,GAAIoiK,GAAYA,EAAStuJ,SACrB,GAAwB,IAApBx8B,EAAEmkW,eAA6C,KAAtBhkW,KAAKsqW,aAAqB,CAC9CtqW,KAAK4sU,cAAcigC,gBAKpB7sW,KAAK+qW,eAAgB,EACrB/qW,KAAKmrW,kBAAoBnrW,KAAKsqW,eAL9BtqW,KAAK8qW,iBAAkB,EACvB9qW,KAAKkrW,oBAAsBlrW,KAAKsqW,cAOpC,IAAIloO,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjExoB,KAAKorW,gBAAkBhpO,EAAOs2D,YACzB14L,KAAK4sU,cAAcigC,eAIpB7sW,KAAKsrW,mBAAqBtrW,KAAKorW,gBAH/BprW,KAAKqrW,qBAAuBrrW,KAAKorW,eAKzC,OAGIprW,KAAK8qW,kBAAoB9qW,KAAK4sU,cAAcigC,gBAC5C7sW,KAAK8qW,iBAAkB,EACvB9qW,KAAKkrW,oBAAsB,GAC3BlrW,KAAKorW,gBAAkB,GACvBprW,KAAKqrW,qBAAuB,IAEvBrrW,KAAK+qW,eAAiB/qW,KAAK4sU,cAAcigC,iBAC9C7sW,KAAK+qW,eAAgB,EACrB/qW,KAAKmrW,kBAAoB,GACzBnrW,KAAKorW,gBAAkB,GACvBprW,KAAKsrW,mBAAqB,IAKlC,GAFAtrW,KAAKwsW,qBAAqB3sW,GAEa,SAAnCoyW,EAAWlhR,oBAAgC,CAC3C/wF,KAAKwrW,cAAgB,OACrBxrW,KAAKmyW,8BACL,IAAI3E,EAAen3V,SAASkS,eAAe,YAC3CvoB,KAAKytW,sBAAsBD,EAC/B,MACK,GAAuC,SAAnCyE,EAAWlhR,oBAAgC,CAC5CqxC,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjExoB,KAAKqqW,qBAAuBjoO,EAAOs2D,YACnC14L,KAAKgwW,2BACLhwW,KAAKwrW,cAAgB,OACrBxrW,KAAKmyW,8BACL,IAAIzE,EAAer3V,SAASkS,eAAe,aAC3CvoB,KAAKytW,sBAAsBC,EAC/B,MACK,GAAuC,WAAnCuE,EAAWlhR,oBAAkC,CAC9CqxC,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjExoB,KAAKqqW,qBAAuBjoO,EAAOs2D,YACnC14L,KAAKwrW,cAAgB,QACrBxrW,KAAKmyW,8BACL,IAAIxE,EAAgBt3V,SAASkS,eAAe,aAC5CvoB,KAAKytW,sBAAsBE,EAC/B,CACI3tW,KAAK2sU,UAAUz9S,QAAQ5N,YAzER,KA0EfthB,KAAKstW,mBACTttW,KAAKoyW,sBACkC,WAAnCH,EAAWlhR,qBAAoC/wF,KAAKoqW,uBACpDpqW,KAAKqyW,sBAEb,EACApI,EAAUrsW,UAAUu0W,4BAA8B,WACpB,KAAtBnyW,KAAKsqW,aACLtqW,KAAK4rW,oBAAmB,GAGxB5rW,KAAK4rW,oBAAmB,EAEhC,EACA3B,EAAUrsW,UAAUi0W,qBAAuB,SAAUC,EAAahB,EAAeG,EAASK,GACtF,IAAI53O,EAAQ,GAmBZ,OAlBIo4O,EAAcrxB,GAAY6xB,MAC1B54O,EAAM72H,KAAK,CACPmqL,OAAQ,CAAE,KAAQhtL,KAAK2sU,UAAUmG,UAAUznB,YAAY,uBAAwB,MAAS,QACxFx9R,QAASijV,IAGbgB,EAAcrxB,GAAYvzT,MAC1BwsG,EAAM72H,KAAK,CACPmqL,OAAQ,CAAE,KAAQhtL,KAAK2sU,UAAUmG,UAAUznB,YAAY,kBAAmB,MAAS,QACnFx9R,QAASojV,IAGba,EAAcrxB,GAAY8xB,QAC1B74O,EAAM72H,KAAK,CACPmqL,OAAQ,CAAE,KAAQhtL,KAAK2sU,UAAUmG,UAAUznB,YAAY,oBAAqB,MAAS,UACrFx9R,QAASyjV,IAGV53O,CACX,EAKAuwO,EAAUrsW,UAAU40W,2BAA6B,WAE7C,IAAIC,EAAY9oW,GAAc,QAAS,CAAE6e,GAAIxoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,eAAgB+yC,MAAO,CAAE,KAAQ,UAC1Gk3S,EAAU94U,aAAa,SAAU,mBACjC84U,EAAU5xW,MAAM+O,SAAW,WAC3B6iW,EAAU5xW,MAAMmP,KAAO,MACvByiW,EAAU5xW,MAAMiP,IAAM,MACtB2iW,EAAU5xW,MAAM04I,WAAa,SAC7BljI,SAAShC,KAAKsU,YAAY8pV,GAC1BA,EAAUprV,iBAAiB,SAAUrnB,KAAKyrW,cAC9C,EACAxB,EAAUrsW,UAAU6zW,qBAAuB,WAEvC,IAAIgB,EAAYp8V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,gBAChEiqV,GACAA,EAAUz6K,OAElB,EACAiyK,EAAUrsW,UAAUyzW,oBAAsB,WAMtC,IALA,IAEID,EAAU/6V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,oBAE9DkqV,EAAUr8V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBACzD9oB,EAAI,EAAGA,EAAIM,KAAK6qW,cAAcltW,OAAQ+B,IAC3CM,KAAK4qW,SAASpgW,SAAS9K,EAAEqL,WAAY,KAAK0d,UAAYiqV,EAAQxxW,MAC9DlB,KAAK4qW,SAASpgW,SAAS9K,EAAEqL,WAAY,KAAKlK,MAAM0iJ,WAAavjJ,KAAK6qW,cAAcrgW,SAAS9K,EAAEqL,WAAY,KAAK2mW,SAC5C,cAA5D1xW,KAAK6qW,cAAcrgW,SAAS9K,EAAEqL,WAAY,KAAK2mW,WAC/C1xW,KAAK4qW,SAASpgW,SAAS9K,EAAEqL,WAAY,KAAKlK,MAAMshL,YAAc,OAElEivL,EAAQzoV,YAAY3oB,KAAK4qW,SAASpgW,SAAS9K,EAAEqL,WAAY,MAE7D,IAASrL,EAAI,EAAGA,EAAIM,KAAK6qW,cAAcltW,OAAQ+B,IAAK,CAEhC2W,SAASkS,eAAe,kBAAoB7oB,GAClD2nB,iBAAiB,QAASrnB,KAAK2yW,mBAAmBxwW,KAAKnC,MACrE,CACAA,KAAK4rW,oBAAmB,GACxB5rW,KAAK+tW,mBAAkB,GACnB/tW,KAAK2sU,UAAUz9S,QAAQ5N,YApBR,KAqBfthB,KAAKstW,mBACTttW,KAAKoyW,qBACT,EACAnI,EAAUrsW,UAAU+0W,mBAAqB,WACrC,IAAIjC,EAAct6V,MAAM1V,OAEL2V,SAAS67F,uBAAuB,kBAAkB,GACxD39F,UAAW,EACxB,IAAK,IAAI7U,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI6wW,EAAcl6V,SAASkS,eAAe,kBAAoB7oB,GAC1D6wW,IACAA,EAAY1vW,MAAMshL,YAAc,GAExC,CACAuuL,EAAY7vW,MAAMshL,YAAc,MAChCniL,KAAKsqW,aAAeoG,EAAY7yU,YAChC,IACI79B,KAAK03K,SAAW1gH,KAAKr2D,MAAM+vW,EAAY7vW,MAAM0iJ,WACjD,CACA,MAAO1jJ,IACHG,KAAK03K,SAAWg5L,EAAY7vW,MAAM0iJ,UACtC,CACJ,EAOA0mN,EAAUrsW,UAAUwxW,uBAAyB,SAAU97U,EAAQ1jB,GAC3D,IAWIgjW,EAXAC,GAAY,EACZC,GAAY,EACZC,GAAY,EACZC,GAAY,EAEZC,EAAiBjgC,GAAgBhzU,KAAKsqW,cAEtC4I,EAAY78V,SAAS1M,cAAc,UAEnCm3C,EAAUoyT,EAAUliO,WAAW,MAG/BmiO,EAAgBnzW,KAAK4sU,cAAckiC,sBAAsBpwB,oBAC7D,GAAsB,yBAAlBy0B,GACA,GAA8B,IAA1BF,EAAet1W,OAAc,CAE7B,IAAK,IAAI2L,EAAI,EAAGA,EAAI2pW,EAAet1W,OAAQ2L,IAAK,CAE5C,IAAIi6D,EAAM0vS,EAAe3pW,GACzB,IAAkB,IAAdupW,EAEAA,EAAYtvS,EAAO,EAEnBwvS,EAAYxvS,EAAO,EAEnBuvS,EAAYvvS,EAAO,EAEnByvS,EAAYzvS,EAAO,OAOfsvS,IAHA39L,EAAU3xG,EAAO,KAIjBsvS,EAAW39L,GAEX49L,IAJAv2B,EAAUh5Q,EAAO,KAKjBuvS,EAAWv2B,GAEXw2B,GAAY79L,IACZ69L,EAAW79L,GAEX89L,GAAYz2B,IACZy2B,EAAWz2B,EAGvB,CACA,IAAI62B,EAAiBL,EAAWF,EAC5BQ,EAAiBL,EAAWF,EAC5BQ,EAAcF,EAAiB,IAC/BG,EAAcF,EAAiB,IAC/BrjW,EAAO,EACPywT,EAAQ,EACRntS,GACA4/U,EAAU3pW,MAAQqG,EAAS1G,aAC3BgqW,EAAUx2V,OAAS9M,EAAS4wT,cAC5B8yC,EAAcF,EAAkB9/U,EAAO/pB,MACvCgqW,EAAcF,EAAkB//U,EAAO5W,OACvC1M,EAAOsjB,EAAOjsB,EAAIuI,EAASoW,YAC3By6S,EAAQntS,EAAOhsB,EAAIsI,EAASigW,aAG5BqD,EAAU3pW,MAAQ,IAClB2pW,EAAUx2V,OAAS,KAEvBokC,EAAQozG,YACR,IAAK,IAAIv2I,EAAI,EAAGA,EAAIs1V,EAAet1W,OAAQggB,IAAK,CAE5C,IAEIu3J,IAFA3xG,EAAM0vS,EAAet1V,IAEH,EAAIk1V,GAAYS,EAAetjW,EAEjDusU,GAAWh5Q,EAAO,EAAIuvS,GAAYS,EAAe9yC,EAE9B,MAAnBl9P,EAAa,QACbziB,EAAQogE,OAAOg0D,EAAQqnK,GAGC,MAAnBh5Q,EAAa,SAClBziB,EAAQqgE,OAAO+zD,EAAQqnK,EAE/B,CACAz7R,EAAQ2gE,SACR3gE,EAAQygE,YACRqxP,EAAcM,EAAUx6K,WAC5B,OAGAk6K,EAAc5yW,KAAKsqW,aAKvB,GAAIh3U,EACAtzB,KAAKorW,gBAAkBwH,MAEtB,CAED,IAAIY,EAAiB,CAAC,EACtBA,EAAe,QAAUxzW,KAAK4sU,cAAc6mC,YAAczzW,KAAKsqW,aAC/DtqW,KAAK0qW,iBAAiB7nW,KAAK2wW,GAE3B,IAAIE,EAAY,GAChBA,EAAU7wW,KAAK,CAAE2lB,GAAI,QAAUxoB,KAAK4sU,cAAc6mC,WAAYjyO,UAAWoxO,EAAaO,cAAeA,EAAe5vN,WAAYvjJ,KAAK4sU,cAAckiC,sBAAsBvrN,aACzKvjJ,KAAKyqW,oBAAoB5nW,KAAK,CAAEouI,MAAOyiO,EAAWC,UAAW3zW,KAAK4sU,cAAcigC,iBAChF7sW,KAAK4sU,cAAc6mC,YACvB,CACJ,EAMAxJ,EAAUrsW,UAAUg2W,aAAe,SAAU7lQ,GAOzC,OANIA,EAAQ/tG,KAAKurW,aACbx9P,EAAQ/tG,KAAKurW,aAERx9P,EAAQ,IACbA,EAAQ,GAELA,CACX,EAKAk8P,EAAUrsW,UAAUi2W,qBAAuB,WACvC7zW,KAAK4sU,cAAcsiC,iBACnB,IACIR,EADAkB,EAAY5vW,KAAK4sU,cAAcyB,gBAEnC,GAAIruU,KAAK4sU,cAAcknC,mBAAoB,CACvC,IAAInF,EAAiB3uW,KAAK2sU,UAAUiiC,WAAWC,aAC/C7uW,KAAK4sU,cAAckiC,sBAAwB,KAC3C9uW,KAAK4sU,cAAcmiC,kBAAmB,EACtC,IAEI/oV,EACA6pV,EAHAv6O,EAAYt1H,KAAK4sU,cAAckD,kBAAoB,EACnD7C,EAAU52T,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,YAAc8sG,GAI5EpsH,EAAelJ,KAAK2sU,UAAUqhC,6BAA6BzkW,MAAQvJ,KAAK2sU,UAAUqhC,6BAA6BzkW,MAAQ,IAEvHi3T,EAAgBxgU,KAAK2sU,UAAUqhC,6BAA6BtxV,OAAS1c,KAAK2sU,UAAUqhC,6BAA6BtxV,OAAS,IAE1Hq4K,EAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY/0L,KAAK2sU,UAAUqhC,6BAA6Bj5K,UAAY,EAE5H9kL,EAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAUjQ,KAAK2sU,UAAUqhC,6BAA6B/9V,QAAU,EAEtHk3I,EAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAcnnJ,KAAK2sU,UAAUqhC,6BAA6B7mN,YAAc,UACtInhI,GAAgB+zD,WAAWkzP,EAAQpsU,MAAM0I,OAAS,EAAML,EAAe,GAAM0mW,EAE7EC,GAAe91R,WAAWkzP,EAAQpsU,MAAM6b,QAAU,EAAM8jT,EAAgB,GAAMovC,EAI9E,IAHA,IAAI57D,EAAY,GACZm/D,OAAgB,EAChBY,OAAsB,EACjBpnV,EAAa,EAAGA,EAAa3sB,KAAK0qW,iBAAiB/sW,OAAQgvB,IAAc,CAE9E,IAAIqnV,EAAsBh0W,KAAK0qW,iBAAiB/9U,GAIhD,IAFI+jV,EAAct6V,MAAM1V,SAELgwW,EAAYloV,KAAO,QAAUmE,GAAc+jV,GAAeA,EAAYloV,KAAO,cAAgBmE,EAAY,CACxHqnR,EAAYggE,EAAoB,QAAUrnV,GAC1C,KACJ,CACJ,CACA,IAAK,IAAIsnV,EAAiB,EAAGA,EAAiBj0W,KAAKyqW,oBAAoB9sW,OAAQs2W,IAAkB,CAC7F,IAAIvD,EAAct6V,MAAM1V,OACpBwzW,EAAcl0W,KAAKyqW,oBAAoBjgW,SAASypW,EAAelpW,WAAY,KAAKkmI,MAAM,GAAGzoH,GAAG2Q,MAAM,KAAK,GAC3G,GAAIu3U,GAAeA,EAAYloV,KAAO,QAAU0rV,GAAexD,GAAeA,EAAYloV,KAAO,cAAgB0rV,EAAa,CAC1Hf,EAAgBnzW,KAAKyqW,oBAAoBjgW,SAASypW,EAAelpW,WAAY,KAAKkmI,MAAM,GAAGkiO,cAC3FY,EAAsB/zW,KAAKyqW,oBAAoBjgW,SAASypW,EAAelpW,WAAY,KAAKkmI,MAAM,GAAGsS,WACjG,KACJ,CACJ,CACA,GAAsB,yBAAlB4vN,EAA0C,CAE1C,IAAInE,EAAkBhvW,KAAK2sU,UAAUugC,iBAAiB+B,2BAA2Bj7D,GAAW,GAE5F9qS,EAAe8lW,EAAgBzlW,MAAQylW,EAAgBzlW,MAAQL,EAE/Ds3T,EAAgBwuC,EAAgBtyV,OAASsyV,EAAgBtyV,OAAS8jT,CACtE,MAEIt3T,EAAgC,MAAjBA,EAAuB,IAAMlJ,KAAK2sU,UAAUqhC,6BAA6BzkW,MAExFi3T,EAAkC,MAAlBA,EAAwB,GAAKxgU,KAAK2sU,UAAUqhC,6BAA6BtxV,OAE7FgyV,EAAQ,CAEJlmV,GAAI,OAASxoB,KAAK4sU,cAAcsiC,eAAgB57U,OAAQ,CAAEjsB,EAAG2e,EAAa1e,EAAGuoW,EAAYtmW,MAAOL,EAAcwT,OAAQ8jT,GAAiBlrM,UAAWA,EAAW1mF,KAAMolQ,EAEnK0qC,oBAAqBy0B,EAAeljW,QAASA,EAASszI,WAAYwwN,EAAqB5sN,YAAaA,EAAa4tC,UAAWA,EAAWo6K,cAAeR,GAE1J3uW,KAAK4sU,cAAckiC,sBAAwBJ,EAC3C1uW,KAAK4sU,cAAcknC,oBAAqB,CAC5C,MAEI9zW,KAAK2sU,UAAUugC,iBAAiBuC,eAExC,EAKAxF,EAAUrsW,UAAU0vW,iBAAmB,WAEnC,IAAIlrO,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBACjExoB,KAAKm0W,gBAAgB/xO,GACrB,IAAIovO,EAAen7V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,2BACvExoB,KAAKm0W,gBAAgB3C,GACrB,IAAI4C,EAAiB/9V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,oBACzExoB,KAAKm0W,gBAAgBC,EACzB,EACAnK,EAAUrsW,UAAUu2W,gBAAkB,SAAU/xO,GAC5C,IAAI67C,EAAU,EAIV7uK,EAAOiH,SAAS0M,cAAc,kBAClC,GAAI3T,EAAM,CACN,IAAIvO,EAAQ8oB,iBAAiBva,GAC7B6uK,EAAUA,EAAUzzK,SAAS3J,EAAMopB,YAAa,IAAMzf,SAAS3J,EAAMqpB,aAAc,GACvF,CACIk4G,GAAUpiI,KAAK8sW,iBAAmB9sW,KAAK8sW,gBAAgBtxM,UACnDx7J,KAAK2sU,UAAUz9S,QAAQ5N,YATZ,KAUX8gH,EAAO74H,MATG,IAUV64H,EAAOvhI,MAAM0I,MAAQ0wJ,UAGrB73B,EAAO74H,MAAQvJ,KAAK2sU,UAAUz9S,QAAQ5N,YAAc28J,EACpD77C,EAAOvhI,MAAM0I,MAAQ64H,EAAO74H,MAAQ,OAG5C,IAAI8qW,EAAeh+V,SAAS67F,uBAAuB,kBACnD,GAAIkwB,GAAUiyO,GAAgBA,EAAa12W,OAAS,EAChD,IAAK,IAAI+B,EAAI,EAAGA,EAAI20W,EAAa12W,OAAQ+B,IAAK,CAC5B20W,EAAa7pW,SAAS9K,EAAEqL,WAAY,KAC1ClK,MAAM0I,MAAU64H,EAAO74H,MAAQ,EApBlC,GAoBiD,IAC1D,CAER,EACA0gW,EAAUrsW,UAAUw0W,oBAAsB,WACtC,IAAI95R,EAAQt4E,KACRixI,EAAQ,IAAIC,MAChBD,EAAMl2E,OAAS,WACX,IAAIqnE,EAAS/rH,SAASkS,eAAe+vD,EAAMq0P,UAAUz9S,QAAQ1G,GAAK,qBAC9D45G,GACcA,EAAO4O,WAAW,MACxBG,UAAUF,EAAO,EAAG,EAEpC,EACAA,EAAM//G,IAAMlxB,KAAKqqW,oBACrB,EACAJ,EAAUrsW,UAAUy0W,qBAAuB,WACvC,IAAI/5R,EAAQt4E,KACRixI,EAAQ,IAAIC,MAChBD,EAAMl2E,OAAS,WACX,IAAIqnE,EAAS/rH,SAASkS,eAAe+vD,EAAMq0P,UAAUz9S,QAAQ1G,GAAK,2BAClE,GAAI45G,EAAQ,CACR,IAAIthF,EAAUshF,EAAO4O,WAAW,MACf36H,SAASkS,eAAe+vD,EAAMq0P,UAAUz9S,QAAQ1G,GAAK,uBAC3D3nB,MAAM04I,WAAa,SAC9Bz4F,EAAQqwF,UAAUF,EAAO,EAAG,EAAG7O,EAAO74H,MAAO64H,EAAO1lH,QACpD47D,EAAMszR,oBAAmB,GACzBtzR,EAAMuzR,qBAAuB56N,EAAM66N,cACnCxzR,EAAMyzR,oBAAsB96N,EAAM+6N,YACtC,CACJ,EACA/6N,EAAM//G,IAAMlxB,KAAKoqW,qBACrB,EACAH,EAAUrsW,UAAUyuW,wBAA0B,SAAUxsW,GACrC,gBAAXA,EAAErC,OACFqC,EAAE+U,iBACF5U,KAAKs0W,kBAAkBz0W,GACvBG,KAAKu0W,gBAAiB,EACtBv0W,KAAKw0W,KAAOx0W,KAAKy0W,OACjBz0W,KAAK00W,KAAO10W,KAAK20W,OACjB30W,KAAKsiB,UAAY,GACjBtiB,KAAK40W,kBAAkB/0W,GACvBG,KAAKkqW,aAAc,EAE3B,EACAD,EAAUrsW,UAAUguW,mBAAqB,SAAU/0B,GAE/C,IAAIg+B,EAAYx+V,SAAS67F,uBAAuB,kBAAkB,GAC9D2iQ,IACAA,EAAUtgW,SAAWsiU,GAEzB72U,KAAK+tW,kBAAkBl3B,EAC3B,EACAozB,EAAUrsW,UAAUmwW,kBAAoB,SAAUl3B,GAE9C,IAAIi+B,EAAWz+V,SAAS67F,uBAAuB,iBAAiB,GAC5D4iQ,IACAA,EAASvgW,SAAWsiU,EAE5B,EACAozB,EAAUrsW,UAAU0uW,wBAA0B,SAAUzsW,GAChDG,KAAKu0W,gBAAyC,SAAvBv0W,KAAKwrW,gBAC5BxrW,KAAKs0W,kBAAkBz0W,GACvBG,KAAK4rW,oBAAmB,GACxB5rW,KAAK40W,kBAAkB/0W,GAE/B,EACAoqW,EAAUrsW,UAAU02W,kBAAoB,SAAUl+V,GAG9C,IAAqC,IAAjCA,EAAM5Y,KAAKiS,QAAQ,SAAiB,CAEpC,IAEIslW,EAFU3+V,EAAM1V,OAEMgqB,wBAC1B1qB,KAAKy0W,OAASr+V,EAAMmT,eAAe,GAAG/E,QAAUuwV,EAAY/kW,KAC5DhQ,KAAK20W,OAASv+V,EAAMmT,eAAe,GAAG7E,QAAUqwV,EAAYjlW,GAChE,MAGI9P,KAAKy0W,OAASr+V,EAAMkgH,QACpBt2H,KAAK20W,OAASv+V,EAAMmgH,OAE5B,EACA0zO,EAAUrsW,UAAUg3W,kBAAoB,SAAUx+V,GAC1CpW,KAAKu0W,iBACLv0W,KAAKg1W,wBACLh1W,KAAKw0W,KAAOx0W,KAAKy0W,OACjBz0W,KAAK00W,KAAO10W,KAAK20W,OAEzB,EACA1K,EAAUrsW,UAAUo3W,sBAAwB,WAExC,IAEIl0T,EAFSzqC,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBAE5CwoH,WAAW,MAChClwF,EAAQozG,YACRpzG,EAAQogE,OAAOlhH,KAAKw0W,KAAMx0W,KAAK00W,MAC/B5zT,EAAQqgE,OAAOnhH,KAAKy0W,OAAQz0W,KAAK20W,QACjC7zT,EAAQ2gE,SACR3gE,EAAQymG,UAAY,EACpBzmG,EAAQm0T,IAAIj1W,KAAKw0W,KAAMx0W,KAAK00W,KAAM,EAAO,EAAa,EAAVzpW,KAAKkX,IAAQ,GACzD2+B,EAAQygE,YACRvhH,KAAKsiB,UAAUzf,KAAK7C,KAAKy0W,OAAQz0W,KAAK20W,OAC1C,EACA1K,EAAUrsW,UAAU2uW,sBAAwB,WACpCvsW,KAAKu0W,gBACLv0W,KAAKk1W,cAAcl1W,KAAKsiB,WAE5BtiB,KAAKu0W,gBAAiB,EACJ,YAAdn+V,MAAM5Y,OACNwC,KAAKmqW,eAAgB,EAE7B,EACAF,EAAUrsW,UAAUozW,yBAA2B,WACvChxW,KAAKu0W,gBACLv0W,KAAKk1W,cAAcl1W,KAAKsiB,WAE5BtiB,KAAKu0W,gBAAiB,EACtBv0W,KAAKkqW,aAAc,CACvB,EAGAD,EAAUrsW,UAAUs3W,cAAgB,SAAU5yV,GAC1CtiB,KAAKm1W,SAAS7yV,EAAU,GAAIA,EAAU,IACtCtiB,KAAKo1W,SAAS9yV,EAAU,GAAIA,EAAU,IACtC,IAAK,IAAI3E,EAAI,EAAGA,EAAI2E,EAAU3kB,OAAQggB,GAAQ,EAC1C3d,KAAKo1W,SAAS9yV,EAAU9X,SAASmT,EAAE5S,WAAY,KAAMuX,EAAU3E,EAAI,GAE3E,EACAssV,EAAUrsW,UAAUw3W,SAAW,SAAU/tW,EAAGC,GACxCtH,KAAKsqW,cAAgB,IAAMjjW,EAAI,IAAMC,EAAI,GAC7C,EACA2iW,EAAUrsW,UAAUu3W,SAAW,SAAU9tW,EAAGC,GACxCtH,KAAKsqW,cAAgB,IAAMjjW,EAAI,IAAMC,EAAI,GAC7C,EAKA2iW,EAAUrsW,UAAU4uW,qBAAuB,SAAUhvW,GACjD,IAAI63W,GAAgB,EAChBC,EAAa,IACb93W,GAASu1R,GAAkBv1R,EAAKwmW,gBAAmBjxE,GAAkBv1R,EAAKmuL,gBAoB1E3rL,KAAKsqW,aAAe,GACpBtqW,KAAKsiB,UAAY,KApBjB+yV,GAAgB,EACW,IAAvB73W,EAAKwmW,eACLhkW,KAAKuqW,iBAAmBvqW,KAAKsqW,aAC7BgL,EAAat1W,KAAKsiB,WAEU,IAAvB9kB,EAAKwmW,gBACVhkW,KAAKwqW,kBAAoBxqW,KAAKsqW,cAElCtqW,KAAKsqW,aAAe,GACpBtqW,KAAKsiB,UAAY,GACU,IAAvB9kB,EAAKmuL,eACL3rL,KAAKsqW,aAAetqW,KAAKuqW,iBACzBvqW,KAAKsiB,UAAYgzV,GAEW,IAAvB93W,EAAKmuL,gBACV3rL,KAAKsqW,aAAetqW,KAAKwqW,oBAOjC,IAAI+K,GAAiB,EACjBC,GAAiB,EACjBC,GAAkB,EAClBj4W,GAAQA,EAAKmuC,eAAiBnuC,EAAKmuC,cAAc3f,UAAU6oB,SAAS,mBACpEwgU,GAAgB,EACW,SAAvBr1W,KAAKwrW,cACL+J,GAAiB,EAEW,SAAvBv1W,KAAKwrW,cACVgK,GAAiB,EAGjBC,GAAkB,GAI1B,IAAIrzO,EAAS/rH,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,sBAE5D45G,GAAUizO,GAAmBE,IAEhBnzO,EAAO4O,WAAW,MACxBogB,UAAU,EAAG,EAAGhvB,EAAO74H,MAAO64H,EAAO1lH,QAGjD,IAAIg5V,EAAcr/V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,2BACtE,GAAIktV,GAAeL,GAAkBI,EAAkB,CAErCC,EAAY1kO,WAAW,MAC7BogB,UAAU,EAAG,EAAGskN,EAAYnsW,MAAOmsW,EAAYh5V,QAEvD,IAAIi5V,EAAat/V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,uBACjEmtV,IACAA,EAAW90W,MAAM04I,WAAa,GAEtC,CAEA,IAAIq8N,EAAUv/V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,oBAE9DqtV,EAAUx/V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,uBAC7DotV,GAAWC,GAAWR,GAAmBG,KAC1CK,EAAQ30W,MAAQ,GACXyyR,OACDiiF,EAAQntV,UAAY,KAG5BzoB,KAAK4rW,oBAAmB,EAC5B,EAKA3B,EAAUrsW,UAAUwvW,oBAAsB,WAClCptW,KAAK4sU,cAAcjhS,gBACnB3rC,KAAK4sU,cAAcqgC,uBAAwB,GAE/CjtW,KAAKwsW,uBACA74E,MACD3zR,KAAK8sW,gBAAgB3xL,OAEzBn7K,KAAK4sU,cAAc6/B,sBAAuB,EAC1CzsW,KAAK4sU,cAAcqgC,uBAAwB,EAC3CjtW,KAAKuqW,iBAAmB,GACxBvqW,KAAKwqW,kBAAoB,EAC7B,EAKAP,EAAUrsW,UAAUk4W,cAAgB,WAEhC,IAAIC,EAAc,KAEdA,EADA/1W,KAAK4sU,cAAcopC,gBACLh2W,KAAK4sU,cAAc15M,kBAAkBlzH,KAAK4sU,cAAcqpC,WAAa,qBAGrEz/V,OAAO4+O,eAAeJ,QAAQh1P,KAAK4sU,cAAcqpC,WAAa,qBAIhF,IADA,IAAItnL,EAAc,IAAIz9K,MACb9H,EAAI,EAAGA,EAAIpJ,KAAK4sU,cAAcoD,UAAW5mU,IAC9CulL,EAAYnkL,SAASpB,EAAE2B,WAAY,KAAO,GAE9C,GAAIgrW,EAEA,IADA,IAAIG,EAAuBl/S,KAAKr2D,MAAMo1W,GAC7Br2W,EAAI,EAAGA,EAAIw2W,EAAqBv4W,OAAQ+B,IAAK,CAClD,IAAIy2W,EAAW,GACXC,EAAuBF,EAAqB1rW,SAAS9K,EAAEqL,WAAY,KACvE,GAAIqrW,EAAsB,CACtB,IAAK,IAAIl9U,EAAI,EAAGk9U,EAAqBznL,YAAYhxL,OAASu7B,EAAGA,IAAK,CAE9D,IAAIm9U,EAAoBD,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKo8I,YAAcivN,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKo8I,YAAc,QAI9K,GAHAivN,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKo8I,YAAcnwF,KAAKC,UAAUj3D,KAAKs2W,WAAWD,IAE1GD,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKuoB,OAAS0jC,KAAKC,UAAUj3D,KAAK2sU,UAAUiiC,WAAW2H,UAAUH,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKuoB,OAAQ8iV,EAAqB9gP,YAC1H,yBAArF8gP,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK2zU,qBAAiI,QAA/E03B,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKokW,cAAyB,CAErM,IAEIqH,EAASjiC,GAFQvB,GAAgBojC,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK6jC,OAGlGwnU,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK6jC,KAAOooB,KAAKC,UAAUu/S,EACvF,MAEI,GAAyF,kBAArFJ,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK2zU,qBAA4C1+U,KAAKy2W,iBAAiBL,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKw4I,YAgB5L6yN,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK6jC,KAAOooB,KAAKC,UAAUm/S,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK6jC,UAhByD,CACzM,IAAI8nU,EAAiB/sW,GAAc,UAC/B2pB,EAAS0jC,KAAKr2D,MAAMy1W,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKuoB,QACrFojV,EAAentW,MAAS+pB,GAAUA,EAAO/pB,OAAU,IACnDmtW,EAAeh6V,OAAU4W,GAAUA,EAAO5W,QAAmF,EAAxE05V,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKu7I,SAElH,IAAIpvB,EAAgBw/O,EAAe1lO,WAAW,MAC1C3pI,EAAIqvW,EAAentW,MAAQ,EAC3BjC,EAAKovW,EAAeh6V,OAAS,EAAK05V,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKu7I,SAAW,EAAI,GAClHpvB,EAAcyxD,UAAY,SAC1BzxD,EAAciK,KAAOi1O,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKu7I,SAAW,MAAQ8vN,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAKw4I,WAClKrsB,EAAcusB,SAAS2yN,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK6jC,KAAMvnC,EAAGC,GAC7F8uW,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK6jC,KAAOooB,KAAKC,UAAUy/S,EAAeh+K,UAAU,cAC5G09K,EAAqBznL,YAAYnkL,SAAS0uB,EAAEnuB,WAAY,KAAK2zU,oBAAsB,gBACvF,CAKR,CACAy3B,EAAWC,EAAqBznL,WACpC,CACAA,EAAYynL,EAAqB9gP,WAAa6gP,CAClD,CAEJ,OAAOn/S,KAAKC,UAAU03H,EAC1B,EACAs7K,EAAUrsW,UAAU64W,iBAAmB,SAAU/+L,GAG7C,MAAiB,cAAbA,GAAyC,oBAAbA,GAA+C,YAAbA,GAAuC,WAAbA,CAIhG,EAMAuyL,EAAUrsW,UAAU04W,WAAa,SAAUK,GAElCA,EAAYh6W,MAAM,mBAAsBg6W,EAAYh6W,MAAM,gEAC3Dg6W,EAAc32W,KAAK2sU,UAAUiqC,iBAAiBC,WAAWF,IAE7D,IAAIG,EAAcH,EAAYx9U,MAAM,KAapC,OAZI45P,GAAkB+jF,EAAY,MAE9BA,GADAH,EAAc32W,KAAK2sU,UAAUiqC,iBAAiB56U,SAAS26U,EAAa,SAC1Cx9U,MAAM,MAU7B,CAAE12B,EAPD+H,SAASssW,EAAY,GAAG39U,MAAM,KAAK,IAO5Bhb,EALP3T,SAASssW,EAAY,IAKR14V,EAHb5T,SAASssW,EAAY,IAGF54V,EADnB1T,SAASssW,EAAY,IAEjC,EAOA7M,EAAUrsW,UAAUm5W,gBAAkB,SAAU/mW,EAAMF,GAClD,IAAI4+V,EAEAsI,EAAoBh3W,KAAK4sU,cAAckiC,sBACvCH,EAAiB3uW,KAAK2sU,UAAUiiC,WAAWC,aAC/C,GAAImI,EAAmB,CACkD,yBAAjEh3W,KAAK4sU,cAAckiC,sBAAsBpwB,sBACzCgwB,EAAQ,CAEJlmV,GAAIwuV,EAAkBxuV,GAAI8K,OAAQ,CAAEjsB,EAAG2I,EAAM1I,EAAGwI,EAAKvG,MAAOytW,EAAkB1jV,OAAO/pB,MAAOmT,OAAQs6V,EAAkB1jV,OAAO5W,QAAU44G,UAAW0hP,EAAkB1hP,UAAW1mF,KAAMooU,EAAkBpoU,KACvM8vS,oBAAqB,uBAAwBzuU,QAAS+mW,EAAkB/mW,QAASszI,WAAYyzN,EAAkBzzN,WAAY+C,SAAU0wN,EAAkB1wN,SAAUa,YAAa6vN,EAAkB7vN,YAAa4tC,UAAWiiL,EAAkBjiL,UAAWo6K,cAAeR,IAGvM,kBAAjE3uW,KAAK4sU,cAAckiC,sBAAsBpwB,oBACzCgwB,EAAQ,CAEJlmV,GAAIwuV,EAAkBxuV,GAAI8K,OAAQ,CAAEjsB,EAAG2I,EAAM1I,EAAGwI,EAAKvG,MAAOytW,EAAkB1jV,OAAO/pB,MAAOmT,OAAQs6V,EAAkB1jV,OAAO5W,QAAU44G,UAAW0hP,EAAkB1hP,UAAW1mF,KAAMooU,EAAkBpoU,KACvM8vS,oBAAqB,gBAAiBzuU,QAAS+mW,EAAkB/mW,QAASszI,WAAYyzN,EAAkBzzN,WAAY+C,SAAU0wN,EAAkB1wN,SAAUa,YAAa6vN,EAAkB7vN,YAAa4tC,UAAWiiL,EAAkBjiL,UAAWo6K,cAAeR,GAG3L,mBAAjE3uW,KAAK4sU,cAAckiC,sBAAsBpwB,sBAC9CgwB,EAAQ,CAEJlmV,GAAIwuV,EAAkBxuV,GAAI8K,OAAQ,CAAEjsB,EAAG2I,EAAM1I,EAAGwI,EAAKvG,MAAOytW,EAAkB1jV,OAAO/pB,MAAOmT,OAAQs6V,EAAkB1jV,OAAO5W,QAAU44G,UAAW0hP,EAAkB1hP,UAAW1mF,KAAMooU,EAAkBpoU,KACvM8vS,oBAAqB,iBAAkBzuU,QAAS+mW,EAAkB/mW,QAASszI,WAAYyzN,EAAkBzzN,WAAY+C,SAAU0wN,EAAkB1wN,SAAUa,YAAa6vN,EAAkB7vN,YAAa4tC,UAAWiiL,EAAkBjiL,UAAWo6K,cAAeR,IAGtQ3uW,KAAK2sU,UAAU1gT,IAAIyiV,GAEnB,IAAIuI,EAAU5gW,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBAAuBwuV,EAAkB1hP,WAE3Gt1H,KAAK2sU,UAAUuqC,cAAcD,EAASD,EAAkB1hP,WACxDt1H,KAAK4sU,cAAcuqC,gBAAiB,EAEpCn3W,KAAKo3W,mBAAmBJ,EAAkB1hP,UAAWo5O,GACrD1uW,KAAK2sU,UAAU0qC,iBAAiBL,EAAkB1hP,UAAW0hP,EAAkB7H,cAAe6H,EAAkBt4B,oBAAqBs4B,EAAkB1jV,OAAQ0jV,EAAkB/mW,QAAS+mW,EAAkB7vN,YAAa6vN,EAAkBjiL,WAC3O/0L,KAAK4sU,cAAckiC,sBAAwB,KAC3C9uW,KAAK4sU,cAAcsiC,gBACvB,CACJ,EAQAjF,EAAUrsW,UAAU05W,wBAA0B,SAAUpB,EAAsB5gP,EAAWiiP,GACrF,IAAI7I,EACA8I,GAAoB,EACxB,IAAKD,EACD,IAAK,IAAI9zW,EAAI,EAAGA,EAAIzD,KAAK2qW,oBAAoBhtW,OAAQ8F,IACjD,GAAIzD,KAAK2qW,oBAAoBngW,SAAS/G,EAAEsH,WAAY,OAASuqH,EAAW,CACpEkiP,GAAoB,EACpB,KACJ,CAGR,GAAItB,IAAyBsB,EAAmB,CACxCtB,EAAqBv4W,OAAS,IAAsD,IAAjDqC,KAAK2qW,oBAAoBl7V,QAAQ6lH,IACpEt1H,KAAK2qW,oBAAoB9nW,KAAKyyH,GAElC,IAAK,IAAI33G,EAAI,EAAGA,EAAIu4V,EAAqBv4W,OAAQggB,IAAK,CAElD,IAAIq5V,EAAoBd,EAAqBv4V,GAC7C,GAAIq5V,EAAmB,CAEnB,IAAIpoU,EAAOooU,EAAkBS,SACzBF,IAEI3oU,EADAooU,EAAkBU,YACXV,EAAkBS,SAEiB,mBAArCT,EAAkBv7P,gBAA4E,kBAArCu7P,EAAkBv7P,eACzEzkD,KAAKr2D,MAAMq2D,KAAKC,UAAU+/S,EAAkBS,WAG/C7oU,EAAK5tB,SAAS,WACPwzT,GAAcx9Q,KAAKr2D,MAAMq2W,EAAkBS,WAG3CT,EAAkBS,UAIrCz3W,KAAKsqW,aAAe17T,EACpB5uC,KAAKsqW,aAAe,GACpB,IAEIh3U,EAAS0jV,EAAkBW,OAC3B3xV,EAAe+sQ,GAAkBz/P,EAAOk9B,GAAiCl9B,EAAOjsB,EAAKuwW,EAAxCtkV,EAAOk9B,EAAKonT,EACzD/H,EAAc98E,GAAkBz/P,EAAOy+B,GAAiCz+B,EAAOhsB,EAAKswW,EAAxCtkV,EAAOy+B,EAAK6lT,EACxD1uW,EAAeoqB,EAAOu6S,MAAQv6S,EAAOu6S,MAAQ,EAAuBv6S,EAAO/pB,MAAQ,EACnFi3T,EAAgBltS,EAAOw6S,OAASx6S,EAAOw6S,OAAS,EAAuBx6S,EAAO5W,OAAS,EAEvFgyV,EADqC,kBAArCsI,EAAkBv7P,eACV,CACJjzF,GAAI,OAASxoB,KAAK4sU,cAAcsiC,eAAgB57U,OAAQ,CAAEjsB,EAAG2e,EAAa1e,EAAGuoW,EAAYtmW,MAAOL,EAAcwT,OAAQ8jT,GAAiBlrM,UAAWA,EAAW1mF,KAAMA,EAAM20G,WAAYyzN,EAAkBa,WAAYvxN,SAAU0wN,EAAkBc,SAC/Op5B,oBAAqB,gBAAiBzuU,QAAS+mW,EAAkBe,QAAS5wN,YAAa6vN,EAAkBgB,YAAajjL,UAAWiiL,EAAkBiB,UAAW9I,cAAe6H,EAAkBkB,eAGzJ,mBAArClB,EAAkBv7P,eACf,CACJjzF,GAAI,OAASxoB,KAAK4sU,cAAcsiC,eAAgB57U,OAAQ,CAAEjsB,EAAG2e,EAAa1e,EAAGuoW,EAAYtmW,MAAOL,EAAcwT,OAAQ8jT,GAAiBlrM,UAAWA,EAAW1mF,KAAMA,EAAM8vS,oBAAqB,iBAAkBzuU,QAAS+mW,EAAkBe,QAAS5wN,YAAa6vN,EAAkBgB,YAAajjL,UAAWiiL,EAAkBiB,UAAW9I,cAAe6H,EAAkBkB,eAIrW,CACJ1vV,GAAI,OAASxoB,KAAK4sU,cAAcsiC,eAAgB57U,OAAQ,CAAEjsB,EAAG2e,EAAa1e,EAAGuoW,EAAYtmW,MAAOL,EAAcwT,OAAQ8jT,GAAiBlrM,UAAWA,EAAW1mF,KAAMA,EAAM8vS,oBAAqB,uBAAwBzuU,QAAS+mW,EAAkBe,QAAS5wN,YAAa6vN,EAAkBgB,YAAajjL,UAAWiiL,EAAkBiB,UAAW9I,cAAe6H,EAAkBkB,cAAgBlB,EAAkBkB,cAAgB,MAG7a,CACAl4W,KAAK2sU,UAAU1gT,IAAIyiV,GAEnB,IAAIuI,EAAU5gW,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,qBAAuBwuV,EAAkB1hP,WAE3Gt1H,KAAK2sU,UAAUuqC,cAAcD,EAASvI,EAAMp5O,WAC5Ct1H,KAAKo3W,mBAAmB1I,EAAMp5O,UAAWo5O,GACzC1uW,KAAK4sU,cAAckiC,sBAAwB,KAC3C9uW,KAAK4sU,cAAcsiC,iBAEflvW,KAAK4sU,cAAcurC,gBAAkBn4W,KAAK4sU,cAAcurC,eAAeC,mBAAqBp4W,KAAK2sU,UAAU0rC,sBAE3Gr4W,KAAK4sU,cAAcurC,eAAeC,kBAAkB/gB,YAAY,CAACr3V,KAAK2sU,UAAUmG,UAAUznB,YAAY,wBAAwB,GAE9HrrT,KAAK4sU,cAAcurC,eAAeC,kBAAkB/gB,YAAY,CAACr3V,KAAK2sU,UAAUmG,UAAUznB,YAAY,iBAAiB,GAE/H,CACJ,CACJ,EAOA4+C,EAAUrsW,UAAUw5W,mBAAqB,SAAU3jP,EAAYk7D,GAE3D3uL,KAAK2sU,UAAUiiC,WAAW0J,UAAU3pL,EAAYr5D,UAAYq5D,EAAYr5D,UAAYq5D,EAAY4pL,UAAW,KAAM5pL,EAAa,WAAY,GAAIA,EAAaA,GAC3J,IAAIigL,EACA5+V,EACAF,EACAvG,EACAmT,EACA44G,EACAq5D,EAAYr7J,QACZtjB,EAAO2+K,EAAYr7J,OAAOtjB,KAAO2+K,EAAYr7J,OAAOtjB,KAAO2+K,EAAYr7J,OAAOjsB,EAC9EyI,EAAM6+K,EAAYr7J,OAAOxjB,IAAM6+K,EAAYr7J,OAAOxjB,IAAM6+K,EAAYr7J,OAAOhsB,EAC3EiC,EAAQolL,EAAYr7J,OAAO/pB,MAC3BmT,EAASiyK,EAAYr7J,OAAO5W,OAC5B44G,EAAYq5D,EAAYr5D,YAGxBtlH,EAAO2+K,EAAYgpL,OAAO3nW,KAAO2+K,EAAYgpL,OAAO3nW,KAAO2+K,EAAYgpL,OAAOtwW,EAC9EyI,EAAM6+K,EAAYgpL,OAAO7nW,IAAM6+K,EAAYgpL,OAAO7nW,IAAM6+K,EAAYgpL,OAAOrwW,EAC3EiC,EAAQolL,EAAY6pL,WAAW3qC,MAC/BnxT,EAASiyK,EAAY6pL,WAAW1qC,OAChCx4M,EAAYq5D,EAAY4pL,WAExB5pL,EAAYj0K,SAAWi0K,EAAYj0K,QAAQ4Y,SAC3CtjB,EAAO2+K,EAAYj0K,QAAQ4Y,OAAOtjB,KAClCF,EAAM6+K,EAAYj0K,QAAQ4Y,OAAOxjB,KAErC8+V,EAAa,CACTpmV,GAAImmK,EAAYnmK,GAAKmmK,EAAYnmK,GAAK,KAAM8K,OAAQ,CAAEtjB,KAAMA,EAAMF,IAAKA,EAAKvG,MAAOA,EAAOmT,OAAQA,GAAUgiU,oBAAqB/vJ,EAAY+vJ,oBAAsB/vJ,EAAY+vJ,oBAAsB,MAAOzuU,QAAS0+K,EAAY1+K,QAAU0+K,EAAY1+K,QAAU,EAAG8kL,UAAWpG,EAAYoG,UAAYpG,EAAYoG,UAAY,EAAG5tC,YAAawnC,EAAYxnC,YAAcwnC,EAAYxnC,YAAc,KAAM7xB,UAAWA,EAAW1mF,KAAM+/I,EAAY//I,KAAO+/I,EAAY//I,KAAO+/I,EAAY8pL,MAAOnyN,SAAUqoC,EAAYroC,SAAWqoC,EAAYroC,SAAW,KAAM/C,WAAYorC,EAAYprC,WAAaorC,EAAYprC,WAAa,KAAM4rN,cAAexgL,EAAYwgL,cAAgBxgL,EAAYwgL,cAAgBxgL,EAAY+pL,MAGrqBztW,KAAKiX,MAAM80C,KAAKC,UAAUzgD,OAAO4+O,gBAAgBz3P,OAAS,MAEpDsN,KAAKiX,MAAM80C,KAAKC,UAAU23S,GAAYjxW,OAAS,MAC/B,OACpCqC,KAAK4sU,cAAcopC,iBAAkB,EACrCh2W,KAAK2sU,UAAUiqC,iBAAiB+B,yBAC1B34W,KAAK4sU,cAAcgsC,qBACrB54W,KAAK2sU,UAAUugC,iBAAiB2L,yBAIxC,IAAI9C,EAAcv/V,OAAO4+O,eAAeJ,QAAQh1P,KAAK4sU,cAAcqpC,WAAa,qBAEhF,GAAKF,EAeA,CACD/1W,KAAK84W,0BAA0BlK,EAAYn7O,GAC3C,IAAIslP,EAAc/hT,KAAKr2D,MAAMo1W,GAC7Bv/V,OAAO4+O,eAAeuB,WAAW32P,KAAK4sU,cAAcqpC,WAAa,qBACjE,IAAI+C,EAAch5W,KAAK2sU,UAAUiqC,iBAAiBqC,kBAAkBF,EAAatlP,GACjF,IAAKs/J,GAAkBimF,IAAgBD,EAAYvuW,SAASwuW,EAAYjuW,WAAY,KAChFguW,EAAYvuW,SAASwuW,EAAYjuW,WAAY,KAAK4jL,YAAY9rL,KAAK+rW,GAC3DmK,EAAYvuW,SAASwuW,EAAYjuW,WAAY,KAAK4jL,YAAYl/K,QAAQm/V,OAE7E,CACD,IAAIsK,EAAmB,CAAE5jP,UAAW7B,EAAYk7D,YAAa,IAC7DuqL,EAAiBvqL,YAAY9rL,KAAK+rW,GAC1BsK,EAAiBvqL,YAAYl/K,QAAQm/V,GAC7CmK,EAAYl2W,KAAKq2W,EACrB,CACIC,EAAwBniT,KAAKC,UAAU8hT,GACvC/4W,KAAK4sU,cAAcopC,gBACnBh2W,KAAK4sU,cAAc15M,kBAAkBlzH,KAAK4sU,cAAcqpC,WAAa,qBAAuBkD,EAG5F3iW,OAAO4+O,eAAe6B,QAAQj3P,KAAK4sU,cAAcqpC,WAAa,oBAAqBkD,EAE3F,KArCkB,CACdn5W,KAAK84W,0BAA0BlK,EAAYn7O,GAC3C,IAAI2lP,EAAkB,CAAE9jP,UAAW7B,EAAYk7D,YAAa,IAC5DyqL,EAAgBzqL,YAAY9rL,KAAK+rW,GACzBwK,EAAgBzqL,YAAYl/K,QAAQm/V,GAC5C,IAAIsH,EAAuB,GAC3BA,EAAqBrzW,KAAKu2W,GAC1B,IAAID,EAAwBniT,KAAKC,UAAUi/S,GACvCl2W,KAAK4sU,cAAcopC,gBACnBh2W,KAAK4sU,cAAc15M,kBAAkBlzH,KAAK4sU,cAAcqpC,WAAa,qBAAuBkD,EAG5F3iW,OAAO4+O,eAAe6B,QAAQj3P,KAAK4sU,cAAcqpC,WAAa,oBAAqBkD,EAE3F,CAwBJ,EASAlP,EAAUrsW,UAAUy7W,0BAA4B,SAAUp4W,EAAUwyH,EAAY6lP,EAAgBC,GAC5Fv5W,KAAK4sU,cAAc4sC,8BAA6B,GAChD,IAAIC,EAAqB,KACrBC,EAAkB15W,KAAK22H,eAAelD,EAAY,MACtD,GAAuB,MAAnBimP,GAA2BJ,EAAgB,CAC3C,IAAK,IAAI55W,EAAI,EAAGA,EAAIg6W,EAAgB/7W,OAAQ+B,IACxC,GAAI45W,EAAe9wV,KAAOkxV,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKyd,GAAI,CACtE,GAAiB,WAAbvnB,EAEAy4W,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKuoB,OAAS,CAAEtjB,KAAMspW,EAAe5+V,QAAQ4Y,OAAOtjB,KAAMF,IAAKwpW,EAAe5+V,QAAQ4Y,OAAOxjB,IAAKvG,MAAO+vW,EAAehmV,OAAO/pB,MAAOmT,OAAQ48V,EAAehmV,OAAO5W,QAC3Mg9V,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKu7I,SAAWgzN,EAAehzN,cAErE,GAAiB,WAAbrlJ,EACLy4W,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKo8I,YAAcmyN,EAAe5+V,QAAQnS,SAAS,GAAG1H,MAAMsmJ,iBAElG,GAAiB,YAAblmJ,EACLy4W,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKkF,QAAUqpW,EAAe5+V,QAAQnS,SAAS,GAAG1H,MAAMoP,aAE9F,GAAiB,cAAbhP,EACLy4W,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKgqL,UAAYukL,EAAe5+V,QAAQnS,SAAS,GAAG1H,MAAMqgC,iBAEhG,GAAiB,WAAbjgC,EAAuB,CAC5BjB,KAAK25W,0BAA0BD,EAAgBlvW,SAAS9K,EAAEqL,WAAY,MACtE0uW,EAAqBC,EAAgB3iT,OAAOr3D,EAAG,GAAG,GAClD,KACJ,CAIA,GAHIuB,GAAyB,WAAbA,GACZjB,KAAK84W,0BAA0BY,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAM0oH,GAE5E8lP,EAAmB,CACnBG,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKkF,QAAUqpW,EAAe5+V,QAAQnS,SAAS,GAAG1H,MAAMoP,QAC/FypW,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKo8I,YAAcmyN,EAAe5+V,QAAQnS,SAAS,GAAG1H,MAAMsmJ,YACnGuyN,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAKgqL,UAAYukL,EAAe5+V,QAAQnS,SAAS,GAAG1H,MAAMqgC,YACjGlhC,KAAK84W,0BAA0BY,EAAgBlvW,SAAS9K,EAAEqL,WAAY,KAAM0oH,GAC5E,KACJ,CACJ,CAEJzzH,KAAK45W,kBAAkBF,EAAiBjmP,EAC5C,CACA,OAAOgmP,CACX,EAOAxP,EAAUrsW,UAAUk7W,0BAA4B,SAAUlK,EAAYn7O,GAElE,IAAIomP,EAAoB75W,KAAK85W,yBAAyBlL,GAElDmL,EAAmBv6B,GAAYovB,GACnCmL,EAAiBC,aAAepL,EAAWO,cAC3C4K,EAAiBtmP,WAAaA,SACvBsmP,EAAiBE,UACpBrL,EAAWpmV,KACXuxV,EAAiBG,UAAYtL,EAAWpmV,UACjCuxV,EAAiBvxV,IAExBqxV,EAAkBM,WAClBn6W,KAAK2sU,UAAUytC,oBAAoBrjT,OAAO8iT,EAAkBjqW,SAAU,EAAGmqW,GAGzE/5W,KAAK2sU,UAAUytC,oBAAoBv3W,KAAKk3W,EAEhD,EAEA9P,EAAUrsW,UAAUk8W,yBAA2B,SAAUpG,GAErD,IAAI2G,EAAcr6W,KAAK2sU,UAAUytC,oBACjC,GAAIC,GAAe3G,EACf,IAAK,IAAIh0W,EAAI,EAAGA,EAAI26W,EAAY18W,OAAQ+B,IACpC,GAAI26W,EAAY7vW,SAAS9K,EAAEqL,WAAY,KAAKivW,eAAiBtG,EAAUvE,cAEnE,OADAnvW,KAAK2sU,UAAUytC,oBAAoBrjT,OAAOr3D,EAAG,GACtC,CAAEy6W,YAAY,EAAMvqW,SAAUlQ,GAIjD,MAAO,CAAEy6W,YAAY,EAAOvqW,SAAU,KAC1C,EAMAq6V,EAAUrsW,UAAU+7W,0BAA4B,SAAUjG,GAEtD,IAAI2G,EAAcr6W,KAAK2sU,UAAUytC,oBACjC,GAAIC,GAAe3G,EACf,IAAK,IAAIh0W,EAAI,EAAGA,EAAI26W,EAAY18W,OAAQ+B,IACpC,GAAI26W,EAAY7vW,SAAS9K,EAAEqL,WAAY,KAAKivW,eAAiBtG,EAAUvE,cAAe,CAClFnvW,KAAK2sU,UAAUytC,oBAAoBrjT,OAAOr3D,EAAG,GAC7C,KACJ,CAGZ,EAOAuqW,EAAUrsW,UAAU08W,gBAAkB,SAAU7mP,EAAYigP,GACxD,GAAIA,EAAW,CACX1zW,KAAK84W,0BAA0BpF,EAAWjgP,GAE1C,IAAI8mP,EAAiBv6W,KAAK22H,eAAelD,EAAY,MACjD8mP,GACAA,EAAe13W,KAAK6wW,GAExB1zW,KAAK45W,kBAAkBW,EAAgB9mP,EAC3C,CACJ,EAEAw2O,EAAUrsW,UAAU+4H,eAAiB,SAAUrB,EAAWklP,GAEtD,IAAItE,EAEAH,EAAc,KAOlB,GALIA,EADA/1W,KAAK4sU,cAAcopC,gBACLh2W,KAAK4sU,cAAc15M,kBAAkBlzH,KAAK4sU,cAAcqpC,WAAa,qBAGrEz/V,OAAO4+O,eAAeJ,QAAQh1P,KAAK4sU,cAAcqpC,WAAa,qBAE/D,CACb,IAAI8C,EAAc/hT,KAAKr2D,MAAMo1W,GACzBxuW,EAAQvH,KAAK2sU,UAAUiqC,iBAAiBqC,kBAAkBF,EAAazjP,GAEvE4gP,EADA6C,EAAYvuW,SAASjD,EAAMwD,WAAY,KAChBguW,EAAYvuW,SAASjD,EAAMwD,WAAY,KAAK4jL,YAG5C6rL,CAE/B,MAEItE,EAAuBsE,EAE3B,OAAOtE,CACX,EACAjM,EAAUrsW,UAAUg8W,kBAAoB,SAAUF,EAAiBjmP,GAE/D,IAAIsiP,EAAc,KAOlB,GALIA,EADA/1W,KAAK4sU,cAAcopC,gBACLh2W,KAAK4sU,cAAc15M,kBAAkBlzH,KAAK4sU,cAAcqpC,WAAa,qBAGrEz/V,OAAO4+O,eAAeJ,QAAQh1P,KAAK4sU,cAAcqpC,WAAa,qBAE/D,CACb,IAAI8C,EAAc/hT,KAAKr2D,MAAMo1W,GAC7Bv/V,OAAO4+O,eAAeuB,WAAW32P,KAAK4sU,cAAcqpC,WAAa,qBACjE,IAAI1uW,EAAQvH,KAAK2sU,UAAUiqC,iBAAiBqC,kBAAkBF,EAAatlP,GACvEslP,EAAYvuW,SAASjD,EAAMwD,WAAY,OACvCguW,EAAYvuW,SAASjD,EAAMwD,WAAY,KAAK4jL,YAAc+qL,GAE9D,IAAIP,EAAwBniT,KAAKC,UAAU8hT,GACvC/4W,KAAK4sU,cAAcopC,gBACnBh2W,KAAK4sU,cAAc15M,kBAAkBlzH,KAAK4sU,cAAcqpC,WAAa,qBAAuBkD,EAG5F3iW,OAAO4+O,eAAe6B,QAAQj3P,KAAK4sU,cAAcqpC,WAAa,oBAAqBkD,EAE3F,CACJ,EAMAlP,EAAUrsW,UAAU68W,oBAAsB,SAAUC,GAC5CA,GACA16W,KAAKksW,sBAEb,EAKAjC,EAAUrsW,UAAU+8W,kBAAoB,WACpC36W,KAAK4sU,cAAc6/B,sBAAuB,EAC1CzsW,KAAKy6W,qBAAoB,EAC7B,EAKAxQ,EAAUrsW,UAAUg9W,eAAiB,WACjC56W,KAAK4sU,cAAc6/B,sBAAuB,EAC1CzsW,KAAK4sU,cAAcigC,gBAAiB,EACpC7sW,KAAKy6W,qBAAoB,EAC7B,EAMAxQ,EAAUrsW,UAAUi9W,oBAAsB,SAAUhjW,GAChD,OAAQA,GAAU,GAAK,GAC3B,EAQAoyV,EAAUrsW,UAAUk9W,2BAA6B,SAAUpH,EAAWp+O,EAAWiiP,GAG7E,GAAI7D,EAAW,CAEX,IAAIpgV,EAASogV,EAAUiE,OACnB3xV,EAAcsN,EAAOk9B,EACrBq/S,EAAav8U,EAAOy+B,EACpB7oD,EAAeoqB,EAAOu6S,MACtBrN,EAAgBltS,EAAOw6S,OAEvBl/R,EAAO8kU,EAAU+D,SASrB,OARIF,IACA3oU,EAAO4lS,GAAcx9Q,KAAKr2D,MAAM+yW,EAAU+D,YAEtC,CAEJjvV,GAAI,OAASkrV,EAAUwE,cAAe5kV,OAAQ,CAAEjsB,EAAG2e,EAAa1e,EAAGuoW,EAAYtmW,MAAOL,EAAcwT,OAAQ8jT,GAAiBlrM,UAAWA,EAAW1mF,KAAMA,EACzJ8vS,oBAAqB,uBAAwBzuU,QAASyjW,EAAUqE,QAAS5wN,YAAausN,EAAUsE,YAAajjL,UAAW2+K,EAAUuE,UAAW9I,cAAeuE,EAAUwE,cAG9K,CACJ,EAKAjO,EAAUrsW,UAAU4C,QAAU,WAC1BgW,OAAO4+O,eAAeuB,WAAW,qBAEjC,IAAI87G,EAAYp8V,SAASkS,eAAevoB,KAAK2sU,UAAUz9S,QAAQ1G,GAAK,gBAChEiqV,IACAA,EAAUrnV,oBAAoB,SAAUprB,KAAKyrW,eACzCgH,EAAU1pD,eACV0pD,EAAU1pD,cAAc3qR,YAAYq0U,IAExCzyW,KAAK8sW,iBACL9sW,KAAK8sW,gBAAgBtsW,SAC7B,EACOypW,CACX,CA3kE+B,GEZ3BrsS,GAAyC,WACzC,IAAIC,EAAgB,SAAUx/C,EAAGD,GAI7B,OAHAy/C,EAAgBl/D,OAAO+E,gBAClB,CAAEC,UAAW,cAAgBuN,OAAS,SAAUmN,EAAGD,GAAKC,EAAE1a,UAAYya,CAAG,GAC1E,SAAUC,EAAGD,GAAK,IAAK,IAAI3a,KAAK2a,EAAOA,EAAE/b,eAAeoB,KAAI4a,EAAE5a,GAAK2a,EAAE3a,GAAI,EACtEo6D,EAAcx/C,EAAGD,EAC5B,EACA,OAAO,SAAUC,EAAGD,GAEhB,SAAS0/C,IAAO99D,KAAKG,YAAcke,CAAG,CADtCw/C,EAAcx/C,EAAGD,GAEjBC,EAAEzgB,UAAkB,OAANwgB,EAAazf,OAAO0G,OAAO+Y,IAAM0/C,EAAGlgE,UAAYwgB,EAAExgB,UAAW,IAAIkgE,EACnF,CACJ,CAZ6C,GAgBzCi9S,GAAS,CAAEC,UAAW,mBAMtBC,GAAyB,WAOzB,SAASA,EAAQC,GAEbl7W,KAAKD,QAAU,CACX6Y,KAAM,QACNuiW,YAAa,OACbC,OAAQ,SACRprO,OAAQ,SACRm+H,KAAM,OACN70G,MAAO,QACP+hN,KAAM,OACNzoU,OAAQ,SACR7jC,MAAO,iBACPusW,MAAO,QACPC,WAAY,aACZC,OAAQ,UAMZx7W,KAAKxC,KAAOy9W,EACZj7W,KAAKy7W,WAAaP,EAClBl7W,KAAK07W,IAAM,CAAC,CAChB,CAYA,OAHAT,EAAQr9W,UAAU+9W,gBAAkB,SAAU/sU,EAAMssU,EAAIt0W,EAAO6kK,GAC3D,OAAO78H,CACX,EACOqsU,CACX,CA3C6B,GAiDzBW,GAA6B,SAAUj2W,GAEvC,SAASi2W,IACL,OAAkB,OAAXj2W,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CA0WA,OA7WA49D,GAAUg+S,EAAaj2W,GAUvBi2W,EAAYh+W,UAAUi+W,aAAe,SAAUC,EAAal1W,GAUxD,IATA,IAGI48D,EACA7jE,EAIAu/H,EARAl7H,EAAS83W,EAAYL,WAAWM,KAAKl0W,MAAM,GAC3CkH,EAAQ/K,EAAOrG,OACfq+W,GAAW,EAGXzsW,EAAW,CAAC,EACZ0sW,EAAW,EACX3iN,EAAQ,GAEH55J,EAAI,EAAGA,EAAIkH,EAAM2I,SAAS5R,OAAQ+B,IACvCu8W,IACA1sW,EAAS3I,EAAM2I,SAAS7P,GAAGC,KAAOiH,EAAM2I,SAAS7P,GAAGwB,MAExD,IAAIg7W,EAAM,CAAC,EACX,IAASx8W,EAAI,EAAGA,EAAIkH,EAAMq7L,QAAQtkM,OAAQ+B,IAEtB,YADhBC,EAAMiH,EAAMq7L,QAAQviM,IACXktB,IAA8B,YAAXjtB,EAAIitB,KAAqBhmB,EAAM2I,SAAS5R,QASpE6lE,EAAMxjE,KAAKL,EAAIitB,IAAItqB,KAAKtC,KAAMgE,EAAQrE,EAAIE,EAAG+G,GAC9B,iBAAXjH,EAAIitB,GACJsvV,EAAIv8W,EAAIE,EAAEqrG,MAAQ,MAAQvrG,EAAIE,EAAErC,MAAQgmE,EAGxCx/D,OAAiBqC,IAARm9D,EAAoBA,EAAMx/D,EAExB,WAAXrE,EAAIitB,IAA8B,WAAXjtB,EAAIitB,IAA8B,WAAXjtB,EAAIitB,IAA8B,YAAXjtB,EAAIitB,KACzEovV,GAAW,GAEXA,IACAjtW,EAAQ/K,EAAOrG,UAnBA,YAAXgC,EAAIitB,IACJ0sI,EAAMz2J,KAAKlD,EAAIE,GAEJ,WAAXF,EAAIitB,KACJsyG,EAAOv/H,EAAIE,IAkBvB,GAAIo8W,EAAU,CACV,IAAIrvW,EAAO,CACPhG,MAAOA,EAAO2I,SAAUA,EAAUvL,OAAQA,EAAQs1J,MAAOA,EAAOp6B,KAAMA,GAEtEi9O,EAAen8W,KAAKo8W,cAAcxvW,GACtC5I,EAASm4W,EAAan4W,OACtB+K,EAAQotW,EAAaptW,KACzB,CAQA,OAPInI,EAAMy1W,kBACNr4W,EAAS,CACLA,OAAQA,EACR+K,MAAOA,EACPwsW,WAAYW,IAGbl4W,CACX,EAKA43W,EAAYh+W,UAAUw+W,cAAgB,SAAUxvW,GAC5C,IAAImC,EAAQ,EACRmtW,EAAMl8W,KAAKs8W,aAAa1vW,EAAKhG,OAC7B5C,EAAS4I,EAAK5I,OAClB,GAAK+uR,GAAkBnmR,EAAK2C,SAASgtW,mBAiBhC,CACGrxQ,EAAQt+F,EAAK0sJ,MAAM,GAAG0tB,UAE1Bj4K,GADA/K,EAASw4W,GAASljN,MAAMt1J,EAAQknG,EAAOgxQ,EAAK,KAAM,KAAMtvW,EAAK0sJ,MAAM,GAAGmjN,UAAU,IACjE9+W,OACXixC,EAAO5qC,EACP4I,EAAKsyH,OACLl7H,EAAShE,KAAK08W,OAAO14W,EAAQ4I,EAAKsyH,KAAMtyH,EAAKhG,QAEjD5G,KAAK28W,gBAAgB34W,EAAQ4qC,EACjC,KA1ByD,CAErD,IADA,IAAIguU,EAAMhwW,EAAK2C,SAASgtW,kBACf78W,EAAIk9W,EAAItB,MAAM39W,OAAS,EAAG+B,GAAK,EAAGA,IACvCsE,EAAShE,KAAK68W,QAAQ74W,EAAQ44W,EAAItB,MAAM57W,IAE5C,GAAIkN,EAAK0sJ,MAAM37J,SAAWi/W,EAAIhmQ,MAAO,CACjC,IAAI1L,EAAQt+F,EAAK0sJ,MAAMsjN,EAAIhmQ,OAAOowE,UAClChjL,EAASw4W,GAASljN,MAAMt1J,EAAQknG,EAAOgxQ,EAAK,KAAM,KAAMtvW,EAAK0sJ,MAAM,GAAGmjN,UAAU,EACpF,CACA1tW,EAAQ/K,EAAOrG,OACf,IAAIixC,EAAO5qC,EAEXA,GADAA,EAASA,EAAO6D,MAAM+0W,EAAIzuG,OACVtmQ,MAAM,EAAG+0W,EAAIvB,MACzBzuW,EAAK0sJ,MAAM37J,SAAWi/W,EAAIhmQ,OAC1B52G,KAAK28W,gBAAgB34W,EAAQ4qC,EAErC,CAWA,MAAO,CAAE5qC,OAAQA,EAAQ+K,MAAOA,EACpC,EACA6sW,EAAYh+W,UAAU++W,gBAAkB,SAAU34W,EAAQ4qC,GACtD,GAAI5qC,EAAOrG,QAAUixC,EAAKjxC,OAAQ,CAC9B,IAAI00R,EAAM,YACNyqF,EAAa,cACblmQ,EAAQ,QACRmmQ,EAAU,UACd/4W,EAAOquR,GAAOzjP,EAAKyjP,GACnBruR,EAAO84W,GAAcluU,EAAKkuU,GAC1B94W,EAAO4yG,GAAShoE,EAAKgoE,GACrB5yG,EAAO+4W,GAAWnuU,EAAKmuU,EAC3B,CACA,OAAO/4W,CACX,EAKA43W,EAAYh+W,UAAU0+W,aAAe,SAAU11W,GAC3C,IAAIo2W,EAAW9sJ,GAAM+sJ,cAAcr2W,EAAMq7L,QAAS,gBAC9Ci6K,EAAM,GACV,GAAIc,EAASr/W,OAET,IADA,IAAI0kG,OAAM,EACD3iG,EAAI,EAAGA,EAAIs9W,EAASr/W,OAAQ+B,IACjC2iG,EAAM26Q,EAASt9W,GAAGG,EAClBq8W,EAAIr5W,KAAK,CAAErF,KAAM6kG,EAAI7kG,KAAM0tG,MAAOsxQ,GAASxgV,SAASqmE,EAAI6I,MAAOtkG,KAGvE,OAAOs1W,CACX,EAOAN,EAAYh+W,UAAUs/W,aAAe,SAAUC,EAAIC,EAASv9W,GACxD,IAAIH,EACA29W,EAAoBD,EAAQE,eAAe3/W,OAC/C,IAAK+B,EAAI,EAAGA,EAAI09W,EAAQG,aAAa5/W,OAAQ+B,IACzCM,KAAKijJ,OAAOk6N,EAAIC,EAAQG,aAAa79W,IAEzC,IAAKA,EAAI,EAAGA,EAAI09W,EAAQI,eAAe7/W,OAAQ+B,IAC3CM,KAAKilI,OAAOk4O,EAAIt9W,EAAEF,IAAKy9W,EAAQI,eAAe99W,IAElD,IAAKA,EAAI,EAAGA,EAAI29W,EAAmB39W,IAC/BM,KAAKmsB,OAAOgxV,EAAIt9W,EAAEF,IAAKy9W,EAAQE,eAAe59W,IAElD,OAAO09W,CACX,EAMAxB,EAAYh+W,UAAUi/W,QAAU,SAAU3B,EAAIr7W,GAC1C,OAAKq7W,GAAOA,EAAGv9W,OAGRu9W,EAAGv4W,QAAO,SAAUf,GACvB,GAAI/B,EACA,OAAOA,EAAEw7S,SAASz5S,EAE1B,IANWs5W,CAOf,EAOAU,EAAYh+W,UAAU6/W,aAAe,SAAUvC,EAAIr7W,GAC/C,IAAI+sB,EAAK4vV,GAASjB,WAAW17W,EAAErC,MAC/B,OAAK09W,GAAOtuV,GAAoB,IAAdsuV,EAAGv9W,OAGdivB,EAAGsuV,EAAIr7W,EAAEqrG,OAFL,IAGf,EAMA0wQ,EAAYh+W,UAAU8/W,SAAW,SAAUxC,EAAIr7W,GAC3C,OAAKq7W,GAAOA,EAAGv9W,QAGa,IAAxBkC,EAAE89W,WAAWhgX,QACb6+W,GAASoB,aAAa1C,EAAG,GAAIr7W,EAAE89W,YAE5BzC,EAAGv4W,QAAO,SAAUf,GACvB,IAAK,IAAIwH,EAAI,EAAGA,EAAIvJ,EAAE89W,WAAWhgX,OAAQyL,IACrC,GAAIvJ,EAAE48W,SAASn6W,KAAKV,EAAK46W,GAAShtN,UAAU3vJ,EAAE89W,WAAWv0W,GAAIxH,GAAM/B,EAAEg+W,UAAWh+W,EAAEi+W,WAAYj+W,EAAEk+W,cAC5F,OAAO,EAGf,OAAO,CACX,KAZW7C,CAaf,EAOAU,EAAYh+W,UAAUogX,SAAW,SAAU9C,EAAIr7W,EAAG+G,GAC9C,IAAKs0W,IAAOA,EAAGv9W,OACX,OAAOu9W,EAEX,IAAI+C,EACA/yQ,EAAQsxQ,GAASxgV,SAASn8B,EAAEmnL,UAAWpgL,GAC3C,IAAKskG,EACD,OAAOgwQ,EAAG9zW,KAAKvH,EAAE48W,UAErB,GAAIvxQ,aAAiBh6F,MAAO,CAExB,IAAK,IAAIxR,GADTwrG,EAAQA,EAAMrjG,MAAM,IACDlK,OAAS,EAAG+B,GAAK,EAAGA,IAC9BwrG,EAAMxrG,KAGXu+W,EAAYp+W,EAAE48W,SACVD,GAAS3xO,SAAS3/B,EAAMxrG,GAAI,WAC5Bu+W,EAAYzB,GAAS0B,OAAO,cAC5BhzQ,EAAMxrG,GAAKwrG,EAAMxrG,GAAGkM,QAAQ,QAAS,KAEzCsvW,EAAKsB,GAASp1W,KAAK8zW,EAAIhwQ,EAAMxrG,GAAIu+W,IAErC,OAAO/C,CACX,CACA,OAAOsB,GAASp1W,KAAK8zW,EAAIhwQ,EAAOrrG,EAAE48W,SACtC,EAOAb,EAAYh+W,UAAUugX,QAAU,SAAUjD,EAAIr7W,EAAG+G,GAC7C,IAAKs0W,IAAOA,EAAGv9W,OACX,OAAOu9W,EAEX,IAAIgB,EAAMl8W,KAAKs8W,aAAa11W,GAC5B,OAAO41W,GAASljN,MAAM4hN,EAAIsB,GAASxgV,SAASn8B,EAAEmnL,UAAWpgL,GAAQs1W,EAAK,KAAM,KAAMr8W,EAAE48W,SACxF,EAQAb,EAAYh+W,UAAU8+W,OAAS,SAAUxB,EAAIr7W,EAAG+G,GAC5C,IAAIioD,EAAO2tT,GAASxgV,SAASn8B,EAAEu+W,SAAUx3W,GACrC4M,GAASgpW,GAASxgV,SAASn8B,EAAEy1H,UAAW1uH,GAAS,GAAKioD,EACtDrZ,EAAMhiC,EAAQq7C,EAClB,OAAKqsT,GAAOA,EAAGv9W,OAGRu9W,EAAGrzW,MAAM2L,EAAOgiC,GAFZ0lU,CAGf,EAOAU,EAAYh+W,UAAUygX,QAAU,SAAUnD,EAAIr7W,GAC1C,OAAKq7W,GAAOA,EAAGv9W,OAGRu9W,EAAGrzW,MAAM20W,GAASxgV,SAASn8B,EAAE2T,OAAQgpW,GAASxgV,SAASn8B,EAAE21C,MAFrD0lU,CAGf,EAMAU,EAAYh+W,UAAU0gX,OAAS,SAAUpD,EAAIr7W,GACzC,OAAKq7W,GAAOA,EAAGv9W,OAGRu9W,EAAGrzW,MAAM,EAAG20W,GAASxgV,SAASn8B,EAAE0+W,MAF5BrD,CAGf,EAMAU,EAAYh+W,UAAU4gX,OAAS,SAAUtD,EAAIr7W,GACzC,OAAKq7W,GAAOA,EAAGv9W,OAGRu9W,EAAGrzW,MAAM20W,GAASxgV,SAASn8B,EAAE0+W,MAFzBrD,CAGf,EAMAU,EAAYh+W,UAAU6gX,SAAW,SAAUvD,EAAIr7W,GAC3C,OAAKq7W,GAAOA,EAAGv9W,OAGR6+W,GAASxsO,OAAOkrO,EAAIsB,GAASxgV,SAASn8B,EAAE89W,aAFpCzC,CAGf,EAOAU,EAAYh+W,UAAUqlJ,OAAS,SAAUk6N,EAAIvuU,EAAM8vU,EAAW93W,EAAOgJ,GACjE,OAAImjR,GAAkBnjR,GACXutW,EAAG1B,WAAWM,KAAKl5W,KAAK+rC,GAGxBuuU,EAAG1B,WAAWM,KAAKhlT,OAAOnnD,EAAU,EAAGg/B,EAEtD,EASAgtU,EAAYh+W,UAAUuuB,OAAS,SAAUgxV,EAAIwB,EAAUz9W,EAAOw9W,GAC1D,IACIh/W,EADAw7W,EAAKiC,EAAG1B,WAAWM,KAKvB,IAHqB,kBAAV76W,GAAwBA,aAAiBoK,OAChDpK,EAAQs7W,GAAShtN,UAAUmvN,EAAUz9W,IAEpCxB,EAAI,EAAGA,EAAIw7W,EAAGv9W,QACX6+W,GAAShtN,UAAUmvN,EAAUzD,EAAGx7W,MAAQwB,EADrBxB,KAK3B,OAAOA,IAAMw7W,EAAGv9W,OAASu9W,EAAGnkT,OAAOr3D,EAAG,GAAK,IAC/C,EASAk8W,EAAYh+W,UAAUqnI,OAAS,SAAUk4O,EAAIwB,EAAUz9W,EAAOw9W,GAC1D,IACIh/W,EACAC,EAFAu7W,EAAKiC,EAAG1B,WAAWM,KAMvB,IAHKhpF,GAAkB4rF,KACnBh/W,EAAMq8B,GAAS2iV,EAAUz9W,IAExBxB,EAAI,EAAGA,EAAIw7W,EAAGv9W,SACVo1R,GAAkB4rF,IAAc3iV,GAAS2iV,EAAUzD,EAAGx7W,MAASC,GAD7CD,KAK3B,OAAOA,EAAIw7W,EAAGv9W,OAAS8iO,GAAMy6I,EAAGx7W,GAAIwB,GAAS,IACjD,EACO06W,CACX,CA/WiC,CA+W/BX,IAOE2D,GAA4B,SAAUj5W,GAEtC,SAASi5W,IACL,OAAkB,OAAXj5W,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CA4bA,OA/bA49D,GAAUghT,EAAYj5W,GAYtBi5W,EAAWhhX,UAAUi+W,aAAe,SAAUsB,EAAIv2W,EAAOi4W,GACrD,IAIIliR,EACAwxK,EALAlsE,EAAUjiM,KAAK8+W,gBAAgBl4W,GAC/Bm4W,EAAU7uJ,GAAM8uJ,iBAAiBp4W,EAAMq7L,QAAS,CAAC,WAAY,SAAU,SAAU,SAAU,YAC3F1kH,EAAS32E,EAAM22E,OACfliE,EAAM8hW,EAAG1B,WAAWpgW,IAGpBggW,EAAO,KACPt7W,EAAUC,KAAKD,QACf62B,EAAU,CAAEqoV,MAAO,GAAI75M,OAAQ,GAAIskD,QAAS,GAAIw1J,SAAU,GAAI3D,WAAY,IAE1E,WAAYwD,GACZpiR,EAAOoiR,EAAQrC,OAGfvuG,IAFAA,EAAOquG,GAASxgV,SAAS2gE,EAAK24B,UAAW1uH,IAE1B,IADfy0W,EAAOmB,GAASxgV,SAAS2gE,EAAKyhR,SAAUx3W,KAGnC,YAAam4W,IAElB5wG,GADAxxK,EAAOoiR,EAAQV,SACH7qW,MACZ6nW,EAAO1+Q,EAAKnnD,IAAMmnD,EAAKnpF,OAG3B,IAAK,IAAI9T,EAAI,EAAGA,EAAIuiM,EAAQg9K,MAAMthX,OAAQ+B,IACtCi9F,EAAO6/Q,GAASxgV,SAASimK,EAAQg9K,MAAMv/W,GAAGG,EAAEmnL,UAAWpgL,GACvDgwB,EAAQqoV,MAAMp8W,KAAK25W,GAAS2C,oBAAoBn/W,KAAM,aAAc,CAAEtC,KAAMi/F,EAAM34E,UAAWi+K,EAAQg9K,MAAMv/W,GAAGG,EAAEmkB,WAAapd,IAG7Hi4W,IACAliR,EAAO38F,KAAKo/W,eAAeP,EAAkBj4W,KAEzCgwB,EAAQ8yL,QAAQ7mN,KAAK25W,GAAS2C,oBAAoBn/W,KAAM,cAAe28F,EAAK0iR,SAAUz4W,IAI9F,IAASlH,EAAI,EAAGA,EAAIuiM,EAAQynB,QAAQ/rN,OAAQ+B,IAAK,CAC7C,IAAI4T,EAAMkpW,GAAS2C,oBAAoBn/W,KAAM,cAAeiiM,EAAQynB,QAAQhqN,GAAGG,EAAEw/W,SAAUz4W,GACtF5G,KAAKwyS,eACmB,mBAAzBxyS,KAAKwyS,kBACJzf,GAAkB9wF,EAAQynB,QAAQhqN,GAAGG,EAAEF,MAAQsiM,EAAQynB,QAAQ/rN,OAAS,IACzE2V,EAAM,IAAMA,EAAM,KAEtBsjB,EAAQ8yL,QAAQ7mN,KAAKyQ,GAErB,IADA,IACSqnD,EAAK,EAAGy4N,EAD0B,kBAAvBx8P,EAAQ8yL,QAAQhqN,GAAkBf,OAAOW,KAAKs3B,EAAQ8yL,QAAQhqN,IAAM,GACtDi7D,EAAKy4N,EAAOz1R,OAAQg9D,IAAM,CACxD,IAAIxoC,EAAOihQ,EAAOz4N,GACd6hT,GAAS8C,OAAQ1oV,EAASzE,YACnByE,EAAQzE,EAEvB,CACJ,CAEA,IAASzyB,EAAI,EAAGA,EAAIuiM,EAAQi9K,SAASvhX,OAAQ+B,IACzCi9F,EAAOslG,EAAQi9K,SAASx/W,GAAGG,EAC3B+2B,EAAQsoV,SAASr8W,KAAK25W,GAAS2C,oBAAoBn/W,KAAM,eAAgB,CACrE4kL,OAAQjoF,EAAKghR,WACbr4M,SAAU3oE,EAAK2oE,SACf3lK,IAAKg9F,EAAKkhR,UACVC,WAAYnhR,EAAKmhR,YAClBl3W,IAGP,IAASlH,EAAI,EAAGA,EAAIuiM,EAAQ78B,OAAOznK,OAAQ+B,IACvCk3B,EAAQwuI,OAAOviK,KAAK25W,GAASxgV,SAASimK,EAAQ78B,OAAO1lK,GAAGG,EAAEmnL,UAAWpgL,IAGzE,IAASlH,EAAI,EAAGA,EAAIuiM,EAAQs5K,WAAW59W,OAAQ+B,IAC3Ci9F,EAAOslG,EAAQs5K,WAAW77W,GAAGG,EAC7B+2B,EAAQ2kV,WAAW14W,KAAK,CAAErF,KAAMm/F,EAAKn/F,KAAM0tG,MAAOsxQ,GAASxgV,SAAS2gE,EAAKuO,MAAOtkG,KAEpF,IAAIg2W,EAAM,CAAC,EAIX,GAHA58W,KAAKu/W,gBAAgBx/W,EAAS6G,EAAOm4W,EAASnoV,EAASgmV,GAEvDJ,GAAS2C,oBAAoBn/W,KAAM,YAAa,CAAEm9W,GAAIA,EAAIv2W,MAAOA,EAAO22E,OAAQA,EAAQiiS,UAAW5C,IAC/Fh2W,EAAM2I,SAAS5R,OACf,IAAS+B,EAAI,EAAGA,EAAIkH,EAAM2I,SAAS5R,OAAQ+B,IACvCk9W,EAAIh2W,EAAM2I,SAAS7P,GAAGC,KAAOiH,EAAM2I,SAAS7P,GAAGwB,MAKvD,IADA,IACSqZ,EAAK,EAAGklW,EADN9gX,OAAOW,KAAKs9W,GACSriW,EAAKklW,EAAO9hX,OAAQ4c,IAAM,CAClD4X,EAAOstV,EAAOllW,IACdiiW,GAAS8C,OAAO1C,EAAIzqV,KAAwB,KAAdyqV,EAAIzqV,IAAqC,IAArByqV,EAAIzqV,GAAMx0B,gBACrDi/W,EAAIzqV,EAEnB,CACMpyB,EAAQouQ,QAAQyuG,GAAO78W,EAAQs7W,QAAQuB,GAAiB,OAATvB,IACjDuB,EAAI78W,EAAQouQ,MAAQquG,GAAS2C,oBAAoBn/W,KAAM,SAAUmuQ,EAAMvnQ,GACvEg2W,EAAI78W,EAAQs7W,MAAQmB,GAAS2C,oBAAoBn/W,KAAM,SAAUq7W,EAAMz0W,IAE3E,IAAInD,EAAIzD,KAAK07W,IAEb,OADA17W,KAAK07W,IAAM,CAAC,EACqB,SAA7B17W,KAAKD,QAAQo7W,YACN,CACHvsU,KAAMooB,KAAKC,UAAU2lT,EAAKJ,GAAS77W,MAAM++W,kBACzCrkW,IAAKA,EACLskW,QAASl8W,EACTjG,KAAM,OACN+xK,YAAa,oCAGrB5yE,EAAO38F,KAAK4/W,qBAAqBhD,EAAKh2W,EAAOu2W,GAEtC,CACH3/W,KAAM,MAAO6d,KAFjBshF,IAA4C,IAApCwgR,EAAG1B,WAAWpgW,IAAI5L,QAAQ,KAAc,IAAM,KAAOktF,GAElCh/F,OAAS0d,EAAIzP,QAAQ,OAAQ+wF,GAAQthF,EAAKskW,QAASl8W,GAElF,EACAm7W,EAAWhhX,UAAU2hX,gBAAkB,SAAUx/W,EAAS6G,EAAOm4W,EAASnoV,EAASipV,GAC/E,IACIjD,EAAMiD,EACVjD,EAAI78W,EAAQ6Y,MAAQhS,EAAMk5W,UACtB//W,EAAQwC,OAASqE,EAAMm5W,UAAUpiX,SACjCi/W,EAAI78W,EAAQwC,OAAS,eAAgBvC,KAAOw8W,GAAS2C,oBAAoBn/W,KAAM,aAAc4G,EAAMm5W,WAAa,KAE/Gn5W,EAAMm5W,UAAUpiX,QAAUoC,EAAQy7W,SACnCoB,EAAI78W,EAAQy7W,QAAU,aAAcx7W,MAAQ,aAAc++W,EACtDvC,GAAS2C,oBAAoBn/W,KAAM,WAAY,CAAEggX,QAASxD,GAASxgV,SAAS+iV,EAAQN,SAASd,WAAY/2W,GAAQq5W,QAASr5W,EAAMq5W,SAAWr5W,GAASA,EAAMq5W,SAElKrD,EAAI78W,EAAQiwI,QAAU,aAAc+uO,IAAYn4W,EAAMm5W,UAAUpiX,OAC5D6+W,GAAS2C,oBAAoBn/W,KAAM,WAAYw8W,GAASxgV,SAAS+iV,EAAQN,SAASd,WAAY/2W,GAAQA,GAAS,GACnHg2W,EAAI78W,EAAQgP,OAASnI,EAAMy1W,gBAAkBG,GAAS2C,oBAAoBn/W,KAAM,UAAW4G,EAAMy1W,gBAAiBz1W,GAAS,GAC3Hg2W,EAAI78W,EAAQ6yC,QAAUhc,EAAQsoV,SAASvhX,OAAS6+W,GAAS2C,oBAAoBn/W,KAAM,WAAY42B,EAAQsoV,SAAUt4W,GAAS,GAC1Hg2W,EAAI78W,EAAQouQ,MAAQ,WAAY4wG,EAC5BvC,GAAS2C,oBAAoBn/W,KAAM,SAAUw8W,GAASxgV,SAAS+iV,EAAQP,OAAOD,IAAK33W,GAAQA,GAAS,GACxGg2W,EAAI78W,EAAQs7W,MAAQ,WAAY0D,EAC5BvC,GAAS2C,oBAAoBn/W,KAAM,SAAUw8W,GAASxgV,SAAS+iV,EAAQT,OAAOC,IAAK33W,GAAQA,GAAS,GACxGg2W,EAAI78W,EAAQu7W,OAAS1kV,EAAQ8yL,QAAQ/rN,QAAUi5B,EAAQsoV,SAASvhX,OAC5D6+W,GAAS2C,oBAAoBn/W,KAAM,UAAW42B,EAAQ8yL,QAAS9iN,GAAS,GAC5Eg2W,EAAI78W,EAAQq7W,QAAUxkV,EAAQqoV,MAAMthX,OAAS6+W,GAAS2C,oBAAoBn/W,KAAM,WAAY42B,EAAQqoV,MAAOr4W,GAAS,GACpHg2W,EAAI78W,EAAQu5J,OAAS1iI,EAAQwuI,OAAOznK,OAAS6+W,GAAS2C,oBAAoBn/W,KAAM,UAAW42B,EAAQwuI,OAAQx+J,GAAS,GACpHg2W,EAAI78W,EAAQw7W,YAAc3kV,EAAQ2kV,WAAW59W,OACzC6+W,GAAS2C,oBAAoBn/W,KAAM,eAAgB42B,EAAQ2kV,WAAY30W,GAAS,GACpFg2W,EAAS,MAAI,EACjB,EAOAgC,EAAWhhX,UAAUgiX,qBAAuB,SAAUhpV,EAAShwB,EAAOu2W,GAClE,MAAO,EAEX,EAUAyB,EAAWhhX,UAAU+9W,gBAAkB,SAAU/sU,EAAMssU,EAAIt0W,EAAO6kK,EAAK70I,EAASwmV,GAC5E,GAAI3xM,GAAOA,EAAIjC,kBAAkB,kBAC0C,IAAvEiC,EAAIjC,kBAAkB,gBAAgB/5J,QAAQ,oBAA4B,CAC1E,IAAIywW,EAAiB1D,GAAS2D,iBAC1BjF,IAAOA,EAAGiF,mBACV3D,GAAS2D,kBAAmB,GAEhCvxU,EAAO4tU,GAAS77W,MAAMy/W,UAAUxxU,GAChC4tU,GAAS2D,iBAAmBD,CAChC,CACA,IAAIlqV,EAAWY,EACX8kV,EAAM1lV,EAAS2pV,SAAW,CAAC,EAC3BU,EAAUzxU,EAAOA,EAAKyxU,QAAU,GACpC,GAAI50M,GAAOA,EAAIjC,kBAAkB,kBAC6B,IAA1DiC,EAAIjC,kBAAkB,gBAAgB/5J,QAAQ,OAC9C,OAAQ7I,EAAMy1W,gBAAkB,CAAEr4W,OAAQ,GAAI+K,MAAO,GAAM,GAE/D,IAAIsP,EAAI24C,KAAKr2D,MAAMq1B,EAAS4Y,MAC5B,GAAIvwB,GAAkB,UAAbA,EAAE8mC,QAAsBvW,GAAQA,EAAK2uU,aAE1C,OADAH,EAAQG,aAAe3uU,EAAK2uU,aACrBH,EAEPxuU,GAAQA,EAAKvwB,IACbuwB,EAAOA,EAAKvwB,GAEhB,IAAIzR,EAAO,CAAC,EACRgiC,GAAQ,UAAWA,IACnBhiC,EAAKmC,MAAQ6/B,EAAK7/B,OAEtBnC,EAAK5I,OAAS4qC,GAAQA,EAAK5qC,OAAS4qC,EAAK5qC,OAAS4qC,EAClD,IAAI0xU,GAAW,EACf,GAAIpvW,MAAM0E,QAAQg5B,EAAK5qC,SAAW4qC,EAAK5qC,OAAOrG,OAAQ,CAOlD,GAHKo1R,GAAkBnkP,EAAK5qC,OAAO,GAAM,OACrC4I,EAAK5I,OAAShE,KAAKugX,sBAAsB3zW,EAAK5I,OAAQ,EAAG03W,EAAIt2M,OAAOznK,OAAS,IAE7EiJ,GAASA,EAAM2I,SAAS5R,QAAU+9W,EAAIt2M,OAAOznK,OAC7C,IAAK,IAAI+B,EAAI,EAAGA,EAAIkH,EAAM2I,SAAS5R,OAAQ+B,IACvC,GAA+B,sBAA3BkH,EAAM2I,SAAS7P,GAAM,IAA2B,CAChD,IAAIwB,EAAQ0F,EAAM2I,SAAS7P,GAAM,MAAO,MACpCg8W,EAAIt2M,OAAOznK,SAAWuD,IACtBo/W,GAAW,EAEnB,CAGZ,CAIA,OAHKA,GACDtgX,KAAKwgX,mBAAmB9E,EAAK9sU,EAAMhiC,EAAMyzW,EAASz5W,GAE/C41W,GAAS8C,OAAO1yW,EAAKmC,OAASnC,EAAK5I,OAAS,CAAEA,OAAQ4I,EAAK5I,OAAQ+K,MAAOnC,EAAKmC,MAAOwsW,WAAY3uW,EAAK2uW,WAClH,EACAqD,EAAWhhX,UAAU2iX,sBAAwB,SAAU3xU,EAAMgoE,EAAOkmQ,GAChE,IAAK,IAAIp9W,EAAI,EAAGA,EAAIkvC,EAAKjxC,OAAQ+B,IACzBkvC,EAAKlvC,GAAGg6H,MAAM/7H,QAAUgB,OAAOW,KAAKsvC,EAAKlvC,GAAGg6H,MAAM,IAAIjqH,QAAQ,QAAU,GACxEzP,KAAKugX,sBAAsB3xU,EAAKlvC,GAAGg6H,MAAO9iB,EAAQ,EAAGkmQ,EAAa,GAG1E,IAAIzqF,EAAM,YAGN0qF,EAAU,UAKd,OAJAnuU,EAAKyjP,GAAO0oF,GAAO1oF,GACnBzjP,EAAQ,MAAIgoE,EACZhoE,EAAa,YAAIkuU,EACjBluU,EAAKmuU,GAAWnuU,EAAK,GAAG8qF,MAAM/7H,OAASqC,KAAKygX,kBAAkB7xU,GAAOmkP,GAAkBnkP,EAAK,GAAG8qF,MAAMqjP,KAAa,GAC3GnuU,CACX,EACAgwU,EAAWhhX,UAAU6iX,kBAAoB,SAAU7xU,EAAM8xU,GAGrD,IAFA,IAAIC,EAAsB,GAEjBjhX,EAAI,EAAGA,EAAIkvC,EAAKjxC,OAAQ+B,IAC7B,GAAKghX,EAMDC,EAAsBA,EAAoBphX,OAAOqvC,EAAKlvC,GAAGg6H,MAAa,cALtE,IAAK,IAAItwH,EAAI,EAAGA,EAAIwlC,EAAKlvC,GAAGg6H,MAAM/7H,OAAQyL,IACtCu3W,EAAoB99W,KAAK+rC,EAAKlvC,GAAGg6H,MAAMtwH,IAOnD,OAAOu3W,CACX,EAMA/B,EAAWhhX,UAAUugX,QAAU,SAAUt+W,GAErC,OADAG,KAAK07W,IAAIt2M,OAASvlK,EACXA,CACX,EAMA++W,EAAWhhX,UAAU6/W,aAAe,SAAU59W,GAC1CG,KAAK07W,IAAIH,WAAa17W,CAC1B,EAQA++W,EAAWhhX,UAAUs/W,aAAe,SAAUC,EAAIC,EAASv9W,EAAG+G,EAAOq1O,GAGjE,MAAO,CACHz+O,KAAM,OACN6d,IAAK8hW,EAAG1B,WAAWmF,UAAYzD,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWqF,WAAa3D,EAAG1B,WAAWpgW,IACjGk0J,YAAa,kCACb27H,SAAU,OACVt8P,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5BorU,QAAS3D,EAAQI,eACjBwD,MAAO5D,EAAQG,aACf32O,QAASw2O,EAAQE,eACjBn4T,OAAQ,QACRy2F,MAAO/7I,EAZXwb,WAaI1b,IAAKE,EAZTF,YAaG68W,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EAQAg4W,EAAWhhX,UAAUmtS,WAAa,SAAUoyE,EAAIvmV,GAC5C,EAQJgoV,EAAWhhX,UAAUqlJ,OAAS,SAAUk6N,EAAIvuU,EAAM8vU,EAAW93W,GACzD,MAAO,CACHyU,IAAK8hW,EAAG1B,WAAWyF,WAAa/D,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWpgW,IACvEuzB,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5Bz0C,MAAO0tC,EACPgtG,MAAO8iO,EACPv5T,OAAQ,UACTq3T,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EAQAg4W,EAAWhhX,UAAUuuB,OAAS,SAAUgxV,EAAIwB,EAAUz9W,EAAOw9W,EAAW93W,GACpE,MAAO,CACHpJ,KAAM,OACN6d,IAAK8hW,EAAG1B,WAAWqF,WAAa3D,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWpgW,IACvEuzB,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5Bh2C,IAAKuB,EACLigX,UAAWxC,EACX/iO,MAAO8iO,EACPv5T,OAAQ,UACTq3T,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EAQAg4W,EAAWhhX,UAAUqnI,OAAS,SAAUk4O,EAAIwB,EAAUz9W,EAAOw9W,EAAW93W,GACpE,MAAO,CACHpJ,KAAM,OACN6d,IAAK8hW,EAAG1B,WAAW2F,WAAajE,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWpgW,IACvEuzB,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5Bz0C,MAAOA,EACPikD,OAAQ,SACRg8T,UAAWxC,EACXh/W,IAAK68W,GAAShtN,UAAUmvN,EAAUz9W,GAClC06I,MAAO8iO,GACRlC,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EAOAg4W,EAAWhhX,UAAUwhX,eAAiB,SAAUxwU,EAAMhoC,GAClD,IACI1F,EADAvB,EAAMiH,EAAMy6W,KAEZlvV,EAAOxyB,EACP2hX,EAAO16W,EAAMjH,IACb4hX,EAAY,GACO,kBAAZ3yU,EAAK,KACZzc,EAAO,MAEX,IAAK,IAAIzyB,EAAI,EAAGA,EAAIkvC,EAAKjxC,OAAQ+B,IAEzBwB,EADmB,kBAAZ0tC,EAAK,GACJ4tU,GAAShtN,UAAU8xN,GAAQnvV,EAAMyc,EAAKlvC,IAGtCkvC,EAAKlvC,GAEjB6hX,EAAU1+W,KAAK,IAAI2+W,GAAU7hX,EAAK,QAASuB,IAE/C,OAAOsgX,GAAUC,GAAGF,EACxB,EACA3C,EAAWhhX,UAAU4iX,mBAAqB,SAAU9E,EAAK9sU,EAAMhiC,EAAMyzW,EAASz5W,GAC1E,IAAI02R,EAAQ1uP,EAIZ,GAHIA,GAAQA,EAAK5qC,SACbs5R,EAAQ1uP,EAAK5qC,QAEb03W,GAAOA,EAAIH,YAAcG,EAAIH,WAAW59W,OAAQ,CAChD,IAAIu+W,EAAMR,EAAIH,WACV3uV,OAAK,EACL80V,EAAgBpkF,EAChBhqR,EAAM,CAAC,EACPs7B,EAAK+yU,YACLD,EAAgB9yU,EAAK+yU,WAEzB,IAAK,IAAIjiX,EAAI,EAAGA,EAAIw8W,EAAIv+W,OAAQ+B,KAC5BktB,EAAK4vV,GAASjB,WAAWW,EAAIx8W,GAAGlC,SAE5B8V,EAAI4oW,EAAIx8W,GAAGwrG,MAAQ,MAAQgxQ,EAAIx8W,GAAGlC,MAAQovB,EAAG80V,EAAexF,EAAIx8W,GAAGwrG,QAG3Et+F,EAAK2uW,WAAajoW,CACtB,CACA,IACIsuW,EAAmB1wW,MAAM0E,QAAQg5B,EAAK5qC,SAAW4qC,EAAK5qC,OAAOrG,SAAWo1R,GAAkBnkP,EAAK5qC,OAAO,GAAM,KAChH,GAAI03W,GAAOA,EAAIt2M,QAAUs2M,EAAIt2M,OAAOznK,SAAWikX,EAAkB,CAC7D,IAAIx8M,EAASs2M,EAAIt2M,OACjB,IAAS1lK,EAAI,EAAGA,EAAI0lK,EAAOznK,OAAQ+B,IAAK,CAE/BqzR,GAAkBstF,KACnBA,EAAU7D,GAASljN,MAAM+mN,EAASj7M,EAAO1lK,KAE7C,IAAImiX,EAAa3xJ,GAAM+sJ,cAAcr2W,EAAMq7L,QAAS,WAAWviM,GAAGG,EAClEy9R,EAAQk/E,GAASljN,MAAMgkI,EAAOl4H,EAAO1lK,GAAIg8W,EAAIH,WALjC,KAKoD8E,EAASwB,EAAWpF,SACxF,CACA7vW,EAAK5I,OAASs5R,CAClB,CACA,OAAO1wR,CACX,EACAgyW,EAAWhhX,UAAUkhX,gBAAkB,SAAUl4W,GAC7C,IAAIg2W,EAAM,CAAEqC,MAAO,GAAI75M,OAAQ,GAAIskD,QAAS,GAAIw1J,SAAU,GAAI3D,WAAY,IAM1E,OALAqB,EAAIqC,MAAQ/uJ,GAAM+sJ,cAAcr2W,EAAMq7L,QAAS,YAC/C26K,EAAIx3M,OAAS8qD,GAAM+sJ,cAAcr2W,EAAMq7L,QAAS,WAChD26K,EAAIlzJ,QAAUwG,GAAM+sJ,cAAcr2W,EAAMq7L,QAAS,WACjD26K,EAAIsC,SAAWhvJ,GAAM+sJ,cAAcr2W,EAAMq7L,QAAS,YAClD26K,EAAIrB,WAAarrJ,GAAM+sJ,cAAcr2W,EAAMq7L,QAAS,gBAC7C26K,CACX,EACAgC,EAAWhhX,UAAUkkX,UAAY,SAAU/hX,GACvC,IAAI68W,EAAM78W,EAAQy/W,UACdz/W,EAAQw9E,OAAO5/E,SACfi/W,EAAIr/R,OAAS,CAAC,GAElB,IAAK,IAAI5iB,EAAK,EAAGpgD,EAAKxa,EAAQw9E,OAAQ5iB,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CACxD,IAAI0nC,EAAM9nF,EAAGogD,GACb,GAAIiiT,EAAIv6Q,EAAI1iG,KACR,MAAM,IAAI2U,MAAM,4EAEpBsoW,EAAIv6Q,EAAI1iG,KAAO0iG,EAAInhG,MACfmhG,EAAIz1E,KACJgwV,EAAIv6Q,EAAI1iG,KAAO0iG,EAAIz1E,GAAGtqB,KAAKvC,EAAQ6G,MAAOy7F,EAAI1iG,IAAKI,EAAQ6G,MAAO7G,EAAQo9W,KAE9EP,EAAIr/R,OAAO8kB,EAAI1iG,KAAOi9W,EAAIv6Q,EAAI1iG,IAClC,CACJ,EACOi/W,CACX,CAjcgC,CAic9B3D,IAME8G,GAA8B,SAAUp8W,GAExC,SAASo8W,EAAa3+W,GAClB,IAAIwC,EAAQD,EAAOrD,KAAKtC,OAASA,KAuBjC,OArBA4F,EAAM7F,QAAU41C,GAAO,CAAC,EAAG/vC,EAAM7F,QAAS,CACtCo7W,YAAa,MACbrjL,OAAQ,wEACRkqL,gBAAiB,kBACjB5G,OAAQ,WACRprO,OAAQ,UACRm+H,KAAM,QACNktG,KAAM,OACNtsW,MAAO,eACPusW,MAAO,UACPE,OAAQ,UACRpvJ,MAAO,SACP61J,UAAW,eACXC,SAAU,SACVnwF,UAAW,eACXowF,aAAc,2CACdC,iBAAkB,qEAClBC,0BAA2B,iDAC3BC,WAAY,QAEhB3sU,GAAO/vC,EAAM7F,QAASqD,GAAS,CAAC,GACzBwC,CACX,CA2jBA,OArlBAg4D,GAAUmkT,EAAcp8W,GA2BxBo8W,EAAankX,UAAU40S,cAAgB,WACnC,MAAO,cACX,EAMAuvE,EAAankX,UAAU2kX,YAAc,SAAU34J,EAAWhjN,EAAO47W,GAC7D,IACIl9M,EACAm9M,EAFA32U,EAAc,GAGdy3B,EAAMqmJ,EAAU1oN,MAChB1D,SAAc+lE,EACd2nC,EAAQ0+G,EAAU1+G,MAAQ62Q,EAAaW,SAAS94J,EAAU1+G,OAAS,KAyBvE,GAxBI3nC,aAAej4D,OACfi4D,EAAM,YAAei5S,GAAS77W,MAAMgiX,SAASp/S,GAAO,KAE3C,WAAT/lE,IACA+lE,EAAMA,EAAI33D,QAAQ,KAAM,MACpBg+M,EAAUk0J,aACVv6S,EAAMA,EAAIn2C,eAGdm2C,EAAM,KADNA,EAAMxrC,mBAAmBwrC,IACN,IACfi/S,IACAt3Q,EAAQ,QAAUA,EAAQ,mBAE1BsxQ,GAAS77W,MAAMiiX,OAAOr/S,KACtBk/S,EAAO,QAEP74J,EAAUk0J,aACL2E,IACDv3Q,EAAQ,WAAaA,EAAQ,KAEjC3nC,EAAMA,EAAIn2C,gBAGlBk4I,EAAWk3M,GAASqG,aAAaj5J,EAAUtkD,UAOvC,OALAx5H,GAAeo/D,EACfp/D,GAAew5H,EACXm9M,IACA32U,GAAe22U,GAEZ32U,EAAcy3B,EAQzB,GAAiB,iBAFb+hG,EAJCytH,GAAkB/yR,KAAKwyS,gBAA2C,mBAAzBxyS,KAAKwyS,gBAIpCgqE,GAASsG,cAAcl5J,EAAUtkD,UAHjCk3M,GAASuG,gBAAgBn5J,EAAUtkD,WAKlB,CAC5B,IAAI3oE,EAAOp5B,EACXA,EAAM2nC,EACNA,EAAQvO,CACZ,CAOA,OANA7wD,GAAew5H,EAAW,IAC1Bx5H,GAAeo/D,EAAQ,IACnBu3Q,IACA32U,GAAe22U,GAEnB32U,GAAey3B,EAAM,GAEzB,EACAw+S,EAAankX,UAAUkkX,UAAY,SAAU/hX,GACzC4F,EAAO/H,UAAUkkX,UAAUx/W,KAAKtC,KAAMD,UAC/BA,EAAQy/W,UAAUjiS,MAC7B,EAMAwkS,EAAankX,UAAUolX,mBAAqB,SAAUp5J,EAAWhjN,EAAO47W,GAEpE,IADA,IAAIlvW,EAAM,GACD5T,EAAI,EAAGA,EAAIkqN,EAAUuZ,WAAWxlO,OAAQ+B,IAC7C4T,EAAIzQ,KAAK,IAAM7C,KAAKijX,YAAYr5J,EAAUuZ,WAAWzjO,GAAIkH,EAAO47W,GAAgB,KAEpF,OAAOlvW,EAAIwiB,KAAK,IAAM8zL,EAAUs5J,UAAY,IAChD,EAMAnB,EAAankX,UAAUqlX,YAAc,SAAUtgX,EAAQiE,EAAO47W,GAC1D,OAAO7/W,EAAOwgX,UAAYnjX,KAAKgjX,mBAAmBrgX,EAAQiE,EAAO47W,GAAgBxiX,KAAKuiX,YAAY5/W,EAAQiE,EAAO47W,EACrH,EAKAT,EAAankX,UAAUi/W,QAAU,SAAUnzJ,GAIvC,OAHI1pN,KAAK07W,IAAI9oU,QACT82K,EAAQ7mN,KAAK7C,KAAKijX,YAAYjjX,KAAK07W,IAAI9oU,OAAQ,MAAM,IAElD82K,EAAQ5zL,KAAK,QACxB,EAQAisV,EAAankX,UAAUwlX,aAAe,SAAUvjX,GACxCA,EAAE+kL,QAA8B,IAApB/kL,EAAE+kL,OAAOjnL,QACrB6+W,GAAS3+I,WAAW,0EAGxB,IADA,IAAIl7N,EAAS3C,KAAK07W,IAAI9oU,QAAU,GACvBlzC,EAAI,EAAGA,EAAIG,EAAE+kL,OAAOjnL,OAAQ+B,IACjCiD,EAAOE,KAAK,IAAI2+W,GAAU3hX,EAAE+kL,OAAOllL,GAAIG,EAAEylK,SAAUzlK,EAAEF,IAAKE,EAAEi+W,aAEhE99W,KAAK07W,IAAI9oU,OAASjwC,CACtB,EAKAo/W,EAAankX,UAAU8/W,SAAW,SAAU79W,GAExC,OADAG,KAAK07W,IAAI9oU,OAAS4uU,GAAUC,GAAGzhX,KAAK07W,IAAI9oU,QACjC,EACX,EAKAmvU,EAAankX,UAAUylX,WAAa,SAAUxjX,GAC1C,IAAIyT,EAAM,GACV,GAAIzT,EAAEnC,gBAAgBwT,MAClB,IAAK,IAAIxR,EAAI,EAAGA,EAAIG,EAAEnC,KAAKC,OAAQ+B,IAC/B4T,EAAIzQ,KAAKk/W,EAAaW,SAAS7iX,EAAEnC,KAAKgC,KAAuB,eAAhBG,EAAEmkB,UAA6B,QAAU,UAI1F1Q,EAAIzQ,KAAKk/W,EAAaW,SAAS7iX,EAAEnC,OAAyB,eAAhBmC,EAAEmkB,UAA6B,QAAU,KAEvF,OAAO1Q,EAAIwiB,KAAK,IACpB,EAKAisV,EAAankX,UAAUogX,SAAW,SAAUn+W,GACxC,OAAOA,EAAEkR,UAAU+kB,KAAK,IAC5B,EAMAisV,EAAankX,UAAUugX,QAAU,SAAUt+W,GAEvC,OADAG,KAAK07W,IAAIt2M,OAASvlK,EACX,EACX,EAKAkiX,EAAankX,UAAU6gX,SAAW,SAAU5+W,GACxC,IAAK,IAAIH,EAAI,EAAGA,EAAIG,EAAElC,OAAQ+B,IAC1BG,EAAEH,GAAKqiX,EAAaW,SAAS7iX,EAAEH,IAEnC,OAAOG,EAAEi2B,KAAK,IAClB,EAMAisV,EAAankX,UAAU6/W,aAAe,SAAU59W,GAE5C,OADAG,KAAK07W,IAAIH,WAAa17W,EACf,EACX,EAMAkiX,EAAankX,UAAU0lX,QAAU,SAAUzjX,GACvC,OAAa,IAANA,EAAa,WAAa,EACrC,EAQAkiX,EAAankX,UAAUmtS,WAAa,SAAUoyE,EAAIvmV,EAAS7uB,GACnDy0W,GAAS3xO,SAAS9iI,EAASsT,IAAKrb,KAAKD,QAAQqsN,QAA0C,SAAhCrkN,EAASvK,KAAK4vB,eACrEwJ,EAAQg1I,iBAAiB,SAAU5rK,KAAKD,QAAQiiX,iBAChDprV,EAAQg1I,iBAAiB,qBAAsB,OAC/Ch1I,EAAQ2sV,iBAAiB,uCAGzB3sV,EAAQg1I,iBAAiB,SAAU5rK,KAAKD,QAAQ+3L,QAEpDlhK,EAAQg1I,iBAAiB,qBAAsB,OAC/Ch1I,EAAQg1I,iBAAiB,wBAAyB,MACtD,EAWAm2M,EAAankX,UAAU+9W,gBAAkB,SAAU/sU,EAAMssU,EAAIt0W,EAAO6kK,EAAK70I,EAASwmV,GAC9E,IAAIoG,EAAY,iBAChB,GAAK5sV,GAA4B,QAAjBA,EAAQp5B,OAAoBwC,KAAKyjX,SAAW70U,EAAK40U,GAAY,CACzE,IAAIE,EAAW90U,EAAK40U,GAAWrqV,MAAM,eACrCn5B,KAAKyjX,QAAUC,EAAS,GACxB1jX,KAAK2jX,kBAAoBD,EAAS,EACtC,CAEA,IAAK3wF,GAAkBnkP,EAAKvwB,GAAI,CAC5B,IAAIulW,EAAah9W,GAASA,EAAMy1W,gBAAmBztU,EAAKvwB,EAAEwjH,QAAUjzF,EAAKvwB,EACrEwlW,EAAW,aACf,IAAK9wF,GAAkB6wF,GACnB,IAAK,IAAIlkX,EAAI,EAAGA,EAAIkkX,EAASjmX,OAAQ+B,IAC5BqzR,GAAkB6wF,EAASlkX,GAAGmkX,YACxBD,EAASlkX,GAAGmkX,EAInC,CACA,IAAInI,EAAM9kV,GAAWA,EAAe,QAChCktV,EAAgB9jX,KAAK+jX,qBAAqBn1U,EAAMhoC,EAAO6kK,EAAK70I,EAASwmV,GACzE,GAAI0G,EACA,OAAOA,EAEX,IAAIE,EAAev4M,GAAO70I,EAAQ4yI,kBAAkB,sBAChDz6J,EAAQ,KACR0oD,EAAWusT,GAAgBx5W,SAASw5W,EAAc,KAAQ,EAC9D,GAAIp9W,GAASA,EAAMy1W,gBAAiB,CAChC,IAAI4H,EAAa,WACbr1U,EAAKq1U,IAAer1U,EAAK,kBACzB7/B,EAAQ6/B,EAAKq1U,IAAer1U,EAAK,gBAEjCA,EAAKvwB,IACLuwB,EAAOA,EAAKvwB,IAEZuwB,EAAKq1U,IAAer1U,EAAK,kBACzB7/B,EAAQ6/B,EAAKq1U,IAAer1U,EAAK,eAEzC,CACgB,IAAZ6oB,GAAiB7oB,EAAK1tC,QACtB0tC,EAAOA,EAAK1tC,OAEZ0tC,EAAKvwB,IACLuwB,EAAOA,EAAKvwB,GAEZo5C,EAAU,GAAK7oB,EAAKizF,UACpBjzF,EAAOA,EAAKizF,SAEhB,IAAIj1H,EAAO,CAAC,EAIZ,OAHAA,EAAKmC,MAAQA,EACbnC,EAAK5I,OAAS4qC,EACd5uC,KAAKwgX,mBAAmB9E,EAAK9sU,EAAMhiC,EAAM,KAAMhG,GACxC41W,GAAS8C,OAAOvwW,GAASnC,EAAK5I,OAAS,CAAEA,OAAQ4I,EAAK5I,OAAQ+K,MAAOnC,EAAKmC,MAAOwsW,WAAY3uW,EAAK2uW,WAC7G,EAQAwG,EAAankX,UAAUgiX,qBAAuB,SAAUhpV,EAAShwB,EAAOu2W,GACpE,IAAI7pW,EAAM,GACNsoI,EAAQ,QACR8iO,EAAY9nV,EAAQglH,IAAU,UAE3BhlH,EAAQglH,GACXuhO,EAAG1B,WAAWyI,iBACdttV,EAAc,QAAI,QAGtB,IADA,IACS+jC,EAAK,EAAGwpT,EADNxlX,OAAOW,KAAKs3B,GACS+jC,EAAKwpT,EAAOxmX,OAAQg9D,IAAM,CACtD,IAAIxoC,EAAOgyV,EAAOxpT,GAClBrnD,EAAIzQ,KAAKsvB,EAAO,IAAMyE,EAAQzE,GAClC,CAEA,OADA7e,EAAMA,EAAIwiB,KAAK,KACXqnV,EAAG1B,WAAWpgW,MAA2C,IAApC8hW,EAAG1B,WAAWpgW,IAAI5L,QAAQ,OAAgBivW,EACxDprW,EAEJA,EAAI3V,OAAS+gX,EAAY,IAAMprW,EAAMorW,GAAa,EAC7D,EACAqD,EAAankX,UAAUwmX,kBAAoB,SAAUzkX,EAAK0kX,GACtD,IAAK,IAAI1pT,EAAK,EAAGpgD,EAAMw4Q,GAAkBsxF,GAAwC,GAA1B1lX,OAAOW,KAAK+kX,GAAkB1pT,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CACvG,IAAIxoC,EAAO5X,EAAGogD,GACT0pT,EAAWlyV,aAAiB7mB,OAC7B+4W,EAAWlyV,GAAQqqV,GAAS8H,UAAUC,YAAYF,EAAWlyV,IAErE,CACA,OAAOkyV,CACX,EAOAtC,EAAankX,UAAUqlJ,OAAS,SAAUk6N,EAAIvuU,EAAM8vU,GAChD,MAAO,CACHrjW,KAAM8hW,EAAG1B,WAAWyF,WAAa/D,EAAG1B,WAAWpgW,KAAKzP,QAAQ,OAAQ8yW,EAAY,IAAMA,EAAY,IAClG9vU,KAAMooB,KAAKC,UAAUroB,EAAM5uC,KAAKD,QAAQykX,UAAYxkX,KAAKokX,kBAAoB,MAErF,EAQArC,EAAankX,UAAUuuB,OAAS,SAAUgxV,EAAIwB,EAAUz9W,EAAOw9W,GAC3D,IAAIrjW,EAOJ,OAFIA,EAJiB,kBAAVna,GAAuBs7W,GAAS77W,MAAMiiX,OAAO1hX,GAI9C,IAAMA,EAAQ,IAHd,KAAOA,EAAQ,KAKlB,CACH1D,KAAM,SACN6d,KAAM8hW,EAAG1B,WAAWqF,WAAa3D,EAAG1B,WAAWpgW,KAAKzP,QAAQ,OAAQ8yW,EAAY,IAAMA,EAAY,IAAMrjW,EAEhH,EASA0mW,EAAankX,UAAUqnI,OAAS,SAAUk4O,EAAIwB,EAAUz9W,EAAOw9W,EAAW93W,EAAOq1O,GAI7E,IAAI5gO,EAOJ,MAVgC,UAA5Brb,KAAKD,QAAQuiX,YAA2BvvF,GAAkB92C,KAC1D/6O,EAAQlB,KAAKykX,iBAAiBvjX,EAAO+6O,EAAU0iI,IAO/CtjW,EAJ2B,kBAApBna,EAAMy9W,IAA2BnC,GAAS77W,MAAMiiX,OAAO1hX,EAAMy9W,IAI9D,IAAMz9W,EAAMy9W,GAAY,IAHxB,KAAOz9W,EAAMy9W,GAAY,KAK5B,CACHnhX,KAAMwC,KAAKD,QAAQuiX,WACnBjnW,KAAM8hW,EAAG1B,WAAW2F,WAAajE,EAAG1B,WAAWpgW,KAAKzP,QAAQ,OAAQ8yW,EAAY,IAAMA,EAAY,IAAMrjW,EACxGuzB,KAAMooB,KAAKC,UAAU/1D,EAAOlB,KAAKD,QAAQykX,UAAYxkX,KAAKokX,kBAAoB,MAC9EtsL,OAAQ93L,KAAKD,QAAQ+3L,OAE7B,EASAiqL,EAAankX,UAAUs/W,aAAe,SAAUC,EAAIC,EAASv9W,EAAG+G,EAAOq1O,GACnE,IAAIyoI,EAAc7kX,EAAE4iX,KAAOjG,GAASmI,QAAQ3kX,KAAKD,QAAQmiX,UACrD7mW,EAAMrb,KAAKyjX,QAAUzjX,KAAKyjX,QAAU,IAAMzjX,KAAKD,QAAQqsN,MACvD+wJ,EAAG1B,WAAWpgW,IAAIzP,QAAQ,OAAQ,IAAM5L,KAAKD,QAAQqsN,OACzDvsN,EAAEwb,IAAMrb,KAAK2jX,kBAAoB3jX,KAAK2jX,kBAAoB9jX,EAAEwb,IAC5D,IAAIzO,EAAO,CACPyO,IAAKxb,EAAEwb,IACP1b,IAAKE,EAAEF,IACPilX,IAAK,EACLC,KAAMrI,GAASmI,QAAQ3kX,KAAKD,QAAQkiX,YAEpCrF,EAAM,KAAO8H,EAAc,KAQ/B,OAPA9H,GAAO,2CAA6ChwW,EAAKi4W,KAAKj5W,QAAQ,KAAM,IAAM,KAClF5L,KAAK07W,IAAIuG,UAAY,EACrBrF,GAAO58W,KAAK8kX,sBAAsB1H,EAAQG,aAAc3wW,EAAMuwW,GAC9DP,GAAO58W,KAAK+kX,sBAAsB3H,EAAQI,eAAgB5wW,EAAMuwW,EAAIlhI,EAAWA,EAASuhI,eAAiB,IACzGZ,GAAO58W,KAAKglX,sBAAsB5H,EAAQE,eAAgB1wW,EAAMuwW,GAChEP,GAAOhwW,EAAKi4W,KAAO,OAEZ,CACHrnX,KAAM,OACN6d,IAAKA,EACL6vR,SAAU,OACV37H,YAAa,2CAA6Cm1M,EAC1D91U,KANJguU,GAAO,KAAO8H,EAAc,KAQhC,EAQA3C,EAAankX,UAAUonX,sBAAwB,SAAUnuS,EAAKh3E,EAAGs9W,GAC7D,IAAKtmS,EACD,MAAO,GAEX,IACIu4F,EAAO,CACP,OAAU,UACV,IAAO,SAAUxgI,EAAMlvC,EAAGC,GACtB,IAAI0b,EAAMmhW,GAAShtN,UAAU7vJ,EAAKivC,EAAKlvC,IACvC,MAAmB,kBAAR2b,GAAoBmhW,GAAS77W,MAAMiiX,OAAOvnW,GAC1C,IAAMA,EAAM,IAEdA,aAAe/P,KAEb,IADQsjC,EAAKlvC,GAAGC,GACDumG,SAAW,IAG1B,KAAO7qF,EAAM,IAE5B,EACA,KAAQ,SAAUuzB,EAAMlvC,GAAK,MAAO,EAAI,GAG5C,OADMM,KAAKilX,oBAAoBpuS,EAAKh3E,EAAGuvK,EAAM+tM,GAChC,IACjB,EAOA4E,EAAankX,UAAUknX,sBAAwB,SAAUjuS,EAAKh3E,EAAGs9W,GAC7D,IAAKtmS,EACD,MAAO,GAEX,IACIu4F,EAAO,CACP,OAAU,QACV,IAAO,SAAUxgI,EAAMlvC,EAAGC,GAAO,MAAO,EAAI,EAC5C,KAAQ,SAAUivC,EAAMlvC,GAAK,OAAOs3D,KAAKC,UAAUroB,EAAKlvC,IAAM,MAAQ,GAG1E,OADMM,KAAKilX,oBAAoBpuS,EAAKh3E,EAAGuvK,EAAM+tM,EAEjD,EAOA4E,EAAankX,UAAUmnX,sBAAwB,SAAUluS,EAAKh3E,EAAGs9W,EAAI+H,GACjE,IAAIt/W,EAAQ5F,KACZ,IAAK62E,EACD,MAAO,GAGXA,EAAI9zE,SAAQ,SAAUwnL,GAAU,OAAOA,EAAS3kL,EAAM6+W,iBAAiBl6L,EAAQ26L,EAAIviX,QAAO,SAAUZ,GAAK,OAAOy6W,GAAShtN,UAAU3vJ,EAAEF,IAAKoC,KAAOy6W,GAAShtN,UAAU3vJ,EAAEF,IAAK4qL,EAAS,IAAG,GAAI1qL,EAAEF,IAAM,IACnM,IAAIyvK,EAAO,CACP,OAAUpvK,KAAKD,QAAQuiX,WAAa,IACpC,IAAO,SAAU1zU,EAAMlvC,EAAGC,GACtB,MAA4B,kBAAjBivC,EAAKlvC,GAAGC,IAAqB68W,GAAS77W,MAAMiiX,OAAOh0U,EAAKlvC,GAAGC,IAC3D,IAAMivC,EAAKlvC,GAAGC,GAAO,IAEvBivC,EAAKlvC,GAAGC,aAAgB2L,KAEtB,IADIsjC,EAAKlvC,GAAGC,GACDumG,SAAW,IAGtB,KAAOt3D,EAAKlvC,GAAGC,GAAO,IAErC,EACA,KAAQ,SAAUivC,EAAMlvC,GAAK,OAAOs3D,KAAKC,UAAUroB,EAAKlvC,IAAM,MAAQ,GAG1E,OADMM,KAAKilX,oBAAoBpuS,EAAKh3E,EAAGuvK,EAAM+tM,EAEjD,EACA4E,EAAaW,SAAW,SAAUvwV,GAC9B,OAAOA,EAAKvmB,QAAQ,MAAO,IAC/B,EACAm2W,EAAankX,UAAUqnX,oBAAsB,SAAUpuS,EAAKh3E,EAAGuvK,EAAM+tM,GAEjE,IADA,IAAIP,EAAM,GACDl9W,EAAI,EAAGA,EAAIm3E,EAAIl5E,OAAQ+B,IAC5Bk9W,GAAO,KAAO/8W,EAAEglX,KAAO,KACvBjI,GAAO58W,KAAKD,QAAQqiX,iBAAmB,OACvCxF,GAAOxtM,EAAKzjJ,OACQ,UAAhByjJ,EAAKzjJ,OACLixV,IAAQO,EAAG1B,WAAWyF,WAAa/D,EAAG1B,WAAWoF,SAAWhhX,EAAEwb,KAAO+zJ,EAAK/zJ,IAAIw7D,EAAKn3E,EAAGG,EAAEF,KAAO,cAE1E,SAAhByvK,EAAKzjJ,QAAqC,WAAhByjJ,EAAKzjJ,OACpCixV,IAAQO,EAAG1B,WAAW2F,WAAajE,EAAG1B,WAAWoF,SAAWhhX,EAAEwb,KAAO+zJ,EAAK/zJ,IAAIw7D,EAAKn3E,EAAGG,EAAEF,KAAO,cAE1E,YAAhByvK,EAAKzjJ,SACVixV,IAAQO,EAAG1B,WAAWqF,WAAa3D,EAAG1B,WAAWoF,SAAWhhX,EAAEwb,KAAO+zJ,EAAK/zJ,IAAIw7D,EAAKn3E,EAAGG,EAAEF,KAAO,eAEnGi9W,GAAO,WAAa58W,KAAKD,QAAQ+3L,OAAS,KAC1C8kL,GAAO,eAAiB58W,KAAK07W,IAAIuG,YAAc,KAC/CrF,GAAO58W,KAAKD,QAAQsiX,0BAA4B,KAC3CtvF,GAAkBl8M,EAAIn3E,GAAG,gBAK1Bk9W,GAAO,MAJPA,GAAO,aAAe/lS,EAAIn3E,GAAG,eAAiB,cACvCm3E,EAAIn3E,GAAG,gBAKlBk9W,GAAOxtM,EAAKxgI,KAAKioC,EAAKn3E,GAE1B,OAAOk9W,CACX,EACAmF,EAAankX,UAAUmmX,qBAAuB,SAAUn1U,EAAMhoC,EAAO6kK,EAAK70I,EAASwmV,GAC/E,GAAI3xM,GAAOA,EAAIjC,kBAAkB,kBAA6E,IAA1DiC,EAAIjC,kBAAkB,gBAAgB/5J,QAAQ,OAC9F,OAAQ7I,EAAMy1W,gBAAkB,CAAEr4W,OAAQ,GAAI+K,MAAO,GAAM,GAE/D,GAAI6nB,GAAW52B,KAAKD,QAAQqsN,OAASowJ,GAAS3xO,SAASj0G,EAAQvb,IAAKrb,KAAKD,QAAQqsN,QAAyC,SAA/Bx1L,EAAQp5B,KAAK4vB,cAA0B,CAC9H,IAAIq1V,EAAOh3M,EAAIjC,kBAAkB,gBAC7B27M,OAAO,EACPC,OAAU,EACV/mW,EAAIuwB,EAAO,GAGf,GAFA6zU,EAAOA,EAAKx0V,UAAUw0V,EAAKhzW,QAAQ,kBAAoB,IACvD4O,EAAIA,EAAE8a,MAAMspV,IACN9kX,OAAS,EACX,MAAO,CAAC,EAEZ0gB,EAAIA,EAAE,GACN,IAAIgnW,EAAQ,sDAAsD5vV,KAAKpX,GACnEgnW,GACAhnW,EAAEzS,QAAQy5W,EAAM,GAAI,IAIxB,IAFA,IAAIC,EAAaD,EAAQA,EAAM,GAAK,GAE3B3lX,GADT2e,EAAIA,EAAE8a,MAAMmsV,IACG3nX,OAAQ+B,GAAK,EAAGA,IACtB,iBAAiBoM,KAAKuS,EAAE3e,KAAQ,cAAcoM,KAAKuS,EAAE3e,MAG1DylX,EAAO36W,SAAS,uBAAuBirB,KAAKpX,EAAE3e,IAAI,GAAI,IAClD09W,EAAQG,aAAa4H,KACrBC,EAAU5I,GAAS77W,MAAMy/W,UAAU,WAAW3qV,KAAKpX,EAAE3e,IAAI,IACzDi2C,GAAO,CAAC,EAAGynU,EAAQG,aAAa4H,GAAOnlX,KAAK27W,gBAAgByJ,MAGpE,OAAOhI,CACX,CACA,OAAO,IACX,EACA2E,EAAankX,UAAU6mX,iBAAmB,SAAU71U,EAAMqtM,EAAUt8O,GAChE,IAAIiG,EAAQ5F,KACZ,OAAI+yR,GAAkB92C,IAGtBt9O,OAAOW,KAAKsvC,GAAM7rC,SAAQ,SAAUovB,GAC5BA,IAASxyB,GAAgB,gBAATwyB,IACZqqV,GAAShyJ,cAAc57K,EAAKzc,KAC5BvsB,EAAM6+W,iBAAiB71U,EAAKzc,GAAO8pN,EAAS9pN,IAEvB,IADTxzB,OAAOW,KAAKsvC,EAAKzc,IAAOxvB,QAAO,SAAUisC,GAAQ,MAAgB,gBAATA,CAAwB,IAClFjxC,eACCixC,EAAKzc,KAGXyc,EAAKzc,KAAU8pN,EAAS9pN,IAGxByc,EAAKzc,IAAS8pN,EAAS9pN,IAASyc,EAAKzc,GAAMxtB,YAAcs3O,EAAS9pN,GAAMxtB,mBAFtEiqC,EAAKzc,GAMxB,IAlBWyc,CAoBf,EACOmzU,CACX,CAvlBkC,CAulBhCnD,IAudE2G,IAhdgC,SAAU5/W,GAE1C,SAAS6/W,EAAepiX,GACpB,IAAIwC,EAAQD,EAAOrD,KAAKtC,KAAMoD,IAAUpD,KA0BxC,OAxBA4F,EAAM7F,QAAU41C,GAAO,CAAC,EAAG/vC,EAAM7F,QAAS,CACtCo7W,YAAa,MACbrjL,OAAQ,iDACRkqL,gBAAiB,kBACjB5G,OAAQ,WACRprO,OAAQ,UACRm+H,KAAM,QACNktG,KAAM,OACNtsW,MAAO,SACP6jC,OAAQ,UACR0oU,MAAO,UACPE,OAAQ,UACRpvJ,MAAO,SACP61J,UAAW,eACXC,SAAU,SACVnwF,UAAW,eACXowF,aAAc,2CACdC,iBAAkB,qEAClBC,0BAA2B,iDAC3BC,WAAY,QACZkC,WAAW,EACXjiX,MAAO,WAEXozC,GAAO/vC,EAAM7F,QAASqD,GAAS,CAAC,GACzBwC,CACX,CA7BAg4D,GAAU4nT,EAAgB7/W,GAiC1B6/W,EAAe5nX,UAAU40S,cAAgB,WACrC,MAAO,gBACX,EAMAgzE,EAAe5nX,UAAU0lX,QAAU,SAAUzjX,GACzC,OAAa,IAANA,EAAa,OAAS,EACjC,EAMA2lX,EAAe5nX,UAAU2kX,YAAc,SAAU34J,EAAWhjN,EAAO47W,GAC/D,IAAI12U,EAAc,GACdy3B,EAAMqmJ,EAAU1oN,MAChBo/E,EAAS/c,aAAej4D,KAC5B,GAAI1E,aAAiBspN,GAEjB,IADA,IAAIjuB,EAAUjiM,KAAK8+W,gBAAgBl4W,GAC1BlH,EAAI,EAAGA,EAAIuiM,EAAQynB,QAAQ/rN,OAAQ+B,IACpCuiM,EAAQynB,QAAQhqN,GAAGG,EAAEF,MAAQiqN,EAAU1oN,QACvCshX,GAAe,GAW3B,OAPA12U,EAAcnmC,EAAO/H,UAAU2kX,YAAYjgX,KAAKtC,KAAM4pN,EAAWhjN,EAAO47W,GACpEliS,IACAx0C,EAAcA,EAAYlgC,QAAQ,kBAAmB,OAErD4wW,GAAS77W,MAAMiiX,OAAOr/S,KACtBz3B,EAAcA,EAAYlgC,QAAQ,OAAQ,IAAIA,QAAQ,KAAM,KAEzDkgC,CACX,EAQA05U,EAAe5nX,UAAUwlX,aAAe,SAAUvjX,GAC9C,IAAI+yC,EAAS5yC,KAAK07W,IAAIwD,UAAY,GAClCtsU,EAAO/vC,KAAKhD,EAAEF,KACdK,KAAK07W,IAAIwD,SAAWtsU,CACxB,EAKA4yU,EAAe5nX,UAAU8/W,SAAW,SAAU79W,GAC1C,OAAOG,KAAK07W,IAAIwD,SAASppV,KAAK,OAClC,EAKA0vV,EAAe5nX,UAAU6nX,SAAW,SAAU5lX,GAC1C,IAAI+F,EAAQ5F,KACRs9B,EAAW,CAAC,EACZooV,EAAW,CAAC,EACZzF,EAAUpgX,EAAEogX,QAAQp4W,QACpB89W,EAAQ,GAiDZ,OAhDc9lX,EAAEmgX,QAAQr9W,QAAO,SAAUsuB,GAAQ,OAAOA,EAAKxhB,QAAQ,MAAQ,CAAG,IACxE1M,SAAQ,SAAUitI,GACtB,IAAI6iJ,EAAS7iJ,EAAO72G,MAAM,KAI1B,GAHM05P,EAAO,KAAMv1P,IACfA,EAASu1P,EAAO,IAAM,IAEL,GAAjBA,EAAOl1R,OACH2/B,EAASu1P,EAAO,IAAIl1R,SAAwD,IAA9CgB,OAAOW,KAAKg+B,GAAU7tB,QAAQojR,EAAO,KAChB,IAA/Cv1P,EAASu1P,EAAO,IAAI,GAAGpjR,QAAQ,aAAsE,IAAjD6tB,EAASu1P,EAAO,IAAI,GAAGpjR,QAAQ,aACnF6tB,EAASu1P,EAAO,IAAI,GAAKv1P,EAASu1P,EAAO,IAAI,GAApBv1P,YAA4Cu1P,EAAO,GAG5Ev1P,EAASu1P,EAAO,IAAI,GAAKv1P,EAASu1P,EAAO,IAAI,GAAK,IAAMA,EAAO,GAInEv1P,EAASu1P,EAAO,IAAIhwR,KAAK,WAAagwR,EAAO,QAGhD,CAID,IAHA,IAAI+yF,EAAM,WAAa/yF,EAAOA,EAAOl1R,OAAS,GAC1C6xT,EAAM,GACNq2D,EAAU,GACLnmX,EAAI,EAAGA,EAAImzR,EAAOl1R,OAAS,EAAG+B,IACnC8vT,EAAMA,EAAM,WAAa38B,EAAOnzR,GAAK,IACrCmmX,GAAoB,IAExB,IAAIC,EAAat2D,EAAMo2D,EAAMC,EAC7B,GAAIvoV,EAASu1P,EAAO,IAAIl1R,SAAwD,IAA9CgB,OAAOW,KAAKg+B,GAAU7tB,QAAQojR,EAAO,KACnEjtR,EAAMmgX,iBAAiBzoV,EAASu1P,EAAO,KAAK,GAAO,CACnD,IAAIv5E,EAAM1zM,EAAMmgX,iBAAiBzoV,EAASu1P,EAAO,KACjDv1P,EAASu1P,EAAO,IAAIv5E,GAAOh8K,EAASu1P,EAAO,IAAIv5E,GAAOwsK,EAAWl6W,QAAQ,WAAY,IACzF,MAEI0xB,EAASu1P,EAAO,IAAIhwR,KAAKijX,EAEjC,CACJ,IAEAnnX,OAAOW,KAAKg+B,GAAUv6B,SAAQ,SAAUy4W,IACF,IAA7ByE,EAAQxwW,QAAQ+rW,IACjByE,EAAQp9W,KAAK24W,EAErB,IACAyE,EAAQl9W,SAAQ,SAAUy4W,GACtBkK,EAASlK,GAAUA,KAAUl+U,EAAWk+U,EAAS,IAAMl+U,EAASk+U,GAAQ1lV,KAAK,KAAO,IAAM0lV,CAC9F,IACA78W,OAAOW,KAAKomX,GAAU3iX,SAAQ,SAAUs0G,GAAM,OAAOsuQ,EAAM9iX,KAAK6iX,EAASruQ,GAAM,IACxEsuQ,EAAM7vV,KAAK,IACtB,EACA0vV,EAAe5nX,UAAUmoX,iBAAmB,SAAUn/W,EAAO05W,GACzD,IAAK,IAAI5gX,EAAI,EAAGA,EAAIkH,EAAMjJ,OAAQ+B,IAC9B,IAAqC,IAAjCkH,EAAMlH,GAAG+P,QAAQ,WACjB,QAAO6wW,GAAkB5gX,EAGjC,OAAO4gX,GAAmB,CAC9B,EAKAkF,EAAe5nX,UAAUooX,WAAa,SAAUC,GAE5C,MAAO,YADMA,EAAe/+W,KAAI,SAAUgkG,GAAS,OAAO62Q,GAAaW,SAASx3Q,EAAQ,IAAGp1E,KAAK,KAClE,IAClC,EAKA0vV,EAAe5nX,UAAU6gX,SAAW,SAAU5+W,GAC1C,OAAO8F,EAAO/H,UAAU6gX,SAASn8W,KAAKtC,KAAMH,EAAE8C,QAAO,SAAUsuB,GAAQ,OAA8B,IAAvBA,EAAKxhB,QAAQ,IAAa,IAC5G,EASA+1W,EAAe5nX,UAAUmtS,WAAa,SAAUoyE,EAAIvmV,EAAS7uB,GACnC,SAAlBA,EAASvK,MAAqC,QAAlBuK,EAASvK,MAAoC,UAAlBuK,EAASvK,MAChEo5B,EAAQg1I,iBAAiB,SAAU,yBAEvCh1I,EAAQg1I,iBAAiB,SAAU5rK,KAAKD,QAAQ+3L,OACpD,EAWA0tL,EAAe5nX,UAAU+9W,gBAAkB,SAAU/sU,EAAMssU,EAAIt0W,EAAO6kK,EAAK70I,EAASwmV,GAChF,IAAI8I,EAAW,iBACf,GAAKtvV,GAA4B,QAAjBA,EAAQp5B,OAAoBwC,KAAKyjX,SAAW70U,EAAKs3U,GAAW,CACxE,IAAIC,EAAUv3U,EAAKs3U,GAAU/sV,MAAM,eACnCn5B,KAAKyjX,QAAU0C,EAAQ,GACvBnmX,KAAK2jX,kBAAoBwC,EAAQ,EACrC,CACA,IACIzK,EAAM9kV,GAAWA,EAAe,QAChCktV,EAAgBn+W,EAAO/H,UAAUmmX,qBAAqBzhX,KAAKtC,KAAM4uC,EAAMhoC,EAAO6kK,EAAK70I,EAASwmV,GAChG,GAAI0G,EACA,OAAOA,EAEX,IAAI/0W,EAAQ,KACRq3W,EAAY,eACZx/W,GAASA,EAAMy1W,iBACX+J,KAAax3U,IACb7/B,EAAQ6/B,EAAKw3U,IAGrBx3U,EAAQmkP,GAAkBnkP,EAAK1tC,OAAsB0tC,EAAbA,EAAK1tC,MAC7C,IAAI0L,EAAO,CAAC,EAIZ,OAHAA,EAAKmC,MAAQA,EACbnC,EAAK5I,OAAS4qC,EACd5uC,KAAKwgX,mBAAmB9E,EAAK9sU,EAAMhiC,EAAM,KAAMhG,GACxC41W,GAAS8C,OAAOvwW,GAASnC,EAAK5I,OAAS,CAAEA,OAAQ4I,EAAK5I,OAAQ+K,MAAOA,EAAOwsW,WAAY3uW,EAAK2uW,WACxG,CAEJ,CAjOoC,CAiOlCwG,IAQiC,SAAUp8W,GAEzC,SAAS0gX,IACL,OAAkB,OAAX1gX,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAHA49D,GAAUyoT,EAAe1gX,GAIzB0gX,EAAczoX,UAAU40S,cAAgB,WACpC,MAAO,eACX,EAOA6zE,EAAczoX,UAAUqlJ,OAAS,SAAUk6N,EAAIvuU,EAAM8vU,GACjD,MAAO,CACHlhX,KAAM,OACN6d,IAAK8hW,EAAG1B,WAAWpgW,IACnBuzB,KAAMooB,KAAKC,UAAUroB,GAE7B,EAQAy3U,EAAczoX,UAAUuuB,OAAS,SAAUgxV,EAAIwB,EAAUz9W,EAAOw9W,GAC5D,MAAO,CACHlhX,KAAM,SACN6d,IAAK8hW,EAAG1B,WAAWpgW,IAAM,IAAMna,EAC/B0tC,KAAMooB,KAAKC,UAAU/1D,GAE7B,EAQAmlX,EAAczoX,UAAUqnI,OAAS,SAAUk4O,EAAIwB,EAAUz9W,EAAOw9W,GAC5D,MAAO,CACHlhX,KAAM,MACN6d,IAAK8hW,EAAG1B,WAAWpgW,IACnBuzB,KAAMooB,KAAKC,UAAU/1D,GAE7B,EACAmlX,EAAczoX,UAAUs/W,aAAe,SAAUC,EAAIC,EAASv9W,GAC1D,IAAI+F,EAAQ5F,KACR0kX,EAAc7kX,EAAE4iX,KAAOjG,GAASmI,QAAQ3kX,KAAKD,QAAQmiX,UACrD7mW,EAAM8hW,EAAG1B,WAAWpgW,IAAIzP,QAAQ,OAAQ,IAAM5L,KAAKD,QAAQqsN,OAC/DvsN,EAAEwb,IAAMrb,KAAK2jX,kBAAoB3jX,KAAK2jX,kBAAoB9jX,EAAEwb,IAmB5D,IAlBA,IAAIuhW,EAAM,GACNtpF,EAAU,SAAU5zR,EAAG2H,GACvB+1W,EAAQG,aAAax6W,SAAQ,SAAUqG,EAAGiV,GACtC,IAAI+wJ,EAEO,SAAUxgI,EAAMlvC,EAAGC,GAAO,MAAO,EAAI,EAGhDi9W,EAAI/5W,KAAK,KAAO6hX,GAChB9H,EAAI/5W,KAAK,kDAAmD,IAC5D+5W,EAAI/5W,KAAK,cAAqBs6W,EAAG1B,WAAWyF,WAAa/D,EAAG1B,WAAWoF,SAAWhhX,EAAEwb,KAC9E+zJ,EAASguM,EAAQG,aAAc79W,EAAGG,EAAEF,KAAO,aACjDi9W,EAAI/5W,KAAK,iDACT+5W,EAAI/5W,KAAK,SAAW4rB,SAAS2mD,MAC7BwnS,EAAI/5W,KAAK,GAAIuG,EAAI4tD,KAAKC,UAAU7tD,GAAK,GACzC,GACJ,EAES1J,EAAI,EAAG2H,EAAI+1W,EAAQG,aAAa5/W,OAAQ+B,EAAI2H,EAAG3H,IACpD4zR,EAAQ5zR,GAEZ,IAAI4mX,EAAU,SAAU5mX,EAAG2H,GACvB+1W,EAAQI,eAAez6W,SAAQ,SAAUqG,EAAGiV,GAE1BzY,EAAM7F,QAAQuiX,WAD5B,IAAIlzM,EAEO,SAAUxgI,EAAMlvC,EAAGC,GAAO,MAAO,EAAI,EAGhDi9W,EAAI/5W,KAAK,KAAO6hX,GAChB9H,EAAI/5W,KAAK,kDAAmD,IAC5D+5W,EAAI/5W,KAAK,aAAoBs6W,EAAG1B,WAAW2F,WAAajE,EAAG1B,WAAWoF,SAAWhhX,EAAEwb,KAC7E+zJ,EAASguM,EAAQI,eAAgB99W,EAAGG,EAAEF,KAAO,aACnDi9W,EAAI/5W,KAAK,iDACT+5W,EAAI/5W,KAAK,SAAW4rB,SAAS2mD,MAC7BwnS,EAAI/5W,KAAK,GAAIuG,EAAI4tD,KAAKC,UAAU7tD,GAAK,GACzC,GACJ,EAEA,IAAS1J,EAAI,EAAG2H,EAAI+1W,EAAQI,eAAe7/W,OAAQ+B,EAAI2H,EAAG3H,IACtD4mX,EAAQ5mX,GAEZ,IAAI6mX,EAAU,SAAU7mX,EAAG2H,GACvB+1W,EAAQE,eAAev6W,SAAQ,SAAUqG,EAAGiV,GACxC,IAAI5X,EAEO,SAAUmoC,EAAMlvC,EAAGC,GACtB,IAAI0b,EAAMmhW,GAAShtN,UAAU7vJ,EAAKivC,EAAKlvC,IACvC,MAAmB,kBAAR2b,GAAoBmhW,GAAS77W,MAAMiiX,OAAOvnW,GAC1C,IAAMA,EAERA,aAAe/P,KAEb,IADOsjC,EAAKlvC,GAAGC,GACDumG,SAGd,KAAO7qF,EAAM,GAE5B,EAGJuhW,EAAI/5W,KAAK,KAAO6hX,GAChB9H,EAAI/5W,KAAK,kDAAmD,IAC5D+5W,EAAI/5W,KAAK,gBAAuBs6W,EAAG1B,WAAWqF,WAAa3D,EAAG1B,WAAWoF,SAAWhhX,EAAEwb,KAChF5U,EAAU22W,EAAQE,eAAgB59W,EAAGG,EAAEF,KAAO,aACpDi9W,EAAI/5W,KAAK,iDACT+5W,EAAI/5W,KAAK,SAAW4rB,SAAS2mD,MAC7BwnS,EAAI/5W,KAAK,GAAIuG,EAAI4tD,KAAKC,UAAU7tD,GAAK,GACzC,GACJ,EAEA,IAAS1J,EAAI,EAAG2H,EAAI+1W,EAAQE,eAAe3/W,OAAQ+B,EAAI2H,EAAG3H,IACtD6mX,EAAQ7mX,GAGZ,OADAk9W,EAAI/5W,KAAK,KAAO6hX,EAAc,KAAM,IAC7B,CACHlnX,KAAM,OACN6d,IAAKA,EACLk0J,YAAa,6BAA+Bm1M,EAC5C91U,KAAMguU,EAAI9mV,KAAK,QAEvB,EASAuwV,EAAczoX,UAAUmtS,WAAa,SAAUoyE,EAAIvmV,EAAS7uB,GACxD6uB,EAAQg1I,iBAAiB,SAAU,iDACvC,EAWAy6M,EAAczoX,UAAU+9W,gBAAkB,SAAU/sU,EAAMssU,EAAIt0W,EAAO6kK,EAAK70I,EAASwmV,GAC/E,IACI1B,EAAM9kV,GAAWA,EAAe,QAChC7nB,EAAQ,KACRnC,EAAO,CAAC,EACZ,GAAIgqB,GAA0C,SAA/BA,EAAQp5B,KAAK4vB,cAA0B,CAClD,IAAI42V,EAAev4M,GAAO70I,EAAQ4yI,kBAAkB,sBAChD/xG,EAAWusT,GAAgBx5W,SAASw5W,EAAc,KAAQ,EAC1Dp9W,GAASA,EAAMy1W,kBACVG,GAAS8C,OAAO1wU,EAAK43U,SACtBz3W,EAAQ6/B,EAAK43U,QAGjB/uT,EAAU,GAAK7oB,EAAK63U,QACpB73U,EAAOA,EAAK63U,OAEhB75W,EAAKmC,MAAQA,EACbnC,EAAK5I,OAAS4qC,EACd5uC,KAAKwgX,mBAAmB9E,EAAK9sU,EAAMhiC,EAAM,KAAMhG,EACnD,CAEA,OADAgG,EAAK5I,OAAS4I,EAAK5I,QAAU4qC,EACtB4tU,GAAS8C,OAAOvwW,GAASnC,EAAK5I,OAAS,CAAEA,OAAQ4I,EAAK5I,OAAQ+K,MAAOnC,EAAKmC,MAAOwsW,WAAY3uW,EAAK2uW,WAC7G,CAEJ,CApLmC,CAoLjCwG,IAMoC,SAAUp8W,GAE5C,SAAS+gX,IACL,OAAkB,OAAX/gX,GAAmBA,EAAOpD,MAAMvC,KAAMjC,YAAciC,IAC/D,CAHA49D,GAAU8oT,EAAkB/gX,GAY5B+gX,EAAiB9oX,UAAUi+W,aAAe,SAAUsB,EAAIv2W,EAAOi4W,GAC3D,IAAIj9W,GAAM,IAAIg9W,IAAa/C,aAAasB,EAAIv2W,EAAOi4W,GAE/CjwU,EAAO4tU,GAAS77W,MAAMy/W,UAAUx+W,EAAW,MAC3CoC,EAAS,CAAC,EAEd,GAAI4qC,EAAKxM,MACL,IAAK,IAAI1iC,EAAI,EAAGA,EAAIkvC,EAAKxM,MAAMzkC,OAAQ+B,IAAK,CACxC,IAAI0iC,EAAQwM,EAAKxM,MAAM1iC,GACnBC,EAAMhB,OAAOW,KAAK8iC,GAAO,GAC7Bp+B,EAAOrE,GAAOyiC,EAAMziC,EACxB,CAEJqE,EAAY,MAAI4qC,EAGhB,MAAO,CACHA,KAAMooB,KAAKC,UAAUjzD,GACrBqX,IAAKzZ,EAAO,IACZ+9W,QAAS/9W,EAAW,QACpBpE,KAAM,OACN+xK,YAAa,kCAErB,CAEJ,CAtCsC,CAsCpCqvM,IAOqC,SAAUj5W,GAK7C,SAAS4/W,IACL,IAAI3/W,EAAQD,EAAOrD,KAAKtC,OAASA,KAEjC,OADAi8B,GAAS,aAAc2iV,GAAWhhX,UAAUmtS,WAAYnlS,GACjDA,CACX,CAiGA,OAzGAg4D,GAAU2nT,EAAmB5/W,GAS7B4/W,EAAkB3nX,UAAUqlJ,OAAS,SAAUk6N,EAAIvuU,EAAM8vU,EAAW93W,EAAOgJ,GAGvE,OAFA5P,KAAK07W,IAAI9rW,SAAWA,EACpB5P,KAAKsiX,WAAa,MACX,CACHjnW,IAAK8hW,EAAG1B,WAAWyF,WAAa/D,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWpgW,IACvEuzB,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5Bz0C,MAAO0tC,EACPgtG,MAAO8iO,EACPv5T,OAAQ,UACTq3T,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EACA2+W,EAAkB3nX,UAAUuuB,OAAS,SAAUgxV,EAAIwB,EAAUp7S,EAAKm7S,EAAW93W,GAEzE,OADAjB,EAAO/H,UAAUuuB,OAAO7pB,KAAKtC,KAAMm9W,EAAIwB,EAAUp7S,GAC1C,CACH/lE,KAAM,OACN6d,IAAK8hW,EAAG1B,WAAWqF,WAAa3D,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWpgW,IACvEuzB,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5Bh2C,IAAK4jE,EACL49S,UAAWxC,EACX/iO,MAAO8iO,EACPv5T,OAAQ,UACTq3T,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EACA2+W,EAAkB3nX,UAAUqnI,OAAS,SAAUk4O,EAAIwB,EAAUp7S,EAAKm7S,EAAW93W,GAGzE,OAFA5G,KAAKsiX,WAAa,SAClBtiX,KAAK2mX,UAAYhI,EACV,CACHnhX,KAAM,OACN6d,IAAK8hW,EAAG1B,WAAW2F,WAAajE,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWpgW,IACvEuzB,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5Bz0C,MAAOqiE,EACPpe,OAAQ,SACRg8T,UAAWxC,EACXh/W,IAAK4jE,EAAIo7S,GACT/iO,MAAO8iO,GACRlC,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EACA2+W,EAAkB3nX,UAAU+9W,gBAAkB,SAAU/sU,EAAMssU,EAAIt0W,EAAO6kK,EAAK70I,EAASwmV,EAASv9W,GAC5F,IAAIH,EAUJ,GARAkvC,EAA0B,WADZhY,EAAUogC,KAAKr2D,MAAMi2B,EAAQgY,MAAQA,GACpCuW,OAAqBq3T,GAAS77W,MAAMy/W,UAAUxxU,GAAQA,EAC7C,QAApB5uC,KAAKsiX,YACL38W,EAAO/H,UAAUqlJ,OAAO3gJ,KAAKtC,KAAMk7W,EAAItsU,EAAM,KAAM,KAAM5uC,KAAK07W,IAAI9rW,UAE9C,WAApB5P,KAAKsiX,YACL38W,EAAO/H,UAAUqnI,OAAO3iI,KAAKtC,KAAMk7W,EAAIl7W,KAAK2mX,UAAW/3U,GAE3D5uC,KAAKsiX,gBAAaj8W,EACduoC,EAAKoyU,MACL,IAAKthX,EAAI,EAAGA,EAAIkvC,EAAKoyU,MAAMrjX,OAAQ+B,IAC/BiG,EAAO/H,UAAUqlJ,OAAO3gJ,KAAKtC,KAAMk7W,EAAItsU,EAAKoyU,MAAMthX,IAG1D,GAAIkvC,EAAKmyU,QACL,IAAKrhX,EAAI,EAAGA,EAAIkvC,EAAKmyU,QAAQpjX,OAAQ+B,IACjCiG,EAAO/H,UAAUqnI,OAAO3iI,KAAKtC,KAAMk7W,EAAIr7W,EAAEF,IAAKivC,EAAKmyU,QAAQrhX,IAGnE,GAAIkvC,EAAKg4F,QACL,IAAKlnI,EAAI,EAAGA,EAAIkvC,EAAKg4F,QAAQjpI,OAAQ+B,IACjCiG,EAAO/H,UAAUuuB,OAAO7pB,KAAKtC,KAAMk7W,EAAIr7W,EAAEF,IAAKivC,EAAKg4F,QAAQlnI,IAGnE,OAAOkvC,CACX,EASA22U,EAAkB3nX,UAAUs/W,aAAe,SAAUC,EAAIC,EAASv9W,EAAG+G,EAAOq1O,GACxE,MAAO,CACHz+O,KAAM,OACN6d,IAAK8hW,EAAG1B,WAAWmF,UAAYzD,EAAG1B,WAAWoF,SAAW1D,EAAG1B,WAAWpgW,IACtEk0J,YAAa,kCACb27H,SAAU,OACVt8P,KAAMooB,KAAKC,UAAUthB,GAAO,CAAC,EAAG,CAC5BorU,QAAS3D,EAAQI,eACjBwD,MAAO5D,EAAQG,aACf32O,QAASw2O,EAAQE,eACjBn4T,OAAQ,QACRy2F,MAAO/7I,EAAEwb,IACT1b,IAAKE,EAAEF,KACR68W,GAASyE,aAAajhX,KAAMm9W,EAAIv2W,KAE3C,EACA2+W,EAAkB3nX,UAAUkkX,UAAY,SAAU/hX,IAC9B,IAAI6+W,IACVkD,UAAU/hX,EACxB,EACOwlX,CACX,CA3GuC,CA2GrC3J,KAMEgL,GAAmC,SAAUjhX,GAE7C,SAASihX,EAAkBxjX,GACvB,IAAIwC,EAAQD,EAAOrD,KAAKtC,OAASA,KAUjC,OARA4F,EAAM7F,QAAU41C,GAAO,CAAC,EAAG/vC,EAAM7F,QAAS,CACtC00H,QAAS,IAAI5pH,SACbg8W,UAAW,IAAIh8W,SACfi8W,aAAc,IAAIj8W,SAClBk8W,aAAc,IAAIl8W,SAClBm8W,YAAa,IAAIn8W,WAErB8qC,GAAO/vC,EAAM7F,QAASqD,GAAS,CAAC,GACzBwC,CACX,CAIA,OAjBAg4D,GAAUgpT,EAAmBjhX,GAc7BihX,EAAkBhpX,UAAU40S,cAAgB,WACxC,MAAO,mBACX,EACOo0E,CACX,CAnBuC,CAmBrChI,IAiIEqI,IA1HgC,SAAUthX,GAE1C,SAASuhX,EAAennX,GACpB,IAAI6F,EAAQD,EAAOrD,KAAKtC,OAASA,KAMjC,OALA4F,EAAM0sO,IAAMvyO,EACZ6F,EAAM+sO,OAAS/sO,EAAM0sO,IAAI9gG,SACzB5rI,EAAMgB,MAAQhB,EAAM0sO,IAAI1rO,MACxBhB,EAAMuhX,aAAevhX,EAAM0sO,IAAI60I,aAAevhX,EAAM0sO,IAAI60I,aAAe,WAAc,EACrFvhX,EAAMwhX,SAAW,WAAc,OAAOxhX,EAAMgB,KAAO,EAC5ChB,CACX,CATAg4D,GAAUspT,EAAgBvhX,GAU1BuhX,EAAetpX,UAAU40S,cAAgB,WACrC,MAAO,gBACX,EAMA00E,EAAetpX,UAAUi+W,aAAe,SAAUwL,EAAazgX,GAC3D,IAAI0gX,EAAW3hX,EAAO/H,UAAUi+W,aAAat5W,MAAMvC,KAAMjC,WACrDo/W,EAAKnmT,KAAKr2D,MAAM2mX,EAAS14U,MAIzB+tD,EAAO,CAAC,EAFD,CAAC,OAAQ,OAAQ,SAAU,QAAS,SAAU,QACrD,SAAU,iBAAkB,aAAc,UAGzCh6F,QAAO,SAAU9C,GAClB88F,EAAK98F,GAFC,oBAEQ4P,QAAQ5P,IAAM,EAAIm3D,KAAKC,UAAUkmT,EAAGt9W,IAAMs9W,EAAGt9W,EAC/D,IACA,IAAI0nX,EAAOvnX,KAAKmnX,gBAAkB,CAAC,EACnCI,EAAkB,YAAI5qR,EACtB,IAAI/tD,EAAOooB,KAAKC,UAAU,CACtBrwD,MAAO5G,KAAKonX,WACZh0J,UAAWm0J,IAGf,OADAD,EAAS14U,KAAOA,EACT04U,CACX,EAWAJ,EAAetpX,UAAU+9W,gBAAkB,SAAU6L,EAAStM,EAAIt0W,EAAO6kK,EAAK70I,GAC1E,IACI7nB,EACAwsW,EAFAjoW,EAAMk0W,EAGNxjX,EAASg4B,GAASh8B,KAAK2yO,OAAO3uO,OAAQsP,EAAIs7B,MAC1C5uC,KAAK2yO,OAAO5jO,QACZA,EAAQitB,GAASh8B,KAAK2yO,OAAO5jO,MAAOuE,EAAIs7B,OAExC5uC,KAAK2yO,OAAO4oI,aAEZA,EAAcxoF,GADdwoF,EAAav/U,GAASh8B,KAAK2yO,OAAO4oI,WAAYjoW,EAAIs7B,OACmC2sU,EAAvCiB,GAAS77W,MAAMy/W,UAAU7E,IAE3E,IAAIG,EAAM9kV,EAAQ+oV,SAAW,CAAC,EAC1B/yW,EAAO,CAAE5I,OAAQA,EAAQu3W,WAAYA,GACrC3sU,EAAOhiC,EAIX,OAHI8uW,GAAOA,EAAIt2M,QAAUs2M,EAAIt2M,OAAOznK,QAChCqC,KAAKwgX,mBAAmB9E,EAAK9sU,EAAMhiC,EAAM,KAAMhG,GAE3CmsR,GAAkBhkR,GAAyEnC,EAAK5I,OAArE,CAAEA,OAAQ4I,EAAK5I,OAAQ+K,MAAOA,EAAOwsW,WAAYA,EACxF,EAIA2L,EAAetpX,UAAUqlJ,OAAS,WAC9B,IAAIsjH,EAAW5gQ,EAAO/H,UAAUqlJ,OAAO1gJ,MAAMvC,KAAMjC,WACnD,OAAOiC,KAAKynX,iBAAiBlhH,EAAU,SAC3C,EAIA2gH,EAAetpX,UAAUqnI,OAAS,WAC9B,IAAIshI,EAAW5gQ,EAAO/H,UAAUqnI,OAAO1iI,MAAMvC,KAAMjC,WACnD,OAAOiC,KAAKynX,iBAAiBlhH,EAAU,SAC3C,EAIA2gH,EAAetpX,UAAUuuB,OAAS,WAC9B,IAAIo6O,EAAW5gQ,EAAO/H,UAAUuuB,OAAO5pB,MAAMvC,KAAMjC,WACnD,OAAOiC,KAAKynX,iBAAiBlhH,EAAU,SAC3C,EAUA2gH,EAAetpX,UAAUs/W,aAAe,SAAUC,EAAIC,EAASv9W,EAAG+G,EAAOq1O,GACrE,IAAI7vB,EAAQzmN,EAAO/H,UAAUs/W,aAAa36W,MAAMvC,KAAMjC,WAClD2pX,EAAQ1wT,KAAKr2D,MAAMyrN,EAAMx9K,MAG7B,OAFA84U,EAAM/nX,IAAME,EAAEF,IACdysN,EAAMx9K,KAAOooB,KAAKC,UAAUywT,GACrB1nX,KAAKynX,iBAAiBr7J,EAAO,QACxC,EACA86J,EAAetpX,UAAU6pX,iBAAmB,SAAUE,EAAUxiU,GAC5D,IAAIijL,EAASpxK,KAAKr2D,MAAMgnX,EAAS/4U,MAKjC,OAJA+4U,EAAS/4U,KAAOooB,KAAKC,UAAU,CAC3BrwD,MAAO5G,KAAKsyO,IAAIs1I,YAAYziU,GAC5BiuK,UAAWgV,IAERu/I,CACX,CAEJ,CAnHoC,CAmHlC/I,IAOgC,SAAUj5W,GASxC,SAASshX,EAAaY,EAASn7U,EAAW0xU,GACtC,IAAIx4W,EAAQD,EAAOrD,KAAKtC,OAASA,KACjC4F,EAAMkiX,cAAe,EACrBliX,EAAMmiX,gBAAiB,EAClBh1F,GAAkB80F,KACnBjiX,EAAMoiX,aAAeH,GAEzBjiX,EAAMw4W,SAAWA,EACjBx4W,EAAMqiX,OAASzL,GAASmI,QAAQ,gBAEhCnuW,OAAOu+O,aAAakC,QAAQrxP,EAAMqiX,OAAQjxT,KAAKC,UADrC,CAAE33D,KAAM,GAAIuiI,QAAS,MAE/B,IAAI4gP,EAAO78W,EAAMqiX,OAsBjB,OArBKl1F,GAAkBrmP,IACnBijC,aAAY,WACR,IAAI/gC,EACJA,EAAO4tU,GAAS77W,MAAMy/W,UAAU5pW,OAAOu+O,aAAaC,QAAQytH,IAE5D,IADA,IAAIyF,EAAS,GACJxoX,EAAI,EAAGA,EAAIkvC,EAAKizF,QAAQlkI,OAAQ+B,IAAK,CAC1C,IAAIyoX,GAAe,IAAI78W,KACnB88W,GAAe,IAAI98W,KAAKsjC,EAAKizF,QAAQniI,GAAGgtC,WAC5CkC,EAAKizF,QAAQniI,GAAGgtC,UAAYy7U,EAAcC,EACtCD,EAAcC,EAAc17U,GAC5Bw7U,EAAOrlX,KAAKnD,EAEpB,CACA,IAASA,EAAI,EAAGA,EAAIwoX,EAAOvqX,OAAQ+B,IAC/BkvC,EAAKizF,QAAQ9qE,OAAOmxT,EAAOxoX,GAAI,GAC/BkvC,EAAKtvC,KAAKy3D,OAAOmxT,EAAOxoX,GAAI,GAEhC8W,OAAOu+O,aAAa4B,WAAW8rH,GAC/BjsW,OAAOu+O,aAAakC,QAAQwrH,EAAMzrT,KAAKC,UAAUroB,GACrD,GAAGlC,GAEA9mC,CACX,CAoJA,OA9LAg4D,GAAUqpT,EAActhX,GAiDxBshX,EAAarpX,UAAUyqX,YAAc,SAAUhtW,EAAKzU,GAChD,IAAIq7L,EAAUjiM,KAAK8+W,gBAAgBl4W,GAC/Bm4W,EAAU7uJ,GAAM8uJ,iBAAiBp4W,EAAMq7L,QAAS,CAAC,WAAY,SAAU,SAAU,SAAU,YAC3FtiM,EAAM0b,EACN6jH,EAAO,SACPA,KAAQ6/O,IACRp/W,GAAOo/W,EAAQ7/O,GAAM5J,WAEzB2sE,EAAQg9K,MAAMl8W,SAAQ,SAAUnB,GAC5BjC,GAAOiC,EAAI/B,EAAEmkB,UAAYpiB,EAAI/B,EAAEmnL,SACnC,IACAib,EAAQ78B,OAAOriK,SAAQ,SAAUnB,GAC7BjC,GAAOiC,EAAI/B,EAAEmnL,SACjB,IACAib,EAAQi9K,SAASn8W,SAAQ,SAAUnB,GAC/BjC,GAAOiC,EAAI/B,EAAEg+W,SACjB,IACA,IAAK,IAAIl7W,EAAS,EAAGA,EAASs/L,EAAQynB,QAAQ/rN,OAAQgF,IAAU,CAC5D,IAAI2lX,EAAgBrmL,EAAQynB,QAAQ/mN,GACpC,GAAI2lX,EAAczoX,EAAEsjX,UAAW,CAC3B,IAAIoF,EAAW3hX,EAAMgmE,QACrB27S,EAAStmL,QAAU,GACnB,IAAK,IAAIviM,EAAI,EAAGA,EAAI4oX,EAAczoX,EAAEsjO,WAAWxlO,OAAQ+B,IACnD6oX,EAAStmL,QAAQp/L,KAAK,CAAE+pB,GAAI,UAAW/sB,EAAGyoX,EAAczoX,EAAEsjO,WAAWzjO,GAAIiD,OAAQiE,EAAMq7L,QAAQt/L,SAEnGhD,GAAO2oX,EAAczoX,EAAEqjX,UAAYljX,KAAKqoX,YAAYhtW,EAAKktW,EAC7D,MAEI5oX,GAAO2oX,EAAczoX,EAAEqrG,MAAQo9Q,EAAczoX,EAAEylK,SAAWgjN,EAAczoX,EAAEqB,KAElF,CACA,OAAOvB,CACX,EAQAsnX,EAAarpX,UAAUi+W,aAAe,SAAUsB,EAAIv2W,EAAOi4W,GACvD,IACI2J,EADA7oX,EAAMK,KAAKqoX,YAAYlL,EAAG1B,WAAWpgW,IAAKzU,GAG1CgoC,GADJ45U,EAAchM,GAAS77W,MAAMy/W,UAAU5pW,OAAOu+O,aAAaC,QAAQh1P,KAAKioX,UAC/CO,EAAY3mP,QAAQ2mP,EAAYlpX,KAAKmQ,QAAQ9P,IAAQ,KAC9E,OAAY,MAARivC,GAAiB5uC,KAAK8nX,cAAiB9nX,KAAK+nX,gBAGhD/nX,KAAK8nX,aAAe,KACpB9nX,KAAK+nX,eAAiB,KACf/nX,KAAKgoX,aAAanM,aAAat5W,MAAMvC,KAAKgoX,aAAc,GAAGngX,MAAMvF,KAAKvE,UAAW,KAJ7E6wC,CAKf,EAWAq4U,EAAarpX,UAAU+9W,gBAAkB,SAAU/sU,EAAMssU,EAAIt0W,EAAO6kK,EAAK70I,EAASwmV,GAC9E,GAAIp9W,KAAK+nX,gBAAmBnxV,GAAW52B,KAAKgoX,aAAajoX,QAAQqsN,OAC7DowJ,GAAS3xO,SAASj0G,EAAQvb,IAAKrb,KAAKgoX,aAAajoX,QAAQqsN,QAAyC,SAA/Bx1L,EAAQp5B,KAAK4vB,cAChF,OAAOptB,KAAKgoX,aAAarM,gBAAgB/sU,EAAMssU,EAAIt0W,EAAO6kK,EAAK70I,EAASwmV,GAE5ExuU,EAAO5uC,KAAKgoX,aAAarM,gBAAgBp5W,MAAMvC,KAAKgoX,aAAc,GAAGngX,MAAMvF,KAAKvE,UAAW,IAC3F,IAAI4B,EAAMiH,EAAQ5G,KAAKqoX,YAAYnN,EAAGO,WAAWpgW,IAAKzU,GAASs0W,EAAGO,WAAWpgW,IACzEzZ,EAAM,CAAC,EAEP2F,GADJ3F,EAAM46W,GAAS77W,MAAMy/W,UAAU5pW,OAAOu+O,aAAaC,QAAQh1P,KAAKioX,UAChD3oX,KAAKmQ,QAAQ9P,GAM7B,KALe,IAAX4H,IACA3F,EAAIigI,QAAQ9qE,OAAOxvD,EAAO,GAC1B3F,EAAItC,KAAKy3D,OAAOxvD,EAAO,IAE3B3F,EAAIigI,QAAQjgI,EAAItC,KAAKuD,KAAKlD,GAAO,GAAK,CAAEL,KAAMK,EAAKqE,OAAQ4qC,EAAK5qC,OAAQ0oC,UAAW,IAAIphC,KAAQyD,MAAO6/B,EAAK7/B,OACpGnN,EAAIigI,QAAQlkI,OAASqC,KAAKo+W,UAC7Bx8W,EAAIigI,QAAQ9qE,OAAO,EAAG,GACtBn1D,EAAItC,KAAKy3D,OAAO,EAAG,GAGvB,OADAvgD,OAAOu+O,aAAakC,QAAQj3P,KAAKioX,OAAQjxT,KAAKC,UAAUr1D,IACjDgtC,CACX,EAOAq4U,EAAarpX,UAAUmtS,WAAa,SAAUoyE,EAAIvmV,EAAS7uB,IAClDgrR,GAAkB/yR,KAAKgoX,aAAajoX,QAAQqsN,QAAUowJ,GAAS3xO,SAAS9iI,EAASsT,IAAKrb,KAAKgoX,aAAajoX,QAAQqsN,QAC9E,SAAhCrkN,EAASvK,KAAK4vB,eACjBwJ,EAAQg1I,iBAAiB,SAAU5rK,KAAKgoX,aAAajoX,QAAQiiX,iBAE5D7E,EAAG1B,WAAWgN,aACf7xV,EAAQg1I,iBAAiB,SAAU5rK,KAAKgoX,aAAajoX,QAAQ+3L,OAErE,EAQAmvL,EAAarpX,UAAUqnI,OAAS,SAAUk4O,EAAIwB,EAAUz9W,EAAOw9W,GAE3D,OADA1+W,KAAK8nX,cAAe,EACb9nX,KAAKgoX,aAAa/iP,OAAOk4O,EAAIwB,EAAUz9W,EAAOw9W,EACzD,EAOAuI,EAAarpX,UAAUqlJ,OAAS,SAAUk6N,EAAIvuU,EAAM8vU,GAEhD,OADA1+W,KAAK+nX,gBAAiB,EACf/nX,KAAKgoX,aAAa/kO,OAAOk6N,EAAIvuU,EAAM8vU,EAC9C,EAQAuI,EAAarpX,UAAUuuB,OAAS,SAAUgxV,EAAIwB,EAAUz9W,EAAOw9W,GAE3D,OADA1+W,KAAK8nX,cAAe,EACb9nX,KAAKgoX,aAAa77V,OAAOgxV,EAAIwB,EAAUz9W,EAAOw9W,EACzD,EAQAuI,EAAarpX,UAAUs/W,aAAe,SAAUC,EAAIC,EAASv9W,GACzD,OAAOG,KAAKgoX,aAAa9K,aAAaC,EAAIC,EAASv9W,EACvD,EACOonX,CACX,CAhMkC,CAgMhCrI,KC/2EE8J,GAA6B,WAQ7B,SAASA,EAAYjN,EAAY70W,EAAOihX,GACpC,IAaIj5U,EAbAhpC,EAAQ5F,KAkFZ,OAhFAA,KAAKskX,WAAY,EAEjBtkX,KAAKmgX,kBAAmB,EACxBngX,KAAKg2B,SAAW,GACXylV,GAAez7W,KAAKy7W,aACrBA,EAAa,IAEjBoM,EAAUA,GAAWpM,EAAWoM,QAC5BpM,IAA8C,IAAhCA,EAAW0E,mBACzBngX,KAAKmgX,iBAAmB1E,EAAW0E,kBAGnC1E,aAAsBvqW,MACtB09B,EAAO,CACHmtU,KAAMN,EACNkN,SAAS,GAGc,kBAAflN,GACPA,EAAWM,OACZN,EAAWM,KAAO,IAEtBntU,EAAO,CACHvzB,IAAKogW,EAAWpgW,IAChB6lW,UAAWzF,EAAWyF,UACtBJ,UAAWrF,EAAWqF,UACtBM,UAAW3F,EAAW2F,UACtBP,QAASpF,EAAWoF,QACpBD,SAAUnF,EAAWmF,SACrB7E,KAAMN,EAAWM,KACjB7zM,QAASuzM,EAAWvzM,QACpB4vB,OAAQ2jL,EAAW3jL,OACnBlpJ,KAAM6sU,EAAW7sU,KACjBg6U,mBAAoBnN,EAAWmN,mBAC/BC,gBAAiBpN,EAAWoN,gBAC5BC,cAAerN,EAAWqN,cAC1B3N,YAAaM,EAAWN,YACxBx7W,IAAK87W,EAAW97W,IAChB8oX,YAAahN,EAAWgN,YACxBM,MAAOtN,EAAWsN,MAClB79E,SAAUuwE,EAAWvwE,SACrBy9E,aAAgCtiX,IAAvBo1W,EAAWkN,QAAwBlN,EAAWkN,UACjDlN,EAAWoM,mBAAmBtC,IAAqB9J,EAAWoM,mBAAmBjB,MACvEnL,EAAWpgW,IAC3B6oW,eAAgBzI,EAAWyI,iBAI/B1H,GAAS3+I,WAAW,uCAEIx3N,IAAxBuoC,EAAKs1U,gBAAiC1H,GAASwM,WAC/Cp6U,EAAKs1U,iBAAiBnxF,GAAkBnkP,EAAK65U,cAAsB75U,EAAK65U,kBAEtDpiX,IAAlBuoC,EAAKs8P,WACLt8P,EAAKs8P,SAAW,QAEpBlrS,KAAKy7W,WAAa7sU,EAClB5uC,KAAKipX,aAAeriX,EAChBgoC,EAAKvzB,KAAOuzB,EAAK+5U,UAAY/5U,EAAKmtU,KAAKp+W,QACvCqC,KAAKkpX,iBAAkB,EACvBlpX,KAAK6nX,QAAUA,GAAW,IAAI9F,GAC9B/hX,KAAKy7W,WAAWkN,SAAU,EAC1B3oX,KAAK6/H,MAAQ7/H,KAAKmpX,aAAaviX,GAAS,IAAIspN,IAC5ClwN,KAAK6/H,MAAMrlF,MAAK,SAAU36C,GACtB+F,EAAM61W,WAAWkN,SAAU,EAC3B/iX,EAAMsjX,iBAAkB,EACxBt6U,EAAKmtU,KAAOl8W,EAAEmE,OACd4B,EAAMiiX,QAAU,IAAIjM,EACxB,KAGA57W,KAAK6nX,QAAUj5U,EAAK+5U,QAAU,IAAI/M,GAAgB,IAAImG,IAErDnzU,EAAKm6U,OAAS/oX,KAAK6nX,mBAAmB9F,KACvCnzU,EAAKm6U,MAAQ,YAEjB/oX,KAAK6nX,QAAUA,GAAW7nX,KAAK6nX,QAC3Bj5U,EAAKk6U,gBACL9oX,KAAK6nX,QAAU,IAAIZ,GAAajnX,KAAK6nX,QAASj5U,EAAKg6U,mBAAoBh6U,EAAKi6U,kBAEzE7oX,IACX,CAmbA,OA9aA0oX,EAAY9qX,UAAUwrX,gBAAkB,SAAUxiX,GAE9C,OADA5G,KAAKipX,aAAeriX,EACb5G,IACX,EAKA0oX,EAAY9qX,UAAUyrX,aAAe,SAAUziX,GACtC5G,KAAKipX,cAAkBriX,aAAiBspN,IACzCssJ,GAAS3+I,WAAW,iEAEnB79N,KAAKy7W,WAAWM,MACjBS,GAAS3+I,WAAW,mEAExBj3N,EAAQA,GAAS5G,KAAKipX,aACtB,IAAIjlX,EAAShE,KAAK6nX,QAAQhM,aAAa77W,KAAM4G,GAC7C,GAAIA,EAAM0iX,SAAU,CAChB,IAAI1wW,EAAOhS,EAAM0iX,SAASxJ,UACtByJ,EAAS3iX,EAAM0iX,SAASE,QACxBl2W,EAAM1M,EAAMy1W,gBAAkBr4W,EAAOA,OACrCA,EACAulX,GAAUA,aAAkBr4W,OAC5BsrW,GAASiN,eAAe7iX,EAAM0iX,SAASjI,KAAMzoW,EAAMtF,EAAKi2W,EAAQ3iX,EAAM0iX,SAAS3pX,KAEnF,IAAK,IAAIyJ,EAAI,EAAGA,EAAIkK,EAAI3V,OAAQyL,IACxBkK,EAAIlK,GAAGwP,aAAiB1H,QACxBoC,EAAIlK,GAAKusC,GAAO,CAAC,EAAG,CAAC,EAAGriC,EAAIlK,IAC5BkK,EAAIlK,GAAGwP,GAAQ5Y,KAAK6nX,QAAQlM,gBAAgB/0W,EAAM0iX,SAASI,MAAM,IAAIhB,EAAYp1W,EAAIlK,GAAGwP,GAAM/Q,MAAM,KAAKwhX,eAAgBrpX,KAAM4G,GAG3I,CACA,OAAO5G,KAAK6nX,QAAQlM,gBAAgB33W,EAAQhE,KAAM4G,EACtD,EASA8hX,EAAY9qX,UAAUurX,aAAe,SAAUviX,EAAOg5C,EAAMw3P,EAAMuyE,GAC9D,IAAI/jX,EAAQ5F,KACR4pX,EAAc,cACG,oBAAVhjX,IACP+iX,EAASvyE,EACTA,EAAOx3P,EACPA,EAAOh5C,EACPA,EAAQ,MAEPA,IACDA,EAAQ5G,KAAKipX,cAEXriX,aAAiBspN,IACnBssJ,GAAS3+I,WAAW,iEAExB,IAAIgsJ,EAAW,IAAIC,GACfl9W,EAAO,CAAEhG,MAAOA,GACpB,IAAK5G,KAAKy7W,WAAWkN,cAAoCtiX,IAAxBrG,KAAKy7W,WAAWpgW,KAA6C,KAAxBrb,KAAKy7W,WAAWpgW,MAC7E03Q,GAAkB/yR,KAAK6nX,QAAQ+B,KAAkB5pX,KAAK+pX,oBAAoB/pX,KAAK6nX,SAAU,CAC9F,IAAI7jX,EAAShE,KAAK6nX,QAAQhM,aAAa77W,KAAM4G,GACxCmsR,GAAkB/yR,KAAK6nX,QAAQ+B,KAG1B72F,GAAkB/uR,EAAOqX,MAAQrb,KAAK+pX,oBAAoB/pX,KAAK6nX,UACrE7nX,KAAKg2B,SAAW,GAChBh2B,KAAK4pX,YAAY5lX,EAAQ6lX,EAAUj9W,EAAMhG,KAGzCgG,EAAO87W,EAAYsB,eAAepjX,EAAO5C,EAAQ4I,GACjDi9W,EAASrzV,QAAQ5pB,IARjB5M,KAAK6nX,QAAQ+B,GAAa5lX,EAAQ6lX,EAAUj9W,EAAMhG,EAU1D,MAEI8hX,EAAYzoJ,UAAS,WACjB,IAAI3sN,EAAM1N,EAAMyjX,aAAaziX,GAC7BgG,EAAO87W,EAAYsB,eAAepjX,EAAO0M,EAAK1G,GAC9Ci9W,EAASrzV,QAAQ5pB,EACrB,IAQJ,OANIgzC,GAAQw3P,IACRyyE,EAASr/P,QAAQhwE,KAAKoF,EAAMw3P,GAE5BuyE,GACAE,EAASr/P,QAAQhwE,KAAKmvU,EAAQA,GAE3BE,EAASr/P,OACpB,EACAk+P,EAAYsB,eAAiB,SAAUpjX,EAAO5C,EAAQ4I,GASlD,OARIhG,EAAMy1W,iBACNzvW,EAAK5I,OAASA,EAAOA,OACrB4I,EAAKmC,MAAQ/K,EAAO+K,MACpBnC,EAAK2uW,WAAav3W,EAAOu3W,YAGzB3uW,EAAK5I,OAASA,EAEX4I,CACX,EACA87W,EAAYzoJ,SAAW,SAAUrzM,IAC5BpW,OAAOomL,cAAgBpmL,OAAOtJ,YAAY0f,EAAI,EACnD,EACA87V,EAAY9qX,UAAUqsX,cAAgB,SAAU5uW,EAAK6uW,EAAWC,GAC5D,OAAOx0U,GAAO,CAAC,EAAG,CACdn4C,KAAM,MACN0tS,SAAUlrS,KAAKy7W,WAAWvwE,SAC1Bu9E,YAAazoX,KAAKy7W,WAAWgN,YAC7BM,MAAO/oX,KAAKy7W,WAAWsN,MACvB/2W,OAAO,EACPo4W,aAAa,EACbr7J,UAAWm7J,EACXj/E,UAAWk/E,GACZ9uW,EACP,EAEAqtW,EAAY9qX,UAAUgsX,YAAc,SAAUvuW,EAAKwuW,EAAUj9W,EAAMhG,GAC/D,IAAIhB,EAAQ5F,KACRqqX,IAAezjX,EAAM0jX,iBACrBH,EAAS,SAAUtqX,GACnB+M,EAAKka,MAAQjnB,EACbgqX,EAASpzV,OAAO7pB,EACpB,EACI+qG,EAAU,SAAU/oE,EAAM7/B,EAAO08J,EAAK70I,EAAS6xQ,EAAQ8yE,EAAYgP,GACnE39W,EAAK6+J,IAAMA,EACX7+J,EAAKmC,MAAQA,EAAQvE,SAASuE,EAAMhE,WAAY,IAAM,EACtD6B,EAAK5I,OAAS4qC,EACdhiC,EAAKgqB,QAAUA,EACfhqB,EAAK2uW,WAAaA,EAClB3uW,EAAK67R,OAASA,EACd77R,EAAK29W,qBAAuBA,EAC5BV,EAASrzV,QAAQ5pB,EACrB,EACI49W,EAAe,SAAU57U,EAAMxkB,GAC/B,IAAIqgW,EAAY,IAAIX,GAChBY,EAAY,CAAE/8V,OAAQ/gB,GAC1BhG,EAAM0iX,SAASqB,SAAU,EACzB,IAAIC,EAAShlX,EAAMiiX,QAAQhM,aAAaj2W,EAAOgB,EAAM0iX,SAAU16U,EAAOhpC,EAAMiiX,QAAQlM,gBAAgB/sU,GAAQxkB,GACxGygW,EAAWjlX,EAAMgkX,YAAYgB,EAAQH,EAAWC,EAAW9jX,EAAM0iX,UASrE,OARKe,GACDI,EAAUjwU,MAAK,SAAUswU,GACjBl8U,IACA4tU,GAASiN,eAAe7iX,EAAM0iX,SAASjI,KAAMz6W,EAAM0iX,SAASxJ,UAAWlxU,EAAMk8U,EAASlkX,EAAM0iX,SAAS3pX,KACrGg4G,EAAQ/oE,EAAMk8U,EAAQ/7W,MAAO+7W,EAAQr/M,KAE7C,GAAG0+M,GAEAU,CACX,EA+BIjO,EAAM58W,KAAKiqX,cAAc5uW,GA9Bb,SAAUuzB,EAAMhY,GAC5B,GAAIhxB,EAAMmlX,iBAAiBnlX,EAAMiiX,WACxB90F,GAAkBnkP,EAAa,QAChC,OAAOu7U,EAAOv7U,EAAa,QAG/BhpC,EAAMmkX,oBAAoBnkX,EAAMiiX,WAChCjxV,EAAU+e,GAAO,CAAC,EAAG/vC,EAAMolX,cAAep0V,KAEgC,IAA1EA,EAAQ+zQ,YAAYnhI,kBAAkB,gBAAgB/5J,QAAQ,QAAiB7J,EAAM0+W,YACrF11U,EAAO4tU,GAAS77W,MAAMy/W,UAAUxxU,IAEpC,IAAI5qC,EAAS4B,EAAMiiX,QAAQlM,gBAAgB/sU,EAAMhpC,EAAOgB,EAAOgwB,EAAQ+zQ,YAAa/zQ,GAChF7nB,EAAQ,EACRwsW,EAAa,KAEb0P,EAAiBr8U,EAAyB,qBAC1ChoC,EAAMy1W,kBACNttW,EAAQ/K,EAAO+K,MACfwsW,EAAav3W,EAAOu3W,WACpBv3W,EAASA,EAAOA,QAEf4C,EAAM0iX,SAINe,GACDG,EAAaxmX,EAAQ4yB,GAJrB+gF,EAAQ3zG,EAAQ+K,EAAO6nB,EAAQ+zQ,YAAa/zQ,EAAQp5B,KAAMoxC,EAAM2sU,EAAY0P,EAMpF,GAC6Cd,GAC7C,GAAKnqX,KAAK+pX,oBAAoB/pX,KAAK6nX,SAS9B,CACD7nX,KAAKgrX,cAAgBpO,EACrB,IAAIhmV,EAAUgmV,EACd58W,KAAK6nX,QAAQ9nX,QAAQ00H,QAAQ,CACzB7lF,KAAMhY,EAAQgY,KACdmgL,UAAWn4L,EAAQm4L,UAAWk8E,UAAWr0Q,EAAQq0Q,WAEzD,KAhB6C,CACzC,IAAIigF,EAAS,IAAI1gF,GAAKoyE,GACtBsO,EAAOngF,WAAa,WAChBnlS,EAAMmlS,WAAWmgF,EAAOvgF,YAAaugF,EACzC,GACAtO,EAAMsO,EAAO/5P,QACT12E,OAAM,SAAU56C,GAAK,OAAO,CAAM,IACtCG,KAAKg2B,SAASnzB,KAAKqoX,EACvB,CASA,GAAIb,EAAY,CACZ,IACI/2W,EAAM1M,EAAM0jX,iBAAiBhoX,KAAKtC,KAAM,CAAE4G,MAAOA,EAAM0iX,SAAU37V,OAAQ/mB,IACzE0M,GAAOA,EAAI3V,OACD44B,QAAQnd,IAAI,CAACwjW,EAAK4N,EAAa,KAAMl3W,KACvCknC,MAAK,WAET,IADA,IAAI5tC,EAAO,GACF+tD,EAAK,EAAGA,EAAK58D,UAAUJ,OAAQg9D,IACpC/tD,EAAK+tD,GAAM58D,UAAU48D,GAEzB,IAAI32D,EAAS4I,EAAK,GACdu+W,EAAUvlX,EAAMiiX,QAAQlM,gBAAgB33W,EAAO,GAAI4B,EAAOgB,EAAOhB,EAAMowB,SAAS,GAAG20Q,YAAa/kS,EAAMowB,SAAS,IAC/GjnB,EAAQ,EACRnI,EAAMy1W,kBACNttW,EAAQo8W,EAAQp8W,MAChBo8W,EAAUA,EAAQnnX,QAEtB,IAAIonX,EAAUxlX,EAAMiiX,QAAQlM,gBAAgB33W,EAAO,GAAI4B,EAAOgB,EAAM0iX,SAAU1jX,EAAMowB,SAAS,GAAG20Q,YAAa/kS,EAAMowB,SAAS,IAC5HjnB,EAAQ,EACJnI,EAAM0iX,SAASjN,kBACfttW,EAAQq8W,EAAQr8W,MAChBq8W,EAAUA,EAAQpnX,QAEtBw4W,GAASiN,eAAe7iX,EAAM0iX,SAASjI,KAAMz6W,EAAM0iX,SAASxJ,UAAWqL,EAASC,EAASxkX,EAAM0iX,SAAS3pX,KACxG0qX,GAAa,EACb1yQ,EAAQwzQ,EAASp8W,EAAOnJ,EAAMowB,SAAS,GAAG20Q,YAC9C,IAGA0/E,GAAa,CAErB,CACA,OAAOzN,CACX,EACA8L,EAAY9qX,UAAUmtS,WAAa,SAAUn0Q,EAAS7uB,GAClD/H,KAAK6nX,QAAQ98E,WAAW/qS,KAAM42B,EAAS7uB,GAGvC,IAFA,IACI3E,EADA8kK,EAAUloK,KAAKy7W,WAAWvzM,QAErBxoK,EAAI,EAAGwoK,GAAWxoK,EAAIwoK,EAAQvqK,OAAQ+B,IAAK,CAChD0D,EAAQ,GAER,IADA,IACSu3D,EAAK,EAAGy4N,EADNz0R,OAAOW,KAAK4oK,EAAQxoK,IACCi7D,EAAKy4N,EAAOz1R,OAAQg9D,IAAM,CACtD,IAAIxoC,EAAOihQ,EAAOz4N,GAClBv3D,EAAMP,KAAKsvB,GACXyE,EAAQg1I,iBAAiBz5I,EAAM+1I,EAAQxoK,GAAGyyB,GAC9C,CACJ,CACJ,EAUAu2V,EAAY9qX,UAAUy0S,YAAc,SAAU+qE,EAASz9W,EAAK++W,EAAW93W,EAAOq1O,GAC1E,IAAIr2O,EAAQ5F,KACR0+W,aAAqBxuJ,KACrBtpN,EAAQ83W,EACRA,EAAY,MAEhB,IAAI9xW,EAAO,CACPyO,IAAKqjW,EACL/+W,IAAKA,GAAOK,KAAKy7W,WAAW97W,KAE5Bi9W,EAAM58W,KAAK6nX,QAAQ3K,aAAal9W,KAAMo9W,EAASxwW,EAAMhG,GAAS,IAAIspN,GAAS+rB,GAC3EovI,EAAgB,gBACpB,GAAIrrX,KAAKy7W,WAAWkN,QAChB,OAAO/L,EAEX,GAAK7pF,GAAkB/yR,KAAK6nX,QAAQwD,IAG/B,IAAKrrX,KAAK+pX,oBAAoB/pX,KAAK6nX,SAqBpC,OAAO7nX,KAAKqrX,cAAczO,EAAK58W,KAAK6nX,QAAQ9nX,QAAQinX,aApBpD,IAAIsE,EAAS,IAAIxB,GACbyB,EAAS,IAAI/gF,GAAKoyE,GAgBtB,OAfA2O,EAAOxgF,WAAa,WAChBnlS,EAAMmlS,WAAWwgF,EAAO5gF,YAAa4gF,EACzC,EACAA,EAAOx8J,UAAY,SAAUngL,EAAMhY,GAC3BhxB,EAAMmlX,iBAAiBnlX,EAAMiiX,WACxB90F,GAAkBnkP,EAAa,SAChC28U,EAAOtgF,UAAUj0O,KAAKC,UAAUroB,EAAa,UAGrD08U,EAAO90V,QAAQ5wB,EAAMiiX,QAAQlM,gBAAgB/sU,EAAMhpC,EAAO,KAAMgxB,EAAQ+zQ,YAAa/zQ,EAASwmV,EAASxwW,GAC3G,EACA2+W,EAAOtgF,UAAY,SAAUprS,GACzByrX,EAAO70V,OAAO,CAAC,CAAE3P,MAAOjnB,IAC5B,EACA0rX,EAAOp6P,OAAO12E,OAAM,SAAU56C,GAAK,OAAO,CAAM,IACzCyrX,EAAO9gQ,OAIlB,CAxBI,OAAOxqH,KAAK6nX,QAAQwD,GAAezO,EAyB3C,EAOA8L,EAAY9qX,UAAUqlJ,OAAS,SAAUr0G,EAAM8vU,EAAW93W,EAAOgJ,GACzD8uW,aAAqBxuJ,KACrBtpN,EAAQ83W,EACRA,EAAY,MAEhB,IAAI9B,EAAM58W,KAAK6nX,QAAQ5kO,OAAOjjJ,KAAM4uC,EAAM8vU,EAAW93W,EAAOgJ,GACxDy7W,EAAgB,gBACpB,OAAIrrX,KAAKy7W,WAAWkN,QACT/L,EAEN7pF,GAAkB/yR,KAAK6nX,QAAQwD,IAIzBrrX,KAAKqrX,cAAczO,EAAK58W,KAAK6nX,QAAQ9nX,QAAQ8mX,WAH7C7mX,KAAK6nX,QAAQwD,GAAezO,EAK3C,EAQA8L,EAAY9qX,UAAUuuB,OAAS,SAAUwyV,EAAUz9W,EAAOw9W,EAAW93W,GAC5C,kBAAV1F,IACPA,EAAQs7W,GAAShtN,UAAUmvN,EAAUz9W,IAErCw9W,aAAqBxuJ,KACrBtpN,EAAQ83W,EACRA,EAAY,MAEhB,IAAIprW,EAAMtT,KAAK6nX,QAAQ17V,OAAOnsB,KAAM2+W,EAAUz9W,EAAOw9W,EAAW93W,GAC5DykX,EAAgB,gBACpB,GAAIrrX,KAAKy7W,WAAWkN,QAChB,OAAOr1W,EAEX,GAAKy/Q,GAAkB/yR,KAAK6nX,QAAQwD,IAG/B,CACD,IAAIl/V,EAASnsB,KAAK6nX,QAAQ9nX,QAAQgnX,aAClC,OAAO/mX,KAAKqrX,cAAc/3W,EAAK6Y,EACnC,CALI,OAAOnsB,KAAK6nX,QAAQwD,GAAe/3W,EAM3C,EAQAo1W,EAAY9qX,UAAUqnI,OAAS,SAAU05O,EAAUz9W,EAAOw9W,EAAW93W,EAAOq1O,GACpEyiI,aAAqBxuJ,KACrBtpN,EAAQ83W,EACRA,EAAY,MAEhB,IAAIprW,EAAMtT,KAAK6nX,QAAQ5iP,OAAOjlI,KAAM2+W,EAAUz9W,EAAOw9W,EAAW93W,EAAOq1O,GACnEovI,EAAgB,gBACpB,GAAIrrX,KAAKy7W,WAAWkN,QAChB,OAAOr1W,EAEX,GAAKy/Q,GAAkB/yR,KAAK6nX,QAAQwD,IAG/B,CACD,IAAIpmP,EAASjlI,KAAK6nX,QAAQ9nX,QAAQ+mX,aAClC,OAAO9mX,KAAKqrX,cAAc/3W,EAAK2xH,EACnC,CALI,OAAOjlI,KAAK6nX,QAAQwD,GAAe/3W,EAM3C,EACAo1W,EAAY9qX,UAAUmsX,oBAAsB,SAAUtO,GAClD,OAAOz7W,KAAK6nX,QAAQr1E,eACiB,sBAAjCxyS,KAAK6nX,QAAQr1E,eACrB,EACAk2E,EAAY9qX,UAAUmtX,iBAAmB,SAAUtP,GAC/C,OAAOz7W,KAAK6nX,QAAQr1E,eACiB,mBAAjCxyS,KAAK6nX,QAAQr1E,eACrB,EACAk2E,EAAY9qX,UAAU4tX,YAAc,SAAUC,EAAQ70V,GAClD,GAAI52B,KAAK+qX,iBAAiB/qX,KAAK6nX,SAAU,CACrC,IAAIj5U,EAAOooB,KAAKr2D,MAAM8qX,GACjB14F,GAAkBnkP,EAAa,SAChC5uC,KAAK0rX,YAAY10T,KAAKC,UAAUroB,EAAa,QAErD,CACI5uC,KAAK+pX,oBAAoB/pX,KAAK6nX,WAC9BjxV,EAAU+e,GAAO,CAAC,EAAG31C,KAAKgrX,cAAep0V,IAE7C,IACI4lV,GAAS77W,MAAMy/W,UAAUqL,EAC7B,CACA,MAAO5rX,IACH4rX,EAAS,EACb,CACAA,EAASzrX,KAAK6nX,QAAQlM,gBAAgBa,GAAS77W,MAAMy/W,UAAUqL,GAASzrX,KAAM,KAAM42B,EAAQ+zQ,YAAa/zQ,GACzG52B,KAAK2rX,aAAan1V,QAAQi1V,EAC9B,EAEA/C,EAAY9qX,UAAU8tX,YAAc,SAAU7rX,GAC1CG,KAAK2rX,aAAal1V,OAAO,CAAC,CAAE3P,MAAOjnB,IACvC,EAEA6oX,EAAY9qX,UAAUytX,cAAgB,SAAU/3W,EAAKs4W,GACjD,IAAIhmX,EAAQ5F,KAOZ,GANAsT,EAAMqiC,GAAO,CAAC,EAAG,CACbn4C,KAAM,OACN+xK,YAAa,kCACb66M,aAAa,GACd92W,GACHtT,KAAK2rX,aAAe,IAAI7B,GACnB9pX,KAAK+pX,oBAAoB/pX,KAAK6nX,SAU/B7nX,KAAKgrX,cAAgB13W,EACrBs4W,EAAStpX,KAAKtC,KAAM,CAChB4uC,KAAMt7B,EAAIs7B,KAAMmgL,UAAW/uN,KAAKwrX,YAAYrpX,KAAKnC,MACjDirS,UAAWjrS,KAAK0rX,YAAYvpX,KAAKnC,YAbI,CACzC,IAAI6rX,EAAS,IAAIrhF,GAAKl3R,GACtBu4W,EAAO9gF,WAAa,WAChBnlS,EAAMmlS,WAAW8gF,EAAOlhF,YAAakhF,EACzC,EACAA,EAAO98J,UAAY/uN,KAAKwrX,YAAYrpX,KAAKnC,MACzC6rX,EAAO5gF,UAAYjrS,KAAK0rX,YAAYvpX,KAAKnC,MACzC6rX,EAAO16P,OAAO12E,OAAM,SAAU56C,GAAK,OAAO,CAAM,GACpD,CAQA,OAAOG,KAAK2rX,aAAanhQ,OAC7B,EACOk+P,CACX,CAhhBiC,GAqhB7BoB,GACA,WACI,IAAIlkX,EAAQ5F,KAIZA,KAAKwqH,QAAU,IAAIj0F,SAAQ,SAAUC,EAASC,GAC1C7wB,EAAM4wB,QAAUA,EAChB5wB,EAAM6wB,OAASA,CACnB,IAIAz2B,KAAKw6C,KAAOx6C,KAAKwqH,QAAQhwE,KAAKr4C,KAAKnC,KAAKwqH,SAIxCxqH,KAAKy6C,MAAQz6C,KAAKwqH,QAAQ/vE,MAAMt4C,KAAKnC,KAAKwqH,QAC9C,EC5iBAuwP,GAAS,CAAEC,UAAW,mBAKtBwB,GAA0B,WAC1B,SAASA,IACT,CA4+DA,OAp+DAA,EAASxgV,SAAW,SAAU96B,EAAO8yR,GACjC,MAAqB,oBAAV9yR,EACAA,EAAMoB,KAAK0xR,GAAQ,CAAC,GAExB9yR,CACX,EAMAs7W,EAAS3xO,SAAW,SAAU13H,EAAO0iB,GACjC,OAAO1iB,EAAMtL,OAASsL,EAAMtL,OAAOguB,EAAOl4B,UAAYk4B,CAC1D,EAMA2mV,EAASlnQ,WAAa,SAAUniG,EAAOK,GACnC,OAAOL,EAAMtL,MAAM,EAAG2L,EAAM7V,UAAY6V,CAC5C,EAMAgpW,EAAS0B,OAAS,SAAU59U,GAExB,MAAc,eADdA,EAAQA,EAAQk8U,EAASpvV,YAAYkT,GAAS,aAEnCtgC,KAAK8rX,YAET9rX,KAAK+rX,YAChB,EAOAvP,EAASsP,YAAc,SAAUzkX,EAAGC,GAChC,OAAIyrR,GAAkB1rR,IAAM0rR,GAAkBzrR,IAGpC,OAANA,QAAoBjB,IAANiB,GAFN,EAKK,kBAAND,EACAA,EAAE2kX,cAAc1kX,GAEjB,OAAND,QAAoBhB,IAANgB,EACP,EAEJA,EAAIC,CACf,EAOAk1W,EAASuP,aAAe,SAAU1kX,EAAGC,GACjC,OAAIyrR,GAAkB1rR,IAAM0rR,GAAkBzrR,IAClC,EAEF,OAANA,QAAoBjB,IAANiB,EACP,EAEM,kBAAND,GACsB,EAAtBA,EAAE2kX,cAAc1kX,GAEjB,OAAND,QAAoBhB,IAANgB,GACN,EAELC,EAAID,CACf,EACAm1W,EAASyP,cAAgB,SAAUrqX,EAAKgjL,GAEpC,IADA,IAAIxyK,EAAS,CAAC,EACL1S,EAAI,EAAGA,EAAIklL,EAAOjnL,OAAQ+B,IAC/B0S,EAASpS,KAAKi8B,SAAS2oJ,EAAOllL,GAAIM,KAAKwvJ,UAAUo1B,EAAOllL,GAAIkC,GAAMwQ,GAEtE,OAAOA,CACX,EAMAoqW,EAASxsO,OAAS,SAAUk8O,EAAWtnM,GAEnC,IADA,IAAIssC,EAAU,GACLxxN,EAAI,EAAGA,EAAIwsX,EAAUvuX,OAAQ+B,IAClCwxN,EAAQruN,KAAK7C,KAAKisX,cAAcC,EAAUxsX,GAAIklL,IAElD,OAAOssC,CACX,EAUAsrJ,EAASljN,MAAQ,SAAU4yN,EAAWhhR,EAAOqwQ,EAAY3kQ,EAAOypQ,EAASjzS,EAAQ++S,GAC7Ev1Q,EAAQA,GAAS,EACjB,IAAIw1Q,EAAWF,EACXzJ,EAAO,YACX,GAAI2J,EAASpR,YAAcD,GAAO0H,GAAO,CAerC,IAdA,IAAInvF,EAAU,SAAUlqR,GACpB,GAAK2pR,GAAkBstF,GAQnB+L,EAAShjX,GAAGswH,MAAQ6mL,EAAOjnJ,MAAM8yN,EAAShjX,GAAGswH,MAAOxuB,EAAOqwQ,EAAY6Q,EAASx1Q,MAAQ,EAAG,KAAMxpC,EAAQ++S,GACzGC,EAAShjX,GAAG2F,MAAQq9W,EAAShjX,GAAGswH,MAAM/7H,WATT,CAC7B,IAAIw3V,EACAx4P,EAAO0jR,EAAQ19W,QAAO,SAAU9C,GAAK,OAAOA,EAAEF,MAAQysX,EAAShjX,GAAGzJ,GAAK,IAC3Ew1V,EAAOkrB,EAAQ5wW,QAAQktF,EAAK,IAC5ByvR,EAAShjX,GAAGswH,MAAQ6mL,EAAOjnJ,MAAM8yN,EAAShjX,GAAGswH,MAAOxuB,EAAOqwQ,EAAY6Q,EAASx1Q,MAAQ,EAAGypQ,EAAQlrB,GAAMz7N,MAAOtsD,EAAQ++S,GACxHC,EAAShjX,GAAG2F,MAAQsxW,EAAQlrB,GAAMpmV,KACtC,CAKJ,EACIwxS,EAASvgT,KACJoJ,EAAI,EAAGA,EAAIgjX,EAASzuX,OAAQyL,IACjCkqR,EAAQlqR,GAGZ,OADAgjX,EAASC,aAAe,EACjBD,CACX,CACA,IAAIE,EAAU,CAAC,EACXC,EAAe,GACnBA,EAAavR,UAAYD,GAAO0H,GAChC8J,EAAa31Q,MAAQA,EACrB21Q,EAAaF,YAAc,EAC3BE,EAAaxP,QAAUqP,EA0BvB,IAzBA,IAAI9F,EAAU,SAAU5mX,GACpB,IAAI6jE,EAAMipT,EAAOC,OAAOL,EAAU1sX,EAAGwrG,GAIrC,GAHK6nL,GAAkB3lN,KACnB7J,EAAM6J,EAAO7J,EAAK2nC,KAEjBohR,EAAQ/oT,KACT+oT,EAAQ/oT,GAAO,CACX5jE,IAAK4jE,EACLx0D,MAAO,EACP2qH,MAAO,GACP6hP,WAAY,CAAC,EACbrwQ,MAAOA,GAEXqhR,EAAa1pX,KAAKypX,EAAQ/oT,KACrBwvN,GAAkBstF,IAAU,CAC7B,IAAIqM,EAAUrM,EAAQ19W,QAAO,SAAU9C,GAAK,OAAOA,EAAEF,MAAQ2sX,EAAQ/oT,GAAK5jE,GAAK,IAC/E2sX,EAAQ/oT,GAAKx0D,MAAQ29W,EAAQ,GAAG39W,KACpC,CAEJu9W,EAAQ/oT,GAAKx0D,MAASgkR,GAAkBstF,GAAgCiM,EAAQ/oT,GAAKx0D,OAAS,EAA3Cu9W,EAAQ/oT,GAAKx0D,QAC3Do9W,GAAeA,GAAc5Q,EAAW59W,SACzC2uX,EAAQ/oT,GAAKm2D,MAAM72H,KAAKupX,EAAS1sX,GAEzC,EACI8sX,EAASxsX,KACJN,EAAI,EAAGA,EAAI0sX,EAASzuX,OAAQ+B,IACjC4mX,EAAQ5mX,GAEZ,GAAI67W,GAAcA,EAAW59W,OACzB,KAAI4oX,EAAU,SAAU7mX,GAIpB,IAHA,IAAI4T,EAAM,CAAC,EACPsZ,OAAK,EACL+/V,EAAOpR,EACFnyW,EAAI,EAAGA,EAAImyW,EAAW59W,OAAQyL,IAEnC,GADAwjB,EAAK4vV,EAASjB,WAAWA,EAAWnyW,GAAG5L,MAClCu1R,GAAkBstF,GAOfzzV,IACAtZ,EAAIq5W,EAAKvjX,GAAG8hG,MAAQ,MAAQyhR,EAAKvjX,GAAG5L,MAAQovB,EAAG2/V,EAAa7sX,GAAGg6H,MAAOizP,EAAKvjX,GAAG8hG,YARrD,CAC7B,IAAIvO,EAAO0jR,EAAQ19W,QAAO,SAAU9C,GAAK,OAAOA,EAAEF,MAAQ4sX,EAAa7sX,GAAGC,GAAK,IAC3EitB,IACAtZ,EAAIq5W,EAAKvjX,GAAG8hG,MAAQ,MAAQyhR,EAAKvjX,GAAG5L,MAAQovB,EAAG+vE,EAAK,GAAG+8B,MAAOizP,EAAKvjX,GAAG8hG,OAE9E,CAOJqhR,EAAa7sX,GAAG67W,WAAajoW,CACjC,EACA,IAAS5T,EAAI,EAAGA,EAAI6sX,EAAa5uX,OAAQ+B,IACrC6mX,EAAQ7mX,EAFX,CAKL,GAAIysX,GAAcI,EAAa5uX,QAAU49W,EAAW59W,OAChD,IAAS+B,EAAI,EAAGA,EAAI6sX,EAAa5uX,OAAQ+B,IACrC6sX,EAAa7sX,GAAGg6H,MAAQ,GAGhC,OAAO0yP,EAASzuX,QAAU4uX,GAAgBH,CAC9C,EAWA5P,EAASiN,eAAiB,SAAUpI,EAAMzoW,EAAMxW,EAAQmnX,EAAQjI,GAC5D,IAAI5hX,EACAktX,EAAM,CAAC,EAQX,IANIrD,EAAOvlX,SACPulX,EAASA,EAAOvlX,QAEhBulX,EAAOvO,WACPh7W,KAAK69N,WAAW,0DAEfn+N,EAAI,EAAGA,EAAI6pX,EAAO5rX,OAAQ+B,IAAK,EAEzBktX,EADHC,EAAW7sX,KAAKwvJ,UAAU6xN,EAAMkI,EAAO7pX,OAClBktX,EAAIC,GAAY,KACpChqX,KAAK0mX,EAAO7pX,GACrB,CACA,IAAKA,EAAI,EAAGA,EAAI0C,EAAOzE,OAAQ+B,IAAK,CAChC,IAAImtX,EAAW7sX,KAAKwvJ,UAAU8xN,GAAQD,EAAMj/W,EAAO1C,IACnD0C,EAAO1C,GAAGkZ,GAAQg0W,EAAIC,EAC1B,CACJ,EAQArQ,EAASoB,aAAe,SAAUh8W,EAAKgjL,EAAQxyJ,GAI3C,QAHe/rB,IAAX+rB,IACAA,EAAS,SAEE/rB,IAAXu+K,GAAmC,OAAXA,EACxB,OAAO5kL,KAAK49W,aAAah8W,EAAK,GAAIwwB,GAItC,IAFA,IAAI06V,EAAUlrX,EAEL+4D,EAAK,EAAGy4N,EADNz0R,OAAOW,KAAKsC,GACS+4D,EAAKy4N,EAAOz1R,OAAQg9D,IAAM,CACtD,IAAIxoC,EAAOihQ,EAAOz4N,GACW,kBAAlBmyT,EAAQ36V,IAAwB26V,EAAQ36V,aAAiBjhB,MAIhE0zK,EAAO/hL,KAAKuvB,EAASD,GAHrBnyB,KAAK49W,aAAakP,EAAQ36V,GAAOyyJ,EAAQxyJ,EAASD,EAAO,IAKjE,CACA,OAAOyyJ,CACX,EAOA43L,EAAShtN,UAAY,SAAUojI,EAAWh6Q,GACtC,IAAKg6Q,EACD,OAAOh6Q,EAEX,GAAKA,EAAL,CAGA,IAAgC,IAA5Bg6Q,EAAUnjR,QAAQ,KAClB,OAAOmJ,EAAKg6Q,GAIhB,IAFA,IAAI1xR,EAAQ0X,EACRi6Q,EAASD,EAAUz5P,MAAM,KACpBz5B,EAAI,EAAGA,EAAImzR,EAAOl1R,QACV,MAATuD,EAD2BxB,IAI/BwB,EAAQA,EAAM2xR,EAAOnzR,IAEzB,OAAOwB,CAZP,CAaJ,EASAs7W,EAASvgV,SAAW,SAAU22P,EAAW1xR,EAAOU,GAC5C,IAGIlC,EAEAC,EALAL,EAAOszR,EAAU7nR,WAAWouB,MAAM,KAClC3lB,EAAQ5R,GAAO,CAAC,EAChBkxR,EAAUt/Q,EAEV7V,EAAS2B,EAAK3B,OAElB,IAAK+B,EAAI,EAAGA,EAAI/B,EAAQ+B,IACpBC,EAAML,EAAKI,GACPA,EAAI,IAAM/B,EACVm1R,EAAQnzR,QAAiB0G,IAAVnF,OAAsBmF,EAAYnF,EAE5C6xR,GAAkBD,EAAQnzR,MAC/BmzR,EAAQnzR,GAAO,CAAC,GAEpBmzR,EAAUA,EAAQnzR,GAEtB,OAAO6T,CACX,EAOAgpW,EAASp1W,KAAO,SAAU8zW,EAAIhwQ,EAAOuxQ,GACjC,GAAIvB,EAAGv9W,QAAU,EACb,OAAOu9W,EAEX,IAAI6R,EAASviX,UAAU0wW,EAAGv9W,OAAS,GAAGoN,WAAY,IAC9CiF,EAAOkrW,EAAGrzW,MAAM,EAAGklX,GACnBhlW,EAAQmzV,EAAGrzW,MAAMklX,GAGrB,OAFA/8W,EAAOhQ,KAAKoH,KAAK4I,EAAMk7F,EAAOuxQ,GAC9B10V,EAAQ/nB,KAAKoH,KAAK2gB,EAAOmjF,EAAOuxQ,GACzBz8W,KAAKygO,MAAMzwN,EAAM+X,EAAOmjF,EAAOuxQ,EAC1C,EACAD,EAASwQ,iBAAmB,SAAU9rX,GAClC,MAAqB,kBAAVA,EACAA,EAEEA,EAAMi4B,MAAM,IACHjyB,KAAI,SAAUy1F,GAAQ,OAAOA,KAAQ6/Q,EAASyQ,WAAazQ,EAASyQ,WAAWtwR,GAAQA,CAAM,IACnG7mE,KAAK,GACzB,EACA0mV,EAAS/7I,MAAQ,SAAUzwN,EAAM+X,EAAOi/J,EAAWy1L,GAG/C,IAFA,IACItlW,EADAnT,EAAS,GAENgM,EAAKrS,OAAS,GAAKoqB,EAAMpqB,OAAS,GAG7BwZ,EAFJnH,EAAKrS,OAAS,GAAKoqB,EAAMpqB,OAAS,EAC9B8+W,EACUA,EAASz8W,KAAKysX,OAAOz8W,EAAM,EAAGg3K,GAAYhnL,KAAKysX,OAAO1kW,EAAO,EAAGi/J,GAAYh3K,EAAK,GAAI+X,EAAM,KAAO,EAAI/X,EAAO+X,EAG7G/X,EAAK,GAAGg3K,GAAah3K,EAAK,GAAGg3K,GAAah3K,EAAO+X,EAIrD/X,EAAKrS,OAAS,EAAIqS,EAAO+X,EAEvC/jB,EAAOnB,KAAKsU,EAAQ+yB,SAExB,OAAOlmC,CACX,EACAw4W,EAASiQ,OAAS,SAAU39V,EAAOvnB,EAAO2jG,GACtC,OAAOA,EAAQlrG,KAAKwvJ,UAAUtkD,EAAOp8E,EAAMvnB,IAAUunB,EAAMvnB,EAC/D,EACAi1W,EAASpvV,YAAc,SAAUm2C,GAC7B,OAAOA,EAAqB,kBAARA,EAAmBA,EAAIn2C,cAAgBm2C,EAAIx4D,WAAsB,IAARw4D,IAAqB,IAARA,EAAiBA,EAAIx4D,WAAa,EAChI,EASAyxW,EAAS2C,oBAAsB,SAAU0I,EAASqF,EAAQC,EAAQC,GAC9D,GAAIF,KAAUrF,EAAS,CACnB,IAAIv0W,EAAMu0W,EAAQqF,GAAQC,EAAQC,GAC7Br6F,GAAkBz/Q,KACnB65W,EAAS75W,EAEjB,CACA,OAAO65W,CACX,EACA3Q,EAASyE,aAAe,SAAUoM,EAAKlQ,EAAIv2W,GACvC,IAAIg2W,EAAM,CAAC,EAOX,OANAJ,EAAS2C,oBAAoBkO,EAAK,YAAa,CAC3ClQ,GAAIA,EACJv2W,MAAOA,EACP22E,OAAQ32E,EAAM22E,OACdiiS,UAAW5C,IAERA,CACX,EAKAJ,EAAShyJ,cAAgB,SAAU5oN,GAC/B,QAAUA,GAASA,EAAIzB,cAAgBxB,MAC3C,EAIA69W,EAASwM,OAAS,WACd,IAAIv9M,EAAM,KAEV,IACIA,EAAM,IAAIj1J,OAAc,cAC5B,CACA,MAAO3W,IACH,CAEJ,QAAS4rK,GAAQ,oBAAqBA,CAC1C,EAKA+wM,EAASmI,QAAU,SAAUvyV,GACzB,IACIk7V,EACJ,OAAQl7V,GAAU,IAAM,uCAAuCxmB,QAAQ,MAAM,SAAU23D,EAAK7jE,GACxF,GAAI,WAAY8W,QAAU,oBAAqBs/F,OAAQ,CACnD,IAAIj/B,EAAM,IAAIo/B,WAAW,GACzBz/F,OAAOs/F,OAAOI,gBAAgBr/B,GAC9By2S,EAAOz2S,EAAI,GAAK,GAAK,CACzB,MAEIy2S,EAAuB,GAAhBriX,KAAK2qB,SAAgB,EAEhC,MAXO,mBAWW,KAANl2B,EAAkB,EAAP4tX,EAAa,EAAMA,EAC9C,GACJ,EAMA9Q,EAAS8C,OAAS,SAAU/7S,GACxB,YAAel9D,IAARk9D,GAA6B,OAARA,CAChC,EASAi5S,EAAS+Q,oBAAsB,SAAUz+V,EAAOo8E,EAAOuxQ,GACnD,IAAI7xD,EACAzzS,EACAxX,EACAD,EAAI,EACJ8tX,EAA2D,kBAArChR,EAASiQ,OAAO39V,EAAO,EAAGo8E,GACpD,GAAIp8E,EAAMnxB,OACN,KAAOo1R,GAAkB63B,IAAWlrT,EAAIovB,EAAMnxB,QAC1CitT,EAAS4xD,EAASiQ,OAAO39V,EAAOpvB,EAAGwrG,GACnCvrG,EAAMmvB,EAAMpvB,KAGpB,KAAOA,EAAIovB,EAAMnxB,OAAQ+B,IAEjBqzR,GADJ57Q,EAAUqlW,EAASiQ,OAAO39V,EAAOpvB,EAAGwrG,MAIhCsiR,IACA5iE,GAAUA,EACVzzS,GAAWA,GAEXslW,EAAS7xD,EAAQzzS,GAAW,IAC5ByzS,EAASzzS,EACTxX,EAAMmvB,EAAMpvB,KAGpB,OAAOC,CACX,EAUA68W,EAASiR,SAAW,SAAU1R,EAAM/0L,EAAW0mM,GAC3CA,GAAyB36F,GAAkB26F,IAAkCA,EAC7E,IACInqT,EADAv/D,EAAS,GAETq+F,EAAM,CAAC,EAQX,OAPA05Q,EAAKh5W,SAAQ,SAAU6rC,EAAMrnC,IACzBg8D,EAA+B,kBAAjBw4S,EAAKx0W,GAAuBi1W,EAASiQ,OAAO1Q,EAAMx0W,EAAOy/K,GAAa+0L,EAAKx0W,MAC5E86F,IACTr+F,EAAOnB,KAAM6qX,EAA+B3R,EAAKx0W,GAAXg8D,GACtC8+B,EAAI9+B,GAAO,EAEnB,IACOv/D,CACX,EAMAw4W,EAAS4N,YAAc,SAAUjN,EAAIJ,GACjC,IAAIn2W,EAAQ5G,KAAK2tX,aAAaxQ,GAC1ByQ,EAAa,IAAIlF,GAAY3L,GAC7BI,EAAG0Q,gBACHjnX,EAAMknX,gBAEV,IAAI9pX,EAAS4pX,EAAWvE,aAAaziX,GACjCklC,EAAc,CACd9nC,OAAQm5W,EAAG0Q,eAAiB7pX,EAAOA,OAASA,EAC5C+K,MAAO/K,EAAO+K,MACdwsW,WAAYvkT,KAAKC,UAAUjzD,EAAOu3W,aAEtC,OAAO4B,EAAG0Q,eAAiB/hV,EAAc9nC,CAC7C,EACAw4W,EAASmR,aAAe,SAAUxQ,GAC9B,IAAIv3W,EAAQ5F,KACR4G,EAAQ,IAAIspN,IACZitJ,EAAGntO,QACHppI,EAAMopI,OAAOmtO,EAAGntO,QAEhBmtO,EAAG7B,QACSkB,EAAS77W,MAAMy/W,UAAUjD,EAAG7B,OAClC34W,QAAO,SAAUorX,GACnB,GAAIh7F,GAAkBg7F,EAAK7K,WACvBt8W,EAAM00W,MAAMyS,EAAK7iR,MAAO6iR,EAAKzoN,SAAUyoN,EAAK7sX,MAAO6sX,EAAKjQ,WAAYiQ,EAAKhQ,kBAExE,CACD,IAAIiQ,EAAgB,GAChBD,EAAK7iR,MACL8iR,EAAcnrX,KAAK,IAAI2+W,GAAUuM,EAAK7iR,MAAO6iR,EAAKzoN,SAAUyoN,EAAK7sX,MAAO6sX,EAAKjQ,WAAYiQ,EAAKhQ,eAG9FiQ,EAAgBA,EAAczuX,OAAOqG,EAAMqoX,aAAaF,EAAK5qJ,aAE3C,MAAlB4qJ,EAAK7K,UACLt8W,EAAM00W,MAAMkG,GAAUC,GAAGuM,IAEF,OAAlBD,EAAK7K,WACVt8W,EAAM00W,MAAMkG,GAAU0M,IAAIF,GAElC,CACJ,IAEA7Q,EAAGvqU,QACU4pU,EAAS77W,MAAMy/W,UAAUjD,EAAGvqU,QAClCjwC,QAAO,SAAU9C,GAAK,OAAO+G,EAAMgsC,OAAO/yC,EAAEF,IAAKE,EAAE+kL,OAAQ/kL,EAAY,SAAGA,EAAc,WAAGA,EAAgB,aAAI,IAiB1H,OAfIs9W,EAAG5B,YACH4B,EAAG5B,WAAW54W,QAAO,SAAU9C,GAAK,OAAO+G,EAAM+6W,UAAU9hX,EAAErC,KAAMqC,EAAEqrG,MAAQ,IAE7EiyQ,EAAGgR,QACHhR,EAAGgR,OAAOxrX,QAAO,SAAU9C,GAAK,OAAO+G,EAAMw0W,OAAOv7W,EAAEnC,KAAMmC,EAAEmkB,UAAY,IAE1Em5V,EAAGhvG,MACHvnQ,EAAMunQ,KAAKgvG,EAAGhvG,MAEdgvG,EAAG9B,MACHz0W,EAAMy0W,KAAK8B,EAAG9B,MAEd8B,EAAG7jN,OACH6jN,EAAG7jN,MAAM32J,QAAO,SAAUiqX,GAAO,OAAOhmX,EAAM0yJ,MAAMszN,EAAM,IAEvDhmX,CACX,EACA41W,EAASyR,aAAe,SAAUF,GAE9B,IADA,IAAIK,EAAW,GACN1uX,EAAI,EAAGA,EAAIquX,EAAKpwX,OAAQ+B,IAAK,CAClC,IAAIG,EAAIkuX,EAAKruX,GACb,GAAIG,EAAEqrG,MACFkjR,EAASvrX,KAAK,IAAI2+W,GAAU3hX,EAAEqrG,MAAOrrG,EAAEylK,SAAUzlK,EAAEqB,MAAOrB,EAAEi+W,WAAYj+W,EAAEk+W,mBAEzE,CAGD,IAFA,IAAIsQ,EAAY,GACZC,EAAOtuX,KAAKiuX,aAAapuX,EAAEsjO,YACtBxoK,EAAK,EAAGpgD,EAAK5b,OAAOW,KAAKgvX,GAAO3zT,EAAKpgD,EAAG5c,OAAQg9D,IAAM,CAC3D,IAAIxoC,EAAO5X,EAAGogD,GACd0zT,EAAUxrX,KAAKyrX,EAAKn8V,GACxB,CACAi8V,EAASvrX,KAAoB,MAAfhD,EAAEqjX,UAAoB1B,GAAUC,GAAG4M,GAAa7M,GAAU0M,IAAIG,GAChF,CACJ,CACA,OAAOD,CACX,EAKA5R,EAAS+R,qBAAuB,KAKhC/R,EAAS2D,kBAAmB,EAK5B3D,EAAS3+I,WAAa,SAAU/2M,GAC5B,IACI,MAAM,IAAIxS,MAAMwS,EACpB,CACA,MAAOjnB,IACH,MAAMA,GAAEyP,QAAU,KAAOzP,GAAEo7B,KAC/B,CACJ,EACAuhV,EAASjB,WAAa,CAMlB5gN,IAAK,SAAUugN,EAAIhwQ,GAIf,IAHA,IACI3nC,EADAv/D,EAAS,EAETwpX,EAAwD,kBAAlChR,EAASiQ,OAAOvR,EAAI,EAAGhwQ,GACxCxrG,EAAI,EAAGA,EAAIw7W,EAAGv9W,OAAQ+B,IAC3B6jE,EAAMi5S,EAASiQ,OAAOvR,EAAIx7W,EAAGwrG,GACxBtzE,MAAM2rC,IAAgB,OAARA,IACXiqT,IACAjqT,GAAOA,GAEXv/D,GAAUu/D,GAGlB,OAAOv/D,CACX,EAMAwqX,QAAS,SAAUtT,EAAIhwQ,GACnB,OAAOsxQ,EAASjB,WAAW5gN,IAAIugN,EAAIhwQ,GAASgwQ,EAAGv9W,MACnD,EAMAyN,IAAK,SAAU8vW,EAAIhwQ,GACf,IAAIuxQ,EAKJ,MAJqB,oBAAVvxQ,IACPuxQ,EAAWvxQ,EACXA,EAAQ,MAELsxQ,EAAShtN,UAAUtkD,EAAOsxQ,EAAS+Q,oBAAoBrS,EAAIhwQ,EAAOuxQ,GAAYD,EAASsP,aAClG,EAOA5gX,IAAK,SAAUgwW,EAAIhwQ,GACf,IAAIuxQ,EAKJ,MAJqB,oBAAVvxQ,IACPuxQ,EAAWvxQ,EACXA,EAAQ,MAELsxQ,EAAShtN,UAAUtkD,EAAOsxQ,EAAS+Q,oBAAoBrS,EAAIhwQ,EAAOuxQ,GAAYD,EAASuP,cAClG,EAMA0C,UAAW,SAAUvT,EAAIhwQ,GACrB,OAAO,IAAIw9Q,GAAYxN,GAAImO,cAAa,IAAIn5J,IAAQorJ,MAAMpwQ,EAAO,SAAS,GAAM,IAAOvtG,MAC3F,EAMA+wX,WAAY,SAAUxT,EAAIhwQ,GACtB,OAAO,IAAIw9Q,GAAYxN,GAAImO,cAAa,IAAIn5J,IAAQorJ,MAAMpwQ,EAAO,SAAS,GAAO,IAAOvtG,MAC5F,EAOAoR,MAAO,SAAUmsW,EAAIhwQ,GACjB,OAAOgwQ,EAAGv9W,MACd,GAKJ6+W,EAASmS,gBAAkB,CACvB,IAAK,WACL,IAAK,cACL,KAAM,kBACN,KAAM,qBACN,KAAM,QACN,KAAM,WACN,KAAM,WACN,KAAM,WACN,KAAM,cAMVnS,EAASqG,aAAe,CACpB,IAAK,OACL,IAAK,OACL,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,SAAY,OACZ,gBAAmB,OACnB,YAAe,OACf,mBAAsB,OACtB,MAAS,OACT,SAAY,QAMhBrG,EAASsG,cAAgB,CACrB,KAAM,WACN,KAAM,aACN,KAAM,cACN,SAAY,WACZ,WAAc,aACd,SAAY,eAMhBtG,EAASuG,gBAAkB,CACvB,KAAM,WACN,KAAM,aACN,KAAM,WACN,SAAY,WACZ,WAAc,aACd,SAAY,YAEhBvG,EAASyQ,WAAa,CAClB,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,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,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,SAAU,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,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,UAEdzQ,EAASoS,YAAc,CAQnB95Q,MAAO,SAAU2zL,EAAQomF,EAAU/Q,EAAYC,GAK3C,OAJIA,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","sources":["../node_modules/html-dom-parser/lib/client/html-to-dom.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/style-to-object/index.js","../node_modules/react-slick/lib/slider.js","../node_modules/lodash.debounce/index.js","../node_modules/enquire.js/src/index.js","../node_modules/react/jsx-runtime.js","../node_modules/react-slick/lib/track.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/json2mq/index.js","../node_modules/enquire.js/src/Util.js","../node_modules/html-dom-parser/lib/client/utilities.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/react-is/index.js","../node_modules/react-player/lib/utils.js","../node_modules/react-slick/lib/index.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/html-dom-parser/lib/client/constants.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/load-script/index.js","../node_modules/domhandler/lib/index.js","../node_modules/domhandler/lib/node.js","../node_modules/react/cjs/react.production.min.js","../node_modules/html-dom-parser/lib/client/domparser.js","../node_modules/react-dom/client.js","../node_modules/inline-style-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/react-player/lib/Player.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-slick/lib/default-props.js","../node_modules/prop-types/index.js","../node_modules/react-draggable/build/cjs/utils/log.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/enquire.js/src/MediaQuery.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/react-player/lib/props.js","../node_modules/moment/moment.js","../node_modules/toastify-js/src/toastify.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-property/lib/index.js","../node_modules/react-fast-compare/index.js","../node_modules/warning/warning.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/html-react-parser/index.js","../node_modules/simple-react-validator/dist/simple-react-validator.min.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/style-to-js/cjs/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/react-dom/index.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/classnames/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/domelementtype/lib/index.js","../node_modules/react-slick/lib/dots.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/html-react-parser/lib/utilities.js","../node_modules/react-player/lib/players/index.js","../node_modules/scheduler/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/react-slick/lib/inner-slider.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/@tanstack/query-core/src/utils.ts","../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/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/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/@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/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/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/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.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","assets/images/shocking-sale.svg","modules/LearningMaterials/components/CouseTaskView.js","modules/LearningMaterials/hooks/useServerTime.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","assets/images/icons/calendar-icon-dark-grey.svg","assets/images/icons/initialHolding.svg","modules/LearningMaterials/components/CourseTaskTrading.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","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","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/utils/element-utils.ts","../node_modules/posthog-js/src/autocapture-utils.ts","../node_modules/posthog-js/src/extensions/rageclick.ts","../node_modules/posthog-js/src/utils/request-utils.ts","../node_modules/posthog-js/src/autocapture.ts","../node_modules/posthog-js/src/uuidv7.ts","../node_modules/posthog-js/src/storage.ts","../node_modules/posthog-js/src/consent.ts","../node_modules/posthog-js/src/extensions/dead-clicks-autocapture.ts","../node_modules/posthog-js/src/extensions/exception-autocapture/index.ts","../node_modules/posthog-js/src/extensions/replay/sessionrecording-utils.ts","../node_modules/posthog-js/node_modules/.pnpm/@rrweb+types@2.0.0-alpha.17/node_modules/@rrweb/types/dist/types.js","../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/extensions/sampling.ts","../node_modules/posthog-js/src/extensions/segment-integration.ts","../node_modules/posthog-js/src/extensions/sentry-integration.ts","../node_modules/posthog-js/src/extensions/toolbar.ts","../node_modules/posthog-js/src/extensions/tracing-headers.ts","../node_modules/posthog-js/src/extensions/web-vitals/index.ts","../node_modules/posthog-js/src/heatmaps.ts","../node_modules/posthog-js/src/page-view.ts","../node_modules/posthog-js/src/posthog-exceptions.ts","../node_modules/posthog-js/src/posthog-featureflags.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/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/regex-utils.ts","../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/remote-config.ts","../node_modules/posthog-js/src/utils/encode-utils.ts","../node_modules/posthog-js/src/request.ts","../node_modules/posthog-js/src/request-queue.ts","../node_modules/posthog-js/src/retry-queue.ts","../node_modules/posthog-js/src/scroll-manager.ts","../node_modules/posthog-js/src/session-props.ts","../node_modules/posthog-js/src/sessionid.ts","../node_modules/posthog-js/src/site-apps.ts","../node_modules/posthog-js/src/utils/blocked-uas.ts","../node_modules/posthog-js/src/utils/request-router.ts","../node_modules/posthog-js/src/utils/identify-utils.ts","../node_modules/posthog-js/src/web-experiments.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":["var domparser = require('./domparser');\nvar utilities = require('./utilities');\n\nvar formatDOM = utilities.formatDOM;\n\nvar DIRECTIVE_REGEX = /<(![a-zA-Z\\s]+)>/; // e.g., \n\n/**\n * Parses HTML string to DOM nodes in browser.\n *\n * @param {string} html - HTML markup.\n * @return {DomElement[]} - DOM elements.\n */\nfunction HTMLDOMParser(html) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (html === '') {\n return [];\n }\n\n // match directive\n var match = html.match(DIRECTIVE_REGEX);\n var directive;\n\n if (match && match[1]) {\n directive = match[1];\n }\n\n return formatDOM(domparser(html), null, directive);\n}\n\nmodule.exports = HTMLDOMParser;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n/*:: export type ControlPosition = {x: number, y: number};*/\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nclass DraggableCore extends React.Component /*:: */{\n constructor() {\n super(...arguments);\n _defineProperty(this, \"dragging\", false);\n // Used while dragging to determine deltas.\n _defineProperty(this, \"lastX\", NaN);\n _defineProperty(this, \"lastY\", NaN);\n _defineProperty(this, \"touchIdentifier\", null);\n _defineProperty(this, \"mounted\", false);\n _defineProperty(this, \"handleDragStart\", e => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = this.findDOMNode();\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {\n ownerDocument\n } = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.handle, thisNode) || this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.cancel, thisNode)) {\n return;\n }\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n if (e.type === 'touchstart') e.preventDefault();\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n this.touchIdentifier = touchIdentifier;\n\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {\n x,\n y\n } = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n (0, _log.default)('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.dragging = true;\n this.lastX = x;\n this.lastY = y;\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);\n });\n _defineProperty(this, \"handleDrag\", e => {\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX,\n deltaY = y - this.lastY;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n this.lastX = x;\n this.lastY = y;\n });\n _defineProperty(this, \"handleDragStop\", e => {\n if (!this.dragging) return;\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX || 0;\n let deltaY = y - this.lastY || 0;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n\n // Call event handler\n const shouldContinue = this.props.onStop(e, coreEvent);\n if (shouldContinue === false || this.mounted === false) return false;\n const thisNode = this.findDOMNode();\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.dragging = false;\n this.lastX = NaN;\n this.lastY = NaN;\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n });\n _defineProperty(this, \"onMouseDown\", e => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onMouseUp\", e => {\n dragEventFor = eventsFor.mouse;\n return this.handleDragStop(e);\n });\n // Same as onMouseDown (start drag), but now consider this a touch device.\n _defineProperty(this, \"onTouchStart\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onTouchEnd\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStop(e);\n });\n }\n componentDidMount() {\n this.mounted = true;\n // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n const thisNode = this.findDOMNode();\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n componentWillUnmount() {\n this.mounted = false;\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = this.findDOMNode();\n if (thisNode) {\n const {\n ownerDocument\n } = thisNode;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n var _this$props, _this$props2;\n return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 || (_this$props2 = _this$props2.nodeRef) === null || _this$props2 === void 0 ? void 0 : _this$props2.current : _reactDom.default.findDOMNode(this);\n }\n render() /*: React.Element*/{\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n}\nexports.default = DraggableCore;\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n children: _propTypes.default.node.isRequired,\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys*/) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function () {},\n onDrag: function () {},\n onStop: function () {},\n onMouseDown: function () {},\n scale: 1\n});","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar ReactPlayer_exports = {};\n__export(ReactPlayer_exports, {\n createReactPlayer: () => createReactPlayer\n});\nmodule.exports = __toCommonJS(ReactPlayer_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nvar import_memoize_one = __toESM(require(\"memoize-one\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nvar import_Player = __toESM(require(\"./Player\"));\nconst Preview = (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerPreview' */\n \"./Preview\"\n));\nconst IS_BROWSER = typeof window !== \"undefined\" && window.document && typeof document !== \"undefined\";\nconst IS_GLOBAL = typeof global !== \"undefined\" && global.window && global.window.document;\nconst SUPPORTED_PROPS = Object.keys(import_props.propTypes);\nconst UniversalSuspense = IS_BROWSER || IS_GLOBAL ? import_react.Suspense : () => null;\nconst customPlayers = [];\nconst createReactPlayer = (players, fallback) => {\n var _a;\n return _a = class extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"state\", {\n showPreview: !!this.props.light\n });\n // Use references, as refs is used by React\n __publicField(this, \"references\", {\n wrapper: (wrapper) => {\n this.wrapper = wrapper;\n },\n player: (player) => {\n this.player = player;\n }\n });\n __publicField(this, \"handleClickPreview\", (e) => {\n this.setState({ showPreview: false });\n this.props.onClickPreview(e);\n });\n __publicField(this, \"showPreview\", () => {\n this.setState({ showPreview: true });\n });\n __publicField(this, \"getDuration\", () => {\n if (!this.player)\n return null;\n return this.player.getDuration();\n });\n __publicField(this, \"getCurrentTime\", () => {\n if (!this.player)\n return null;\n return this.player.getCurrentTime();\n });\n __publicField(this, \"getSecondsLoaded\", () => {\n if (!this.player)\n return null;\n return this.player.getSecondsLoaded();\n });\n __publicField(this, \"getInternalPlayer\", (key = \"player\") => {\n if (!this.player)\n return null;\n return this.player.getInternalPlayer(key);\n });\n __publicField(this, \"seekTo\", (fraction, type, keepPlaying) => {\n if (!this.player)\n return null;\n this.player.seekTo(fraction, type, keepPlaying);\n });\n __publicField(this, \"handleReady\", () => {\n this.props.onReady(this);\n });\n __publicField(this, \"getActivePlayer\", (0, import_memoize_one.default)((url) => {\n for (const player of [...customPlayers, ...players]) {\n if (player.canPlay(url)) {\n return player;\n }\n }\n if (fallback) {\n return fallback;\n }\n return null;\n }));\n __publicField(this, \"getConfig\", (0, import_memoize_one.default)((url, key) => {\n const { config } = this.props;\n return import_deepmerge.default.all([\n import_props.defaultProps.config,\n import_props.defaultProps.config[key] || {},\n config,\n config[key] || {}\n ]);\n }));\n __publicField(this, \"getAttributes\", (0, import_memoize_one.default)((url) => {\n return (0, import_utils.omit)(this.props, SUPPORTED_PROPS);\n }));\n __publicField(this, \"renderActivePlayer\", (url) => {\n if (!url)\n return null;\n const player = this.getActivePlayer(url);\n if (!player)\n return null;\n const config = this.getConfig(url, player.key);\n return /* @__PURE__ */ import_react.default.createElement(\n import_Player.default,\n {\n ...this.props,\n key: player.key,\n ref: this.references.player,\n config,\n activePlayer: player.lazyPlayer || player,\n onReady: this.handleReady\n }\n );\n });\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !(0, import_react_fast_compare.default)(this.props, nextProps) || !(0, import_react_fast_compare.default)(this.state, nextState);\n }\n componentDidUpdate(prevProps) {\n const { light } = this.props;\n if (!prevProps.light && light) {\n this.setState({ showPreview: true });\n }\n if (prevProps.light && !light) {\n this.setState({ showPreview: false });\n }\n }\n renderPreview(url) {\n if (!url)\n return null;\n const { light, playIcon, previewTabIndex, oEmbedUrl, previewAriaLabel } = this.props;\n return /* @__PURE__ */ import_react.default.createElement(\n Preview,\n {\n url,\n light,\n playIcon,\n previewTabIndex,\n previewAriaLabel,\n oEmbedUrl,\n onClick: this.handleClickPreview\n }\n );\n }\n render() {\n const { url, style, width, height, fallback: fallback2, wrapper: Wrapper } = this.props;\n const { showPreview } = this.state;\n const attributes = this.getAttributes(url);\n const wrapperRef = typeof Wrapper === \"string\" ? this.references.wrapper : void 0;\n return /* @__PURE__ */ import_react.default.createElement(Wrapper, { ref: wrapperRef, style: { ...style, width, height }, ...attributes }, /* @__PURE__ */ import_react.default.createElement(UniversalSuspense, { fallback: fallback2 }, showPreview ? this.renderPreview(url) : this.renderActivePlayer(url)));\n }\n }, __publicField(_a, \"displayName\", \"ReactPlayer\"), __publicField(_a, \"propTypes\", import_props.propTypes), __publicField(_a, \"defaultProps\", import_props.defaultProps), __publicField(_a, \"addCustomPlayer\", (player) => {\n customPlayers.push(player);\n }), __publicField(_a, \"removeCustomPlayers\", () => {\n customPlayers.length = 0;\n }), __publicField(_a, \"canPlay\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canPlay(url)) {\n return true;\n }\n }\n return false;\n }), __publicField(_a, \"canEnablePIP\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canEnablePIP && Player2.canEnablePIP(url)) {\n return true;\n }\n }\n return false;\n }), _a;\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar src_exports = {};\n__export(src_exports, {\n default: () => src_default\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_players = __toESM(require(\"./players\"));\nvar import_ReactPlayer = require(\"./ReactPlayer\");\nconst fallback = import_players.default[import_players.default.length - 1];\nvar src_default = (0, import_ReactPlayer.createReactPlayer)(import_players.default, fallback);\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nvar _shims = require(\"./shims\");\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n/*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/\nlet matchesSelectorFunc = '';\nfunction matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nfunction matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n // $FlowIgnore[incompatible-type]\n node = node.parentNode;\n } while (node);\n return false;\n}\nfunction addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\nfunction removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\nfunction outerHeight(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\nfunction outerWidth(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node /*: HTMLElement*/) /*: number*/{\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\nfunction innerWidth(node /*: HTMLElement*/) /*: number*/{\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n// Get from offsetParent\nfunction offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x,\n y\n };\n}\nfunction createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {\n [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation\n };\n}\nfunction createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nfunction getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{\n let {\n x,\n y\n } /*: ControlPosition*/ = _ref /*: ControlPosition*/;\n let translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n if (positionOffset) {\n const defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n const defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n return translation;\n}\nfunction getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);\n}\nfunction getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nfunction addUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\nfunction removeUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n const selection = (doc.defaultView || window).getSelection();\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {\n // probably IE\n }\n}\nfunction addClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\nfunction removeClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var domhandler = require('domhandler');\nvar constants = require('./constants');\n\nvar CASE_SENSITIVE_TAG_NAMES = constants.CASE_SENSITIVE_TAG_NAMES;\n\nvar Comment = domhandler.Comment;\nvar Element = domhandler.Element;\nvar ProcessingInstruction = domhandler.ProcessingInstruction;\nvar Text = domhandler.Text;\n\nvar caseSensitiveTagNamesMap = {};\nvar tagName;\n\nfor (var i = 0, len = CASE_SENSITIVE_TAG_NAMES.length; i < len; i++) {\n tagName = CASE_SENSITIVE_TAG_NAMES[i];\n caseSensitiveTagNamesMap[tagName.toLowerCase()] = tagName;\n}\n\n/**\n * Gets case-sensitive tag name.\n *\n * @param {string} tagName - Tag name in lowercase.\n * @returns {string|undefined} - Case-sensitive tag name.\n */\nfunction getCaseSensitiveTagName(tagName) {\n return caseSensitiveTagNamesMap[tagName];\n}\n\n/**\n * Formats DOM attributes to a hash map.\n *\n * @param {NamedNodeMap} attributes - List of attributes.\n * @returns {object} - Map of attribute name to value.\n */\nfunction formatAttributes(attributes) {\n var result = {};\n var attribute;\n // `NamedNodeMap` is array-like\n for (var i = 0, len = attributes.length; i < len; i++) {\n attribute = attributes[i];\n result[attribute.name] = attribute.value;\n }\n return result;\n}\n\n/**\n * Corrects the tag name if it is case-sensitive (SVG).\n * Otherwise, returns the lowercase tag name (HTML).\n *\n * @param {string} tagName - Lowercase tag name.\n * @returns {string} - Formatted tag name.\n */\nfunction formatTagName(tagName) {\n tagName = tagName.toLowerCase();\n var caseSensitiveTagName = getCaseSensitiveTagName(tagName);\n if (caseSensitiveTagName) {\n return caseSensitiveTagName;\n }\n return tagName;\n}\n\n/**\n * Transforms DOM nodes to `domhandler` nodes.\n *\n * @param {NodeList} nodes - DOM nodes.\n * @param {Element|null} [parent=null] - Parent node.\n * @param {string} [directive] - Directive.\n * @returns {Array}\n */\nfunction formatDOM(nodes, parent, directive) {\n parent = parent || null;\n var result = [];\n var tagName;\n\n for (var index = 0, len = nodes.length; index < len; index++) {\n var node = nodes[index];\n var current;\n\n // set the node data given the type\n switch (node.nodeType) {\n case 1:\n tagName = formatTagName(node.nodeName);\n // script, style, or tag\n current = new Element(tagName, formatAttributes(node.attributes));\n current.children = formatDOM(\n // template children are on content\n tagName === 'template' ? node.content.childNodes : node.childNodes,\n current\n );\n break;\n\n case 3:\n current = new Text(node.nodeValue);\n break;\n\n case 8:\n current = new Comment(node.nodeValue);\n break;\n\n default:\n continue;\n }\n\n // set previous node next\n var prev = result[index - 1] || null;\n if (prev) {\n prev.next = current;\n }\n\n // set properties for current node\n current.parent = parent;\n current.prev = prev;\n current.next = null;\n\n result.push(current);\n }\n\n if (directive) {\n current = new ProcessingInstruction(\n directive.substring(0, directive.indexOf(' ')).toLowerCase(),\n directive\n );\n current.next = result[0] || null;\n current.parent = parent;\n result.unshift(current);\n\n if (result[1]) {\n result[1].prev = result[0];\n }\n }\n\n return result;\n}\n\nexports.formatAttributes = formatAttributes;\nexports.formatDOM = formatDOM;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar patterns_exports = {};\n__export(patterns_exports, {\n AUDIO_EXTENSIONS: () => AUDIO_EXTENSIONS,\n DASH_EXTENSIONS: () => DASH_EXTENSIONS,\n FLV_EXTENSIONS: () => FLV_EXTENSIONS,\n HLS_EXTENSIONS: () => HLS_EXTENSIONS,\n MATCH_URL_DAILYMOTION: () => MATCH_URL_DAILYMOTION,\n MATCH_URL_FACEBOOK: () => MATCH_URL_FACEBOOK,\n MATCH_URL_FACEBOOK_WATCH: () => MATCH_URL_FACEBOOK_WATCH,\n MATCH_URL_KALTURA: () => MATCH_URL_KALTURA,\n MATCH_URL_MIXCLOUD: () => MATCH_URL_MIXCLOUD,\n MATCH_URL_MUX: () => MATCH_URL_MUX,\n MATCH_URL_SOUNDCLOUD: () => MATCH_URL_SOUNDCLOUD,\n MATCH_URL_STREAMABLE: () => MATCH_URL_STREAMABLE,\n MATCH_URL_TWITCH_CHANNEL: () => MATCH_URL_TWITCH_CHANNEL,\n MATCH_URL_TWITCH_VIDEO: () => MATCH_URL_TWITCH_VIDEO,\n MATCH_URL_VIDYARD: () => MATCH_URL_VIDYARD,\n MATCH_URL_VIMEO: () => MATCH_URL_VIMEO,\n MATCH_URL_WISTIA: () => MATCH_URL_WISTIA,\n MATCH_URL_YOUTUBE: () => MATCH_URL_YOUTUBE,\n VIDEO_EXTENSIONS: () => VIDEO_EXTENSIONS,\n canPlay: () => canPlay\n});\nmodule.exports = __toCommonJS(patterns_exports);\nvar import_utils = require(\"./utils\");\nconst MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie|education)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nconst MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nconst MATCH_URL_VIMEO = /vimeo\\.com\\/(?!progressive_redirect).+/;\nconst MATCH_URL_MUX = /stream\\.mux\\.com\\/(?!\\w+\\.m3u8)(\\w+)/;\nconst MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nconst MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nconst MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nconst MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?([^?]+)/;\nconst MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nconst MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?(?:[\\w.#_-]+)?/;\nconst MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nconst MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-_]+)/;\nconst MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/;\nconst AUDIO_EXTENSIONS = /\\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nconst VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\\d+]+)?($|\\?)/i;\nconst HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nconst DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nconst FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nconst canPlayFile = (url) => {\n if (url instanceof Array) {\n for (const item of url) {\n if (typeof item === \"string\" && canPlayFile(item)) {\n return true;\n }\n if (canPlayFile(item.src)) {\n return true;\n }\n }\n return false;\n }\n if ((0, import_utils.isMediaStream)(url) || (0, import_utils.isBlobUrl)(url)) {\n return true;\n }\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\nconst canPlay = {\n youtube: (url) => {\n if (url instanceof Array) {\n return url.every((item) => MATCH_URL_YOUTUBE.test(item));\n }\n return MATCH_URL_YOUTUBE.test(url);\n },\n soundcloud: (url) => MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url),\n vimeo: (url) => MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url),\n mux: (url) => MATCH_URL_MUX.test(url),\n facebook: (url) => MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url),\n streamable: (url) => MATCH_URL_STREAMABLE.test(url),\n wistia: (url) => MATCH_URL_WISTIA.test(url),\n twitch: (url) => MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url),\n dailymotion: (url) => MATCH_URL_DAILYMOTION.test(url),\n mixcloud: (url) => MATCH_URL_MIXCLOUD.test(url),\n vidyard: (url) => MATCH_URL_VIDYARD.test(url),\n kaltura: (url) => MATCH_URL_KALTURA.test(url),\n file: canPlayFile\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nfunction getPrefix() /*: string*/{\n var _window$document;\n let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return '';\n\n // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n const style = (_window$document = window.document) === null || _window$document === void 0 || (_window$document = _window$document.documentElement) === null || _window$document === void 0 ? void 0 : _window$document.style;\n if (!style) return '';\n if (prop in style) return '';\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n return '';\n}\nfunction browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\nfunction browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\nfunction kebabToTitleCase(str /*: string*/) /*: string*/{\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nvar _default = exports.default = (getPrefix() /*: string*/);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\nvar _shims = require(\"./shims\");\nvar _domFns = require(\"./domFns\");\n/*:: import type Draggable from '../Draggable';*/\n/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/\n/*:: import type DraggableCore from '../DraggableCore';*/\nfunction getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {\n bounds\n } = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n if (typeof bounds === 'string') {\n const {\n ownerDocument\n } = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\nfunction snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\nfunction canDragX(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\nfunction canDragY(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nfunction getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{\n const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n}\n\n// Create an data object exposed by 's events\nfunction createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{\n const isStart = !(0, _shims.isNum)(draggable.lastX);\n const node = findDOMNode(draggable);\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x,\n y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - draggable.lastX,\n deltaY: y - draggable.lastY,\n lastX: draggable.lastX,\n lastY: draggable.lastY,\n x,\n y\n };\n }\n}\n\n// Create an data exposed by 's events\nfunction createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\nfunction findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{\n const node = draggable.findDOMNode();\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}","\"use strict\";\n\nconst {\n default: Draggable,\n DraggableCore\n} = require('./Draggable');\n\n// Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n callPlayer: () => callPlayer,\n getConfig: () => getConfig,\n getSDK: () => getSDK,\n isBlobUrl: () => isBlobUrl,\n isMediaStream: () => isMediaStream,\n lazy: () => lazy,\n omit: () => omit,\n parseEndTime: () => parseEndTime,\n parseStartTime: () => parseStartTime,\n queryString: () => queryString,\n randomString: () => randomString,\n supportsWebKitPresentationMode: () => supportsWebKitPresentationMode\n});\nmodule.exports = __toCommonJS(utils_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_load_script = __toESM(require(\"load-script\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nconst lazy = (componentImportFn) => import_react.default.lazy(async () => {\n const obj = await componentImportFn();\n return typeof obj.default === \"function\" ? obj : obj.default;\n});\nconst MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nconst MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nconst MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nconst MATCH_NUMERIC = /^\\d+$/;\nfunction parseTimeParam(url, pattern) {\n if (url instanceof Array) {\n return void 0;\n }\n const match = url.match(pattern);\n if (match) {\n const stamp = match[1];\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n return void 0;\n}\nfunction parseTimeString(stamp) {\n let seconds = 0;\n let array = MATCH_START_STAMP.exec(stamp);\n while (array !== null) {\n const [, count, period] = array;\n if (period === \"h\")\n seconds += parseInt(count, 10) * 60 * 60;\n if (period === \"m\")\n seconds += parseInt(count, 10) * 60;\n if (period === \"s\")\n seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n return seconds;\n}\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n}\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\nfunction queryString(object) {\n return Object.keys(object).map((key) => `${key}=${object[key]}`).join(\"&\");\n}\nfunction getGlobal(key) {\n if (window[key]) {\n return window[key];\n }\n if (window.exports && window.exports[key]) {\n return window.exports[key];\n }\n if (window.module && window.module.exports && window.module.exports[key]) {\n return window.module.exports[key];\n }\n return null;\n}\nconst requests = {};\nconst getSDK = enableStubOn(function getSDK2(url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = import_load_script.default) {\n const existingGlobal = getGlobal(sdkGlobal);\n if (existingGlobal && isLoaded(existingGlobal)) {\n return Promise.resolve(existingGlobal);\n }\n return new Promise((resolve, reject) => {\n if (requests[url]) {\n requests[url].push({ resolve, reject });\n return;\n }\n requests[url] = [{ resolve, reject }];\n const onLoaded = (sdk) => {\n requests[url].forEach((request) => request.resolve(sdk));\n };\n if (sdkReady) {\n const previousOnReady = window[sdkReady];\n window[sdkReady] = function() {\n if (previousOnReady)\n previousOnReady();\n onLoaded(getGlobal(sdkGlobal));\n };\n }\n fetchScript(url, (err) => {\n if (err) {\n requests[url].forEach((request) => request.reject(err));\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(getGlobal(sdkGlobal));\n }\n });\n });\n});\nfunction getConfig(props, defaultProps) {\n return (0, import_deepmerge.default)(defaultProps.config, props.config);\n}\nfunction omit(object, ...arrays) {\n const omitKeys = [].concat(...arrays);\n const output = {};\n const keys = Object.keys(object);\n for (const key of keys) {\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n return output;\n}\nfunction callPlayer(method, ...args) {\n if (!this.player || !this.player[method]) {\n let message = `ReactPlayer: ${this.constructor.displayName} player could not call %c${method}%c \\u2013 `;\n if (!this.player) {\n message += \"The player was not available\";\n } else if (!this.player[method]) {\n message += \"The method was not available\";\n }\n console.warn(message, \"font-weight: bold\", \"\");\n return null;\n }\n return this.player[method](...args);\n}\nfunction isMediaStream(url) {\n return typeof window !== \"undefined\" && typeof window.MediaStream !== \"undefined\" && url instanceof window.MediaStream;\n}\nfunction isBlobUrl(url) {\n return /^blob:/.test(url);\n}\nfunction supportsWebKitPresentationMode(video = document.createElement(\"video\")) {\n const notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === \"function\" && notMobile;\n}\nfunction enableStubOn(fn) {\n if (false) {\n const wrap = (...args) => wrap.stub(...args);\n wrap.stub = fn;\n return wrap;\n }\n return fn;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/{\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\nfunction isFunction(func /*: any*/) /*: boolean %checks*/{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\nfunction isNum(num /*: any*/) /*: boolean %checks*/{\n return typeof num === 'number' && !isNaN(num);\n}\nfunction int(a /*: string*/) /*: number*/{\n return parseInt(a, 10);\n}\nfunction dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1\n// match-all-characters in case of newlines (DOTALL)\nvar HEAD_TAG_REGEX = //i;\nvar BODY_TAG_REGEX = //i;\n\n// falls back to `parseFromString` if `createHTMLDocument` cannot be used\nvar parseFromDocument = function () {\n throw new Error(\n 'This browser does not support `document.implementation.createHTMLDocument`'\n );\n};\n\nvar parseFromString = function () {\n throw new Error(\n 'This browser does not support `DOMParser.prototype.parseFromString`'\n );\n};\n\nvar DOMParser = typeof window === 'object' && window.DOMParser;\n\n/**\n * DOMParser (performance: slow).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document\n */\nif (typeof DOMParser === 'function') {\n var domParser = new DOMParser();\n var mimeType = 'text/html';\n\n /**\n * Creates an HTML document using `DOMParser.parseFromString`.\n *\n * @param {string} html - The HTML string.\n * @param {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n * @return {HTMLDocument}\n */\n parseFromString = function (html, tagName) {\n if (tagName) {\n html = '<' + tagName + '>' + html + '';\n }\n\n return domParser.parseFromString(html, mimeType);\n };\n\n parseFromDocument = parseFromString;\n}\n\n/**\n * DOMImplementation (performance: fair).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument\n */\nif (typeof document === 'object' && document.implementation) {\n var doc = document.implementation.createHTMLDocument();\n\n /**\n * Use HTML document created by `document.implementation.createHTMLDocument`.\n *\n * @param {string} html - The HTML string.\n * @param {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n * @return {HTMLDocument}\n */\n parseFromDocument = function (html, tagName) {\n if (tagName) {\n var element = doc.documentElement.querySelector(tagName);\n element.innerHTML = html;\n return doc;\n }\n\n doc.documentElement.innerHTML = html;\n return doc;\n };\n}\n\n/**\n * Template (performance: fast).\n *\n * @see https://developer.mozilla.org/docs/Web/HTML/Element/template\n */\nvar template =\n typeof document === 'object' ? document.createElement('template') : {};\n\nvar parseFromTemplate;\n\nif (template.content) {\n /**\n * Uses a template element (content fragment) to parse HTML.\n *\n * @param {string} html - The HTML string.\n * @return {NodeList}\n */\n parseFromTemplate = function (html) {\n template.innerHTML = html;\n return template.content.childNodes;\n };\n}\n\n/**\n * Parses HTML string to DOM nodes.\n *\n * @param {string} html - HTML markup.\n * @return {NodeList}\n */\nfunction domparser(html) {\n var firstTagName;\n var match = html.match(FIRST_TAG_REGEX);\n\n if (match && match[1]) {\n firstTagName = match[1].toLowerCase();\n }\n\n var doc;\n var element;\n var elements;\n\n switch (firstTagName) {\n case HTML:\n doc = parseFromString(html);\n\n // the created document may come with filler head/body elements,\n // so make sure to remove them if they don't actually exist\n if (!HEAD_TAG_REGEX.test(html)) {\n element = doc.querySelector(HEAD);\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n\n if (!BODY_TAG_REGEX.test(html)) {\n element = doc.querySelector(BODY);\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n\n return doc.querySelectorAll(HTML);\n\n case HEAD:\n case BODY:\n doc = parseFromDocument(html);\n elements = doc.querySelectorAll(firstTagName);\n\n // if there's a sibling element, then return both elements\n if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) {\n return elements[0].parentNode.childNodes;\n }\n return elements;\n\n // low-level tag or text\n default:\n if (parseFromTemplate) {\n return parseFromTemplate(html);\n }\n element = parseFromDocument(html, BODY).querySelector(BODY);\n return element.childNodes;\n }\n}\n\nmodule.exports = domparser;\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","var reactProperty = require('react-property');\nvar utilities = require('./utilities');\n\n// https://reactjs.org/docs/uncontrolled-components.html\n// https://developer.mozilla.org/docs/Web/HTML/Attributes\nvar UNCONTROLLED_COMPONENT_ATTRIBUTES = ['checked', 'value'];\nvar UNCONTROLLED_COMPONENT_NAMES = ['input', 'select', 'textarea'];\n\nvar VALUE_ONLY_INPUTS = {\n reset: true,\n submit: true\n};\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param {object} [attributes={}] - HTML/SVG DOM attributes.\n * @param {string} [nodeName] - DOM node name.\n * @returns - React props.\n */\nmodule.exports = function attributesToProps(attributes, nodeName) {\n attributes = attributes || {};\n\n var attributeName;\n var attributeNameLowerCased;\n var attributeValue;\n var propName;\n var propertyInfo;\n var props = {};\n var inputIsValueOnly = attributes.type && VALUE_ONLY_INPUTS[attributes.type];\n\n for (attributeName in attributes) {\n attributeValue = attributes[attributeName];\n\n // ARIA (aria-*) or custom data (data-*) attribute\n if (reactProperty.isCustomAttribute(attributeName)) {\n props[attributeName] = attributeValue;\n continue;\n }\n\n // convert HTML/SVG attribute to React prop\n attributeNameLowerCased = attributeName.toLowerCase();\n propName = getPropName(attributeNameLowerCased);\n\n if (propName) {\n propertyInfo = reactProperty.getPropertyInfo(propName);\n\n // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`)\n if (\n UNCONTROLLED_COMPONENT_ATTRIBUTES.indexOf(propName) !== -1 &&\n UNCONTROLLED_COMPONENT_NAMES.indexOf(nodeName) !== -1 &&\n !inputIsValueOnly\n ) {\n propName = getPropName('default' + attributeNameLowerCased);\n }\n\n props[propName] = attributeValue;\n\n switch (propertyInfo && propertyInfo.type) {\n case reactProperty.BOOLEAN:\n props[propName] = true;\n break;\n case reactProperty.OVERLOADED_BOOLEAN:\n if (attributeValue === '') {\n props[propName] = true;\n }\n break;\n }\n continue;\n }\n\n // preserve custom attribute if React >=16\n if (utilities.PRESERVE_CUSTOM_ATTRIBUTES) {\n props[attributeName] = attributeValue;\n }\n }\n\n // transform inline style to object\n utilities.setStyleProp(attributes.style, props);\n\n return props;\n};\n\n/**\n * Gets prop name from lowercased attribute name.\n *\n * @param {string} attributeName - Lowercased attribute name.\n * @returns - Prop name.\n */\nfunction getPropName(attributeName) {\n return reactProperty.possibleStandardNames[attributeName];\n}\n","var React = require('react');\nvar attributesToProps = require('./attributes-to-props');\nvar utilities = require('./utilities');\n\nvar setStyleProp = utilities.setStyleProp;\nvar canTextBeChildOfNode = utilities.canTextBeChildOfNode;\n\n/**\n * Converts DOM nodes to JSX element(s).\n *\n * @param {DomElement[]} nodes - DOM nodes.\n * @param {object} [options={}] - Options.\n * @param {Function} [options.replace] - Replacer.\n * @param {object} [options.library] - Library (React, Preact, etc.).\n * @returns - String or JSX element(s).\n */\nfunction domToReact(nodes, options) {\n options = options || {};\n\n var library = options.library || React;\n var cloneElement = library.cloneElement;\n var createElement = library.createElement;\n var isValidElement = library.isValidElement;\n\n var result = [];\n var node;\n var isWhitespace;\n var hasReplace = typeof options.replace === 'function';\n var replaceElement;\n var props;\n var children;\n var trim = options.trim;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n\n // replace with custom React element (if present)\n if (hasReplace) {\n replaceElement = options.replace(node);\n\n if (isValidElement(replaceElement)) {\n // set \"key\" prop for sibling elements\n // https://fb.me/react-warning-keys\n if (len > 1) {\n replaceElement = cloneElement(replaceElement, {\n key: replaceElement.key || i\n });\n }\n result.push(replaceElement);\n continue;\n }\n }\n\n if (node.type === 'text') {\n isWhitespace = !node.data.trim().length;\n\n if (isWhitespace && node.parent && !canTextBeChildOfNode(node.parent)) {\n // We have a whitespace node that can't be nested in its parent\n // so skip it\n continue;\n }\n\n if (trim && isWhitespace) {\n // Trim is enabled and we have a whitespace node\n // so skip it\n continue;\n }\n\n // We have a text node that's not whitespace and it can be nested\n // in its parent so add it to the results\n result.push(node.data);\n continue;\n }\n\n props = node.attribs;\n if (skipAttributesToProps(node)) {\n setStyleProp(props.style, props);\n } else if (props) {\n props = attributesToProps(props, node.name);\n }\n\n children = null;\n\n switch (node.type) {\n case 'script':\n case 'style':\n // prevent text in ' + '');\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgErrorSomethingWentWrongGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssessmetEmptyGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTileMenuIconGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPrevIconBlack(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNextIconBlack(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCloseIconBlue(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFlagIconBlue(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssessmentSessionExpired(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgQuesionMarkGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n 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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTimerIconDarkGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCloseFilledRed(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSandTimerBownIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNotAttempted(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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","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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssessmentDateConfirmGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssessmentScheduledGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssessmentScheduleFailedGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgQuestionIconThickBlack(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgClockIconBlack(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBoardWithChecksIconBlack(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssessmentTimeoutGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAssessmentSubmitConfirmGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCloseIconRoundFilledGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgQuestionIconThickBlack2(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n 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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBookDarkBlackThickIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 14,\n viewBox: \"0 0 16 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n 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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCheckGreenFilledBordered(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCloseRedFilledBordered(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCalendarIconAssessment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTimerIconAssessment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgResultMdIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgErrorNoCertificateFoundGraphics(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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 };","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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLeftArrowLong(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLinkedinIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDownloadIconWhite(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCertificateBadge(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCalendarIconGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTimerIconGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHomeIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNotifictionIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgUserIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBookDarkGreyThickIcon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 16,\n viewBox: \"0 0 18 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n 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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgQuestionIconThickGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n 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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWarningRoundFilledBlue(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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